内核防火墙,工作在网络层
包过滤(过滤包头)
linux借助nat可以实现路由功能
服务器有进出规则,逐条,由上至下
表包含链,链包含自己的规则
filter表(不让删):
INPUT链;
FORWARD链;
OUTPUT链
iptables -xnvL 查看表,默认filter表
iptables -t nat -xnvL 查看nat表
匹配物理曾的数据需要额外模块
iptables -t filter -A INPUT -i eth0 -m mac --mac-source 00:E0:4C:41:95:DD -s 192.168.1.0/24 -d 192.168.1.3 -p tcp --sport 80 --dport 22 -j ACCEPT
-t filter:指定表
-A INPUT:添加规则到指定链
-i eth0:进入网卡
-m mac --mac-source 00:E0:4C:41:95:DD :mac地址
-s 192.168.1.0/24 :原地址
-d 192.168.1.3 :目的地址
-p tcp --sport 80 --dport 22 :指定协议和端口
-j ACCEPT 允许
REJECT 回送一个目的不可达
DROP 直接丢弃不回送
-Z 把统计的包的数量清零
iptables -P INPUT DROP 改默认规则为DROP
默认追加在最后插入,如果想改变追加位置:
iptables -I INPUT 在最顶端追加
-I INPUT 3 在指定位置追加
iptables -D INPUT 3 删除指定号码的策略
iptables -R INPUT 2 (修改)指定2号进行替换
iptables -F 清空所有规则
添加一个链:
iptables -N abc
删除一个链:
iptables -X abc
service iptables save 保存iptables,否则重启服务就清空。
/etc/rc.d/下建立脚本:
iptables -F
iptables -P DROP
iptables -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
多端口:
-m multiport --dports 21,22,80
支持lftp:
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp ports=21
-m state --state ESTABLISHED,RELATED
NEW 一个全新的链接
ESTABLISHED 建立一次链接,该链接返回的链接
RELATED 由一个链接产生的一个链接
INVALID 非法的链接
DNAT 目的地址转换,路由前作
SNAT 原地址转换,路由后作
小型局域网上网,要把内网IP换成公网支持的IP:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 59.59.59.59 换IP,从拨号得来
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE 转换成动态IP
公网IP访问我的局域网的192.168.1.3
iptables -t nat -A PREROUTING -d 59.59.59.59 -p tcp --dport 8080 -j DNAT --to 192.168.1.4:80
访问80端口,转到web1的8080端口
iptables -t nat -A PREROUTInG -p tcp --dport 80 -j DNAT --to web1 --ports 8080(目的地址转换)
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp --dport 80 -o ppp0 -j MASQUERADE(原地址转换)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22661144/viewspace-1413446/
,如需转载,请注明出处,否则将追究法律责任。