温馨提示×

如何在Ubuntu上限制SSH访问

小樊
42
2025-12-18 06:25:11
栏目: 智能运维

在Ubuntu上限制SSH访问可以通过多种方法实现,以下是一些常见的方法:

1. 使用防火墙(UFW)

UFW(Uncomplicated Firewall)是一个简单的防火墙管理工具,可以用来限制SSH访问。

安装UFW

sudo apt update
sudo apt install ufw

启用UFW

sudo ufw enable

允许SSH访问

sudo ufw allow ssh

限制SSH访问到特定IP地址

sudo ufw allow from <IP_ADDRESS> to any port 22

<IP_ADDRESS> 替换为你想要允许访问的IP地址。

查看UFW状态

sudo ufw status

2. 使用SSH配置文件(sshd_config)

你可以通过修改SSH配置文件来限制SSH访问。

编辑SSH配置文件

sudo nano /etc/ssh/sshd_config

限制访问到特定IP地址

在文件中添加或修改以下行:

AllowUsers <username>@<IP_ADDRESS>

<username> 替换为你想要允许访问的用户名,将 <IP_ADDRESS> 替换为你想要允许访问的IP地址。

重启SSH服务

sudo systemctl restart sshd

3. 使用Fail2Ban

Fail2Ban是一个入侵防御软件框架,可以用来限制SSH访问。

安装Fail2Ban

sudo apt update
sudo apt install fail2ban

启动Fail2Ban

sudo systemctl start fail2ban

启用Fail2Ban

sudo systemctl enable fail2ban

配置Fail2Ban

编辑Fail2Ban的配置文件:

sudo nano /etc/fail2ban/jail.local

添加以下内容来限制SSH访问:

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

重启Fail2Ban

sudo systemctl restart fail2ban

4. 使用IPTables

IPTables是一个强大的防火墙工具,可以用来限制SSH访问。

允许SSH访问

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

限制SSH访问到特定IP地址

sudo iptables -A INPUT -p tcp --dport 22 -s <IP_ADDRESS> -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

<IP_ADDRESS> 替换为你想要允许访问的IP地址。

保存IPTables规则

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

通过以上方法,你可以有效地限制Ubuntu上的SSH访问,提高系统的安全性。

0