Страница 1 из 1

IIS 6.0 FTP

Добавлено: 25 сен 2003, 16:46
Vims
Что такое не совсем пойму захожу на сервер логин проходит нормально
G:\>ftp
ftp> open ftp.antsaf.com
Connected to ftp.antsaf.com.
220-Microsoft FTP Service
220 Antsaf FTP server welcome you!!!
User (ftp.antsaf.com:(none)): administrator
331 Password required for administrator.
Password:
230-Hello!
This is antsaf.com ftp server.
In case of any questions contact info@antsaf.c
Thank you
230 User administrator logged in.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls

вот тут виснет раньше все пахало
Спасибо

ftp client

Добавлено: 26 сен 2003, 14:11
dima
Check what the port number PORT sent. Make sure that port is open on FireWall. If you will succeed to use PASV with ftp.exe, then let me know ... I didn't find out how ...

regards
me 8)

Добавлено: 26 сен 2003, 17:34
vg
Vims,
Не слушай английских мальчиков (впрочем, про английских, я уже писал топике).

По тому, что ты пропостил, не трудно догадасться, что у тебя прикрыт 20-й порт (трансфер), имхо. Это ни как не связано с IIS. Это связано с ftp (RFC 959).
Для работы ftp в общем случае необходимо два порта - 20 и 21.

ftp-data 20/tcp File Transfer [Default Data]
ftp-data 20/udp File Transfer [Default Data]
ftp 21/tcp File Transfer [Control]
ftp 21/udp File Transfer [Control]

21 - порт используется для контроля передачи. Клиент устанавливает (активно) управляющиее соединение к 21 порту сервера (тот открывает соединение пассивно) для передачи FTP-комманд серверу и получению от него FTP-откликов. Управляющее соединение существует все время, пока клиент общается с сервером.

По 20 -му порту (серверному) собственно и происходит передача данных под "надзором" управляющего соединения по порту 21 (серверного).

Так, что "Check what the port number PORT sent", я бы перефразировал
Check the portS number ...

Добавлено: 27 сен 2003, 02:06
vg
Да, Vims, ещё забыл спросить. Чем кончилось с иксчангой?
Мы получили новый рейд и комп к нему. Тоже предстоит передвигать.
Вроде тоже есть кое-какие соображения (например, взвести в том же сайте ещё один сервер, потом сделать роутинг-групп, сделать трансфер всего со старого сервера на новую иксчангу, убить старого сервера, возможно почистить руками AD, если понадобится). Как думаешь? Что у тебя получилось? Писни в форум, если не жалко, или в приват.

Добавлено: 27 сен 2003, 13:56
Vims
vg писал(а):Так, что "Check what the port number PORT sent", я бы перефразировал
Check the portS number ...
Вот мня я это все знал и открывал 20 и 21 соответсвенно просто когда форвардил 20 недопечатал одну "1" 10.1.1.1 вместо 10.1.1.11 вот и все. С иксчангой пока жду команды не делал еще босс главный тормозит что то

Добавлено: 27 сен 2003, 15:24
vg
Vims,
Про недопечатал "1". Да, бывает. У меня как-то было другое. Как-то устал вечером на работе. Беру телефон. Звоню знакомой девчёнке. Набираю на клавиатуре телефона!!!! свой ip. Некотое время не могу понять, почему не могу дозвониться. При этом всячески ругаю ТТС.
Ты представляешь? :lol:

Добавлено: 27 сен 2003, 21:42
Vims
vg писал(а):Vims,
Про недопечатал "1". Да, бывает. У меня как-то было другое. Как-то устал вечером на работе. Беру телефон. Звоню знакомой девчёнке. Набираю на клавиатуре телефона!!!! свой ip. Некотое время не могу понять, почему не могу дозвониться. При этом всячески ругаю ТТС.
Ты представляешь? :lol:
нормально нормально, жаль что не дозвонился а то была бы хохма...

Добавлено: 29 сен 2003, 14:59
dima
diar vg.

1. as far as I know ftp.exe connect to TCP port 21 only, so if it's close on the FireWall, your connect will failed (from the log you can see that connect succeed).
2. When ftp client send PORT command, it send clint's ip and port (you think it still 21 ?) for ftp server connect, and server initiate tcp/ip connect to send port number. If this port is closed on the FireWall ftp clinet will no respond and still wait for server's connect (as in example).
3. I still using English. ... sorry

