Linux服务器安全配置

1用户帐户和环境 
1.1确保没有空口令/弱口令帐户 系统帐户没有口令或有弱口令,导致服务器的安全受到威胁,需要修改没有口令或弱口令的帐户,或删除该帐户。
设置方法: 
1、在命令行输入: 
[root]# awk -F: '($2 == "!!") { print $1 }' /etc/shadow 
2、没有任何返回信息表明没有空口令或弱口令的帐户。有空口令或弱口令的帐户,将所有这样的帐户列出并删除。另外可以在授权范围内尝试使用口令破解器对帐户口令的强度做一定程度上的检测。 
1.2设置口令期限 
设置口令期限原理同 
Windows系统的密码策略设置,可以到期限提醒用户修改密码,以保护服务器的安全。
设置方法: 
1、进入/etc目录,编辑 
login.defs文件,在命令行输入: 
[root]# cd /etc 
[root]# vi login.defs 
2、打开 
login.defs文件,修改如下参数值:

PASS_MAX_DAYS 90 #口令最长保留期限 
90天 
PASS_MIN_DAYS 0 #口令最短保留期限 
0天 
PASS_MIN_LEN 8 #口令最小 
8个字符 
PASS_WARN_AGE 7 #口令到期前 7天提醒

1.3确保除 root以外没有其它 UID为 0的帐户存在 系统只允许保留 root一个系统管理员帐户,如果存在多个管理员帐户,会导致服务器的信息泄露或安全风险,因此需要删除其它的系统管理员帐户。
设置方法: 
1、在命令行输入: 
[root]# awk -F: '($3 == 0) { print $1 }' /etc/passwd”。
2、返回信息中只有 root一个帐户为正确返回结果,删除其它的帐户。

1.4确保在 
root $PATH中没有'.' 如果在 root $PATH中有'.',那么可能会导致一些伪装木马的执行,使服务器受到病毒威胁,因此确保在 root $PATH中没有'.'。
设置方法: 
1、在$PATH中查找'.',在命令行输入: 
[root]# echo $PATH | egrep '(^|:)(\.|:|$)'”。

2、没有任何返回信息表明在 root $PATH中没有'.'。 
1.5删除.netrc文件 
.netrc文件是一个脚本程序,通过预先设置好的用户名和密码可以让远程用户不再输入口令即可登录,另外.netrc文件以明文保存用户帐户及口令,这也是非常危险的,因此必须删除.netrc文件。 
设置方法: 
1、在根目录下新建一个 shell脚本文件,例如“bbb.sh”,在命令行输入: 
[root]# cd / 
[root]# vi bbb.sh 
2、打开 bbb.sh文件,加入如下内容。

3、对 bbb.sh文件进行授权,在命令行输入: 
[root]# chown root:root bbb.sh 
[root]# chmod 744 bbb.sh

4、执行 bbb.sh文件,在命令行输入: 
[root]# ./bbb.sh

2系统访问、认证与授权

2.1删除.rhost文件 .rhost文件以明文保存用户帐户及口令,系统中存在 .rhost文件允许任何人不用密码也可远程登录服务器,因此是非常危险的,必须删除.rhost文件。 
设置方法: 
1、进入/etc/pam.d/目录,在该目录下新建一个 shell脚本文件,例如 
“aaa.sh”,在命令行输入: 
[root]# cd /etc/pam.d 
[root]# vi aaa.sh

2、打开 aaa.sh文件,加入如下内容。

3、对 aaa.sh文件进行授权,在命令行输入: 
[root]# chown root:root aaa.sh 
[root]# chmod 744 aaa.sh

4、执行 aaa.sh文件,在命令行输入: 
[root]# ./aaa.sh

2.2只允许 root用户使用 
at/cron 
at/cron是计划任务,若系统中允许其它用户使用计划任务会导致服务器的安全风险,因此只允许 root用户使用计划任务。并且计划任务设置为直接沿用 CIS的加固脚本,使服务器更加安全。 
设置方法: 
1、进入/etc目录,在命令行输入: 
[root]# cd /etc

2、删除其它用户使用的计划任务,在命令行输入: 
[root]# rm –f cron.deny at.deny

3、对 root用户使用的计划任务进行加固,在命令行输入: 
[root]# echo root > cron.allow 
[root]# [ -e cron.allow-preCIS ] && \ 
[root]# diff cron.allow-preCIS cron.allow 
[root]# echo root > at.allow 
[root]# [ -e cron.allow-preCIS ] && \

4、对计划任务文件进行授权,在命令行输入: 
[root]# chown root:root cron.allow at.allow 
[root]# chmod 400 cron.allow at.allow


3文件和目录权限 
3.1确认 passwd、shadow、group文件权限 Passwd、shadow、group文件中记录了系统的用户、口令、所属权限组的信息,这些文件访问权限不进行设置,任何用户进入系统可以查看该文件以获得系统的所有用户、口令信息,进而操作或破坏服务器。这些文件的权限只有系统管理员 root用户允许访问,可以防止服务器信息泄露。
设置方法: 
1、进入 etc目录,对 passwd、shadow、group文件授权给 root用户,在
命令行输入: 
[root]# cd /etc 
[root]# chown root:root passwd shadow group 
[root]# chmod 644 passwd group 
[root]# chmod 400 shadow

