iptables 防火墙进出控制
iptables简介
iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。
“四表”是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):
- filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。
- nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。
- mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。
- raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。
“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含多个数据链:INPUT(入站数据过滤)、OUTPUT(出站数据过滤)、FORWARD(转发数据过滤)、PREROUTING(路由前过滤)和POSTROUTING(路由后过滤),防火墙规则需要写入到这些具体的数据链中。
Linux 防火墙的过滤框架,如图所示:
可以看出,如果是外部主机发送数据包给防火墙本机,数据将会经过 PREROUTING 链与 INPUT 链;如果是防火墙本机发送数据包到外部主机,数据将会经过 OUTPUT 链与 POSTROUTING 链;如果防火墙作为路由负责转发数据,则数据将经过 PREROUTING 链、FORWARD 链以及 POSTROUTING 链。
iptables 基本使用
查看:
iptables -nL --line-number
备份旧策略:
iptables-save > /etc/sysconfig/old_iptables
清除目前所有规则(慎用):
iptables -F
关闭所有进出:
# 允许通过tcp协议访问22端口(先配置,否则无法使用ssh连接)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
# 禁止访问除22端口以外的所有端口
iptables -P INPUT DROP
iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
开放单个指定端口:
# 允许本地内部访问
iptables -A INPUT -i lo -j ACCEPT
# 例如开启风机数据505端口进出策略
iptables -A INPUT -p tcp --dport 505 -j ACCEPT
iptables -A INPUT -p UDP --dport 505 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 505 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 505 -j ACCEPT
关闭多个指定端口:
iptables -A INPUT -p tcp -m multiport --dports 23,53,135:139,445,631 -j DROP
iptables -A INPUT -p udp -m multiport --dports 23,53,135:139,445,631 -j DROP
iptables -A OUTPUT -p tcp -m multiport --dports 23,53,135:139,445,631 -j DROP
iptables -A OUTPUT -p udp -m multiport --dports 23,53,135:139,445,631 -j DROP
常用服务端口:ftp-data/20、ftp/21、ssh/22、telnet/23
保存:
请注意,这些规则将只在当前会话中生效。如果您希望永久添加规则,您需要将规则保存到持久性规则集中。
要保存iptables规则,请使用以下命令:
sudo iptables-save > /etc/sysconfig/iptables
这将把当前的iptables规则保存到 /etc/sysconfig/iptables
文件中。在系统重新启动后,这些规则将自动加载。
其它文章:
https://developer.aliyun.com/article/520041
https://bbs.huaweicloud.com/blogs/300668
https://blog.csdn.net/daocaokafei/article/details/115091313
https://cloud.tencent.com/developer/article/1404152
rpm下载:
https://blog.csdn.net/cd_yourheart/article/details/107983258
http://rpmfind.net/linux/RPM/index.html