CentOS7系统安全加固小结_sed

CentOS7系统安全加固小结


1.设置口令策略+登录限制

加强口令的复杂度等,降低被猜解的可能性。操作步骤如下

1)使用命令 vi /etc/login.defs 修改配置文件

PASS_MAX_DAYS 30 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数


CentOS7系统安全加固小结_配置文件_02

2)使用chage命令修改用户设置


chage -m 0 -M 30 -E 2020-06-30 -W 7 root

表示将root用户的密码最长使用天数设为30,最短使用天数设为0,密码2020年06月30日过期,过期前七天警告用户

CentOS7系统安全加固小结_新建用户_03

如上图所示,手动修改系统日期与时间进行验证,再次登录会要求修改密码

CentOS7系统安全加固小结_配置文件_04

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

CentOS7系统安全加固小结_配置文件_05

CentOS7系统安全加固小结_sed_06

CentOS7系统安全加固小结_新建用户_07

pam_tally -r去重置计数

CentOS7系统安全加固小结_sed_08

CentOS7系统安全加固小结_配置文件_09

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


CentOS7系统安全加固小结_新建用户_10

运行source /etc/profile 加载配置生效 

注意: /var/log/history 是记录日志的存放位置,可以自定义。

通过上述步骤,可以在 /var/log/history 目录下以每个用户为名新建一个文件夹,每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作

CentOS7系统安全加固小结_新建用户_11


目前先总结这么多,后续有遇到再补充

参考阿里云帮助文档 https://help.aliyun.com/knowledge_detail/49809.html?spm=a2c4g.11186631.2.2.307b10ech8B2pI