Добавлено: 30 сен 2003, 00:45
vg
Уважаемый, dima.

Тема, которую Вы затронули, в общем-то хорошо известна. В Сети очень много публикаций. Несмотря на это, не только Вы, но иногда некоторые начинающие админы имеют неверное представление о том, что и как работает. Здесь я ни в коем случае не хочу сказать что-либо обидное для Вас. Напротив, мне импонируем мягкий, вежливый стиль Вашего предыдущего поста.
То, что Вы с моей точки зрения, мягко говоря, несколько заблуждаетесь – это моя и только моя точка зрения. На этом форуме есть специалисты, которые могут Вам подсказать - что и как. Да, и возможно Вы на самом деле являетесь опытным системным администратором. Как знать?

Главная беда здесь (не только Ваша), в том, что люди пренебрегают «базовыми» понятиями и соответствующей литературой (RFC). Что и как должно работать в FTP, в частности, тоже там написано. Там самое важное. И важность этого не зависит от того, как на той или иной платформе реализован стек TCP/IP и собственно FTP –сервер и клиент. Я не случайно в своём ответе Vims-у отметил именно RFC 959.
Если Вы почитаете этот документ внимательно, то к своему удивлению Вы возможно обнаружите, что модель FTP тем и отличается от большинства протоколов прикладного уровня, что использует два соединения по 21–му серверному порту (соединение управления передачей) и по 20-му порту серверному порту(соединение, собственно для передачи данных).
Об этом собственно и был мой пост Vims-у. То, что Вы говорите в своём посте о достаточности только 21-го порта – это ложное утверждение.

Вы пишете:
1. as far as I know ftp.exe connect to TCP port 21 only, so if it's close on the FireWall, your connect will failed (from the log you can see that connect succeed).
Но!!! Говоря, что Ваш клиент использует только 21 серверный порт и не использует 20 – порт Вы здесь глубоко заблуждаетесь. Действительно управляющее соединение устанавливается по 21-му порту. И Вы правильно пишите, что если закрыть 21-порт на серверной стороне, то ни о какой передаче не может быть и речи. Но то, что FireWall в момент передачи позволяет Вам отправлять пакеты на 20-порт (и получать пакеты с этого порта) – это всё скрыто в конфигах Вашего FireWall. Загляните в них, и возможно Вы сразу найдёте ответ. Если нет возможности посмотреть конфиг – посмотрите логии Вашего трафика. Там непременно найдётся 20-й порт, если только Вы передавали данные. Если будете анализировать трафик, то обратите внимание, что соединения по 20-му порту существуют только в периоду «перекачки» (затем соединения закрываются), в то время, как управляющее соединение по 21-му порту - существует на протяжении всего сеанса.

Я понимаю, что поскольку я сослался только на RFC (я действительно считаю RFC- главными документами) у Вас могут возражения, что, дескать, в «практике» это все может быть и не так. Я Вас уверяю, что так. Вот посмотрите на конфигурации прокси от Майкрософт (там два варианта, когда ftp «на» и «за прокси»). Надеюсь, Майкрософт-то Вы доверяете:

1) Co-locating FTP services with Proxy
FTP Server IN (Filter 1 of 2)
Protocol = TCP
Direction = IN
Local Port = 21
Remote Port = Any

FTP Server OUT (Filter 2 of 2)
Protocol = TCP
Direction = BOTH
Local Port = 20
Remote Port = Any

FTP Server Dynamic (Optional)
Protocol = TCP
Direction = BOTH
Local Port = Dynamic port (1025-5000)
Remote Port = Any

2) Ftp за MS Proxy Server 2.0
DIR PROTOCOL LOCAL PORT REMOTE PORT LOCAL ADDRESS REMOTE ADDRESS
In TCP 21 Any Default Any
Both TCP 20 Any Default Any



Дополнительную литературу по конфигурации прокси для работы с FTP вы можете найти здесь:


Q236001
Microsoft Knowledge Base Article – 236001
Err Msg: 425 Can't Open Data Connection

.. to allow FTP port 20 to be bound to the external interface…

