Я только что установил vsftpd и запустил службу. Служба запущена, и мой дамп netstat показывает это (см. Ниже). Я также включил анонимный доступ для хорошей меры. Однако, когда я пытаюсь получить доступ к серверу с помощью FTP-клиента или даже просто через telnet на порт 21, я получаю сообщение «В соединении отказано».
Как мне решить эту проблему?
netstat -a:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:11110 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:macromedia-fcs *:* LISTEN
tcp 0 0 *:ndmp *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:19350 *:* LISTEN
tcp 0 0 *:lmsocialserver *:* LISTEN
tcp 0 0 localhost:19350 localhost:60863 ESTABLISHED
tcp 0 0 mischost:ssh c-71-56-64-141.hsd1.g:62946 ESTABLISHED
tcp 0 0 localhost:60863 localhost:19350 ESTABLISHED
tcp 0 196 mischost:ssh c-71-56-64-141.hsd1.g:18606 ESTABLISHED
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 mischost:http baiduspider-123-125-7:25479 FIN_WAIT2
udp 0 0 *:ndmp *:*
/ и т.д. / sysconfig / iptables:
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:92]
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1935 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -j ACCEPT
COMMIT
iptables -L -n:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 127.0.0.0/8 reject-with icmp-port-unreachable
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1935
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1111
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `iptables denied: '
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
«В соединении отказано» очень специфично. Это означает, что когда вы пытались подключиться к этой службе (отправив пакет SYN), вы получили конкретный ответ (пакет RST), означающий, что «сервер есть, но не предлагает услугу на этом порту. Без каких-либо брандмауэров в Таким образом, это ответ, который вы получили бы, если бы на этом порте ничего не прослушивалось. Поскольку вы убедились, что что-то прослушивает этот порт, этот ответ ДОЛЖЕН исходить от какого-то межсетевого экрана, либо от межсетевого экрана на самом сервере (который вы можете проверить с iptables -L -n
) или какой-либо другой брандмауэр между вами и сервером. Если это не сам сервер, это может быть любой другой маршрутизатор между сервером и клиентом.
Все это предполагает, что вы пытаетесь подключиться по Telnet к правильному IP-адресу.
Проверьте брандмауэр, если порт 21 открыт и у вас есть модули в брандмауэре для отслеживания соединений потока данных.