您当前的位置:首页 > 计算机 > 系统应用 > Linux

iptables规则设置实例

时间:02-21来源:作者:点击数:

目前公司需要做个验证,需要将两个网络段隔离,因此想到了通过iptables做相应的规则设置来达到目标。

网络现状

1.所有服务器都是内网网段(172.16.X.X),所有内网都是互通的;

2.所有服务器都能访问互联网,比如百度、阿里、腾讯等,但是外网无法访问内网IP;

测试要求

1.两台内网服务器A(172.16.6.100)和B(172.16.6.101);

2.要求服务器A不能访问互联网网络,但是能访问内网所有服务器(即能访问172.16.X.X网段的网络);

思路

1.先禁用掉所有出去的网络;

2.再允许部分我们需要的网络;

iptables设置

iptables -P OUTPUT DROP  # 禁用所有出去的网络
iptables -A OUTPUT -d 172.16.0.0/8 -j ACCEPT   # 允许部分出去的网络

这样A机器就无法访问百度、腾讯、阿里等互联网,只能访问172.16.X.X的网段的服务器了。可以通过ping www.baidu.com进行验证。

恢复网络

iptables -P OUTPUT ACCEPT   # 允许所有出去的网络

这样就可以放开前面的禁用规则了。同样可以通过ping www.baidu.com来进行验证。

下面列举一下常用的场景:

1.开放所有IP和端口

iptables -P INPUT ACCEPT   # 允许所有IP和端口访问本机
iptables -P OUTPUT ACCEPT  # 允许本机访问所有IP和端口

2.禁用所有IP和端口

iptables -P INPUT DROP   # 禁止所有IP和端口访问本机
iptables -P OUTPUT DROP  # 禁止本机访问所有IP和端口

3.关闭所有80端口

iptables -I INPUT -p tcp --dport 80 -j DROP 

4.开启ip段192.168.1.0/24的80端口

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

iptables常用命令

命令-A, --append

范例 iptables -A INPUT ...

说明:新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则。

命令-D, --delete

范例 iptables -D INPUT --dport 80 -j DROP

iptables -D INPUT 1

说明:从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。

命令-R, --replace

范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP

说明:取代现行规则,规则被取代后并不会改变顺序。

命令-I, --insert

范例 iptables -I INPUT 1 --dport 80 -j ACCEPT

说明:插入一条规则,原本该位置上的规则将会往后移动一个顺位。

命令-L, --list

范例 iptables -L INPUT

说明:列出某规则链中的所有规则。

命令-F, --flush

范例 iptables -F INPUT

说明:删除某规则链中的所有规则。

命令-Z, --zero

范例 iptables -Z INPUT

说明:将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。

命令-N, --new-chain

范例 iptables -N allowed

说明:定义新的规则链。

命令-X, --delete-chain

范例 iptables -X allowed

说明:删除某个规则链。

命令-P, --policy

范例 iptables -P INPUT DROP

说明:定义过滤政策。也就是未符合过滤条件之封包,预设的处理方式。

命令-E, --rename-chain

范例 iptables -E allowed disallowed

说明:修改某自订规则链的名称。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门