iptables 范例

  1、语法:

  Usage:

  iptables -t [table] -[AD] chain rule-specification[options]

  2、基本的处理行为:

    ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)

  3、匹配指定协议外的所有协议

  iptables -A INPUT -p ! tcp

  匹配主机源IP

  iptables -A INPUT -s 10.0.0.14

  iptables -A INPUT -s ! 10.0.0.14

  匹配网段

  iptables -A INPUT -s 10.0.0.0/24

  iptables -A INPUT -s ! 10.0.0.0/24

  匹配单一端口

  iptables -A INPUT -p tcp –sport 53

  iptables -A INPUT -p udp –dport 53

  4、封端口:

  iptables -t filter -A INPUT -p tcp –dport 80 -j DROP

  (–sports 源端口)

  (22:80 端口范围)

  iptables -t filter -A INPUT -p tcp -m multiport  –dport 222,323 -j ACCEPT

  (-m multiport 列元素 222,323)

  5、 封ip :

  iptables -t filter -A    INPUT   -i eth0 -s 10.0.0.105 -j DROP

  -s 源地址

  -i 进  -o 出 指定网络接口

  6、禁ping

  iptables -t filter -A INPUT -p icmp –icmp-type 8   ! -s 10.10.70.0/24 -j DROP

  (!非)

  iptables -t filter -I INPUT  2 -p icmp –icmp-type any  -s 10.10.70.0/24 -j DROP            (any 所有类型)

  ( -I 2 指定位置)

  7、匹配网络状态:

  iptables -A INPUT  -m state –state ESTABLISHED,RELATED -j ACCEPT

  iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

  -m state –state:允许关联的状态包通过

  NEW:已经或将启动新的连接

  ESTABLISHED:已建立的连接

  RELATED:正在启动新连接

  INVALID:非法或无法识别的

  8、本机地址:

    
    172.16.14.1,允许172.16.0.0/16网络ping本机,但限制每分钟请求不能超过20,每次并发

  不能超过6个.

  iptables -A INPUT -s 172.16.0.0/16 -d 172.16.14.1 -p icmp –icmp-type 8 -m limit –limit 20/min –limit-burst 6 -j ACCEPT

  iptables -A OUTPUT -s 172.16.14.1 -d 172.16.0.0/16 -p icmp –icmp-type 0 -j ACCEPT

  -m limit

  –limit n/{second/minute/hour}:指定时间内的请求速率"n"为速率,后面为时间分别为:秒、分、时

  –limit-burst [n]:在同一时间内允许通过的请求"n"为数字,不指定默认为5

  9、自定义链处理syn攻击

  iptables -N syn-flood

  iptables -A INPUT -i eth0 -syn -j syn-flood

  iptables -A syn-flood -m limit -limit 5000/s -limit-burst 200 -j RETURN

  iptables -A syn-flood -j DROP

  10、网关服务器配置端口地址转换

  iptables -t nat -A PREROUTING -d 192.168.1.9 -p tcp –dport 80 -j DNAT –to-destination 10.10.70.60:9000

  11、配置网关:

  server 1 :eht0 10.10.70.60 eth1 192.168.1.10

  server 2 : eth0 192.168.1.9

  开启路由转发:

  sed -n "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" /etc/sysctl.conf

  sysctl  -p

  清除配置:

  iptables -F

  iptables -Z

  iptables -X

  开启FORWORD  :  iptables -P    FORWARD ACCEPT

  查看是否有配置内核模块:lsmod | grep nat,如无,请加载。

  配置:

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0-j SNAT –to-source 10.10.60.10

  或:

  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE  伪装

  12、映射多个外网IP上网

  iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.240.0 -o eth0 -j SNAT –to-source 124.42.60.11-124.42.60.16

  iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT –to-source 124.42.60.103-124.42.60.106

    文章来源:http://hiboyandhigirl.blog.51cto.com/9150052/1598252

发表评论

邮箱地址不会被公开。 必填项已用*标注