如何配置 proftpd 仅监听 127.0.0.1 上的连接?如果我设置
DefaultAddress localhost
在 /etc/proftpd/proftpd.conf 中
并重新启动 proftp 我仍然能够从另一台计算机登录...
这是错误的选择吗?或者这只是一个愚蠢的用例,除了我之外没有人会需要这样的功能?!?
答案1
您是否尝试过使用127.0.0.1
而不是localhost
。也许/etc/hosts
其中有些奇怪的东西。
否则,ProFTPd 常见问题解答建议使用允许和拒绝选项,或者从 xinetd 运行它,或者启用 tcp 包装器模块并进行设置。
或者当然您可以使用 iptables。
答案2
为了proftpd
只在本地主机上监听,你可以同时使用DefaultAddress
和 SocketBindTight
,像这样:
DefaultAddress localhost
SocketBindTight on
默认情况下,proftpd
将监听全部给定端口的接口(例如“*:21”)。该SocketBindTight
指令指示proftpd
“紧密”绑定到地址/套接字,而不是使用通配符套接字(导致例如“127.0.0.1:21”。
答案3
配置文件中似乎没有选项。这是一种方法,它还允许您按用户名进行过滤(使用 PAM):
创建一个名为的文件,/etc/security/proftpd.conf
其中包含以下行:
+ : ALL : 127.0.0.1
+ : ALL : localhost
- : ALL : ALL
+ 表示允许,第二列是用户名,第三列是传入连接的主机名。因此,例如,+ : john : 127.0.0.2
将允许john
从 进行连接127.0.0.2
。A -
拒绝它们。
接下来,进行修改/etc/pam.d/proftpd
,在顶部附近的某处添加以下内容(我将其设为会话后的第一行)以使其读取新文件:
auth required pam_access.so accessfile=/etc/security/proftpd.conf
它应该立即生效,无需重新启动服务。