您的位置:

Linux放行端口详解

一、iptables防火墙

1、概述

iptables是一个在Linux中管理网络数据包过滤的命令行工具。它可以用于过滤、转发、NAT、Mangle等操作,以实现网络访问控制及网络性能优化。

2、iptables基本操作

iptables有四个表:filter、nat、mangle、raw。常用的是filter表,针对每个表有一个默认链(INPUT、OUTPUT、FORWARD),每个链中有若干条规则,这些规则定义了网络数据包在这个链上如何被处理。操作iptables需要root权限。

# 查看iptables规则
sudo iptables -L
sudo iptables -L -t nat #查看nat表

# 清空iptables规则
sudo iptables -F
sudo iptables -X

# 允许所有包,拒绝所有包,重置规则
sudo iptables -P INPUT ACCEPT / DROP / REJECT
sudo iptables -P OUTPUT ACCEPT / DROP / REJECT
sudo iptables -P FORWARD ACCEPT / DROP / REJECT

# 开放端口
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

# 关闭端口
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT

二、ufw工具

1、概述

ufw是一个基于iptables的高级防火墙配置工具,提供了一系列的命令来配置防火墙规则,可用于简化iptables规则的管理。ufw只有基本的操作,对于比较复杂的操作需要使用iptables。

2、ufw基本操作

# 查看ufw状态
sudo ufw status

# 启用ufw
sudo ufw enable

# 禁用ufw
sudo ufw disable

# 允许端口
sudo ufw allow 80/tcp

# 允许特定IP访问端口
sudo ufw allow from 192.168.1.1 to any port 22

# 允许特定网段访问端口
sudo ufw allow from 192.168.1.0/24 to any port 80

# 关闭端口
sudo ufw deny 80

三、Firewalld工具

1、概述

Firewalld是一个redhat系列的动态防火墙管理工具,已经成为RHEL 7的默认防火墙。Firewalld提供了Zones、Services、Ports、Masquerade、Source等概念,能够更加灵活地控制网络连接。

2、Firewalld基本操作

# 查看firewalld状态
sudo systemctl status firewalld

# 启用firewalld
sudo systemctl enable firewalld

# 禁用firewalld
sudo systemctl disable firewalld

# 添加服务(常用,如添加http服务)
sudo firewall-cmd --add-service=http --zone=public --permanent

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

# 删除服务(常用,如删除http服务)
sudo firewall-cmd --remove-service=http --zone=public --permanent

# 删除端口
sudo firewall-cmd --remove-port=8080/tcp --zone=public --permanent

# 重载配置
sudo firewall-cmd --reload

# 查看已开放的端口及服务
sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --list-services
sudo firewall-cmd --zone=public --list-all

四、总结

本文通过介绍iptables防火墙、ufw工具和Firewalld工具三种放行端口的方法,详细阐述了Linux放行端口的多种实现方案。总体来说,iptables是最基础、最复杂的放行端口方法,ufw是中等难度、操作简单的方法,而Firewalld是最推荐的放行端口方法,也是最常用的方法。