firewall/iptable防火墙 命令

本文介绍了Linux系统中firewall和iptables的使用方法,包括查看防火墙状态、开放和关闭端口、重启防火墙以及设置开机启动等操作。此外,还展示了如何添加和删除特定端口的访问规则。

firewall

查看firewall防火墙状态

systemctl status firewalld

查看firewall防火墙开放端口

firewall-cmd --list-ports

打开firewall防火墙

systemctl start firewalld.service

关闭firewall防火墙

systemctl stop firewalld.service

重启firewal防火墙

firewall-cmd --reload

禁止firewall开机启动

systemctl disable firewalld.service

开放firewall防火墙端口,需重启防火墙生效

firewall-cmd --zone=public --add-port=8080/tcp --permanent 	

iptable

查看iptable防火墙状态

service iptables status

查看iptable防火墙规则

iptables -L -n -v

打开iptable防火墙

systemctl start iptables

关闭iptable防火墙

service iptables stop

安装 iptables 防火墙

yum install  iptables -y

开机自启iptable防火墙

systemctl enable iptables

关闭开机自动启动iptable防火墙

systemctl disable firewalld

清空 iptables 规则

iptables -F

保存iptables 防火墙规则

service iptables save
 #禁止来自80端口访问的数据包
iptables -A INPUT -p tcp --dport 8080 -j REJECT

 #允许来自80端口访问的数据包
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

#禁止从80端口出去的数据包
iptables -A OUTPUT -p tcp --sport 8080 -j REJECT

#允许从80端口出去的数据包
iptables -A OUTPUT -p tcp --sport 8080 -j ACCEPT

### 麒麟操作系统 Firewall 防火墙规则不生效的解决方案 在麒麟操作系统中,如果防火墙规则不生效,可能是由于配置错误、服务未启动或规则冲突等原因导致。以下是可能的解决方法: #### 1. 确认防火墙服务状态 首先需要确认 `firewalld` 或 `iptables` 服务是否正常运行。如果服务未启动,则规则自然不会生效。 ```bash systemctl status firewalld ``` 如果服务未启动,请使用以下命令启用并启动服务: ```bash systemctl enable firewalld systemctl start firewalld ``` 确保服务已启动后,再检查规则是否生效[^1]。 #### 2. 检查规则是否正确添加 在添加规则时,需注意规则的格式和语法是否正确。例如,关闭探测(traceroute)功能的规则应为: ```bash firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p ICMP --icmp-type 0 -m comment --comment "deny traceroute" -j DROP firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p ICMP --icmp-type 3 -m comment --comment "deny traceroute" -j DROP firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p ICMP --icmp-type 11 -m comment --comment "deny traceroute" -j DROP firewall-cmd --reload ``` 上述规则用于阻止特定类型的 ICMP 数据包。若规则未正确添加或未执行 `firewall-cmd --reload`,可能导致规则不生效[^1]。 #### 3. 检查规则优先级 某些情况下,规则可能因优先级问题而被覆盖。例如,当存在更广泛的接受规则时,特定的拒绝规则可能不起作用。可以通过以下命令查看当前规则列表: ```bash firewall-cmd --list-all ``` 如果发现规则冲突,可以尝试调整规则顺序或删除冲突规则。例如: ```bash firewall-cmd --permanent --remove-rich-rule="rule family='ipv4' source address='10.111.91.0/24' accept" firewall-cmd --reload ``` 确保规则之间没有冲突[^3]。 #### 4. 检查网络接口配置 如果规则涉及特定网络接口(如 `eth1`),需确认该接口是否正确配置并处于活动状态。可以使用以下命令检查接口状态: ```bash ip addr show ``` 若接口未启用或配置错误,规则可能无法正常应用。此外,对于 NAT 转发规则,需确保相关模块已加载: ```bash lsmod | grep iptable_nat ``` 如果未加载,可以手动加载模块: ```bash modprobe iptable_nat ``` 然后重新配置 NAT 规则[^4]。 #### 5. 检查日志以定位问题 若以上步骤仍未解决问题,可以通过查看防火墙日志来进一步分析原因。日志文件通常位于 `/var/log/firewalld.log` 或 `/var/log/messages` 中。例如: ```bash tail -f /var/log/firewalld.log ``` 通过日志信息,可以判断规则是否被正确加载以及是否存在其他潜在问题[^2]。 --- ### 示例代码:限制指定 IP 访问端口 以下是一个限制指定 IP 访问特定端口的示例: ```bash firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.111.91.145" port port="22" protocol="tcp" reject' firewall-cmd --reload ``` 此规则将拒绝来自 IP 地址 `10.111.91.145` 的 TCP 端口 22 请求。确保规则语法正确,并在修改后重新加载防火墙配置。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值