Linux 防火墙
一、iptables
查看规则的命令格式为:
iptables [-t tables] [-L] [-nv]
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用默认的 filter
-L :列出某个 table 的所有链或某个链的规则
-n :直接显示 IP,速度会快很多
-v :列出更多的信息,包括通过该规则的数据包总位数、相关的网络接口等
1.列出所有链的规则:
iptables -L
2.列出 nat table 三条链的规则:
iptables-t nat -L-n
清除规则的命令格式如下:
iptables [-t tables] [-FXZ]
-F:清除所有已制定的规则
-X:删除所有使用者自定义的 chain(其是 tables)
-Z:将所有的 chain 的计数与流量统计都清零
3.清除所有已制定的规则
iptables-F
添加规则
- raw:高级功能,如:网址过滤。
- mangle:数据包修改(QOS),用于实现服务质量。
- net:地址转换,用于网关路由器。
- filter:包过滤,用于防火墙规则。
- INPUT链:处理输入数据包。
- OUTPUT链:处理输出数据包。
- FORWARD链:处理转发数据包。
- PREROUTING链:用于目标地址转换(DNAT)。
- POSTOUTING链:用于源地址转换(SNAT)。
我们可以通过规则来匹配数据包,具体的匹配条件包括 IP、网段、网络接口(interface)和传输协议(tcp、udp 等)。
添加规则的命令格式如下:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
-A:针对某个规则链添加一条规则,新添加的规则排在现有规则的后面。
-D:针对某个规则链删除一条规则,iptables -D INPUT 1
-I:针对某个规则链插入一条规则,可以为新插入的规则指定在链中的序号。如果不指定序号,则新的规则会变成第一条规则。
-i:指定数据包进入的那个网络接口,比如 eth0、lo 等,需要与 INPUT 链配合使用。
-o: 指定传出数据包的那个网络接口,需要与 OUTPUT 链配合使用。
-p: 指定此规则适用于那种网络协议(常用的协议有 tcp、udp、icmp,all 指适用于所有的协议)。
-s:指定数据包的来源 IP/网段,可以指定单个 IP,如 192.168.1.100,也可以指定一个网段,如 192.168.1.0/24。还可以通过 !表示非的意思,如 ! 192.168.1.0/24 表示除了 192.168.1.0/24 之外的数据包。
-d:指定数据包的目标 IP/网段,其它与 -s 选项相同。
-j:指定匹配成功后的行为,主要有 ACCEPT、DROP、REJECT 和 LOG。
4.只接受来自内网中某个网段的数据包:
iptables -A INPUT-i eth2 -s 192.168.10.0/ -jACCEPT
5.接受/丢弃来自指定 IP 的数据包:
iptables -A INPUT-ieth3 -s 192.168.100.5 -jACCEPTiptables-A INPUT -ieth3 -s 192.168.100.6 -j DROP
6.允许ssh
iptables-AINPUT-ptcp--dport22-jACCEPT
7.允许http和https
iptables-AINPUT-ptcp--dport80-jACCEPTiptables-AINPUT-ptcp--dport443-jACCEPT
8.允许ftp被动接口范围,在ftp配置文件里可以设置
iptables-AINPUT-ptcp--dport20000:30000-jACCEPT
9.修改规则——使用-R参数
#假设之前用iptables -A INPUT -s 192.168.1.4-j DROP 添加的规则 iptables -RINPUT-s192.168.1.4-j DROP #或者 #查出当前规则的列表,使用当前列表下的序号:由下至下顺序 iptables -RINPUT3-jACCEPT
10.禁止其他未允许的规则访问
iptables-AINPUT-j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。) iptables -AFORWARD-jREJECT
11.备份与还原
#保存配置 iptables-save>/etc/iptables #(注意:后边这个文件路径可以自选) #还原配置 iptables-restore < /etc/iptables #(注意:后边这个文件路径可以自选,要是前边备份文件的位置)
二、firewall