[root@zhang-01 ~]# vim /usr/sbin/iptables.sh
#! /bin/bash
ipt="/usr/sbin/iptables" #定义一个变量
$ipt -F #清空之前的规则
$ipt -P INPUT DROP #默认策略
$ipt -P OUTPUT ACCEPT #默认策略
$ipt -P FORWARD ACCEPT #默认策略
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #规则,让相关的数据包
更顺利的链接。
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT #133网段的22端口放行
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT #把80端口的数据包放行
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT #把21端口的数据包放行
[root@zhang-01 ~]# w
01:16:36 up 1 day, 15:29, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.139.1 Tue20 26:53m 0.18s 0.05s bash
root pts/2 192.168.139.1 01:04 4.00s 0.07s 0.00s w
sh /usr/sbin/iptables.sh ##运行脚本
nat表应用
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。
需求1:可以让B机器连接外网
A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B上设置网关为192.168.100.1
需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
A上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward
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
周六日巩固基础知识。
原文地址:http://blog.51cto.com/13646023/2114655