iptables 和 firewalld

这两天干了点运维的事情,这里做个记录。

iptables的基础概念,可以看看 iptables详解(1):iptables概念, 这里面介绍得很详细。

iptables 和 firewalld 的关系,可以看看CentOS 7 中配置Firewall规则, 还有 Firewalld的结构也不错。

firewall 有一个命令行的使用方式 firewall-cmd,有一个图形界面的使用方式 firewall-config,我主要看的是命令行的方式, 可以看这个博客 firewall-cmd


看了前贤的博客,我这里做个笔记:

关于iptable的内容,这张图比较经典,copy过来大家参考一下。
这张图比较经典

在iptable里面,有四张表, raw, mangle, nat, filter, 他们的包含了各种规则,使用的作用范围如上图所示。

配置规则的格式如下:

iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -j SNAT --to-source 192.168.1.146
# iptables 后面的参数:
# 	-t 表名, 就是上面的 raw mangle nat filter 这些
#	-A 流向, 就是上图中红色的内容  PREROUTING INPUT FORWARD OUTPUT POSTROUTING 
#	-s ip地址,--source, 报文源地址匹配, 
#	-j 行为,  --jump, 有 ACCEPT DROP REJECT SNAT MASQUERADE DNAT REDIRECT LOG
# 	--to-source ip地址, 这是前一个 -j 参数设置 SNAT 行为的一个必须参数,告诉 SNAT行为替换的IP是啥。

具体的,推荐查看 iptables详解(1):iptables概念iptables详解(13):iptables动作总结之二


firewalld部分:
开启,关闭,开机配置,可以看 CentOS 7 中配置Firewall规则

其实firewalld 和iptables 做的事情是差不多的,也是配置内核过滤器来完成防火墙或者路由的功能。

使用方法,可以用

firewall-cmd -h

命令来做查看命令的参数详情,很多,这里我也只讲讲配置部分。

命令来看,firewall-cmd命令比iptable命令要更加人性化一些,在命令中,大致知道自己想干什么,而不是想着计算机怎么处理。
如果是信任某个东西,firewall-cmd 可以直接在 trusted 里面添加我们信任的内容。

下面我添加一个信任的ip地址:

firewall-cmd --permanent --zone=trusted --add-source=192.168.0.101

让上面的修改生效,需要重新加载一下 firewall-cmd

firewall-cmd --reload

所以相对于iptable要人性化一点,不过很多东西,也需要自己理解。具体的建议查看 CentOS 7 中配置Firewall规则

iptablesfirewalld 都是 Linux 系统中的防火墙软件,它们的主要区别如下: 1. 配置文件位置不同:iptables 的配置文件在 /etc/sysconfig/iptables 中,而 firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件中。 2. 配置方式不同:iptables 仅能通过命令行进行配置,而 firewalld 提供了图形接口,类似于 Windows 防火墙的操作方式。 3. 工作原理不同:iptables 是基于内核的防火墙,它通过在内核中设置规则来过滤网络流量;而 firewalld 是基于用户空间的防火墙,它使用 D-Bus 与内核通信,并通过内核中的 netfilter 过滤网络流量。 下面是一个使用 iptables 配置防火墙的例子: ```shell # 清空所有规则 iptables -F # 设置默认策略 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许回环接口 iptables -A INPUT -i lo -j ACCEPT # 允许已建立的连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许 SSH 连接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 HTTP 和 HTTPS 连接 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 其他规则 iptables -A INPUT -j DROP ``` 下面是一个使用 firewalld 配置防火墙的例子: ```shell # 启动 firewalld systemctl start firewalld # 查看状态 systemctl status firewalld # 开启 SSH 连接 firewall-cmd --zone=public --add-service=ssh --permanent # 开启 HTTP 和 HTTPS 连接 firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --zone=public --add-service=https --permanent # 其他规则 firewall-cmd --zone=public --remove-port=8080/tcp --permanent # 重新加载配置 firewall-cmd --reload ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值