查看现在占用的端口
netstat -tuln
firewall
查看防火墙状态:
firewall-cmd --state
# 或
systemctl status firewalld.service
开启防火墙:
systemctl start firewalld.service
设置开机自启:
systemctl enable firewalld.service
重启防火墙:
systemctl restart firewalld.service
关闭防火墙:
systemctl stop firewalld.service
开放端口命令:
# 打开单个端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 打开多个端口:
firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent
# --permanent 为永久生效,不加为单次有效(重启失效)
查看已开放的端口:
netstat -ntlp
# 或:
firewall-cmd --list-ports
关闭端口命令:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看端口是否打开
firewall-cmd --zone=public --query-port=80/tcp
iptables
iptables -I INPUT -p TCP --dport 443 -j ACCEPT
ufw
UFW(Uncomplicated Firewall)是一个简化的防火墙管理工具,用于配置iptables。以下是一些常用的UFW操作:
安装UFW(适用于Debian/Ubuntu系统):
sudo apt-get install ufw
启用UFW:
sudo ufw enable
禁用UFW:
sudo ufw disable
查看UFW状态:
sudo ufw status
允许特定端口:
sudo ufw allow 22/tcp # 允许SSH
sudo ufw allow 80/tcp # 允许HTTP
sudo ufw allow 443/tcp # 允许HTTPS
拒绝特定端口:
sudo ufw deny 22/tcp # 拒绝SSH
sudo ufw deny 80/tcp # 拒绝HTTP
删除规则:
sudo ufw delete allow 22/tcp # 删除允许SSH的规则
sudo ufw delete deny 80/tcp # 删除拒绝HTTP的规则
允许特定IP地址访问某端口:
sudo ufw allow from 192.168.1.100 to any port 22 # 允许IP 192.168.1.100通过端口22访问
拒绝特定IP地址访问某端口:
sudo ufw deny from 192.168.1.100 to any port 22 # 拒绝IP 192.168.1.100通过端口22访问
允许IP地址范围访问某端口:
sudo ufw allow from 192.168.1.0/24 to any port 22 # 允许IP范围192.168.1.0/24通过端口22访问
拒绝IP地址范围访问某端口:
sudo ufw deny from 192.168.1.0/24 to any port 22 # 拒绝IP范围192.168.1.0/24通过端口22访问
允许特定服务(基于/etc/services文件):
sudo ufw allow ssh # 允许SSH服务
sudo ufw allow http # 允许HTTP服务
拒绝特定服务:
sudo ufw deny ssh # 拒绝SSH服务
sudo ufw deny http # 拒绝HTTP服务
启用或禁用IPv6支持:
在配置文件 /etc/default/ufw
中设置 IPV6=yes 或 IPV6=no
,然后重启UFW:
sudo ufw reload
默认策略:
sudo ufw default allow outgoing # 默认允许所有出站连接
sudo ufw default deny incoming # 默认拒绝所有入站连接
查看UFW日志:
sudo less /var/log/ufw.log
启用详细日志记录:
sudo ufw logging on
禁用详细日志记录:
sudo ufw logging off