Как настроить proftpd для прослушивания соединений только на 127.0.0.1? Если я установил
DefaultAddress localhost
в /etc/proftpd/proftpd.conf
и перезапустите proftp, я все еще могу войти в систему с другого компьютера ...
это неправильный вариант? Или это просто глупый вариант использования и никому, кроме меня, никогда не понадобится такая функциональность?!?
Получить proftpd
чтобы слушать только на localhost, вы должны использовать оба DefaultAddress
и SocketBindTight
, вот так:
DefaultAddress localhost
SocketBindTight on
По умолчанию, proftpd
буду слушать все интерфейсы для данного порта (например «*: 21»). В SocketBindTight
директива говорит proftpd
для «плотной» привязки к адресу / сокету вместо использования подстановочного знака сокета (что приводит к например «127.0.0.1:21»).
Не похоже, что в файле конфигурации есть опция. Это один из способов сделать это, который также позволит вам фильтровать по имени пользователя (используя 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
Это должно вступить в силу немедленно, без перезапуска службы.
Вы пробовали использовать 127.0.0.1
вместо того localhost
. Может быть /etc/hosts
там что-то странное.
В противном случае ProFTPd FAQ предлагает использовать параметры Allow и Deny, или запустить его из xinetd, или включить модуль tcp wrappers и настроить его.
Или, конечно, вы можете использовать iptables.