加强口令的复杂度等,降低被猜解的可能性。操作步骤如下
PASS_MAX_DAYS 30 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_MIN_LEN 10 #密码最小长度
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
chage -m 0 -M 30 -E 2020-06-30 -W 7 root
表示将root用户的密码最长使用天数设为30,最短使用天数设为0,密码2020年06月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去重置计数
创建普通权限账号并配置密码,防止无法远程登录
vi /etc/ssh/sshd_config修改配置文件将PermitRootLogin的值改成no,并保存,然后使用service sshd restart重启服务
设置 Protocol 的版本为 2
设置 MaxAuthTries 的值为 3
例如改为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 的端口号
ListenAddress 0.0.0.0 修改为具体的网卡IP地址 若有多网卡,只监听在某个网卡地址上
#AllowAgentForwarding yes
#AllowTcpForwarding yes
改为
AllowAgentForwarding no
AllowTcpForwarding no
另外在Linux中,通过外网使用SSH服务登录或数据传输时,速度很慢,即使是使用内网登录或数据传输也很慢。
该问题可能是由于SSH服务启用了UseDNS特性所致。
使用vi等编辑器,修改为
UseDNS no
也可以注释策略配置,在策略配置前添加 #
#UseDNS no
重启SSH服务使配置生效。service sshd restart
通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查
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、时间的日志文件,包含此用户本次的所有操作
目前先总结这么多,后续有遇到再补充
本文分享自 WalkingCloud 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!