Я установил Debian Squeeze на компьютер с Windows с Oracle Virtualbox. Затем я перенаправил порт 21 на адаптере NAT.
В Debian я запускал:
apt-get install proftpd
Затем я раскомментировал PassivePorts, так что порты с 49152 по 49155 доступны как пассивные. Затем я раскомментировал MasqueradeAddress и установил его на 127.0.0.1.
Затем после попытки быстрого подключения в FileZilla я получаю:
Status: Connecting to 127.0.0.1:21...
Status: Connection established, waiting for welcome message...
Response: 220 FTP Server ready.
Command: USER webserver
Response: 331 Password required for webserver
Command: PASS *
Response: 230 User webserver logged in
Command: OPTS UTF8 ON
Response: 200 UTF8 set to on
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory
Command: TYPE I
Response: 200 Type set to I
Command: PASV
Response: 227 Entering Passive Mode (127,0,0,1,192,3).
Command: MLSD
Error: Connection timed out
Error: Failed to retrieve directory listing
Как это исправить? Кажется, что это что-то связано с виртуальной машиной (которая сейчас работает на той же машине), потому что все учебные пособия предполагают, что она должна работать после простого запуска apt-get
.
Вам нужно будет включить PassivePorst
в твоем proftd.conf
-
PassivePorts 35000 40000
Включите ip_conntrack_ftp
модуль
modprobe ip_conntrack_ftp
В вашем брандмауэре должны быть открыты все порты, относящиеся к ftp / пассивному ftp -
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
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
iptables -A INPUT -p tcp --sport 1024: --dport 35000:40000 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 35000:40000 -m state --state ESTABLISHED,RELATED -j ACCEPT