Linux系统】 Linux上的安全策略,除了SELinux还有其他的方案么

2021-03-17 11:23发布

2条回答
studentaaa
2021-03-27 08:40

1.检查是否设置口令长度至少8位,并包括数字,小写字符、大写字符和特殊符号4类中至少2类。
在文件/etc/login.defs中设置 PASS_MIN_LEN 不小于标准值
修改/etc/pam.d/system-auth文件, 在ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 选3种,追加到password requisite pam_cracklib.so后面,添加到配置文件中。
例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1
注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数
2.检查是否设置账户口令的生存期不长于90天。
修改/etc/login.def

PASS_MAX_DAYS 90      #密码最大有效期,此处参数PASS_MAX_DAYS为60,表示60天后,密码会过期。99999表示永不过期。PASS_MIN_DAYS 0      #两次修改密码的最小间隔时间,0表示可以随时修改账号密码PASS_MIN_LEN  8      #密码最小长度,对于root无效PASS_WARN_AGE 7      #密码过期前多少天开始提示1234

3.检查是否设置用户不能重复使用最近5次(含5次)内已使用的口令。
修改文件 # vi /etc/pam.d/system-auth
在 password sufficient pam_unix.so use_authtok md5 shadow remember=10
4.检查是否设置当用户连续认证失败次数超过5次,锁定该用户使用的账户。

vim /etc/pam.d/login
auth  required  pam_tally2.so  deny=5  unlock_time=300 even_deny_root root_unlock_time=101

5.检查默认账号,是否删除或锁定与设备运行、维护等工作无关的账号。查看多余账号

cat /etc/passwd
[root@localhost ~]# userdel username[root@localhost ~]# groupdel groupname删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,
games,gopher等。
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,
slipusers等。123456

6.检查远程登录限制,是否限制具备超级管理员权限的用户远程登录。
限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。
Root从远程使用Telnet登录;
普通用户从远程使用Telnet登录;
Root从远程使用ssh登录;
普通用户从远程使用ssh登录;
7.检查用户缺省访问权限,是否配置用户缺省访问权限,屏蔽掉新建文件和目录不该有的访问允许权限。
查看新建的文件或目录的权限,操作举例如下:

#ls -l dir; #查看目录dir的权限#cat /etc/default/login  /etc/default/login不存在(查看是否有umask027内容)123

8.检查服务开启,是否最小化,关闭不必要的服务。

/etc/rc.d/init.d或# rpm -qi $(rpm -qf /etc/rc.d/init.d/sshd)chkconfig –level 2345 服务名称 off12

9.检查补丁安全,是否在确保业务不受影响的情况下及时更新操作系统补丁。
查看补丁安装情况:

rpm –qa | grep patch
/etc/sysconfig/yum-cron
CHECK_ONLY=yes
更新的补丁在:  http://itrc.hp.com/service/patch/releaseIndexPage.do123

10.检查日志审计功能设置,是否配置日志审计功能
查看日志服务是否开启#service -–status-all | grep syslog
在root权限下,使用命令more、cat或vi查看

/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息123456

11.检查远程管理加密协议,是否配置使用SSH等加密协议进行远程管理,禁止使用Telnet等明文传输协议。

查看SSH服务状态:#ps –elf|grep ssh查看Telnet服务状态:#ps –elf|grep telnet12

(是否有SSH进程存在:#ps –elf|grep ssh)
12.检查登录超时时间设置,是否设置登录账号的登录超时为30分钟。

cat /etc/profile|grep TMOUT -n
查看超时时间参数TMOUT
在/etc/profile 后面添加export TMOUT=1800readonly TMOUT12345

13.ssh安全设置策略(/etc/ssh/sshd_config)

Port 22 #ssh服务端口号,我们可以改成高端口,一般端口扫描工具不会扫描高端口的。 AddressFamily any
#ssh服务的协议族,可以用ipv4 ipv6或者直接使用any。 Protocol 2 #ssh服务协议版本,默认为1,建议使用2,1有漏洞。 KeyRegenerationInterval 3600 # 在SSH-1协议下,短命的服务器密钥将以此指令设置的时间为周期(秒),不断重新生成。这个机制可以尽量减小密钥丢失或者黑客攻击造成的损失。
ServerKeyBits 2048 # 指定临时服务器密钥的长度。1024存在认证漏洞,安全最低2048位。 LogLevel
ERROR #日志级别,可以使用 QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG,
DEBUG1, DEBUG2, DEBUG3。 LoginGraceTime 30
#限制用户必须在指定的时限内认证成功,建议设置低,增加暴力破解难度,单位为秒。 MaxAuthTries 3 #最多登录尝试次数,建议设置低一些,加大暴力破解难度。 RSAAuthentication yes #使用纯 RSA公钥认证。 PubkeyAuthentication yes #使用公钥认证,推荐使用安全高效! AuthorizedKeysFile
.ssh/authorized_keys
#用户公钥文件保存路径,默认为用户的home目录下.ssh隐藏文件夹中的authorized_keys,建议更换到其他目录,防止丢失或者被恶意登陆者在默认的这个路径中找到篡改。
PermitEmptyPasswords no #不允许空密码登录,这个太危险啦。 GSSAPIAuthentication no #不基于
GSSAPI 的用户认证,关闭,优化性能。 UsePAM no #使用PAM认证,如果不用LDAP之类的登陆,建议关闭,优化性能。
X11Forwarding no #如果没有使用x11转发最好关闭掉,优化性能。 PrintMotd no
#登录打印公告信息,可以修改或者关闭,修改/etc/motd来震慑恶意登陆者,默认会显示一些系统信息,关闭掉,减少恶意登陆者获取的信息量,防止被恶意利用。
PrintLastLog no #不打印最后登陆信息,减少恶意登陆者获取的信息量,防止被恶意利用。 TCPKeepAlive yes
#保持长连接,加快连接速度,优化性能。 PidFile /var/run/sshd.pid #ssh服务的pid文件。 Banner none #不显示系统banner信息,如果开启会在每次登陆时显示系统信息,减少恶意登陆者获取的信息量,防止被恶意利用。
PermitRootLogin no #禁止root用户登陆,降低远程登陆的用户权限。 PasswordAuthentication no
#允许用户名密码登陆,no,禁止使用用户名和密码登陆,使用公钥登陆,防止针对用户名和密码的暴力破解。

14#vim /etc/bashrc #在配置文件最后添加

HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S:`whoami`:  "export HISTTIMEFORMAT                            #作用:用作记录命令执行时间,以及执行用户12

#vim /etc/profile #在最后加上如下脚本代码,记录每个用户的操作命令

history
 USER=`whoami`
 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
 if [ "$USER_IP" = "" ]; then
 USER_IP=`hostname`
 fi
 if [ ! -d /var/log/history ]; then
 mkdir /var/log/history chmod 777 /var/log/history fi
 if [ ! -d /var/log/history/${LOGNAME} ]; then
 mkdir /var/log/history/${LOGNAME}
 chmod 300 /var/log/history/${LOGNAME}
 fi
 export HISTSIZE=4096
 DT=`date +"%Y%m%d_%H:%M:%S"`
 export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
 chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null123456789101112131415161718

15、/etc/profile , /etc/pam.d/sshd , /etc/pam.d/remote , /etc/ssh/sshd_config , /etc/passwd , /etc/group , /etc/shadow 这些文件生产服务器上最好就是最小权限

chmod 600 xxxxxx
chattr +i xxxx123

一周热门 更多>