欢迎光临
我们一直在努力

【Linux】动态防火墙,实现对攻击IP的动态拦截,一定程度上解决云服务器主机经常被境外IP尝试登录,屏蔽指定地区、国家的IP连接

使用腾讯云/阿里云服务器时,登录时经常会出现There were XX failed login attempts since the last success,并且这个数量经常成百上千,那么该如何预防境外IP的尝试登录和国内IP的尝试登录次数呢?
可以设置一个动态防火墙,自动监控IP所属的国家地区等,并记录登录时间、失败次数,将非正常访问的IP地址添加到防火墙中
屏蔽指定地区、国家的IP

  • 建议先将ssh接收端口更改为非22端口
    vi /etc/ssh/sshd_config
    更改为其他端口 XX
    并执行 semanage port -a -t ssh_port_t -p tcp XX
    再重启 systemctl restart sshd.service
    ssh登录时指定 -p 指定端口

1. 使用

项目链接:DynamicIpTables
在release中下载DynamicIpTables.tar,内含可执行文件DynamicIpTablesconfig.yaml

以下执行都是在CentOS 7.6的操作系统下执行的,其它操作系统可能需要自己重新编译为适合自己系统的DynamicIpTables,参考第3点,另仅适合使用iptables作为防火墙表的系统
执行 nohup ./DynamicIpTables -c config.yaml &就运行了
执行 tail -f dynamic_log.txt 可实时查看日志

 secure_log: /var/log/secure  log_file: /var/log/dynamiciptables.log  allow_ip: - 127.0.0.1 - 202.197.74.82 - 119.28.22.215   rules:   - port: -1 country: 中国 regionName: city: time: 120 count: 5  - port: -1 country: regionName: city: time: 1 count: 0 

2 创建service自启动

可以nohup ./DynamicIpTables -c config.yaml &启动,也可以创建service

vi /etc/systemd/system/dynamiciptables.service,内容如下,其中执行路径改成自己的

[Unit] Description=dynamic ip tables daemon After=syslog.target network.target Wants=network.target [Service] Type=simple ExecStart=/path/to/DynamicIpTables -c /path/to/config.yml Restart= always RestartSec=1min [Install] WantedBy=multi-user.target 

启动前应先将刚才nohup启动的进程kill掉,ps -aux| grep DynamicIpTables获取到进程id再kill

3. 如果使用自己的服务器编译

pyinstaller -F DynamicIpTables.py
将会生成一个build和一个dist的文件夹
生成的可执行为文件在dist中
ps:运行时用ps查看进程会发现有两个进程,原因是当指明-F参数构建时,程序被解压缩到一个临时目录并从那里运行。第二个进程是实际的程序,而第一个进程是在程序退出或崩溃后清理临时目录。因此, 去除 -F参数时, 就可以显示一个进程, 但是如果只有一个进程,那么在崩溃的情况下就无法清理临时目录

监控/var/log/secure文件变化,记录每个ip登录失败的次数和时间,在线查询IP所处国家和地区,符合设置规则的加入至防火墙(iptables)中,程序由Python编写

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:【Linux】动态防火墙,实现对攻击IP的动态拦截,一定程度上解决云服务器主机经常被境外IP尝试登录,屏蔽指定地区、国家的IP连接
文章链接:https://www.jmwz.net/7871.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址