iptables filter表案例
- 介绍两个以后可能会用到的,关于iptables filter表案例
案例一、需求(将指定端口放行)
- 指定端口 80、21、22放行,且22要指定一个ip段
- 为了实现这个需求,我们要写一个脚本
vi /usr/local/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
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT 指定端口放行
案例二、需求(能连接外网,但是不能ping本地)
- 相当于禁止ping本地
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
iptables nat表应用
准备目标:
**A机器两块网卡ens33(192.168.10.129)、ens37(192.168.110.110),ens33可以上外网,ens37仅仅是内部网络,
B机器只有en s37(192.168.110.90),和A机器ens37可以通信互联。** - 注意:两个网卡ip的写法 ,是与本身网卡不同网段,新增网卡相同的网段
- 准备
- 打开两个客户机,为其添加两个新的网卡
- 命令:ifconfig ens37 192.168.110.10/24 用于增加新的网卡IP,当然也可以去直接编辑配置文件
- 两个新增网卡的ip网关要一样
- 最后记得用cmd检查下是否符合要求
需求1:可以让B机器连接外网
- 第一步、打开A机器上的路由转发
- 检查有没有开启内核转发: cat /proc/sys/net/ipv4/ip_forward 输出为0时表示未开启
- 开启,将0改成1 :echo "1" > !$
[root@centos001 ~]# cat /proc/sys/net/ipv4/ip
[root@centos001 ~]# cat /proc/sys/net/ipv4/ip
ip_default_ttl ipfrag_max_dist
ip_dynaddr ipfrag_secret_interval
ip_early_demux ipfrag_time
ip_forward ip_local_port_range
ip_forward_use_pmtu ip_local_reserved_ports
ipfrag_high_thresh ip_nonlocal_bind
ipfrag_low_thresh ip_no_pmtu_disc
[root@centos001 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@centos001 ~]# echo "1" > !$
echo "1" > /proc/sys/net/ipv4/ip_forward
[root@centos001 ~]# !cat
cat /proc/sys/net/ipv4/ip_forward
1
- 第二步、在A机器的nat表中增加一条规则,目的是要让这个网段能上网
[root@centos001 ~]# iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -o ens33 -j MASQUERADE
[root@centos001 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * ens33 192.168.100.0/24 0.0.0.0/0 //最下能看到我们增加的规则
- 第三步、添加网关
需求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
扩展
- iptables应用在一个网段
http://www.aminglinux.com/bbs/thread-177-1-1.html - sant,dnat,masquerade
http://www.aminglinux.com/bbs/thread-7255-1-1.html - iptables限制syn速率
http://www.aminglinux.com/bbs/thread-985-1-1.html http://jamyy.us.to/blog/2006/03/206.html