Я пытаюсь открыть порты FTP на своем сервере. У меня на сервере уже установлен vsftpd. Однако я не могу связаться с сервером через порты 20 и 21.
Каким-то образом это позволяет мне сейчас получить доступ к порту 21.
Я запускаю Ubuntu 9.10 (Karmic) Я также запускал: modprobe ip_conntrack modprobe ip_conntrack_ftp
Ниже приведен iptables -L на моем сервере
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere poseidon.valltek.com tcp dpts:ftp-data:ftp
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- poseidon.valltek.com anywhere tcp dpts:ftp-data:ftp
Я использовал www.ping.eu/port-chk/ для проверки порта. На всякий случай это была проблема с моей локальной машиной.
Спасибо.
Вы можете добавить ip_nat_ftp
в свой список, а также убедитесь, что все загружается с помощью команды lsmod
Это домашний сервер от какого-то интернет-провайдера? если это так, у вас может быть общая проблема, когда обычно интернет-провайдеры блокируют порты с 1 по 1024 для своих домашних пользователей, поэтому они не создают домашние серверы (этот подход используется в нескольких странах afaik).
Если это не так, убедитесь, что вы также установили ip_forward.
sudo echo "1" > /proc/sys/net/ipv4/ip_foward
Межсетевой экран (iptables)
# Allow FTP connections @ port 21
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# Allow Active FTP Connections
iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# Allow Passive FTP Connections
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
Ты сказал Somehow it is allowing me to access port 21 at the moment.
ты можешь что-нибудь скачать или загрузить? Если да, то это должно быть так, как показано ниже:
Активный FTP
В активном режиме FTP клиент подключается со случайного непривилегированного порта (N> 1023) к командному порту FTP-сервера, порту 21. Затем клиент начинает прослушивать порт N + 1 и отправляет FTP-команду PORT N + 1 FTP. сервер. Затем сервер снова подключится к указанному клиентом порту данных из своего локального порта данных, то есть порта 20.
С точки зрения серверного межсетевого экрана, для поддержки активного режима FTP необходимо открыть следующие каналы связи:
* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's port 20 to ports > 1023 (Server initiates data connection to client's data port)
* FTP server's port 20 from ports > 1023 (Client sends ACKs to server's data port)
Пассивный FTP
Чтобы решить проблему инициации сервером соединения с клиентом, был разработан другой метод для FTP-соединений. Это было известно как пассивный режим, или PASV, после команды, использованной клиентом, чтобы сообщить серверу, что он находится в пассивном режиме.
В пассивном режиме FTP клиент инициирует оба подключения к серверу, решая проблему брандмауэра, фильтрующего входящее соединение порта данных с клиентом с сервера. При открытии FTP-соединения клиент открывает два случайных непривилегированных порта локально (N> 1023 и N + 1). Первый порт связывается с сервером через порт 21, но вместо того, чтобы затем выдать команду PORT и разрешить серверу подключиться обратно к его порту данных, клиент выдает команду PASV. В результате сервер затем открывает случайный непривилегированный порт (P> 1023) и отправляет команду PORT P обратно клиенту. Затем клиент инициирует соединение от порта N + 1 к порту P на сервере для передачи данных.
С точки зрения серверного межсетевого экрана, для поддержки пассивного режима FTP необходимо открыть следующие каналы связи:
* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's ports > 1023 from anywhere (Client initiates data connection to random port specified by server)
* FTP server's ports > 1023 to remote ports > 1023 (Server sends ACKs (and data) to client's data port)