允许从LAN和一个外部IP访问ssh和proftp


1

我想允许通过ssh和proftp从整个LAN(192.168.1.x)和一个外部IP(外部ip总是与我的sub.dom.tld相关联)访问我的linux(debian)。我发现这篇文章https://stackoverflow.com/questions/18939285/how-to-access-my-ssh-linux-server-from-outside-my-home-network但我想保持外部IP新鲜(来自它可以随时改变,所以我只需在我的域名上为这个子域设置新的IP地址,我的linux盒子应该自动更新这个限制)。

有没有办法,如何限制访问我的Linux for ssh和proftp只是为了外部IP和整个局域网?

如果有一步一步的教程,那很好。谢谢

Answers:


1

有很多可能的方法可以做到这一点,有些是简单和坏(tcp_wrappers),有些是更好和复杂(iptables),有些是简单的,基本上是相同的好(firewalld

  1. TCP包装器(又名hosts_access),你可能需要mod_wrap模块到ProFTPd。在SSHD中它到目前为止工作正常。

    /etc/hosts.deny:
      ALL: ALL
    
    /etc/hosts.allow:
      sshd, proftpd: 192.168., 1.2.3.4
    

    如果您的局域网是192.168.0.0/16您的外部IP1.2.3.4

  2. Firewalld正在使用iptables它更加花哨,因为它们在网络级别阻止它:

    firewall-cmd --zone=internal --add-service=ssh
    firewall-cmd --zone=internal --add-service=ftp
    firewall-cmd --zone=internal --add-source=192.168.0.0/16
    firewall-cmd --zone=internal --add-source=1.2.3.4/32
    firewall-cmd --zone=public --remove-service=ssh
    firewall-cmd --zone=public --remove-service=ftp
    

    (资源)


谢谢Jakuje。我喜欢firewalld的想法。但是,如果外部IP发生变化,我该如何更新?
彼得2016年

不确定firewalld,但tcp_wrappers肯定也接受主机名。
Jakuje 2016年

我会尝试tcp_wrappers,但也许我应该在192.168之间加逗号。和1.2.3.4
彼得

是的,你是对的。缺少逗号。现在修复了。
Jakuje 2016年

我试着在hosts.allow中设置它,如“sshd,proftpd:192.168。,sub.domain.com”。一切正常,但如果使用sub.domain.com进行验证,它会检查来自外部IP的传入连接的反向查找。但是我应该如何设置 - >我的服务器应检查sub.domain.com的IP地址,如果传入连接的IP与sub.domain.com相同,则允许访问。我无法将ip地址的反向查找设置为sub.domain.com,但我可以为子域sub.domain.com设置IP地址。
彼得
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.