Q174785
Microsoft Knowledge Base Article – 174785
Common Packet Filters
FTP Server IN (Filter 1 of 2)
Protocol = TCP
Direction = IN
Local Port = 21
Remote Port = Any


FTP Server OUT (Filter 2 of 2)
Protocol = TCP
Direction = BOTH
Local Port = 20
Remote Port = Any


Вы можете возразить, что, мол, прокси это не ещё не «настоящий» FireWall, да и технология прокси, существенно отличается, например, от NAT. Но тогда посмотрите вот это (это тоже от Майкрософт) про NAT:


Q254018
How to Configure Input Filters for Services That Run Behind Network Address Translation

Client External File Transfer Protocol (FTP) Access
Use the following configuration if you want to enable internal clients to connect to FTP servers on the Internet:
Source 0.0.0.0 Protocol TCP Source Port 21
Source 0.0.0.0 Protocol TCP Source Port 20

FTP Server Access
Use the following configuration if you run a FTP server on the NAT computer and want it to be accessible to Internet users:
Source 0.0.0.0 Protocol TCP Destination Port 21
Source 0.0.0.0 Protocol TCP Destination Port 20


Вы можете возразить, что Майкрософт-майкрософтом. А на других платформах как?
Точно также. Например, прочитайте вот эту статью (или выдержку из неё ниже).

http://info.krc.karelia.ru/unix/FreeBSD/ipfw/ipfw.shtml

Настройка роутера на базе FreeBSD

# Разрешаем работу с FTP серверами
# Обратите внимание что 20 порт протокола TCP используется для
# передачи данных, помимо 21 порта.
${fwcmd} add pass tcp form any 21 to any
${fwcmd} add pass tcp from any to any 21
${fwcmd} add pass tcp from any 20 to any
${fwcmd} add pass tcp from any to any 20



Сразу скажу, чтобы не навредить Вам, что приведённый выше фрагмент ACL для FreeBSD – очень примитивен. И его, конечно, не стоит непосредственно использовать в реальной ситуации. Но фрагмент этого ACL позволяет понять - что и как.

Напоследок приведу Вам реальный трафик, который я записал при попытке «качнуть» файл readme.txt c ftp.microsoft.com. Вначале приводятся команды ftp-клиента (чтобы Вам было понятно, что я там делал), а затем, собственно, фрагмент лога с пояснениями.

C:\>ftp
ftp> open ftp.microsoft.com
Connected to ftp.microsoft.com.
220 Microsoft FTP Service
User (ftp.microsoft.com:(none)): ftp
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230-This is FTP.Microsoft.Com
230 Anonymous user logged in.
ftp> cd developr
250 CWD command successful.
ftp> get readme.txt
200 PORT command successful.
150 Opening ASCII mode data connection for readme.txt(1427 bytes).
...
...



open ftp.microsoft.com - активно соединяемся

9/30/2003, 17:41:19, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, SYN
9/30/2003, 17:41:21, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, SYN ACK
9/30/2003, 17:41:21, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK


начинаем говорить о паролях и других глупостях
здесь же делаем
ftp> cd developr


9/30/2003, 17:41:23, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:41:23, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:41:27, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, PSH ACK
9/30/2003, 17:41:28, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:41:28, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:41:37, x.y.w.z, 195.133.115.11, Tcp, 65074, 25, ACK
9/30/2003, 17:41:41, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, PSH ACK
9/30/2003, 17:41:42, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:41:42, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:41:44, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:41:44, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:41:58, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, PSH ACK
9/30/2003, 17:42:00, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, ACK
9/30/2003, 17:42:00, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:42:00, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:42:20, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, PSH ACK
9/30/2003, 17:42:21, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:42:21, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, PSH ACK
9/30/2003, 17:42:23, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:42:23, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK


Пытаемся качнуть файл readme.txt
ftp> get readme.txt
200 PORT command successful.
150 Opening ASCII mode data connection for readme.txt(1427 bytes).



9/30/2003, 17:42:26, 207.46.133.140, x.y.w.z, Tcp, 20, 65142, SYN
9/30/2003, 17:42:26, x.y.w.z, 207.46.133.140, Tcp, 65142, 20, SYN ACK
9/30/2003, 17:42:27, 207.46.133.140, x.y.w.z, Tcp, 20, 65142, PSH ACK
9/30/2003, 17:42:27, x.y.w.z, 207.46.133.140, Tcp, 65142, 20, ACK

