linux 防火墙firewall
时间: 2025-01-31 17:08:55 浏览: 41
### 配置和管理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环境中围绕着两个主流防火墙解决方案展开的一些基本介绍与实践指导。
阅读全文
相关推荐













