CentOS7系统安全加固小结
1.设置口令策略+登录限制
加强口令的复杂度等,降低被猜解的可能性。操作步骤如下
1)使用命令 vi /etc/login.defs 修改配置文件
PASS_MAX_DAYS 30 #新建用户的密码最长使用天数 PASS_MIN_DAYS 0 #新建用户的密码最短使用天数 PASS_MIN_LEN 10 #密码最小长度 PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
2)使用chage命令修改用户设置
chage -m 0 -M 30 -E 2020-06-30 -W 7 root
表示将root用户的密码最长使用天数设为30,最短使用天数设为0,密码2020年06月30日过期,过期前七天警告用户
如上图所示,手动修改系统日期与时间进行验证,再次登录会要求修改密码
3)设置SSH登录连续输错五次密码,账号锁定30秒
使用命令
vi /etc/pam.d/sshd
修改配置文件,在配置文件中添加
auth required pam_tally2.so deny=5 unlock_time=30 even_deny_root root_unlock_time=30
pam_tally -r去重置计数
2.SSH安全加固
1、限制root用户直接登录
创建普通权限账号并配置密码,防止无法远程登录
vi /etc/ssh/sshd_config修改配置文件将PermitRootLogin的值改成no,并保存,然后使用service sshd restart重启服务
2、修改SSH使用的协议版本。
设置 Protocol 的版本为 2
3、修改允许密码错误次数(默认6次)
设置 MaxAuthTries 的值为 3
4、修改SSH的端口
例如改为Port 8022
sed -i 's/#Port 22/Port 8022/g' /etc/ssh/sshd_config service sshd restart firewall-cmd --zone=public --add-port=8022/tcp --permanent firewall-cmd --reload
修改过后请务必请记录SSH 的端口号
5、修改监听地址
ListenAddress 0.0.0.0 修改为具体的网卡IP地址 若有多网卡,只监听在某个网卡地址上
6、关闭AgentForwarding和TcpForwarding
#AllowAgentForwarding yes
#AllowTcpForwarding yes
改为
AllowAgentForwarding no
AllowTcpForwarding no
另外在Linux中,通过外网使用SSH服务登录或数据传输时,速度很慢,即使是使用内网登录或数据传输也很慢。
该问题可能是由于SSH服务启用了UseDNS特性所致。
使用vi等编辑器,修改为
UseDNS no
也可以注释策略配置,在策略配置前添加 #
#UseDNS no
重启SSH服务使配置生效。service sshd restart
3.记录所有用户的登录和操作日志
通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查
vi /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/null
运行source /etc/profile 加载配置生效
注意: /var/log/history 是记录日志的存放位置,可以自定义。
通过上述步骤,可以在 /var/log/history 目录下以每个用户为名新建一个文件夹,每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作
目前先总结这么多,后续有遇到再补充