一、3表5链
3表:Filter、NAT、Mangle
5链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
Filter表:INPUT、OUTPUT、FORWARD
NAT表:PREROUTING、POSTROUTING、OUTPUT
Mangle(破坏者):早期仅有PREROUTING及OUTPUT链,从kernel2.4.18之后加入INPUT及FORWARD链
二、iptables语法
1、规则的查看与清除
iptables [-t table] [-L] [-nv]
-t :后接table,比如nat或filter,默认为filter
-L :列出table的规则
-n :不进行IP与HOSTNAME反查
-v :列出更多信息
2、列出完整防火墙规则
iptables-save [-t table]
3、清除规则
iptables [-t table] [-FXZ]
-F :清除所有的已制定的规则
-Z :清除掉所有自定义的tables
-X :将所有的chain的计数与流量统计都归零
4、定义默认的策略(policy)
iptables [-t nat] -p [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
5、针对IP、网络及接口设备的设置
iptables [-AI 链名] [-io 网络接口] [-p 协议] [-s 来源IP/网络] [-d 目标IP/网络]
-j [ACCEPT|DROP|REJECT|LOG]
-A :新增一条规则
-I ;插入一条规则
-i :数据包进入的网络接口,如eth0,lo等。需与INPUT链结合
-o :数据包出去的网络接口,需与OUTPUT链结合
-p :协议
6、针对端口的设置
iptables [-AI 链] [-io 接口] [-p tcp,udp] [-s 来源IP/网络] [--sport 端口范围]
[-d 目标IP/网络] [--dport 端口范围] -j [ACCEPT|DROP|REJECT|LOG]
7、iptables外挂模块:mac与state
iptables -A INPUT [-m state] [--state 状态]
-m :iptables的外挂模块
state :状态模块
mac :网卡硬件地址
--mac-source :来源主机mac
--state :一些数据包的状态
INVALID :无效数据包
ESTABLISHED :已经连接成功的连接状态
NEW :新建立连接的数据包状态
RELATED :数据包是与主机发送出去的数据包有关
8、针对ICMP数据包规则设置
iptables -A INPUT [-p icmp] [--icmp-type 类型] -j ACCEPT
9、规则保存
/etc/init.d/iptables save
10、IPV4的内核管理功能:/proc/sys/net/ipv4/*
1)/proc/sys/net/ipv4/tcp_syncookies(阻挡SYN Flooding)
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
2)/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
3)/proc/sys/net/ipv4/conf/网络接口/*
rp_filter:逆向路径过滤
log_martians:记录不合法的IP来源
注:可以修改系统设置,即/etc/sysctl.conf
vi /etc/sysctl.conf
……
sysctl -P