netfilter/iptables防火墙的体系架构
raw表 prerouting output
mangle表 prerouting postrouting input output forward
nat表 prerouting(原地址) postrouting(目标地址) ouput
filter表 input forward output
优先顺序 raw>mangle>nat>filter
链间的匹配顺序
入站数据:prerouting input
出站数据:output.postrouing
转发数据:prerouting forward postrouting
链间的匹配顺序
自上邦购下的按顺序依次进行检查,找到相匹配的规则即停止(LOG选项表示记录相关日志)
右在该链内找不到相匹配的规则 ,则按该链的默认策略处理(未修改的状况下,默认策略为允许)
iptables [-t 表名(小写)] 管理选项【链名(大写)】【条件匹配】【-j 目标动作或跳转】
不指定表名时,默认表示filter表
不指定链名时,默认表示该表内所有链
除非设置规则链的缺省策略,否则需要指定匹配条件。
-A 添加 and
-D 删除 del
-L 显示 list
-I 插入 insert
-F 清空 flash
-P 修改策略
-N 新建 new
-X 删除
修改路由方式
临时
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
永久
vi /etc/sysctl.conf
snat
iptables -t nat -A POSTROUTING -S 192.168.222.0/24 -O eth0 -j SNAT --to-source 222.222.101.1
dnat
iptables -t nat -A PREROUTING -p tcp -d 222.222.101.1 --dport 80 -i eth0 -j DNAT --to-destination 192.168.222.103
iptable -t nat -L -n
外网访问内网(动态IP地址)
iptables - t nat -A POSTROUTING -s 192.168.222.0/24 -o ppp0 -j MASQUERADE
删除postrouting
iptables -t nat -D POSTROUTING 2
访问控制
iptables -t filter -P FORWARD DROP
iptables -t filter -P INPUT DROP
iptables -t filter -A FORWARD -s 192.168.222.0/24 -o eth0 -p tcp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.222.0/24 -o eth0 -p udp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --sprot 53 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p udp --sport 53 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.222.0/24 -o eth0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A FROWARD -i eth0 -p tcp --sport 80 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.222.0/24 -o eth0 -p tcp --dprot 20:21 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --sport 20:21 -j ACCEPT
iptables -t filter -A FORWARD -s 192.168.222.0/24 -o eth0 -p tcp --dprot 25 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --sport 25 -j ACCEPT
iptables -t filter -D FORWARD 2
iptables -t filter -R FORWARD 11 -s 192.168.222.0/24 -o eth0 -p tcp --dprot 25 -j ACCEPT
清空filter列表
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P INPUT ACCEPT
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
#!/bin/bash
chmod 777 fwl.sh
./fwl.sh
#!/bin/bash
#定义变量
IPT=“/sbin/iptables"
WAN="222.222.101.1"
LAN="192.168.0.1
echo 1 > /pro/sys/net/ipv4/ip_forward
ACCEPT_OA="192.168.222.15 192.168.222.11 192.168.222.39"
ACCEPT_MAIL="192.168.222.15 192.168.222.11 192.168.222.39"
原文:http://zhengfei.blog.51cto.com/1617522/1887725