linux的iptables filter表案例及iptables nat应用

1. iptables filter表案例

iptables小案例需求

只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对192.168.1.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口。

由于这个需求有多条规则,所以最好写成脚本的形式,操作示例如下:

[root@gary-tao ~]# vi /usr/local/sbin/iptables.sh //加入如下内容,保存退出。
脚本内容:
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
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT  
[root@gary-tao ~]# sh /usr/local/sbin/iptables.sh //执行脚本
[root@gary-tao ~]# iptables -nvL //查看规则
Chain INPUT (policy DROP 193 packets, 14785 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   25  1764 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       192.168.133.0/24     0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 16 packets, 1504 bytes)
 pkts bytes target     prot opt in     out     source               destination    
关于icmp有一个特殊的应用:
[root@gary-tao ~]#iptables -I INPUT -p icmp --icmp-type 8 -j DROP

解释:这里的--icmp-type选项要跟-p icmp一起使用,后面指定类型编号。这个8指的是本机能ping通其他机器,而其他机器不能ping通本机,请牢记。


2. iptables nat表应用

linux的iptables功能规则是十分强大的,可以实现很多功能,路由器共享上网的功能就是通过由linux的iptables实现的,而iptables又是通过nat表作用而实现的。

举例说明:

假设有两台机器,A机器有两块网卡ens33(192.168.100.1)、ens37(192.168.1.185),ens33可以上外网,但ens37仅仅是内部网络,而B机器只有ens37(192.168.1.186),和A机器ens37可以通信互联。

需求1:可以让B机器连接外网

操作命令如下:

echo "1" > /proc/sys/net/ipv4/ip_forward //echo 1到配置文件打开转发功能
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens37 -j MASQUERADE //-o表表示出口的网卡,MASQUERA表示伪装。

解释:

  1. 第一个命令涉及内核参数相关的配置文件,它的目的是打开路由转发功能,否则无法实现我们的应用。
  2. 第二个命令则是iptables对nat表做了一个IP转发的操作,-O选项后面跟设备名,表示出口的网卡,MASQUERADE表示伪装。

转载于:https://blog.51cto.com/taoxie/2046225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值