Назад | Перейти на главную страницу

привязать proftpd только к localhost

Как настроить 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.