一、防火墙分类:
a.逻辑上
主机防火墙:针对单个主机进行防护
网络防火墙:处与网络入口或边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网
b.物理上
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高、成本高
软件防火墙:应用软件处理逻辑运行与通用硬件平台之上的防火墙,性能低、成本低
iptables 并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过 ipatbles 这个客户端,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫 netfilter
iptables 是一个命令行工具,位于用户空间,通过这个命令行工具来操作 netfilter
netfilter 才是防火墙真正的安全框架, netfilter 位于内核空间。
netfilter / iptables (简称为 iptables )组成 Linux 平台下的包过滤防火墙,与大多数的 Linux 软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换( NAT )等功能。
二、iptables启动
① 在开机时禁用firewalld服务:
[root@localhost ~]# systemctl disable firewalld
②安装iptables-services
[root@localhost ~]# yum install iptables-services -y
③将它设置为开机自启
安装以后查看服务状态显示未启动,可以将它设置为开机自启
[root@localhost ~]# systemctl enable iptables
三、iptables 四表五链详解
“四表”是指 iptables 的功能,默认的 iptables规则表
filter 表(过滤规则表)
nat 表(地址转换规则表)
mangle(修改数据标记位规则表)
raw(跟踪数据表规则表)
“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链
INPUT(入站数据过滤)
OUTPUT(出站数据过滤)
FORWARD(转发数据过滤)
PREROUTING(路由前过滤)
POSTROUTING(路由后过滤)
四、iptables基本用法
基本语法:
[root@liangxu ~]# iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION
iptables 命令常用的选项及各自的功能:
选 项 功 能
-A 添加防火墙规则
-D 删除防火墙规则
-I 插入防火墙规则
-F 清空防火墙规则
-L 列出添加防火墙规则
-R 替换防火墙规则
-Z 清空防火墙数据表统计信息
-P 设置链默认规则
iptables 命令常用匹配参数及各自的功能:
参 数 功 能
[!]-p 匹配协议,! 表示取反
[!]-s 匹配源地址
[!]-d 匹配目标地址
[!]-i 匹配入站网卡接口
[!]-o 匹配出站网卡接口
[!]--sport 匹配源端口
[!]--dport 匹配目标端口
[!]--src-range 匹配源地址范围
[!]--dst-range 匹配目标地址范围
[!]--limit 四配数据表速率
[!]--mac-source 匹配源MAC地址
[!]--sports 匹配源端口
[!]--dports 匹配目标端口
[!]--stste 匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
[!]--string 匹配应用层字串
iptables 命令触发动作及各自的功能:
触发动作 功 能
ACCEPT 允许数据包通过
DROP 丢弃数据包
REJECT 拒绝数据包通过
LOG 将数据包信息记录 syslog 曰志
DNAT 目标地址转换
SNAT 源地址转换
MASQUERADE 地址欺骗
REDIRECT 重定向
内核会按照顺序依次检查 iptables 防火墙规则,如果发现有匹配的规则目录,则立刻执行相关动作,停止继续向下查找规则目录;如果所有的防火墙规则都未能匹配成功,则按照默认策略处理。使用 -A 选项添加防火墙规则会将该规则追加到整个链的最后,而使用 -I 选项添加的防火墙规则则会默认插入到链中作为第一条规则。
1、查看规则
[root@xxx ~]# iptables -nvL -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。 -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。 -v 表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口。 --line-number 找出该条规则的行号 [root@xxx ~]# iptables -nL --line-number
2、添加
添加规则有两个参数分别是 -A 和 -I。其中 -A 是添加到规则的末尾;-I 可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
添加到尾部 [root@liangxu ~]# iptables -A INPUT -s 192.168.1.5 -j DROP
3、修改规则
参数 -R
[root@xxx ~]# iptables -R INPUT 6 -s 194.168.1.5 -j ACCEPT
[root@xxx ~]# iptables -nL --line-number
4、删除
参数 -D
[root@liangxu ~]# iptables -D INPUT 6 -s 194.168.1.5 -j ACCEPT 或 [root@liangxu ~]# iptables -D INPUT 6
5、备份和还原
默认的 iptables 防火墙规则会立刻生效,但如果不保存,当计算机重启后所有的规则都会丢失,所以对防火墙规则进行及时保存的操作是非常必要的。
iptables 软件包提供了两个非常有用的工具: iptables-save 和 iptables-restore;最大优势是处理庞大的规则集时速度非常快
CentOS 7 系统中防火墙规则默认保存在 /etc/sysconfig/iptables 文件中,使用 iptables-save 将规则保存至该文件中可以实现保存防火墙规则的作用,计算机重启后会自动加载该文件中的规则。如果使用 iptables-save 将规则保存至其他位置,可以实现备份防火墙规则的作用。当防火墙规则需要做还原操作时,可以使用 iptables-restore 将备份文件直接导入当前防火墙规则。
iptables-save
存在默认文件夹中(保存防火墙规则):
[root@xxxx ~]# iptables-save > /etc/sysconfig/iptables
保存在其他位置(备份防火墙规则):
[root@xxxx ~]# iptables-save > 文件名称
列出nat表的规则内容
iptables-save -t nat
iptables-restore
iptables-restore 命令可以批量导入Linux防火墙规则,同时也需要结合重定向输入来指定备份文件的位置。
[root@xxxx ~]# iptables-restore < 文件名称
五、运用
iptables限制方法 创建链WHITELIST:iptables -w -t mangle -N WHITELIST 所有请求XXXX端口 都进入这个链:iptables -w -t mangle -A PREROUTING -p tcp -m tcp –dport 30129 -j WHITELIST 只允许特定ip通过:iptables -w -t mangle -A WHITELIST -s 10.30.0.176 -j ACCEPT 其他拒绝:iptables -w -t mangle -A WHITELIST -j DROP
示例:
端口9100,9200,9300 进允许部分节点(172.24.134.222/223….)通过
iptables -w -t mangle -N WHITELIST iptables -w -t mangle -A PREROUTING -p tcp -m tcp --dport 9200 -j WHITELIST iptables -w -t mangle -A PREROUTING -p tcp -m tcp --dport 9100 -j WHITELIST iptables -w -t mangle -A PREROUTING -p tcp -m tcp --dport 9300 -j WHITELIST iptables -w -t mangle -A WHITELIST -s 172.24.134.222 -j ACCEPT iptables -w -t mangle -A WHITELIST -s 172.24.134.223 -j ACCEPT iptables -w -t mangle -A WHITELIST -s 127.0.0.1 -j ACCEPT iptables -w -t mangle -A WHITELIST -j DROP
清理规则链方法
iptables -w -t mangle -D WHITELIST -j DROP
MARK:
iptables配置与基本用法:
https://blog.csdn.net/weixin_65690979/article/details/127966265
iptables命令详解: