Здравствуйте уважаемые знатоки!
Вопрос довольно избитый но даже перерыв за пару дней инет не нашел ничего подходящего, хотя и до найденных предложений все перепробовал осталось одно - уповать на Вашу милость.
Итак суть - есть прекрастно работающий в локалке профтпд и неработающий за роутером на которм крутится линуха с iptables. В фтп есть диапазон портов для PassivePorts а на роутере собственно делается днат этих портов.При подключении к серверу из инета авторизация проходит успешно но все глохнет на этапе открытия канала данных с лаконичным кодом ошибки 425.Удобней было бы если фтп работал в активном режиме(с 20 портом для данных) но как я понимаю он этого не может делать(либо я что-то напортачил). Устраивает и вариант к пассивным режимом.
Заранее благодарю за любые приемлемые подсказки.
>[оверквотинг удален]
>- уповать на Вашу милость.
>Итак суть - есть прекрастно работающий в локалке профтпд и неработающий за
>роутером на которм крутится линуха с iptables. В фтп есть диапазон
>портов для PassivePorts а на роутере собственно делается днат этих портов.При
>подключении к серверу из инета авторизация проходит успешно но все глохнет
>на этапе открытия канала данных с лаконичным кодом ошибки 425.Удобней было
>бы если фтп работал в активном режиме(с 20 портом для данных)
>но как я понимаю он этого не может делать(либо я что-то
>напортачил). Устраивает и вариант к пассивным режимом.
>Заранее благодарю за любые приемлемые подсказки.MasqueradeAddress ?
А я то понадеялся на snat. Действительно не хватало строчки вроде
-A POSTROUTING -s lan_ip -o eth0:1 -p tcp -m state --state NEW,ESTABLISHED,RELATED -j MASQUERADE
Сейчас себя извне проверил и по крайней мере dial up говорит что все в ажуре.
Низкий тебе поклон!
>А я то понадеялся на snat. Действительно не хватало строчки вроде
> -A POSTROUTING -s lan_ip -o eth0:1 -p tcp -m state --state
>NEW,ESTABLISHED,RELATED -j MASQUERADE
>Сейчас себя извне проверил и по крайней мере dial up говорит что
>все в ажуре.
>Низкий тебе поклон!вообще то я имел ввиду MasqueradeAddress как параметр в конфиге proftpd. :)
Я пробовал там писать это - не работало. И даже сейчас проверил если в proftp.conf делать маскарадинг на внешний ип роутера то канал данных не открывается. Когда же убираю маскарадинг на фтп сервере но оставляю маскарадинг в iptables то работает так же как и утром(правда сейчас я тоже dial up использую для проверки). Кстати мне сообщили что извне все же не могут зайти на фтп(но это я уже сам проверю вечером).Так что вот так у нас.Ну по крайней мере есть зацепки куда рыть.
>Я пробовал там писать это - не работало. И даже сейчас проверил
>если в proftp.conf делать маскарадинг на внешний ип роутера то канал
>данных не открывается. Когда же убираю маскарадинг на фтп сервере но
>оставляю маскарадинг в iptables то работает так же как и утром(правда
>сейчас я тоже dial up использую для проверки). Кстати мне сообщили
>что извне все же не могут зайти на фтп(но это я
>уже сам проверю вечером).Так что вот так у нас.Ну по крайней
>мере есть зацепки куда рыть.посмотрите на клиенте какой адрес присылает сервер с MasqueradeAddress и без.
1.)Без маскарадинга на фтп, в клиенте указывается локальный адрес сервера и последние сообщения таковы
Command: PASV
Response: 227 Entering Passive Mode (192,168,250,98,230,235).
Status: Server sent passive reply with unroutable address. Passive mode failed.
Command: PORT 192,168,1,2,231,19
Response: 500 Illegal PORT command
Error: Failed to retrieve directory listing
2.)При наличии маскарадинга, в клиенте фигурирует адрес роутера и такие сообщения
Command: PASV
Response: 227 Entering Passive Mode (wan_ip,230,214).
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listingНо ведь в первом случае диал ап открывает же канал а адсл не хочет...
>[оверквотинг удален]
>сообщения таковы
>Command: PASV
>Response: 227 Entering Passive Mode (192,168,250,98,230,235).
>
>Status: Server sent passive
>reply with unroutable address. Passive mode failed.
>Command: PORT 192,168,1,2,231,19
>Response: 500 Illegal PORT command
>Error: Failed to retrieve
>directory listingзначит MasqueradeAddress нужен
>[оверквотинг удален]
>Command: PASV
>Response: 227 Entering Passive Mode (wan_ip,230,214).
>Command: LIST
>Error: Connection timed out
>
>Error: Failed to retrieve
>directory listing
>
>Но ведь в первом случае диал ап открывает же канал а адсл
>не хочет...диал ап подключаете к провайдеру или к своей машине?
где провайдер будет искать 192.168/16 подсеть? он грохнит пакет просто и все.а вот с wan_ip другой вопрос.
wan_ip у машины или у модема, если модем adsl?
tcpdump на интерфейсах покажет продвижение пакетов.
1.)Диал ап подключен к провайдеру.
2.)192.168/16 это домашняя подсеть. Фтп клиенту скармливал и wan адрес адсл роутера но картина существенно не менялась, разве что в логах указывался адрес провайдера.
3.)wan_ip это адрес роутера за которым прячется фтп.Вот сейчас на работе опять же диал апом проверяю эти два состояния
1.)MasqueradeAddress включенFileZilla log
Command: PASV
Response: 227 Entering Passive Mode (wan_ip,230,214).
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listingtcpdump 'port !22'
...
10:45:31.903292 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: . ack 1 win 8760
10:45:31.913925 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 1:24(23) ack 1 win 5840
10:45:32.045378 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 1:12(11) ack 24 win 8737
10:45:32.045533 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: . ack 12 win 5840
10:45:32.050640 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 24:56(32) ack 12 win 5840
10:45:32.181453 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 12:22(10) ack 56 win 8705
10:45:32.197662 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 56:82(26) ack 22 win 5840
10:45:32.322246 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 22:27(5) ack 82 win 8679
10:45:32.324875 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 82:116(34) ack 27 win 5840
10:45:32.470883 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 27:35(8) ack 116 win 8645
10:45:32.472687 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 116:135(19) ack 35 win 5840
10:45:32.600672 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 35:41(6) ack 135 win 8626
10:45:32.603722 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: P 135:187(52) ack 41 win 5840
10:45:32.757087 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: P 41:47(6) ack 187 win 8574
10:45:32.796470 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: . ack 47 win 5840
10:45:54.305749 IP host-static-212-0-220-130.moldtelecom.md.servergraph > 192.168.250.98.ftp: F 47:47(0) ack 187 win 8574
10:45:54.345443 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.servergraph: . ack 48 win 58402.)MasqueradeAddress выключен
FileZilla log
Command: PASV
Response: 227 Entering Passive Mode (192,168,250,98,231,33).
Status: Server sent passive reply with unroutable address. Passive mode failed.
Command: PORT 212,0,220,130,230,238
Response: 200 PORT command successful
Command: LIST
Response: 150 Opening ASCII mode data connection for file list
Response: 226 Transfer complete
Status: Calculating timezone offset of server...
Command: MDTM Chapter4.doc
Response: 213 20090424073339
Status: Timezone offsets: Server: 0 seconds. Local: 10800 seconds. Difference: 10800 seconds.
Status: Directory listing successfultcpdump 'port !22'
...
10:53:45.464122 IP host-static-212-0-220-130.moldtelecom.md.propel-msgsys > 192.168.250.98.ftp: P 81:87(6) ack 284 win 8477
10:53:45.466789 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: S 2236366077:2236366077(0) win 5840 <mss 1460,sackOK,timestamp 2756373239 0,nop,wscale 4>
10:53:45.469071 IP host-static-212-0-220-130.moldtelecom.md.propel-msgsys > 192.168.250.98.ftp: . ack 284 win 8477
10:53:45.503455 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.propel-msgsys: . ack 87 win 5840
10:53:45.557696 IP host-static-212-0-220-130.moldtelecom.md.propel-msgsys > 192.168.250.98.ftp: . ack 284 win 8477
10:53:45.620907 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: S 46124826:46124826(0) ack 2236366078 win 65535 <mss 1460,nop,wscale 2,nop,nop,timestamp 0 0,nop,nop,sackOK>
10:53:45.621075 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: . ack 1 win 365 <nop,nop,timestamp 2756373393 0>
10:53:45.622559 IP 192.168.250.98.ftp > host-static-212-0-220-130.moldtelecom.md.propel-msgsys: P 284:338(54) ack 87 win 5840
10:53:45.627530 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: P 1:344(343) ack 1 win 365 <nop,nop,timestamp 2756373400 0>
10:53:45.628667 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: F 344:344(0) ack 1 win 365 <nop,nop,timestamp 2756373401 0>
10:53:45.798964 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: . ack 1 win 32768 <nop,nop,timestamp 49350 2756373393>
10:53:45.898654 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: . ack 345 win 32682 <nop,nop,timestamp 49351 2756373400>
10:53:45.908776 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: F 1:1(0) ack 345 win 32682 <nop,nop,timestamp 49351 2756373400>
10:53:45.908900 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: . ack 2 win 365 <nop,nop,timestamp 2756373681 49351>Сам пытался разобратся в логах tcpdump, но кроме того что в одном случае канал данных не поднимается а в другом да ничего не заметил.
>[оверквотинг удален]
>10:53:45.627530 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: P 1:344(343) ack 1 win 365 <nop,nop,timestamp 2756373400 0>
>10:53:45.628667 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: F 344:344(0) ack 1 win 365 <nop,nop,timestamp 2756373401 0>
>10:53:45.798964 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: . ack 1 win 32768 <nop,nop,timestamp 49350 2756373393>
>10:53:45.898654 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: . ack 345 win 32682 <nop,nop,timestamp 49351 2756373400>
>10:53:45.908776 IP host-static-212-0-220-130.moldtelecom.md.59118 > 192.168.250.98.ftp-data: F 1:1(0) ack 345 win 32682 <nop,nop,timestamp 49351 2756373400>
>10:53:45.908900 IP 192.168.250.98.ftp-data > host-static-212-0-220-130.moldtelecom.md.59118: . ack 2 win 365 <nop,nop,timestamp 2756373681 49351>
>
>Сам пытался разобратся в логах tcpdump, но кроме того что в одном
>случае канал данных не поднимается а в другом да ничего не
>заметил.при MasqueradeAddress выключен, канал данных по моему подымает сервер, так как пассивный режим не включился.
а не через Диал ап, как клиент подключен к провайдеру?
дамп снимали на внутреннем интерфейсе роутера? а что на внешнем?
а домашняя подсеть тут при чем? или там FTP сервер и стоит?
Установлен ProFTPD на Ubuntu Server 10.04 LTS
В локалке работает отлично. Из вне без проблем подключается через Total Commander, в браузерах же тупо виснет и не отображает содержимое. Ошибок не выдает.
Листинг конфига ProFTPD
UseIPv6 off
IdentLookups on
AllowOverwrite on
AuthAliasOnly on
UserAlias intec userftp
ServerName "intec.in.ua"
ServerType standalone
DeferWelcome on
MultilineRFC2228 on
DefaultServer on
ShowSymlinks off
TimeoutNoTransfer 900
TimeoutIdle 600
DisplayChdir .message
ListOptions "-l"
RequireValidShell off
TimeoutLogin 20
RootLogin off
ExtendedLog /var/log/ftp.log
TransferLog /var/log/xferlog
SystemLog /var/log/syslog.log
UseFtpUsers off
AllowStoreRestart on
Port 21
MaxInstances 8
User nobody
Group nogroup
Umask 022
PassivePorts 60000 65000
PersistentPasswd off
MaxClients 8 "Достигнут предел на количество клиентов"
MaxClientsPerHost 8 "Достигнут предел на количество клиентов с Вашего хоста"
MaxClientsPerUser 8 "Достигнут предел на количество подключений (%m)"
MaxHostsPerUser 8 "Больше нельзя"
AccessGrantMsg "Hello!!!"
ServerIdent on "INTEC.IN.UA"
DefaultRoot /home/FTP-shared
DefaultRoot ~
MaxLoginAttempts 5 "Количество попыток входа исчерпано - придется подождать, ничего не поделаешь, безопасность превыше всего"
<Limit LOGIN>
AllowUser userftp
DenyALL
</Limit>
<Directory /home/FTP-shared>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory /home/FTP-shared/public/*>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory> /home/FTP-shared/upload/>
Umask 022 022
AllowOverwrite on
<Limit READ RMD DELE>
DenyAll
</Limit>
<Limit STOR CWD MKD>
AllowAll
</Limit>
</Directory>
# анонимный доступ
#<Anonymous /home/FTP-shared>
#User userftp
#Group nogroup
#UserAlias anonymous userftp
#MaxClients 8 "Извините, максимум %m пользователей - попробуйте подключиться позже"
#DisplayChdir .message
#<Directory /home/FTP-shared/public/*>
#<Limit WRITE>
#DenyAll
#</Limit>
#</Directory>
#</Anonymous>