目 录CONTENT

文章目录

Linux防火墙命令

兜兜管理员
2025-01-08 / 0 评论 / 0 点赞 / 19 阅读 / 0 字
温馨提示:
本文最后更新于2025-02-22,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、介绍

防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

zone

Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

  • drop: 丢弃所有进入的包,而不给出任何响应

  • block: 拒绝所有外部发起的连接,允许内部发起的连接

  • public: 允许指定的进入连接

  • external: 同上,对伪装的进入连接,一般用于路由转发

  • dmz: 允许受限制的进入连接

  • work: 允许受信任的计算机被限制的进入连接,类似 workgroup

  • home: 同上,类似 homegroup

  • internal: 同上,范围针对所有互联网用户

  • trusted: 信任所有连接

过滤规则

  • source: 根据源地址过滤

  • interface: 根据网卡过滤

  • service: 根据服务名过滤

  • port: 根据端口过滤

  • icmp-block: icmp 报文过滤,按照 icmp 类型配置

  • masquerade: ip 地址伪装

  • forward-port: 端口转发

  • rule: 自定义规则

其中,过滤规则的优先级遵循如下顺序

  1. source

  2. interface

  3. firewalld.conf

二、启停命令

Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,ConterOS7.0以下使用的是iptables

#安装防火墙
yum install firewalld #防火墙
yum install firewall-config #图形化界面

#启动防火墙
systemctl start firewalld 

#设置开机自启
systemctl enable firewalld

# 查看防火状态
systemctl status firewalld 或 firewall-cmd --state
service  iptables status

# 关闭防火墙
systemctl stop firewalld
service  iptables stop

# 停止自启
systemctl disable firewalld #禁止开机自启
chkconfig iptables off

# 重启防火墙
firewall-cmd --reload
service iptables restart  

# 查看版本
firewall-cmd --version

三、放行规则

#添加端口
firewall-cmd --zone=public --add-port=6666/tcp --permanent

 #永久添加80端口 
firewall-cmd --add-port=80/tcp --permanent

#永久移除80端口
firewall-cmd --remove-port=80/tcp --permanent

#刷新生效
firewall-cmd --reload

#查看已经开放的端口
firewall-cmd --list-ports

#查看防火墙放行列表                   
firewall-cmd --list-all


通过firewall-cmd命令放行UDP端口,示例如下:
sudo firewall-cmd –zone=public –add-port=[端口号]/udp –permanent
sudo firewall-cmd –reload

四、Debian/Ubuntu系统中安装和配置UFW

UFW 基本用法

首先,用如下命令来检查下系统上是否已经安装了 UFW

$ sudo dpkg --get-selections | grep ufw

如还没有安装,可以使用 apt 命令来安装,如下所示:

$ sudo apt-get install ufw

在使用前,你应该检查下 UFW 是否已经在运行。用下面的命令来检查。

$ sudo ufw status

如果你发现状态是: inactive , 意思是没有被激活或不起作用。

启用/禁用 UFW

要启用它,你只需在终端下键入如下命令,即可在系统启动时启用和激活防火墙

$ sudo ufw enable

要禁用,只需输入:

$ sudo ufw disable

列出当前UFW规则

在防火墙被激活后,你可以向里面添加你自己的规则。如果你想看看默认的规则,可以输入。

$ sudo ufw status verbose

输出样例:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip

添加规则

允许入站(allow)

默认情况,没有允许就是拒绝(入站),使用 ufw allow <端口> 来添加允许访问的端口或协议。

ufw allow ssh  #添加22端口

ufw allow http  #添加80端口

ufw allow https  #添加443端口

ufw allow 2333/tcp   #添加2333端口,仅TCP协议

ufw allow 6666/udp   #添加6666端口,仅UDP协议

ufw allow 8888:9999  #添加8888到9999之间的端口

拒绝访问(deny)

使用 ufw deny <端口> 来添加拒绝入站的端和协议,与添加允许的类似。

删除规则

先使用 ufw status 查看规则,再使用 ufw delete [规则] <端口> 来删除规则。

ufw delete allow 2333/tcp

如果你有很多条规则,使用 numbered 参数,可以在每条规则上加个序号数字。

然后使用 ufw delete <序号> 来删除规则。

root@p3terx:~# ufw status numbered  #列出规则,并加上序号。
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 20,21,22,80,888,8888/tcp   ALLOW IN    Anywhere
[ 2] 39000:40000/tcp            ALLOW IN    Anywhere
[ 3] 8896/tcp                   ALLOW IN    Anywhere
[ 4] 8896/udp                   ALLOW IN    Anywhere
[ 5] 443/tcp                    ALLOW IN    Anywhere
[ 6] 20,21,22,80,888,8888/tcp (v6) ALLOW IN    Anywhere (v6)
[ 7] 39000:40000/tcp (v6)       ALLOW IN    Anywhere (v6)
[ 8] 8896/tcp (v6)              ALLOW IN    Anywhere (v6)
[ 9] 8896/udp (v6)              ALLOW IN    Anywhere (v6)
[10] 443/tcp (v6)               ALLOW IN    Anywhere (v6)

root@p3terx:~# ufw delete 4  #删除上面的第4条规则
Deleting:
 allow 8896/udp
Proceed with operation (y|n)? y  #最后会询问你是否进行操作

以上都是一些简单常用的一些命令,想要深入了解,可以输入 man ufw 查看 ufw 用户手册。

参考

Debian/Ubuntu 系统中安装和配置 UFW-简单的防火墙

0

评论区