linux笔记-防火墙.txt
iptables -t filter -A INPUT -p tcp --dport 23 -j ACCEPT命令 指定表 指定链 数据包描述 处理方式表
filter 过滤表 过滤数据包 是否放行nat 地址转换
mangle 矫正表 矫正数据包 打标记raw 解决特定的工作 解决特定的问题filter
INPUT 处理入站的数据包OUTPUT 处理出站的数据包FORWARED 处理转发的数据包(源地址,目标地址均不是本机)
nat
PREROUTING 路由前对数据包进行处理OUTPUT
POSTROUTING 路由后对数据包进行处理manglePREROUTINGOUTPUTINPUTOUTPUTFORWARD
表是连的容器 连是规则的容器
managle filter 本地进程 路由判断 mangle
nat
filter
INPUTINPUT OUTPUTOUTPUTOUTPUT
ip包进入
mangle PREROUTINGNAT PREROUTING路由判断
mangle FORWARDfilter FORWARD
mangle POSTROUTINGnat POSTROUTING
不指定表名时,默认表示filter表不指定链名时,默认表示该表内所有链除非设置规则链的缺省策略
A D 在所选择的链末尾添加规则 iptable -A INPUT -s删除规则 iptables ( -t filter)-D INPUT -p tcp --dport 80 -j DROP
或 iptables -D INPUT 1
R 替换规则 iptables -R INPUT 1 -s 192.168.1.1 -j DROPI 插入规则 iptables -I INPUT 1 -p tcp --deport 80 -j ACCEPTL 查看规则 默认显示所选链 所有规则 没有指定链 会显示 指定表中 所有规则 F 清空规则 Z 清空计数器 N 新建链 X 删除非内建的链 (第一是空的 第二没有关联 )
第 1 页
P E
linux笔记-防火墙.txt
修改默认规则 iptables -P INPUT DROP 默认是accept改名 iptalbes -E vfast abc
wireshark 抓包工具
v 详细信息 L A I D R x 精确信息 n 以数字显示输出结果line-numbers 加上行号c 设置包计数器和字节计数器的值modprobe
通用匹配p 匹配协议 不区分大小写,必须在/etc/protocols 中定义; 可使用整数值TCP=6 UDP=17 ICMP = 1 协议号 默认all=0 (只包含前面的)可以是协议列表 -p 加 !表示取反 如: -p !tcp (就指UDP ICMP)s 匹配源地址 单个地址或网络 加 !表示取反 默认是所有地址 d 匹配目的地址 同上i 匹配进入接口 INPUT FORWQRD PREROUTING eth0 wlan0 ppp0 eth+ 所有以太网的 + 所有接口 也可以加! o 匹配送出接口 OUTPUT FORWARD POSTROUTING 同上f 匹配碎片交换机 三种工作方式
TCP
--sport 匹配源端口 iptables -A INPUT -p tcp --sport 22:80 (22到80端口)22: 从22以上 不写sport 匹配所有--dport 匹配目的端口
--tcp-flags 匹配指定的TCP 标记 iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN (syn,ack,fin,urg,rst,psh)--syn iptables -A INPUT -p tcp --tcp-flags SYN,RST,ACK SYN
--tcp--option 匹配TCP包头的特殊部分 8位 选项类型 8位 选项长度 8位选项内容 iptables -A INPUT -p tcp --tcp-option 8/16/24 UDP--sport--dportICMP
--icmp-type -s-p
--sport--dport
targets ACCEPT 允许DNAT 目的地址转换 iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 80 -j DNAT --to-destination 192.168.1.1 DROP 丢弃LOG 记录 iptables -A INPUT -p tcp -j LOG --log-prefix --log-level debug info notice warning err crit alert emerg iptables
第 2 页
匹配ICMP类型
linux笔记-防火墙.txt
-A FORWARD -p tcp -j LOG --log-level debug
syxlog.conf 加上 kern.info /var/log/iptables“iptables pkgs”REDIRECT 重定向 iptables -t nat -A PRETOUTING -p tcp --deport 8 -j --to-ports 8080RETURN 返回 子链--》 父链--》 默认规则 子链到父链 父链到默认规则SNAT 源地址转换
REJECT 丢弃并返回错误信息
使得只有192.168.0.x 和192.168.0.y 的机器可以连接您的pop3服务器。但同一网段的其他人不行。
iptables -t file -A INPUT -s 192.168.0.x,192.168.0.y -p tcp --dport 25,110 -j ACCEPT
iptables -t file -A INPUT -s 192.168.0.0/24 -p tcp --dport 25,110 -j DORP
设置缺省策略为INPUT 和OUTPUT拒绝全部,但:允许你对你自己的ip地址(192.168.0.11和127.0.0.1)进行任何访问.
iptables -P INPUT -s ! 192.168.0.11,127.0.0.1 -j REJECT
只允许某2人即两台主机可以telnet 你,例如其中一台为192.168.0.123
iptables -A INPUT -s 192.168.0.123-192.168.0.124 -i eth0 -p tcp --dport 22 -j ACCEPT
允许某2人每秒钟ping你1次
iptables -A INPUT -p icmp --deport 1 -s 192.168.0.123-192.168.0.124 -m limit --limit 1/second -j ACCEPT
允许您主动访问任何人
iptales -A OUTPUT -s 192.168.11.130 -j ACCEPT
Test01 用户可以使用自己的ip地址作测试用途,但不能访问其他的任何ipiptables -A INPUT -s dTest02 用户可以访问任意地址iptalbes -A OUTPUT
定义一个自定义规则,对所有访问您23端口的动作进行日志iptables -A INPUT -s --dport 23 -j LOG
第 3 页