目前公司需要做个验证,需要将两个网络段隔离,因此想到了通过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 -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
命令-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
说明:修改某自订规则链的名称。