防火墙
一般来说,iptables和firewalld启用一个即可
iptables
iptables是Linux中常用的防火墙工具
规则链
- PREROUTING 在进行路由选择前处理数据包
- INPUT 处理流入的数据包
- OUTPUT 处理流出的数据包
- FORWARD 处理转发的数据包
- POSTROUTING 在进行路由选择后处理数据包
一般来说,从内网向外网发送的流量一般都是可控且良性的,因此使用最多的就是INPUT规则链,该规则链可以增大黑客人员从外网入侵内网的难度。 但是仅有规则链,还不足以保护用户安全,还应该和一些动作联合起来。比如允许(ACCEPT)、拒绝(REJECT|DROP)、记录(LOG)、不记录
REJECT和DROP都是拒绝流量通过,两者有不同之处。
- DROP 直接将流量丢弃而且不响应
- REJECT 会在拒绝流量后再回复一条“信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。
简单来说,流量传送失败一个会告诉你已经失败,现实中多用DROP
iptables属于数据链路层的服务,所以可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配;一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,防火墙策略规则的匹配顺序是从上到下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。就是最重要的写到最前面
常用参数
参数 | 作用 |
---|---|
-P | 设置默认策略 |
-F | 清空规则链 |
-L | 查看规则链 |
-A/-D | 向规则链加入/删除规则 |
-I | 在规则链插入新规则 |
-s | 匹配来源地址IP/MASK,加 ! 表示除外 |
-d | 匹配目标地址 |
-p | 匹配协议(UDP/TCP/ICMP) |
-j | 动作(ACCEPT/DROP/REJECT) |
--dport num | 匹配目标端口号 |
--sport num | 匹配来源端口号 |
-i/o | 流入/流出网卡名称 |
配置完策略需要iptables-save
来保存配置的策略命令
常用指令
代码语言:shell复制# 包含num 列出iptables规则
iptables -nvL --line-numbers
# 删除num号规则 -D后面跟链名和编号
iptables -D INPUT num
# 预设策略 即不在列表里的按此策略执行
iptables -P INPUT ACCEPT
# 添加规则
#1.1.1.1可以为IP也可以为网段0.0.0.0/0
iptables -A INPUT -s 1.1.1.1 --dport 80 -j DROP
# 添加ping --icmp-type要跟-p icmp一起使用,后面指定类型编号。这个8指的是能在本机ping通其他机器,而其他机器不能ping通本机,请牢记
iptables -I INPUT -p icmp --icmp-type 8 -j DROP
# 停止防火墙
service iptables stop
# 开启防火墙
service iptables start
# 查看防火墙状态
service iptables status
保存和备份iptables规则
代码语言:shell复制# 保存并输出配置文件位置
service iptables save
代码语言:shell复制# 备份到指定路径
iptables-save > myipt.rule
# 通过文件还原规则
iptables-restore < myipt.rule