iptables自动信任ssh来源IP

[root@5kohi ~]# crontab -l
* * * * * sh /home/shells/iptables_auto_accept_ssh_source_ip.sh
[root@5kohi ~]# cat /home/shells/iptables_auto_accept_ssh_source_ip.sh
#!/bin/bash

#  该脚本基于centos7操作系统
#  建议禁用firewalld服务,启用iptables服务
#    yum install -y iptables-services
#    systemctl disable firewalld.service
#    systemctl start firewalld.service
#    systemctl enable iptables.services
#    systemctl start iptables.services
#  修改iptables默认配置文件 /etc/sysconfig/iptables
#    修改sshd监听端口后,要同时修改防火墙配置,比如我使用的是tcp 2222端口
#      -A INPUT -p tcp -m state --state NEW -m tcp --dport 2222 -j ACCEPT
#    修改INPUT和FORWARD默认规则为DROP
#      -A INPUT -j DROP
#      -A FORWARD -j DROP
#    改完配置记得重启下服务
#      systemctl restart iptables.services


#  将该脚本添加到计划任务中,每分钟执行一次
#    * * * * * sh /home/shells/iptables_auto_accept_ssh_source_ip.sh


# 对于当前成功登录ssh的来源IP,放行所有端口
w \
  | grep pts \
  | awk '{print $3}' \
  | while read sIP
    do
      /usr/sbin/iptables-save \
      |  grep '\-A INPUT \-s '$sIP'/32 -j ACCEPT' &>/dev/null \
      || /usr/sbin/iptables -I INPUT -s $sIP -j ACCEPT
done

# 当某IP退出ssh登录后,删除之前的放行策略
/usr/sbin/iptables-save \
  | grep '\-A INPUT \-s .*/32 -j ACCEPT' \
  | awk -F ' |/' '{print $4}' \
  | while read sIP
    do
      w  \
      |  grep $sIP &>/dev/null \
      || /usr/sbin/iptables -D INPUT -s $sIP -j ACCEPT
done
posted @ 2021-01-29 10:33  三角形  阅读(210)  评论(0编辑  收藏  举报