背景
远程连接服务器时,发现SSH远程登录服务器失败,但是又可以Ping通,故服务器的是开启的。
sudo systemctl status sshd
查看sshd的状态发现其是active,所以为什么一直SSH失败呢?
最后知道是有人启动了防火墙,所以解决办法就是在防火墙中放开22端口;
一、引言
在Linux系统中,UFW(Uncomplicated Firewall)是一个用户友好的防火墙管理工具,它提供了基于IPv4和IPv6的防火墙规则管理。本文将详细介绍如何使用UFW进行防火墙设置,并通过案例教程展示其用法,同时指出一些使用UFW时需要注意的事项。
二、UFW安装与启用
1. 安装UFW
在Ubuntu和Debian系统中,UFW默认已安装。如果没有安装,可以通过以下命令进行安装:
sudo apt-get update
sudo apt-get install ufw
在CentOS系统中,可以使用Firewalld或Iptables作为默认防火墙,但也可以安装UFW。安装命令如下:
sudo yum install ufw
2. 启用UFW
安装完成后,启用UFW防火墙:
sudo ufw enable
启用后,UFW将默认阻止所有入站连接,但允许所有出站连接。
三、UFW基本用法
1. 允许/拒绝特定端口
- 允许HTTP(80端口)入站连接:
sudo ufw allow 80/tcp
- 拒绝SSH(22端口)入站连接(请谨慎操作,否则可能无法远程登录):
sudo ufw deny 22/tcp
2. 允许/拒绝特定应用程序
UFW支持通过应用程序配置文件来允许或拒绝特定应用程序的访问。例如,允许OpenSSH服务:
sudo ufw allow OpenSSH
3. 查看防火墙状态及规则
- 查看防火墙状态:
sudo ufw status
- 查看防火墙规则:
sudo ufw status verbose
4. 禁用/启用UFW
- 禁用UFW:
sudo ufw disable
- 启用UFW(如果之前已禁用):
sudo ufw enable
四、案例教程
1. 设置Web服务器防火墙规则
假设您正在运行一个Web服务器,需要允许HTTP(80端口)和HTTPS(443端口)的入站连接。同时,您还想允许SSH(22端口)连接以便于远程管理。
- 允许HTTP和HTTPS入站连接:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- 允许SSH入站连接(如果尚未允许):
sudo ufw allow 22/tcp
- 查看防火墙规则,确保设置正确:
sudo ufw status verbose