简单iptables添加白名单的方法

今天接到个任务,给服务器设置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链的第二条规则
要使用iptables实现URL白名单过滤并支持端口转发,可以结合使用iptables的`string`模块和`nat`表。下面是一个示例: 1. 首先,确保你的系统上已经安装了iptables和`string`模块。如果没有安装,可以使用适合你的Linux发行版的包管理器进行安装。 2. 创建一个新的iptables链,用于处理HTTP请求: ```shell iptables -N URL_FILTER ``` 3. 在新链中添加规则,匹配URL的关键字,并将匹配的请求转发到特定的目标(例如,允许连接或重定向到其他端口): ```shell iptables -A URL_FILTER -m string --string "example.com" --algo bm -j ACCEPT iptables -A URL_FILTER -j DNAT --to-destination <新目标IP>:<新目标端口> ``` 上述规则将匹配所有包含"example.com"的URL,并允许与该URL相关的连接。如果你想将这些连接重定向到其他端口,可以使用`DNAT`目标来指定新的目标IP和端口。 4. 将新链与输入流量关联,以便所有进入系统的HTTP请求都经过URL过滤: ```shell iptables -A INPUT -p tcp --dport 80 -j URL_FILTER ``` 这将将所有TCP端口80上的请求转发到URL过滤链。 5. 如果你还想支持端口转发,可以在`nat`表中添加规则,将被重定向的流量转发到新的目标IP和端口: ```shell iptables -t nat -A PREROUTING -p tcp --dport <原始端口> -j DNAT --to-destination <新目标IP>:<新目标端口> iptables -t nat -A POSTROUTING -j MASQUERADE ``` 上述规则将将来自原始端口的流量转发到新的目标IP和端口,并通过MASQUERADE选项进行网络地址转换。 请注意,上述示例只是一个简单的演示,实际情况可能更加复杂。你可以根据自己的需求和情况进行定制。同时,iptables只能过滤TCP流量,并且在处理大量规则时可能会影响性能。因此,对于更复杂的URL过滤需求和端口转发,可能需要考虑使用专门的代理服务器或防火墙软件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值