将proftpd仅绑定到localhost

我如何configurationproftpd只监听127.0.0.1上的连接? 如果我设置

DefaultAddress localhost 

在/etc/proftpd/proftpd.conf中

并重新启动proftp我仍然能够从另一台计算机login…

这是错误的select? 或者,这只是一个愚蠢的用例,除了我以外,没有人会需要这样的function?!?

你尝试使用127.0.0.1而不是localhost 。 也许/etc/hosts在那里有一些奇怪的东西。

否则, ProFTPd FAQbuild议使用Allow和Deny选项,或者从xinetd运行它,或者启用tcp wrappers模块并设置它。

或者当然你可以使用iptables。

为了让proftpd只在本地主机上侦听,你可以同时使用DefaultAddress SocketBindTight ,如下所示:

 DefaultAddress localhost SocketBindTight on 

默认情况下, proftpd将侦听给定端口的所有接口( 例如 “*:21”)。 SocketBindTight指令告诉proftpd将“紧密地”绑定到地址/套接字,而不是使用通配符套接字( 例如导致“127.0.0.1:21”)。

它看起来不像configuration文件里面有一个选项。 这是做到这一点的一种方法,它也允许你通过用户名(使用PAM)进行过滤:

创build一个名为/etc/security/proftpd.conf的文件,其中包含以下行:

 + : ALL : 127.0.0.1 + : ALL : localhost - : ALL : ALL 

+表示允许,第二列是用户名,第三列是传入连接的主机名。 所以,例如, + : john : 127.0.0.2将允许john127.0.0.2连接。 A -否认他们。

接下来,修改/etc/pam.d/proftpd以在顶部附近(我使它成为会话之后的第一行)添加以下内容以使其读取新文件:

 auth required pam_access.so accessfile=/etc/security/proftpd.conf 

它应该立即生效,无需重新启动服务。