iptables filter表案例和iptables nat表应用

一、iptables filter表案例

需求:需要把80端口,22端口,21端口放行,但是22端口需要指定一个IP段,只有这个IP段的IP才可以访问到,其他段的一概拒绝

vim /usr/local/sbin/iptables.sh

加入如下内容:

#! /bin/bash
ipt=”/usr/sbin/iptables”
iptFipt -P INPUT DROP
iptPOUTPUTACCEPTipt -P FORWARD ACCEPT
iptAINPUTmstatestateRELATED,ESTABLISHEDjACCEPTipt -A INPUT -s 192.168.133.0/24 -p tcp –dport 22 -j ACCEPT
iptAINPUTptcpdport80jACCEPTipt -A INPUT -p tcp –dport 21 -j ACCEPT

iptables filter表案例和iptables nat表应用

-m state –state 后加这两个状态可让通信更顺畅 RELATED , ESTABLISHED

iptables filter表案例和iptables nat表应用

icmp示例:
可以实现ping通外部机器,但是ping不通本机(你能ping通别人的机器,别人ping不通你的机器)

iptables -I INPUT -p icmp –icmp-type 8 -j DROP
iptables filter表案例和iptables nat表应用

删除规则后可以正常相互ping通:

iptables -I INPUT -p icmp –icmp-type 8 -j DROP
iptables filter表案例和iptables nat表应用

二、iptables nat表应用
场景:
A机器两块网卡eno16777736(172.16.17.70)、eno33554984(172.16.17.100),eno16777736 可以上外网,eno33554984仅仅是内部网络,B机器只有eno33554984(172.16.17.101),和A机器eno33554984可以通信互联。

ifconfig eno33554984 172.xx.xx.xx.x/xx (可直接设置临时的网卡IP,重启后失效)

(1)amolinux-1为A机器,添加第二块网卡,然后重新启动:

iptables filter表案例和iptables nat表应用

(2)amolinux-2 为B机器,添加另一块与A二网卡同一个段的网卡,然后重新启动:

iptables filter表案例和iptables nat表应用

需求1:可以让B机器连接外网
A机器上打开路由转发:
echo “1”>/proc/sys/net/ipv4/ip_forward

A上执行:
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eno16777736 -j MASQUERADE

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
A上打开路由转发:

A上执行:
iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp –dport 1122 -j DNAT –to 192.168.100.100:22

A上执行:
iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT –to 192.168.133.130

B上设置网关为:192.168.100.1

扩展
1、 iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html

2、sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html

3、iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.html

http://jamyy.us.to/blog/2006/03/206.html