linux

Linux SFTP如何限制访问IP

小樊
48
2025-07-30 05:09:47
栏目: 智能运维

在Linux系统中,使用SFTP(SSH File Transfer Protocol)时,可以通过配置SSH服务器来限制访问IP。以下是一些常见的方法:

方法一:使用sshd_config文件

  1. 编辑sshd_config文件: 打开SSH服务器的配置文件/etc/ssh/sshd_config

    sudo nano /etc/ssh/sshd_config
    
  2. 添加或修改AllowUsers指令: 使用AllowUsers指令可以指定允许登录的用户及其来源IP地址。例如,只允许用户user1从IP地址192.168.1.100登录:

    AllowUsers user1@192.168.1.100
    

    如果需要允许多个IP地址,可以多次使用AllowUsers指令:

    AllowUsers user1@192.168.1.100 user2@192.168.1.101
    
  3. 添加或修改Match指令: 使用Match指令可以更灵活地控制访问。例如,只允许特定IP地址访问SFTP:

    Match Address 192.168.1.100
        ForceCommand internal-sftp
        PasswordAuthentication yes
    

    这会强制来自192.168.1.100的用户只能使用SFTP,并且启用密码认证。

  4. 重启SSH服务: 保存并关闭文件后,重启SSH服务以应用更改:

    sudo systemctl restart sshd
    

方法二:使用防火墙规则

如果你使用的是iptablesfirewalld等防火墙工具,也可以通过设置防火墙规则来限制访问IP。

使用iptables

  1. 添加规则: 例如,只允许IP地址192.168.1.100访问SSH端口(默认是22):

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    

    第一条规则允许来自192.168.1.100的连接,第二条规则拒绝所有其他连接。

  2. 保存规则: 根据你的Linux发行版,保存iptables规则的命令可能不同。例如,在Debian/Ubuntu上:

    sudo iptables-save > /etc/iptables/rules.v4
    

    在CentOS/RHEL上:

    sudo service iptables save
    

使用firewalld

  1. 添加富规则: 例如,只允许IP地址192.168.1.100访问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. 验证规则: 确认规则已添加:

    sudo firewall-cmd --list-all
    

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

0
看了该问题的人还看了