Day32 iptables filter表案例、iptables nat表应用

iptables filter表案例

  • 介绍两个之后可能会用到的,关于iptables filter表案例

案例1、需求(将指定端口放行)

  • 指定端口 80、2一、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  指定端口放行

案例2、需求(能链接外网,可是不能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的写法 ,是与自己网卡不一样网段,新增网卡相同的网段html

  • 准备
    • 打开两个客户机,为其添加两个新的网卡
    • 命令: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

扩展

  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
相关文章
相关标签/搜索