debian

Debian SSH如何限制用户访问权限

小樊
44
2025-12-12 20:05:12
栏目: 智能运维

在Debian系统中,可以通过配置SSH服务来限制用户的访问权限。以下是一些常见的方法:

1. 使用 sshd_config 文件

编辑 /etc/ssh/sshd_config 文件来配置SSH服务。

限制用户登录

你可以使用 DenyUsersAllowUsers 指令来限制特定用户的登录。

# 允许特定用户登录
AllowUsers user1 user2 user3

# 拒绝特定用户登录
DenyUsers user4 user5 user6

限制用户组登录

你可以使用 DenyGroupsAllowGroups 指令来限制特定用户组的登录。

# 允许特定用户组登录
AllowGroups group1 group2 group3

# 拒绝特定用户组登录
DenyGroups group4 group5 group6

限制特定IP地址访问

你可以使用 Match 指令来限制特定IP地址的访问。

# 限制特定IP地址访问
Match Address 192.168.1.100
    AllowUsers user1 user2

Match Address 192.168.1.101
    DenyUsers user3 user4

2. 使用 PAM (Pluggable Authentication Modules)

PAM 可以用来进行更细粒度的认证控制。

安装 pam_access

sudo apt-get install libpam-access

配置 /etc/security/access.conf

编辑 /etc/security/access.conf 文件来定义访问控制规则。

# 允许特定用户访问
+:user1:ALL
+:user2:ALL

# 拒绝特定用户访问
-user3:ALL
-user4:ALL

配置 /etc/pam.d/sshd

确保 /etc/pam.d/sshd 文件中包含以下行:

account required pam_access.so

3. 使用 Fail2Ban

Fail2Ban 可以用来限制暴力破解攻击,并且可以配置为限制特定用户的访问。

安装 fail2ban

sudo apt-get install fail2ban

配置 fail2ban

编辑 /etc/fail2ban/jail.local 文件来定义特定的 jail 规则。

[DEFAULT]
bantime = 600
maxretry = 3

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
banaction = iptables-multiport

创建过滤器

创建 /etc/fail2ban/filter.d/sshd.conf 文件来定义过滤器规则。

[Definition]
failregex = ^%(__prefix_line)s(?:error: PAM: )?(?:[^\s]+)?: Authentication failure for .* from <HOST>
ignoreregex =

4. 使用 Chroot Jail

Chroot Jail 可以将用户的根目录限制在一个特定的目录中,从而限制用户的访问权限。

安装 openssh-server

sudo apt-get install openssh-server

配置 /etc/ssh/sshd_config

编辑 /etc/ssh/sshd_config 文件来启用 Chroot Jail。

Match Group users
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

创建用户组和用户

sudo groupadd users
sudo useradd -m -d /home/user1 -G users user1
sudo passwd user1

设置目录权限

确保 Chroot 目录的权限正确。

sudo chown root:root /home/user1
sudo chmod 755 /home/user1

通过以上方法,你可以有效地限制Debian系统中用户的SSH访问权限。根据具体需求选择合适的方法进行配置。

0
看了该问题的人还看了