3.2为全局可写目录设置粘滞位粘滞位是每个文件的模式中的一个特殊位。设置粘滞位可阻止用户从该目录中删除其他用户的文件。通过设置目录的粘滞位,只允许文件属主、目录属主、或者具有相应权限的用户删除或重命名文件。 
设置方法: 
1、在命令行中输入: 
[root]# find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) –print

3.3删除没有明确属主的文件没有明确属主的文件,可视为垃圾文件,会占用系统的资源并且对服务器的安全造成隐患,所以需要将其删除。 
设置方法: 
1、查找所有没有属主的文件,在命令行输入: 
[root]# find / -nouser -o -nogroup -print

2、将查找出的文件使用 rm-f命令删除。 注意:请根据系统的实际使用情况有选择性删除。

4日志审计

4.1捕获发送到 syslog的安全信息记录系统日志信息,以便系统出现问题时查找并处理问题。 
设置方法: 
1、查看/etc/syslog.conf文件中是否存在“ authpriv.*”参数,进入 etc目录,编辑 syslog.conf文件,在命令行输入: 
[root]# cd /etc 
[root]# vi syslog.conf

2、打开 syslog.conf文件。


 
3、查看 authpriv.*参数,如果不存在,增加该参数。增加后对参数值 secure
文件进行授权,在命令行输入: 
[root]# touch /var/log/secure 
[root]# chown root:root /var/log/secure 
[root]# chmod 0600 /var/log/secure

5优化启动服务

5.1 禁用不必要的系统服务运行 Linux系统的时候,默认运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险,需要将不必要的服务关闭。 
设置方法: 
1、查看目前系统中运行的服务,在命令行输入: 
[root]# chkconfig --list

2、查看目前系统中开启的端口,列出系统目前运行的 TCP和 UDP协议端口,
在命令行输入: 
[root]# netstat -ln

3、查看端口对应的服务,列出端口对应的服务名称等信息,在命令行输入: 
[root]# lsof –i:端口号

4、设置服务在系统中启动、停止,进入服务状态设置窗口,在命令行输入: 
[root]# ntsysv

5、在窗口中列出所有的系统服务,服务名前边[]中有*号的为该服务已启动,否则未启动,在已经启动的服务前,单击『空格键』,将*号选掉,单击『Tab』键,光标显示在【OK】按钮上,回车。 
5.2 卸载或禁用网络服务一般建议卸载或禁用下列网络服务: 
NIS/NIS+、NFS、SMB、GUIlogin(X-WINDOWS)、SNMP。 
对于 Web、Mail、FTP、DNS等通用服务,如果不是必要,也请卸载或禁用,禁用方法同 1.1。如果是必要的服务程序,须升级到最新版本。常见网络应用服务的升级更新网址如下: 
BIND: http://www.isc.org/products/BIND
SendMail:http://www.sendmail.org/security/
Apache: http://www.apache.org
WU-FTP: http://www.wu-ftpd.org/

 
6网络参数调整 
6.1网络参数调整 
根据不同的需求来调整/etc/sysctl.conf目录下的内核网络参数,通过合理的设置内核网络参数,达到提高网络的安全性和系统的稳定性的目的。 
设置方法: 
1、进入 etc目录,编辑 sysctl.conf文件,在命令行输入: 
[root]# cd /etc 
[root]# vi sysctl.conf

2、打开 sysctl.conf文件。

3、设置网络参数,调整如下: 
net.ipv4.ip_forward = 0 #如果为网关或路由器应设置为 1 
net.ipv4.conf.all.accept_source_route = 0 #禁止 IP源路由功能 
net.ipv4.tcp_max_syn_backlog = 4096 #提供 SYN泛滥保护 
net.ipv4.conf.all.rp_filter = 1 #提供 IP Spoofing保护 
net.ipv4.tcp_syncookies = 1 #提供 TCP SYN泛滥保护 
net.ipv4.conf.all.send_redirects = 0 #禁止发送 ICMP重定向 
net.ipv4.conf.all.accept_redirects = 0 #禁止 ICMP重定向 
net.ipv4.conf.default.accept_redirects = 0 #禁止 ICMP重定向 
4、保存并授权,在命令行输入: 
[root]# chown root:root /etc/sysctl.conf 
[root]# chmod 0600 /etc/sysctl.conf

为了能更好的使用服务器,使服务器能够合理、有效地提供服务,定期对服务器进行维护是非常必要的。为了方便大家在维护中了解一些维护内容,下面列出服务器日常维护规范。
日常维护内容: 
1、服务器的用户检查:每个月检查一次服务器的帐户,删除已经不再使用的帐户。 
2、服务器的安全、性能检查:每台服务器至少保证每周进行安全、性能检查,每次检
查的结果要求进行登记。 
3、服务器的数据备份:每台服务器至少保证每个月备份一次系统数据;每服务器至少
保证每两周备份一次应用系统数据。备份的数据文件名以备份的日期命名。 
4、服务器的日志管理:每台服务器保证每月对相关日志进行一次清理,清理前对应的
各项日志如应用程序日志、安全日志、系统日志等都应进行保存,保存的文件名以备份的日
期命名。 
5、服务器的应用程序更新:应用程序方面的安全更新一定要在发现的第一时间给每服
务器打上应用程序的补丁。 
6、定期的密码更改管理:每台服务器保证至少每三个月更改一次密码。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值