Linux防火墙firewall的使用

本文介绍了Linux防火墙firewall软件,它是对iptables的封装,操作更简单。阐述了四个基本区域(public、trusted、block、drop)的预设规则及实际应用,还说明了如何修改防火墙配置,如添加允许服务、单独拒绝或允许访问、处理区域ip冲突和修改映射端口等。

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

1.firewall软件

 

作用:

对iptables的封装软件,无链与表的概念,只有区域的概念,比iptables操作简单,但是底层还是调用iptables

 

firewalld服务基础


• 系统服务:firewalld
• 管理工具:firewall-cmd(命令)、firewall-config(图形化界面)

 

四个基本区域

  根据所在的网络场所区分,预设保护规则集
– public:仅允许访问本机的ssh dhcp ping服务
– trusted:允许任何访问
– block:阻塞任何来访请求(明确拒绝,有回应客户端)
– drop:丢弃任何来访的数据包(没有回应,节省服务端资源)

 

基本命令

  1.查看当前区域

    firewall-cmd --get-default-zone

  2.转换区域

    firewall-cmd --set-default-zone='区域名'

  3.查看区域规则

    firewall-cmd --zone='区域名' --list-all

  4.添加源

   firewall-cmd --zone='区域名' --add-source='ip地址'

 

2.四个区域的实际应用

   用两台虚拟机做测试(相同网段),server,desktop

  server ip :172.25.0.11

  desktop ip :172.25.0.10

public 

    public默认允许访问本机的ssh服务,ping服务,可以通过命令查看.

   查看区域规则命令:    firewall-cmd --zone=public  --list-all

   看services这一栏,允许dhcpv6-client,ssh服务

    ①ping

       1)server端将区域转为public  

        firewall-cmd --set-default-zone=public

       2)使用desktop ping server 

    ping 172.25.0.11 ,ping 通

    

    ②ssh

   使用desktop ssh server,

   ssh成功,主机名从desktop变为server

  

③通过http和ftp访问

            desktop下访问server服务,

            访问 http: firefox 172.25.0.11 

            访问 ftp:  firefox ftp://172.25.0.11 

            结果都是会被阻拦,也就是说public区域下默认不允许http和ftp访问

2.trusted 

         1)server端将区域转为trusted  

        firewall-cmd --set-default-zone=trusted

         2)将区域转为trusted后允许所有访问,包括ssh,ping,ftp,http等

3. block

        1)server端将区域转为block  

        firewall-cmd --set-default-zone=block

        2)访问测试

             ①ping

              desktop下ping server : ping 172.25.0.11   

              ping通,根据block区域的规则,拒绝访问,但是会给予回应

        

          ②ssh 

           desktop下ssh server :

          可以看到无法连接成功

            [root@desktop0 /]# ssh root@172.25.0.11
            ssh: connect to host 172.25.0.11 port 22: No route to host

          ③通过http和ftp访问

            desktop下访问server服务,

            访问 http: firefox 172.25.0.11 

            访问 ftp:  firefox ftp://172.25.0.11 

            结果都是会被阻拦

  4.drop

     drop和trused形成两个极端,一个允许一切访问,一个拒绝一切访问.

     drop禁止通过ping,ssh,http,ftp等访问.

 

3.修改防火墙的配置

   

   1.向public添加允许http和ftp服务

  上面说了public默认设置是不允许访问http和ftp服务的(根据本机的情况而定).管理员可以添加允许访问的服务

   两条命令:

   ① firewall-cmd --permanent --zone=public  --add-service='服务名'   #-permanent为永久修改,不加就是临时修改,重启后失效  --zone后跟区域名

   ② firewall-cmd  --reload    #重新加载防火墙所有配置

    [root@server0 ftp]# firewall-cmd --permanent --zone=public --add-service=http
    success
    [root@server0 ftp]# firewall-cmd --permanent --zone=public --add-service=ftp   
    success

    [root@server0 ftp]# firewall-cmd --reload   

    [root@server0 ftp]# firewall-cmd --zone=public --list-all  #显示配置信息

    修改后services下多出http和ftp
     

    看看效果:在desktop下访问server

   ping 172.25.0.11

   ping ftp://172.25.0.11

    

 

 

2. 单独拒绝访问

 可以通过防火墙设置拒绝单独的访问.比如我想拒绝desktop(172.25.0.10)访问server

①通过block区域设置拒绝访问服务

 在server上输入命令 :firewall-cmd --zone=block --add-source=172.25.0.10

②设置默认访问区域,调整位trusted允许所有访问

 filewall-cmd --set-defaults-zone=trusted

③测试

  desktop下 输入 : firefox 172.168.10

  被拒绝

 ④block拒绝和drop拒绝的区别

 你也可以设置drop拒绝,在server上输入命令 :firewall-cmd --zone=drop --add-source=172.25.0.10

 与block的区别就是drop不能得到服务的响应了,你可以尝试ping 172.25.0.10(服务器ip),无法ping通

 

3.单独允许访问

  若将zone切换到drop区域,即禁止一切访问,在这种情况下若想允许单独访问,可以将访问者ip添加到trusted区域.

①通过trusted区域设置允许访问

 在server上输入命令 :firewall-cmd --zone=trusted --add-source=172.25.0.10

②设置默认访问区域,调整为block 拒绝所有

 filewall-cmd --set-defaults-zone=block

③测试

 即使是在block区域下(拒绝访问区域),如果我们将允许访问的ip添加到了trusted区域,则依旧可以访问

  desktop下 输入 : firefox 172.168.10

  允许访问

 

4.区域ip冲突

   区域ip冲突的意思是指,在两个区域中设置同一ip地址.即在drop中设置172.25.0.10,那么在其他区域就不允许添加这一条ip地址,

[root@server0 ftp]# firewall-cmd --zone=drop --add-source=172.25.0.10
success
[root@server0 ftp]# firewall-cmd --zone=trusted --add-source=172.25.0.10
Error: ZONE_CONFLICT

 所以你想将ip加入到某个区域,就必须在其他区域将其删除

 

5.修改映射端口

   端口: 协议或程序或服务的编号
   利用root可以改变端口,而且一个程序可以具备多个端口    

   实现本机的端口映射
  • 本地应用的端口重定向(端口1 --> 端口2)

   实现:客户端访问: firefox  172.25.0.11:5423--->172.25.0.11:80

   也就是说当5423端口不工作时,防火墙将访问重定向到80端口上

    基本命令: firewall-cmd --zone=[区域名]  --add-forward-port=port=[被转发端口]:proto=tcp:toport=[转发后端口]   

    [root@server0 /]# firewall-cmd  --permanent  --zone=public --add-forward-port=port=5423:proto=tcp:toport=80

    注意两点:①添加--permanent  参数将其永久修改

                    ②将这条命令添加到常用区域,可以是public或trusted,添加到drop或block区域意义不大    

                   

### 配置和管理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环境中围绕着两个主流防火墙解决方案展开的一些基本介绍与实践指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值