Menu
centos7优化ssh客户端登录安全的配置
centos7优化ssh客户端登录安全的配置,一般服务器都会开通SSH端口以便运维工程师能够远程维护和开发工程师远程修改和优化WEB应用功能模块,但是开启远程端口SSH就意味着增加了服务器被攻击的风险,那么如何通过安全策略的配置降低入侵风险呢?本文主要从SSH默认端口的修改,IP访问次数的控制等方面讲解优化配置的过程
一.修改ssh默认端口
修改默认端口主要是为了让自动扫描软件不能通过22默认端口进行密码尝试攻击,以降低风险
1)打开 /etc/ssh/sshd_config文件
vim /etc/ssh/sshd_config
2)将#Port 22 注释去掉,22改为你想设置的端口,如33881,保存
3) 重启ssh
systemctl restart sshd.service
4)将该端口加入防火墙例外并重启防火墙
firewall-cmd --permanent --zone=public --add-port=33881/tcp
sudo systemctl restart firewalld.service
二.ssh访问控制,多次失败登录即封掉IP,防止暴力破解
IP访问控制主要是利用操作系统日志,对于日志中多次记录登陆失败的IP进行拦截,防止用户通过对密码的反复尝试(一般是使用攻击脚本实现)来破解系统管理员密码
1)编写脚本将登陆失败的IP加入到/etc/hosts.deny中
vim  /usr/local/bin/secure_ssh.sh
脚本内容如下:
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat /usr/local/bin/black.list`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ ${#NUM} -gt 1 ]; then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
 
2)修改脚本权限并测试是否报错
chmod -R 0777  /usr/local/bin/secure_ssh.sh
cd /usr/local/bin/
./secure_ssh.sh 如果没有错误则执行下一步
3)将secure_ssh.sh脚本放入cron计划任务,每1分钟执行一次,并重启计划任务
crontab -e 后加入如下内容
*/1 * * * *  sh /usr/local/bin/secure_ssh.sh
/sbin/service crond restart 重启计划任务
三、结束语
SSH 是一个强大而安全的网络实用程序,全球有无数用户使用它来完成各种任务。作为 telnet 和 r* 系列命令等明文协议的一个安全替代方案,拥有可免费分发的 SSH 客户端和服务器的多个产品,SSH 是很难被击败的。在许多网络中被广泛用于脚本化技术内的大量远程监控、系统维护、远程系统审计、报告和自动化,SSH 似乎已被普遍接受并将继续不断演化。