服务器测评网
我们一直在努力

Linux安装防火墙后如何开放指定端口?

在Linux系统中,防火墙是保障服务器安全的重要屏障,能够有效过滤恶意流量、控制网络访问权限,本文将详细介绍Linux环境下主流防火墙的安装与配置方法,涵盖iptables和firewalld两大工具,帮助用户根据系统版本和需求搭建安全可靠的防护体系。

Linux安装防火墙后如何开放指定端口?

Linux防火墙概述

Linux防火墙主要工作在网络层和传输层,通过预定义的规则集对进出网络的数据包进行过滤,常见的防火墙工具包括iptables(传统工具)和firewalld(新一代动态管理工具),其中iptables适用于基于Debian/Ubuntu的老版本系统,而firewalld则是CentOS 7及以上版本的默认选择,两者均支持端口管理、IP黑白名单、端口转发等核心功能,但firewalld支持动态规则更新,无需重启服务即可生效。

基于iptables的防火墙配置

安装iptables

在Debian/Ubuntu系统中,可通过以下命令安装:

sudo apt update && sudo apt install iptables -y  

在CentOS 6/7系统中,使用:

sudo yum install iptables-services -y  

启动并启用iptables服务

sudo systemctl start iptables  
sudo systemctl enable iptables  

基础规则配置

  • 查看当前规则sudo iptables -L -n -v
  • 允许已建立的连接
    sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT  
  • 允许本地回环sudo iptables -A INPUT -i lo -j ACCEPT
  • 开放指定端口(如SSH的22端口):
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
  • 拒绝其他未允许的连接sudo iptables -P INPUT DROP

保存规则

Debian/Ubuntu系统需安装iptables-persistent

sudo apt install iptables-persistent -y  
sudo netfilter-persistent save  

CentOS系统直接使用:

Linux安装防火墙后如何开放指定端口?

sudo service iptables save  

基于firewalld的防火墙配置

安装firewalld

CentOS 7及以上版本默认已安装,若需手动安装:

sudo yum install firewalld -y  

Debian/Ubuntu系统可通过PPA安装:

sudo add-apt-repository ppa:headwall/firewalld  
sudo apt update && sudo apt install firewalld -y  

启动并启用firewalld服务

sudo systemctl start firewalld  
sudo systemctl enable firewalld  

区域管理

firewalld通过“区域”划分网络信任级别,默认为public区域,可通过以下命令查看区域:

sudo firewall-cmd --get-active-zones  

端口与服务管理

  • 开放永久端口(如80端口):
    sudo firewall-cmd --permanent --add-port=80/tcp  
    sudo firewall-cmd --reload  
  • 开放服务(如SSH):
    sudo firewall-cmd --permanent --add-service=ssh  
    sudo firewall-cmd --reload  
  • 查看已开放端口sudo firewall-cmd --list-ports

IP地址管理

  • 允许特定IP访问
    sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.100 accept"  
    sudo firewall-cmd --reload  
  • 拒绝IP访问
    sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.50 reject"  
    sudo firewall-cmd --reload  

高级安全策略

端口转发

通过iptables实现端口转发(如将80端口转发至8080):

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080  
sudo iptables-save  

firewalld配置端口转发:

Linux安装防火墙后如何开放指定端口?

sudo firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080  
sudo firewall-cmd --reload  

防止DDoS攻击

通过iptables限制同一IP的连接数(如每分钟最多10个新连接):

sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m recent --set  
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP  

日志记录

开启iptables日志功能,记录被丢弃的数据包:

sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTABLES_DROP: " --log-level 4  
sudo iptables -A INPUT -j DROP  

防火墙维护与故障排查

规则管理

  • 清空规则(iptables):sudo iptables -F
  • 删除规则(iptables):sudo iptables -D INPUT 1(删除第1条规则)
  • 重置firewalld规则sudo firewall-cmd --reload

常见问题

  • SSH连接被拦截:检查是否开放22端口,或临时关闭防火墙测试:sudo systemctl stop iptables/firewalld
  • 规则不生效:确保规则已保存(iptables需手动保存,firewalld需reload)
  • 日志查看sudo tail -f /var/log/messages(iptables日志)或sudo journalctl -u firewalld

Linux防火墙的配置是服务器安全运维的基础工作,用户可根据系统版本选择iptables或firewalld,结合实际需求开放必要端口、限制恶意访问,并通过日志监控异常流量,建议定期审查规则集,及时更新安全策略,确保防火墙持续发挥防护作用,对于生产环境,建议先在测试环境验证规则,避免因配置错误导致服务中断。

赞(0)
未经允许不得转载:好主机测评网 » Linux安装防火墙后如何开放指定端口?