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

Почему xinetd игнорирует параметр привязки?

На сервере с proftpd, управляемым xinetd (plesk / centos FWIW), я хочу, чтобы proftpd слушал только определенный IP-адрес.

Я пробовал поставить bind = 12.34.56.78 в /etc/xinetd.d/ftp_psa, а также положив DefaultAddress 12.34.56.78 в /etc/proftpd.conf, но похоже, что это не работает.

После перезапуска xinetd nmap показывает, что порт 21 все еще прослушивается для другого моего общедоступного ip.

Кто-нибудь может сказать мне, что я делаю не так?

Просто в качестве теста я закомментировал всю службу ftp в файле конфигурации xinetd, и это отключило службу, так что я явно нахожусь в нужном месте, но bind варианты вроде не работают.

заранее спасибо

ОБНОВИТЬ: файлы конфигурации (комментарии для краткости)

/etc/xinetd.d/ftp_psa

#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST AFTER YOU UPGRADE PARALLELS PLESK PANEL.

service ftp
{
    flags       = IPv6
        disable     = no
    socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        instances       = UNLIMITED
        server          = /usr/sbin/in.proftpd
        server_args     = -c /etc/proftpd.conf
        bind            = 12.34.56.78
}

Я знаю, что здесь сказано не изменять, но я не обновлял plesk, а также попытался поместить привязку в раздел значений по умолчанию (в котором нет такого предупреждения):

/etc/xinetd.conf

defaults
{
    log_type    = SYSLOG daemon info
    log_on_failure  = HOST
    log_on_success  = PID HOST DURATION EXIT
    cps     = 50 10
    instances   = 50
    per_source  = 10
    v6only      = no
    groups      = yes
    umask       = 002
    bind            = 12.34.56.78
}

includedir /etc/xinetd.d

И для полноты: /etc/proftpd.conf

ServerIdent off
ServerName          "ProFTPD"
ServerType          inetd
DefaultServer           on
<Global>
DefaultRoot ~       psacln
AllowOverwrite      on
</Global>
DefaultTransferMode binary
UseFtpUsers         on
TimesGMT            off
SetEnv TZ :/etc/localtime
Port                21
DefaultAddress      12.34.56.78
SocketBindTight     on
Umask               022
MaxInstances            30
ScoreboardFile /var/run/proftpd/scoreboard
TransferLog /usr/local/psa/var/log/xferlog
<Directory /var/www/vhosts>
    GroupOwner  psacln
</Directory>
AuthPAM on
AuthPAMConfig proftpd
IdentLookups off
UseReverseDNS off
AuthGroupFile   /etc/group

Какую версию CentOS вы используете? Я только что попробовал CentOS 6.3. Файл xinetd называется /etc/xinetd.d/xproftpd, необходимо включить с настройкой disable=no в файле и сказав chkconfig proftpd on. Мне нужно только установить bind = 10.0.2.15 чтобы позволить proftpd слушать только этот адрес. Не нужно настраивать proftpd.conf дальше.

После изменения bind с определенным значением, я больше не мог подключиться ни к какому другому IP-адресу. Даже не localhost.

/etc/xinetd.d/xproftpd:

# default: off
# description: The ProFTPD FTP server serves FTP connections. It uses \
#   normal, unencrypted usernames and passwords for authentication.
service ftp
{
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.proftpd
    log_on_success      += DURATION USERID
    log_on_failure      += USERID
    nice            = 10
    disable         = no
    bind            = 10.0.2.15
}

chkconfig:

# chkconfig --list proftpd
proftpd         0:off   1:off   2:on    3:on    4:on    5:on    6:off

/etc/proftpd.conf все еще по умолчанию, кроме настройки ServerType inetd чтобы он работал с xinetd.