服务器安全配置

拥有独立ip的主机经常受到各种攻击,比如ssh登录探测、网站后门探测、端口扫描等,因此需要做好各种防范,修改默认的一些端口,提高攻击者的成本,下面以本博客搭建所用主机centos为例从ssh登录,网站访问配置方面,日志清理方面介绍相关常用配置:

ssh 暴力登录破解防范

Last failed login: Tue Dec 15 12:38:48 CST 2020 from 141.98.10.211 on ssh:notty There were 611 failed login attempts since the last successful login. Last login: Mon Dec 14 17:35:36 2020 from 1.1.1.1

登录服务器后经常出现这样的提示,服务器从某个ip尝试登录失败多少次,仔细查看 /var/log/secure 中会发现许多这样的登录破解尝试记录,如果服务器默认端口没修改,攻击者就会编写程序扫描开放22端口的主机,因此可以修改默认ssh端口: 先备份/etc/ssh/sshd_config 配置: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak sudo vi /etc/ssh/sshd_config 找到 Port 22 , 可以先增加新的一行开启新端口,eg:

Port 5822

退出保存后,重启sshd 服务

service sshd restart

此时查看端口listen 记录,然后通过终端使用新的端口登录,如果新端口可用将配置中的22 端口注释; 拒绝非法入侵的ip再次尝试登录:

创建/usr/local/bin/secure_ssh.sh 脚本 #! /bin/bash cat /var/log/secure|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk ‘{print $2”=“$1;}’ > ~/black.txt for i in cat /usr/local/bin/black.txt do IP=echo $i |awk -F= '{print $1}' NUM=echo $i|awk -F= '{print $2}' result=$(cat /etc/hosts.deny | grep $IP) if [[ $NUM -gt 10 ]];then if [[ $result = “” ]];then echo “sshd: $IP” >> /etc/hosts.deny fi fi done

#创建定时任务,每5分钟执行一次
*/5 * * * * bash /usr/local/bin/secure_ssh.sh 注意:尽量把/var/log/secure历史的攻击ip也扫描一遍加入deny 列表

拒绝非法网站访问记录 这里主要是针对探测40x和50x的请求,将ip加入ng黑名单

1 * * * * grep php  /var/log/nginx/access.log |grep -v "自己的ip"  |grep -E "404|50[1-9]" |awk -F ' ' '{print "deny  ",$1, ";"}'  |sort -u >>  /etc/nginx/ip.black  

nginx 的http 需要配置

include  ip.black;

黑名单格式 deny 100.26.138.162 ; 注意:针对自己的网站日志根式进行调整脚本

清理系统日志 控制系统日志大小和保留时间 journalctl –vacuum-time=7d journalctl –vacuum-size=500M

【参考】

东北大学-发起SSH攻击主机IP地址列表 csdn-ssh访问控制 juejin-CentOS7自动封IP

本文链接:参与评论 »

--EOF--

提醒:本文最后更新于 1267 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments