今天接到个任务,给服务器设置iptables防火墙白名单。本人第一次接触iptables,查了一下资料,上服务器上试了一下,总结了一个简单的步骤,更全面的资料请参考:
http://www.360doc.com/content/18/0609/00/51888465_760828169.shtml
https://www.linuxidc.com/Linux/2014-03/99159.htm
https://blog.csdn.net/syilt/article/details/78298844
下面贴出方法:
假设主机是:192.111.51.44 (要root权限)
①清空iptables的配置,即还原到初始状态 //注意:执行以下操作后,所有远程连接都会失效,因此不适用于远程配置
>iptables -F //删除INPUT,OUTPUT,FORWARD三个链的配置
>iptables -X //删除所有用户配置的规则
②配置接入、输出、转接三个链
>iptables -P INPUT DROP //限制接入端
>iptables -P OUTPUT ACCEPT //开放输出端
>iptables -P FORWARD ACCEPT //开放中转端
③加入白名单
>iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT //开放所有端口给指定ip:192.111.51.45
>iptables -A INPUT -s 192.111.51.44 -p all -j ACCEPT //开放所有端口给本机
>iptables -A INPUT -s 192.111.1.51 -p all -j ACCEPT //开放所有端口给指定ip:192.111.1.51
④查看规则
>iptables -L -n --line-number //查看当前iptables的规则及所有过滤的条目(白名单显示在这里)
⑤保存有效配置
>iptables save //保存设置
>iptables-save /etc/iptables.rule //保存设置到文件中>cat /etc/iptables.rule //查看配置文件
⑥从配置文件中载入配置,iptables生效
>iptables-restore < /etc/iptables.rule
第二种方法: 该方法使自己始终要处于白名单才能保持不断网
①先查看现有的规则
>iptables -L -n --line-number //查看当前iptables的规则及所有过滤的条目(白名单显示在这里)
//这里如果 INPUT链是ACCEPT的话还是要先执行命令 >iptables -P INPUT DROP ,这样又连不上服务器了,还是得去本机配置
②加入白名单 //记得先把自己加入白名单>iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT //开放所有端口给指定ip:192.111.51.45
>iptables -A INPUT -s 192.111.51.44 -p all -j ACCEPT //开放所有端口给本机
>iptables -A INPUT -s 192.111.1.51 -p all -j ACCEPT
...
③删除规则,(删除多余的规则)
>iptables -D INPUT 2 //删除INPUTl链的第二条规则