===================附加模块

state #按包状态匹配

mac #按来源mac匹配

limit #按包速率匹配

multiport #多端口匹配

--state

-m state #new,related,established,invalid

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

#包状态 RELATED(衍生态),ESTABLISHED(连接态),NEW(有别于tcp的syn),INVALID(不被识别的)

iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

#阻断来自某MAC地址的数据包通过本机

iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT

#用一定速率去匹配数据包

iptables -A INPUT -p tcp -m multiport --dports 21,22,25,80,110 -j ACCEPT

#一次匹配多个端口

=======================================实例分析===================================

单服务器的防护:

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp -m multiport --dport 22,80 -j ACCEPT

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

iptables -P INPUT DROP

制作网关:

echo "1" > /proc/sys/net/ipv4/ip_forward #启用路由转发

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

限制内网用户:filter->forward

iptables -A FORWARD -s 192.168.0.3 -j DROP

iptables -A FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP

iptables -A FORWARD -d www.163.com -j DROP

内网做对外服务器:

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.1.2:80

========================================连接追踪模块=================================

主动模式(ACTIVE)

使用连接追踪模块(打开tcp/20,防火墙打开高范围端口,配置ftp,减小被动模式端口范围)

modprobe ip_nat_ftp

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

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

iptables -P INPUT DROP

被动模式(PASSIVE)

=============================网关策略=================================

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

modprobe ip_nat_ftp

堵:

iptables -A FORWARD -p tcp --dport 80 -j DROP

iptables -A FORWARD -p tcp --dport yyy:zzz -j DROP

通:

iptables -A FORWARD -p tcp --dport xxx -j ACCEPT

iptables -A FORWARD -p tcp --dport yyy:zzz -j ACCEPT

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -P FORWARD DROP

==========================三大纪律五项注意=============================

3: filter nat mangle

5: prerouting,input,forward,output,postrouting

==========================注意事项==============================

#养车好的习惯

iptables -vnL

iptables -t nat -vnL

iptables-save

#注意逻辑顺序

iptables -A INPUT -p tcp --dport xxx -j ACCEPT

iptables -I INPUT -p tcp --dport yyy -j ACCEPT

==========================FAQ======================================

iptables -m 模块名 -h

/lib/modules/`uname -r`/kernel/net/ipv4/netfilter #模块存放的路径

modprobe ip_nat_ftp #加载模块

=========================实战======================================

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

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

iptables -P INPUT DROP

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 j SNAT --to 202.106.0.254

iptables -t nat -A POSTROUTING -d 202.106.0.254 -p tcp --dport 80 -j DNAT --to 172.17.0.1

iptables -A FORWARD -i eth2 -p eth1 -m state --state NEW -j DROP

通过文章,我们知道一些关于iptables 简单的学习知识,希望大家喜欢!

  • 搭建基于netfilter/iptables的实验环境
  • 用IPtables限制BT、电驴等网络流量
  • 如何使用IPTables实现字符串模式匹配
  • iptables相关脚本
  • 如何使用 IPTables
  • 如何用iptables实现NAT
  • iptables配置工具
  • iptables与stun


相关内容