Здесь в четырёх строках выше создано TCP-соединение, собственно для передачи
файла с 20-го порта сервера мелкософта


9/30/2003, 17:42:28, x.y.w.z, 207.46.133.140, Tcp, 65142, 20, RST

Упс... Провода плохие. Возвращаемся к управляющему соединению.

9/30/2003, 17:42:29, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:42:29, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:43:40, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, PSH ACK
9/30/2003, 17:43:40, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:43:46, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, FIN PSH ACK
9/30/2003, 17:43:46, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, ACK
9/30/2003, 17:43:46, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, FIN ACK
9/30/2003, 17:43:51, x.y.w.z, 207.46.133.140, Tcp, 65134, 21, FIN ACK
9/30/2003, 17:44:03, 207.46.133.140, x.y.w.z, Tcp, 21, 65134, ACK

До свидания... (это про трафик)


А Вам всего хорошего.

Добавлено: 30 сен 2003, 07:44
dima
[trn]uvazhaemyj[/trn] vg.
[trn]
Spasibo za otvet ! [/trn]WOW ! [trn]dazhe neprilichno otvechat' na takoj posting, no ya vsetaki poprobuyu.

Ya k sozhalenuy ne admin (i dazhe ne nachinaushij) i poetomu u menya net vozmozhnosti proverit'
logi. No ya nemnogo znakom s [/trn]RFC 959[trn]. Sleduya vashemu sovetu, ya eshe raz otrkyl [/trn]RFC 959
(http://www.w3.org/Protocols/rfc959/Overview.html) [trn]i perechital ego. I vot moi vam vozrazheniya.

Davajte predpolozhim chto ftp server rabotaet po 21 portu (chto vovse ne obyazatel'no kstati).

1. Tot fakt, chto Proxi ispol'zuet port 20 nikakogo otnosheniya k RFC 959 ne imeet.

2. Skachivanie failov s servera mogut peredavat'sya dvumya putyami (SLEDUYA [/trn]RFC 959[trn]):
- Passive mode - po soedineniu otkytomu cherez 21 port
- Active mode - po portu peredannomu klientom (komanda [/trn]PORT[trn]. smotri [/trn]RFC 959).[trn]
Kak klient vybiraet port ? a kak hochet. i server otrkivaet so svoej storony soedinenie po etomu portu.
Esli etot peredannyj port zakrit, to klient "visit" i zhdet, a esli net, to server i klient
obshautsya po dvum soedineniyam. K chemu ya vse eto - ni o kakom zaranee izvestnom porte dlay
data transferring or data control rechi ne idet i port 20 zdes' opyat' ne prichem.

3. Davajte otkroem ishodniki ftp servera i ftp clienta. Est' tam ispol'zovanie 20-go porta dlya
processa peredachi dannyh ? ...netu

4. Davajte "napishem" svoj ftp clinet v kotorom nikak ne budem ispl'zovat' port 20 i skachaem
fajl s ftp servera. Mozhem - zaprosto. kak uchastvuet port 20 ? nikak.

4. Esli-by port 20 ispol'zovalsya kak vy i govorite, to veroyatno stalo-by zatrudnitel'nim odnovremennaya
rabota neskol'kih ftp klientov (s odnogo komputera) s odnim ftp serverom. Kakoj iz klientov ispol'zuet
port 20 ?

5. Posmotrite kakie soedineniya otkryty na vashem komputere vo vremya skachivaniay fajla cherez
netstat. Nikakogo 20-go porta.


uvazhaemyj vg, mozhet ya chto-to propustil ili ne tak traktuyu [/trn]RFC 959[trn], no pozhalujsta prishlite
ssilku gde skazano pro ispol'zovanie porta 20 v FTP protokole [/trn](RFC 959).[trn] Fakt ispol'zovaniya 20 port v vashem [/trn]TCP/IP dump[trn]e bessporen, no ya ne uveren, chto on ispol'zuetsya [/trn] ftp.exe[/Trn]

izvenite za grammaticheskie oshibki
[/Trn]
dima