linux如何安装防火墙

Linux中,可通过安装iptables、firewalld或Gufw等工具来搭建防火墙

Linux系统中,防火墙是保障网络安全的重要工具,以下是如何在Linux中安装和配置防火墙的详细指南:

选择防火墙工具

防火墙工具 特点 适用系统
iptables 经典命令行工具,灵活性高,适合精细化控制 所有Linux发行版
firewalld 动态管理工具,支持区域(zone)配置,简化操作 CentOS/RHEL/Fedora等Red Hat系
UFW 简单易用的命令行工具,适合Ubuntu/Debian系 Ubuntu/Debian系
nftables 新一代防火墙框架,性能更强,支持复杂规则 较新Linux内核(需手动安装)

安装与配置步骤

使用iptables

安装与检查

# 检查是否已安装
sudo iptables -L
# 安装iptables(CentOS/RHEL系)
sudo yum install iptables iptables-services -y
# 安装iptables(Debian/Ubuntu系)
sudo apt-get install iptables -y

配置规则

# 清空现有规则
sudo iptables -F
# 允许已建立的连接通过
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许SSH访问(默认端口22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 丢弃其他所有输入流量
sudo iptables -P INPUT DROP

保存规则

# 保存规则到文件
sudo iptables-save > /etc/iptables/rules.v4
# 设置开机自启
sudo systemctl enable iptables
sudo systemctl start iptables

使用firewalld

安装与启动

# 检查是否已安装
sudo firewall-cmd --state
# 安装firewalld(CentOS/RHEL系)
sudo yum install firewalld -y
# 启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld

配置规则

# 查看当前区域
sudo firewall-cmd --get-active-zones
# 将接口加入公共区域(例如eth0)
sudo firewall-cmd --zone=public --add-interface=eth0 --permanent
# 允许特定IP访问
sudo firewall-cmd --zone=public --add-source=192.168.1.100/32 --permanent
# 允许HTTP/HTTPS端口
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
# 禁止特定端口(例如关闭所有TCP端口)
sudo firewall-cmd --zone=public --remove-port=1-65535/tcp --permanent
# 重新加载配置
sudo firewall-cmd --reload

使用UFW(适用于Ubuntu/Debian)

安装与启用

# 检查状态
sudo ufw status
# 启用UFW
sudo ufw enable
# 设置开机自启
sudo ufw enable

配置规则

# 允许SSH
sudo ufw allow 22/tcp
# 允许HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 拒绝特定IP
sudo ufw deny from 192.168.1.101
# 重启UFW以应用规则
sudo ufw reload

安全优化建议

优化项 操作方法
限制SSH访问 修改/etc/ssh/sshd_config,设置PermitRootLogin noPasswordAuthentication no,重启SSH服务
更改SSH端口 /etc/ssh/sshd_config中修改Port为非标准端口(如10000以上),重启SSH服务
禁用ICMP请求 执行echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all,防止服务器响应ping请求
日志监控 启用rsyslog服务(sudo systemctl enable rsyslog),记录防火墙日志以便分析

常见问题与解答(FAQs)

问题1:如何恢复误删的防火墙规则?

  • 解答
    若使用iptables,可通过之前保存的规则文件恢复:

    sudo iptables-restore < /etc/iptables/rules.v4

    若使用firewalld,可重新加载运行时配置:

    sudo firewall-cmd --runtime-to-permanent

问题2:如何临时关闭防火墙而不删除规则?

  • 解答
    • iptables:停止服务但保留规则:
      sudo systemctl stop iptables
    • firewalld:停止服务但保留规则:
      sudo systemctl stop firewalld
    • UFW:禁用防火墙:
      sudo ufw disable

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/59316.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月13日 19:52
下一篇 2025年7月12日 17:58

相关推荐

  • Linux系统版本和内存如何快速查看?

    查看Linux系统版本: ,- 终端执行 uname -a 或 lsb_release -a ,- 查看 /etc/os-release 文件 ,查看内存信息: ,- 终端执行 free -h ,- 查看 /proc/meminfo 文件

    2025年6月11日
    000
  • Linux防火墙状态如何查看

    在Linux中检测防火墙设置,主要使用以下命令:,* **iptables -L -n -v** (传统iptables),* **nft list ruleset** (较新的nftables),* **firewall-cmd –list-all** (firewalld服务),* **ufw status verbose** (Ubuntu的ufw),使用systemctl status firewalld或ufw status检查防火墙服务是否运行。

    2025年6月17日
    000
  • 如何查Linux系统32/64位?

    查看Linux操作系统位数可运行命令: ,1. uname -m 显示架构(x86_64为64位,i686为32位); ,2. getconf LONG_BIT 直接输出位数; ,3. arch 显示处理器类型。

    2025年6月3日
    500
  • Linux怎么读取光驱?

    在Linux中读取光驱,首先插入光盘,系统通常会自动挂载,若未自动挂载,需手动创建挂载点目录(如/mnt/cdrom),然后使用命令sudo mount /dev/sr0 /mnt/cdrom将光盘内容挂载到该目录,完成后即可访问光盘文件,使用完毕用sudo umount /mnt/cdrom卸载。

    2025年5月31日
    600
  • Linux如何设置root权限?

    在Linux中设置root权限有两种主要方法:使用sudo命令临时获取管理员权限执行特定任务,或通过sudo passwd root设置root密码后使用su -命令切换到root用户。**操作需极其谨慎。**

    2025年6月24日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN