![Отключение FTP](https://rvso.com/image/488052/%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20FTP.png)
Я настраиваю новый сервер Debian, и мне не нужен FTP, поэтому я хочу его удалить. Согласно netstat -tap, ftp ничего не слушает. Однако, когда я делаю внешнее сканирование портов (nmap), он говорит, что порт ftp открыт (21). inetd ничего не запускает, xinetd отсутствует в системе.
Что я должен делать?
результат нажатия netstat
obu1:/etc/pam.d# netstat -tap Активные интернет-соединения (серверы и установленные) Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID/Имя программы tcp 0 0 *:225 *:* СЛУШАТЬ 2237/sbadm tcp6 0 0 *:ssh *:* СЛУШАТЬ 2399/sshd tcp6 0 448 obu1.hostname.:ssh rrcs-XXX-XXX-XXX-XXX:56721 УСТАНОВЛЕНО 16639/sshd: имя пользователя
NMap из нелокального
Запуск Nmap 4.90RC1 ( http://nmap.org ) в 2009-07-13 10:47 по восточному летнему времени Интересные порты на obu1.hostname (ipaddress): Не показано: 972 закрытых порта, 26 отфильтрованных портов ГОСУДАРСТВЕННАЯ ПОРТОВАЯ СЛУЖБА 21/tcp открыть ftp 22/tcp открыть ssh Nmap выполнен: 1 IP-адрес (1 хост активен) просканирован за 3,60 секунды
решение1
Вам следует знать, что Windows XP (и, вероятно, другие версии) имеет внутреннюю оболочку для FTP-подключений (ее цель — попытаться разрешить успешное выполнение команды PORT даже за брандмауэром или маршрутизатором).
Эта оболочка перехватывает любое соединение с любым хостом на порту 21, чтобы иметь возможность отслеживать его и пытаться открыть входящий порт команды PORT, выданной клиентом.
У этой оболочки также есть побочный эффект: поскольку она перехватывает любое соединение с портом 21, она посылает сигнал о том, что соединение установлено, программному обеспечению, которое будет видеть соединение как установленное, но на самом деле соединение установлено только с внутренней оболочкой Windows.
Затем оболочка пытается открыть соединение с реальным хостом, и если время ожидания истекает, то она посылает сигнал программному обеспечению о том, что соединение потеряно. Программное обеспечение будет считать соединение потерянным.
Подводя итог, можно сказать, что программное обеспечение считает, что соединение было успешно установлено, а затем потеряно, но на самом деле соединение не установлено.
Итак, в вашем случае, что происходит: вы запускаете nmap. Nmap пытается подключиться к вашему серверу на порту 21. Оболочка Windows перехватывает соединение. Nmap «думает», что подключен к вашему серверу (но подключен только к оболочке), и сообщает, что порт открыт.
Вы можете убедиться в этом, введя в командной строке:
фтп 4.3.2.1
Вы увидите: C:>ftp 4.3.2.1
Подключено к 4.3.2.1.
Соединение прервано внешним хостом.
Вы можете попробовать любой допустимый IP-адрес, FTP всегда будет подключаться и вскоре после этого отключаться, а должно выдаваться сообщение «Время ожидания соединения истекло».
Я никогда не видел никакой документации об этом. После многих исследований я обнаружил это странное поведение, и после дополнительных исследований обнаружил, почему оно здесь.
Что ж, вывод из этого (большого) ответа таков: порт 21 вашего сервера определенно закрыт, как сообщает netstat, и nmap обманывается этим поведением.
решение2
apt-get удалить --purge ftp
Замените ftp на то, как называется пакет. Я не уверен, как именно, но, насколько мне известно, эта команда должна работать.
apt-получить чистоту
Это очистит ваш каталог var после удаления.
решение3
Используйте одну из приведенных ниже команд, чтобы узнать, какая программа на самом деле прослушивает порт 21.
netstat -lp
lsof -i :21
Это поможет вам выяснить, какой именно пакет необходимо удалить или перенастроить.
решение4
Вы уверены, что сканируете правильный IP? netstat показывает порты 225 и 22, nmap показывает 21 и 22...либо вы сканируете неправильный IP, либо между ними стоит брандмауэр, который что-то делает, либо, возможно, какие-то правила iptables на вашем сервере перенаправляют пакеты. Я бы посоветовал проверить 'iptables -L -n', чтобы убедиться, что там нет ничего, связанного с FTP.