linux设置firewall防火墙

本文档提供了详细的Firewalld防火墙管理指令说明,包括启动、关闭防火墙,查看防火墙状态,添加及删除端口规则等。还介绍了如何进行IP白名单设置和服务管理,适合初学者和高级用户参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 启动防火墙:systemctl start firewalld
  2. 关闭防火墙:systemctl stop firewalld
  3. 关闭防火墙开机启动:systemctl disable firewalld
  4. 查看防火墙状态:systemctl status firewalld

使用firewall-cmd命令管理防火墙

注意:所有操作之前都需附带 --zone=public --permanent(指定区域和永久生效)

操作之后需要执行firewall-cmd --reload刷新配置

  1. 查看防火墙状态:firewall-cmd --state
  2. 查看所有打开的端口: firewall-cmd --zone=public --list-ports
  3. 查看区域信息:  firewall-cmd --get-active-zones
  4. 添加规则:firewall-cmd --zone=public --add-port=22/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
  5. 删除规则:firewall-cmd --zone=public --remove-port=22/tcp --permanent
  6. 查看规则状态:firewall-cmd --zone=public --query-port=22/tcp
  7. 重新载入规则:firewall-cmd --reload
  8. 拒绝所有包:firewall-cmd --panic-on
  9. 取消拒绝状态: firewall-cmd --panic-off
  10. 查看是否拒绝: firewall-cmd --query-panic
  11. ip白名单设置:  #开启某个端口(指定IP可访问) firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.1.1.14/32" port protocol="tcp" port="80" accept"
  12. ip白名单设置:  #关闭某个端口(删除策略) firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="10.1.1.14/32" port protocol="tcp" port="80" accept"
  13. 显示服务列表:firewall-cmd --get-services
  14. 允许SSH服务通过:firewall-cmd --add-service=ssh
  15. 禁止SSH服务通过:firewall-cmd --remove-service=ssh
  16. 显示当前服务:firewall-cmd --list-services
  17. 查看防火墙,添加的端口也可以看到:firewall-cmd --list-all
  18. 临时允许Samba服务通过600秒:firewall-cmd --enable service=samba --timeout=600
  19. 查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0
  20. 完全重新载入规则(会中断已连接的连接,类似于重启):firewall-cmd --complete-reload
  21. 列出所有区域的设置:firewall-cmd --list-all-zones
  22. 禁止ping数据包:firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'

注意:打开防火墙后一定要先添加ssh端口到规则中,并重新载入

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

firewall-cmd --reload

关闭selinux方法:

1、getenforce查询状态

2、setenforce 0 设置关闭,并再次查看

3、vim /etc/selinux/config 修改配置文件,修改成Permissive

更多请参考:用活firewalld防火墙中的zone - excelib学生 - 博客园

### 配置和管理Linux防火墙 #### 使用`firewalld` `Firewalld` 提供了一种动态管理防火墙的方式,允许更新规则而不中断现有连接。对于大多数现代Linux发行版,默认情况下会安装并启用 `firewalld`。 要查看当前状态可以运行如下命令: ```bash sudo systemctl status firewalld ``` 为了启动或停止服务可分别执行下面两条指令之一: ```bash sudo systemctl start firewalld # 启动服务 sudo systemctl stop firewalld # 停止服务 ``` 如果希望开机自动加载,则需设置为开启状态: ```bash sudo systemctl enable firewalld ``` 通过图形界面配置也很简单,只需打开应用程序菜单找到名为 "Firewall Configuration" 或者直接在终端里键入 `firewall-config` 即可进入GUI模式进行操作[^2]。 #### 添加端口和服务到特定区域 默认情况下,公共区(`public`)被选作活跃区;但是可以根据需求更改此设定。向指定区域内添加开放端口的例子如下所示: ```bash sudo firewall-cmd --zone=public --add-port=80/tcp --permanent ``` 上述命令永久性地将TCP协议下的HTTP(80)端口加入到了公网访问列表之中。记得每次修改后都要重新载入配置文件使改动生效: ```bash sudo firewall-cmm --zone=public --remove-port=80/tcp --permanent ``` 当涉及到具体的应用程序而非单一端口号时,比如SSH、HTTPS等常用的服务名同样适用这种方式处理: ```bash sudo firewall-cmd --zone=public --add-service=https --permanent ``` 这行代码的作用就是让HTTPS流量能够顺利穿过防火墙屏障到达目标主机上监听该类型的进程那里去[^1]。 #### 利用`iptables`实现更精细控制 尽管`firewalld`已经足够满足日常维护工作所需的功能特性了,但对于某些特殊场景下可能还是需要用到更为底层也更加灵活多变的工具——即`iptables`本身。它能让我们直接针对IPv4层面的数据流制定详尽而又复杂的过滤策略。 创建一条简单的INPUT链规则阻止来自某个IP地址的所有传入请求样例如下: ```bash sudo iptables -A INPUT -s 192.168.1.100 -j DROP ``` 这里的意思是从源地址为`192.168.1.100`过来的一切尝试都将遭到拒绝响应。当然实际应用当中往往不会这么绝对化,而是配合其他条件一起使用形成复杂逻辑判断结构[^3]。 保存这些自定义好的表项以便重启之后仍然有效非常重要: ```bash sudo sh -c "iptables-save > /etc/iptables/rules.v4" ``` 以上就是在Linux环境中围绕着两个主流防火墙解决方案展开的一些基本介绍与实践指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值