FTP
FTP (File Transfer Protocol — протокол передачи файлов)— протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверами.
Протокол не шифруется, при аутентификации передаёт логин и пароль открытым текстом. Если злоумышленник находится в одном сегменте сети с пользователем FTP, то в случае построения сети на хабе (если сеть строится на свитчах по умолчанию это исключено, но злоумышленник может перехватить трафик, если сменит mac адрес своего сетевого адаптера на mac адрес адаптера жертвы, поскольку коммутация выполняется на 2ом уровне модели OSI (по mac адресам), используя пассивный сниффер, он может перехватить логин и пароль пользователя, или, при наличии специального ПО, получать передаваемые по FTP файлы без авторизации. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных SSL, который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.
Процесс нешифрованной авторизации проходит в несколько этапов (символы \r\n означают перевод строки):
Установка TCP-соединения с сервером (обычно на 21 порт)
Посылка команды USER логин\r\n
Посылка команды PASS пароль\r\n
Если к серверу разрешён анонимный доступ (как правило, лишь для загрузки данных с сервера), то в качестве логина используется ключевое слово «anonymous» или «ftp», а в качестве пароля — адрес электронной почты:
USER anonymous\r\n
PASS someone@email\r\n
После успешной авторизации можно посылать на сервер другие команды
Протокол не шифруется, при аутентификации передаёт логин и пароль открытым текстом. Если злоумышленник находится в одном сегменте сети с пользователем FTP, то в случае построения сети на хабе (если сеть строится на свитчах по умолчанию это исключено, но злоумышленник может перехватить трафик, если сменит mac адрес своего сетевого адаптера на mac адрес адаптера жертвы, поскольку коммутация выполняется на 2ом уровне модели OSI (по mac адресам), используя пассивный сниффер, он может перехватить логин и пароль пользователя, или, при наличии специального ПО, получать передаваемые по FTP файлы без авторизации. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных SSL, который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.
Процесс нешифрованной авторизации проходит в несколько этапов (символы \r\n означают перевод строки):
Установка TCP-соединения с сервером (обычно на 21 порт)
Посылка команды USER логин\r\n
Посылка команды PASS пароль\r\n
Если к серверу разрешён анонимный доступ (как правило, лишь для загрузки данных с сервера), то в качестве логина используется ключевое слово «anonymous» или «ftp», а в качестве пароля — адрес электронной почты:
USER anonymous\r\n
PASS someone@email\r\n
После успешной авторизации можно посылать на сервер другие команды
ABOR — Прервать передачу файла
CDUP — Сменить директорию на вышестоящую.
CWD — Сменить директорию.
DELE — Удалить файл (DELE filename).
HELP — Выводит список команд принимаемых сервером.
LIST — Возвращает список файлов директории. Список передается через соединение данных (20 порт).
MDTM — Возвращает время модификации файла.
MKD — Создать директорию.
NLST — Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
NOOP — Пустая операция
PASV — Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд.
PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
PWD — Возвращает текущую директорию.
QUIT — Отключиться
REIN — Реинициализировать подключение
RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
RMD — Удалить директорию
RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
SIZE — Возвращает размер файла
STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
SYST — Возвращает тип системы(UNIX, WIN, …)
TYPE — Установить тип передачи файла(Бинарный, текстовый)
CDUP — Сменить директорию на вышестоящую.
CWD — Сменить директорию.
DELE — Удалить файл (DELE filename).
HELP — Выводит список команд принимаемых сервером.
LIST — Возвращает список файлов директории. Список передается через соединение данных (20 порт).
MDTM — Возвращает время модификации файла.
MKD — Создать директорию.
NLST — Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
NOOP — Пустая операция
PASV — Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд.
PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
PWD — Возвращает текущую директорию.
QUIT — Отключиться
REIN — Реинициализировать подключение
RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
RMD — Удалить директорию
RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
SIZE — Возвращает размер файла
STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
SYST — Возвращает тип системы(UNIX, WIN, …)
TYPE — Установить тип передачи файла(Бинарный, текстовый)
Пример
220 FTP server ready.
USER ftp //Анонимус
230 Login successful.
PASV
227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный IP
LIST
150 Here comes the directory listing. //Сервер передает список файлов в директории
226 Directory send OK.
CWD incoming
250 Directory successfully changed.
PASV
227 Entering Passive Mode (192,168,254,253,207,56)
STOR gyuyfotry.avi
150 Ok to send data. //Клиент передает содержимое файла
226 File receive OK.
QUIT
221 Goodbye.
Аргумент 192,168,254,253,207,56 означает, что соединение от сервера ожидается на узле с IP-адресом 192.168.254.253 на порту 207*256+56=53048.
USER ftp //Анонимус
230 Login successful.
PASV
227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный IP
LIST
150 Here comes the directory listing. //Сервер передает список файлов в директории
226 Directory send OK.
CWD incoming
250 Directory successfully changed.
PASV
227 Entering Passive Mode (192,168,254,253,207,56)
STOR gyuyfotry.avi
150 Ok to send data. //Клиент передает содержимое файла
226 File receive OK.
QUIT
221 Goodbye.
Аргумент 192,168,254,253,207,56 означает, что соединение от сервера ожидается на узле с IP-адресом 192.168.254.253 на порту 207*256+56=53048.
На многих FTP-серверах существует каталог (под названием incoming, upload и т. п.), открытый на запись и предназначенный для закачки файлов на сервер. Это позволяет пользователям наполнять сервер свежими данными.
Специально для работы FTP протокола через межсетевые экраны, было сделано расширение NAT, называемое NAT-PT (rfc2766), позволяющее транслировать входящие соединения от сервера к клиенту через NAT. В процессе такого соединения NAT подменяет передаваемые данные от клиента указывая серверу истинный адрес и порт с которым сможет соединиться сервер, а потом транслирует соединение от сервера от этого адреса, клиенту на его адрес. Несмотря на все меры и нововведения принятые для поддержки FTP протокола, на практике функция NAT-PT обычно отключается во всех роутерах и маршрутизаторах с целью обеспечения дополнительной безопасности от вирусных угроз
Специально для работы FTP протокола через межсетевые экраны, было сделано расширение NAT, называемое NAT-PT (rfc2766), позволяющее транслировать входящие соединения от сервера к клиенту через NAT. В процессе такого соединения NAT подменяет передаваемые данные от клиента указывая серверу истинный адрес и порт с которым сможет соединиться сервер, а потом транслирует соединение от сервера от этого адреса, клиенту на его адрес. Несмотря на все меры и нововведения принятые для поддержки FTP протокола, на практике функция NAT-PT обычно отключается во всех роутерах и маршрутизаторах с целью обеспечения дополнительной безопасности от вирусных угроз
FXP
FXP (англ. File eXchange Protocol — протокол обмена файлами) — способ передачи файлов между двумя FTP серверами напрямую, не закачивая их на свой компьютер . При FXP сессии, клиент открывает два FTP соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера.
Несомненным преимуществом поддержки стандарта FXP является то, что на конечных пользователей, желающих скопировать файлы с одного FTP-сервера на другой, уже не действует ограничение пропускной способности их собственного интернет-соединения. Нет необходимости скачивать себе файл, чтобы потом положить его на другой FTP-сервер. Таким образом, время передачи файлов будет зависеть только от скорости соединения между двумя удаленными FTP-серверами, которая в большинстве случаев заведомо больше «пользовательской».
К сожалению, FXP стал использоваться злоумышленникам для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS-атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента, и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом использование FXP невозможно при работе с публичными FTP-серверами
Несомненным преимуществом поддержки стандарта FXP является то, что на конечных пользователей, желающих скопировать файлы с одного FTP-сервера на другой, уже не действует ограничение пропускной способности их собственного интернет-соединения. Нет необходимости скачивать себе файл, чтобы потом положить его на другой FTP-сервер. Таким образом, время передачи файлов будет зависеть только от скорости соединения между двумя удаленными FTP-серверами, которая в большинстве случаев заведомо больше «пользовательской».
К сожалению, FXP стал использоваться злоумышленникам для атак на другие серверы: в команде PORT указывается IP-адрес и порт атакуемого сервиса на компьютере жертвы, и командами RETR/STOR производится обращение на этот порт от лица FTP-сервера, а не атакующей машины, что позволяло устраивать масштабные DDoS-атаки с использованием сразу многих FTP-серверов, либо обходить систему безопасности компьютера жертвы, если он полагается только на проверку IP клиента, и используемый для атаки FTP-сервер находится в доверенной сети или на шлюзе. В результате сейчас практически все серверы проверяют соответствие IP-адреса, указанного в команде PORT, IP-адресу FTP-клиента и по умолчанию запрещают использование там IP-адресов третьих сторон. Таким образом использование FXP невозможно при работе с публичными FTP-серверами
Схемы URI
Официальные- aaa:
- aaas:
- acap:
- cap:
- cid:
- crid:
- data:
- dav:
- dict:
- dns:
- fax:
- file:
- ftp:
- go:
- gopher:
- h323:
- http:
- https:
- im:
- imap:
- ldap:
- mailto:
- mid:
- news:
- nfs:
- nntp:
- pop:
- pres:
- rtsp:
- sip:
- sips:
- snmp:
- tel:
- telnet:
- urn:
- wais:
- xmpp:
- about:
- aim:
- bolo:
- bzr:
- callto:
- chrome:
- cvs:
- daap:
- ed2k:
- feed:
- fish:
- git:
- gizmoproject:
- iax2:
- irc:
- ircs:
- lastfm:
- ldaps:
- magnet:
- mms:
- msnim:
- psyc:
- rsync:
- secondlife:
- skype:
- ssh:
- svn:
- sftp:
- smb:
- sms:
- soldat:
- steam:
- unreal:
- ut2004:
- view-source:
- vzochat:
- webcal:
- xfire:
- ymsgr:
Основные протоколы TCP/IP по уровням
Прикладной- AODV
- BGP
- HTTP
- DHCP
- IRC
- SNMP
- DNS
- NNTP
- XMPP
- SIP
- BitTorrent
- IPP
- NTP
- SNTP
Электронная почта
- SMTP
- POP3
- IMAP4
- FTP
- TFTP
- SFTP
- Telnet
- SSH
Представления
- XDR
- SSL
- TCP
- UDP
- SCTP
- DCCP
- RTP
- RUDP
- IPv4
- IPv6
- ICMP
- IGMP
- RARP
- RIP2
- OSPF
- ARP
- Ethernet
- 802.11 WiFi
- 802.16 WiMax
- Token ring
- Arcnet
- FDDI
- PPP
- HDLC
- SLIP
- ATM
- DTM
- X.25
- Frame relay
- SMDS
- Ethernet
- RS-232
- EIA-422
- RS-449
- RS-485