通过 IP 地址限制用户对 sftp 服务器的访问

通过 IP 地址限制用户对 sftp 服务器的访问

我正在尝试将对现有 sftp 服务器的访问限制为用户,以允许其仅从 IP 地址登录,但不起作用。就我而言,我尝试允许用户 some_user 仅从 192.168.12.10 登录。

这是我的完整 sshd_config 文件:


Port 22
Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
GSSAPICleanupCredentials yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem       sftp    /usr/libexec/openssh/sftp-server
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha1,[email protected],hmac-ripemd160
KerberosAuthentication no
PubkeyAuthentication yes
UsePAM yes
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
GSSAPIAuthentication yes
ChallengeResponseAuthentication yes
AuthorizedKeysCommandUser nobody

Match User some_user, Address !192.168.12.10
    PasswordAuthentication no
    PubkeyAuthentication yes

Match User some_user, Address 192.168.12.10
    ChrootDirectory /home/some_user/
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

我从这里获得了此配置(匹配用户部分)

但它不起作用:我仍然能够从任何 IP 地址登录。我也尝试了此建议的方法线但无济于事。

我是否遗漏了什么?

感谢您的关注。

此致。

答案1

该问题的解决方案是使用更简单的解决方案,即添加以下配置行:

AllowUsers [email protected] otherid1 otherid2

some_user仅允许来自192.168.12.10,以及 otherid1、otherid2 来自任何地方。


旧答案

也许有一种更简单、更安全的方法可以将 SSH 访问限制为仅限机器上的某些 IP 地址。

/etc/hosts.allow

sshd,sshdfwd-X11: 192.168.12.10

/etc/hosts.deny

要拒绝不在列出的 IP 地址中的任何人的 SSH 连接:

sshd,sshdfwd-X11:ALL 

通过用户名限制 SSH 访问(可选)

编辑/etc/ssh/sshd_config并添加以下内容:

PermitRootLogin no
AllowUsers      user1 user2 user3 etc
PasswordAuthentication yes

重新启动 ssh 守护进程以使这些更改生效

service sshd restart

相关内容