centos

怎样在CentOS上限制SSH访问

小樊
77
2025-04-18 14:18:33
栏目: 智能运维

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

1. 使用防火墙(Firewall)

CentOS 7及以上版本默认使用firewalld作为防火墙管理工具。

启用防火墙

sudo systemctl start firewalld
sudo systemctl enable firewalld

允许SSH访问

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

限制IP访问

你可以使用firewall-cmd来限制特定IP地址访问SSH。

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload

2. 使用SELinux

SELinux(Security-Enhanced Linux)提供了更细粒度的安全控制。

查看SELinux状态

sestatus

设置SELinux为强制模式(如果尚未启用)

sudo setenforce 1

配置SELinux策略

你可以编辑/etc/selinux/config文件来设置SELinux模式。

SELINUX=enforcing

3. 使用SSH配置文件

编辑/etc/ssh/sshd_config文件来限制SSH访问。

限制特定IP访问

sudo nano /etc/ssh/sshd_config

添加或修改以下行:

AllowUsers user1 user2

限制特定IP访问

sudo nano /etc/ssh/sshd_config

添加或修改以下行:

AllowUsers user1@192.168.1.100 user2@192.168.1.101

重启SSH服务

sudo systemctl restart sshd

4. 使用Fail2Ban

Fail2Ban是一个入侵防御软件框架,可以用来限制暴力破解攻击。

安装Fail2Ban

sudo yum install fail2ban

启动Fail2Ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

配置Fail2Ban

编辑/etc/fail2ban/jail.local文件来配置Fail2Ban。

sudo nano /etc/fail2ban/jail.local

添加以下内容:

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

重启Fail2Ban

sudo systemctl restart fail2ban

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

0
看了该问题的人还看了