Ftp порт какой: Зачем в FTP нужны порты и как их «пробрасывать»
Зачем в FTP нужны порты и как их «пробрасывать»
Настройка FTP – несложный процесс, который имеет свои специфические особенности. Если вы сразу постараетесь во всем разобраться, то работа с сервером FTP со временем станет для вас одним наслаждением. Через такие сервера вы сможете скачивать музыку, фильмы, картинки и прочие файлы, а также содержать сайт с хостом, работающим через протокол передачи данных. Но для этого нужно хорошо понять, что к чему, а в особенности необходимо разобраться в том, что из себя представляет FTP порт, для чего он нужен и как его настроить. Именно об этом и пойдет речь в статье. Вы узнаете, какой порт стандартный, как изменить настройки по умолчанию для портов и разблокировать его в брандмауэре и роутере.
Что из себя представляет порт и зачем он нужен
Если разобраться, то все предельно просто. У операционной системы компьютера есть определенное ограниченное число портов. Они нужны для того, чтобы программы могли к ним подключаться через сеть. Это сделано для того, чтобы приложения не конфликтовали между собой во время попытки подсоединиться к сети. Порт – это лишь цифра транспортного протокола. Его можно сравнить с трассой. Если все программы запускать по одной и той же “трассе”, то на ней быстро образуется пробка. Потому для каждого приложения должен быть выделен свой уникальный порт – то есть еще не занятое другими программами число.
Разработчики операционных систем уже давно используют такой метод распределения программ по пронумерованным протоколам и он хорошо себя зарекомендовал. Ведь существует более шести тысяч портов, чего с головой хватит для любого компьютера!
FTP – это протокол передачи данных. Он необходим для того, чтобы клиент и сервер могли быстро обмениваться различными файлами.
Такой протокол удобен для тех людей, которым неважен web-интерфейс хранилища, а которые ценят скорость загрузки и количество файлов, которые можно хранить на сервере. Нет лучшего способа обмена объемными данными, чем через протокол FTP. И работает этот протокол через канал TCP. А для того, чтобы подключиться к этому каналу, необходим определенный порт. То есть чтобы открыть сервер, клиент должен зайти на его порт, и уже через него проникнуть на хост. В этом и кроется вся суть портов для FTP.
Что такое активный и пассивный режим, и как они связаны с портами
Дело в том, что есть два варианта развития сценария взаимодействия клиента с сервером. Первый вариант – это когда программа назначает порт, по которому ей удобно пользоваться. То есть на сервере установлен определенный номер порта, и система с этим соглашается, освобождая его. А второй вариант – это когда операционная система сама подбирает для программы порт для выхода в сеть.
В FTP когда клиент пытается подключиться к серверу, активный режим проявляется в момент установки соединения для передачи данных. Если задан активный режим, то тогда клиент задает номер порта соединения, который должен открыть сервер. Получается, что клиент управляет ситуацией, а сервер подстраивается под него. А в пассивном режиме клиент выступает пассивно, то есть принимает от сервера сообщение с номером порта для соединения, и подключается по нему.
Но дело в том, что в протоколе FTP есть два типа соединения:
- Управляющее.
- Соединение для передачи данных.
Активность и пассивность клиента проявляется только во втором типе соединения. А первое необходимо для того, чтобы сервер и клиент могли общаться между собой. То есть чтобы сервер принимал команды от клиента, потому это соединение и называется управляющим. Такое соединение работает через стандартный порт, установленный по умолчанию.
Как настроить порты по умолчанию, чтобы FTP-сервер заработал
Многие, кто пытаются установить FTP-сервер в популярной операционной системе Windows, сталкиваются с проблемой закрытых портов. В результате, клиент не может открыть сервер, потому что тот недоступен для него – “трасса” перекрыта. Потому нужно уметь настраивать порты, и об этом далее пойдет речь в статье.
По умолчанию в FTP настроены 20 и 21 порты. Наибольшее значение имеет 21 порт, который необходим для того, чтобы вы могли открыть сервер и передавать ему команды – то есть он нужен для управляющего соединения. А вот 20 порт нужен в основном для активного режима. В любом случае вам необходимо освоить навык проброса портов, чтобы обойти стандартные блокировки системы и роутера.
Проблема в том, что далеко не все пользователи Windows решаются на затею создать у себя на компьютере FTP-сервер. Потому операционная система блокирует доступ инородных тел (удаленных компьютеров) на ПК через основные каналы транспортных протоколов. И, как правило, 21 и 20 порты также входят в список заблокированных для удаленных клиентов. А блокируют их со стороны компьютера – брандмауэр, и устройство-посредник для доступа к Интернету – роутер. Вам нужно научиться обходить эту двойную защиту, чтобы вы могли открывать не только 21 порт, но и другие, когда потребуется.
Настройка проброса портов 21 и 20 начинается с изменения конфигураций брандмауэра. Вам необходимо открыть “Панель управления” через “Пуск”. Далее отыщите вкладку “Система и безопасность” и внутри нее найдите раздел “Брандмауэр Windows”. Далее вам необходимо добраться к “Дополнительным параметрам брандмауэра” в левом боковом меню настроек. Брандмауэр работает посредством правил, потому вам нужно лишь создать новые стандарты для этой службы, чтобы она не мешала работе FTP-сервера. Для этого нажмите “Правила для входящих подключений” и кнопку “Создать правило”. Ничего прописывать не придется – это не написание программы, так как в Windows все работает через интуитивно понятный интерфейс. Вам нужно будет указать тип правила “Для порта”. Потом выбрать “Протокол TCP” и указать в форме “Определенные локальные порты” число 21. Далее разрешаете подключение через порт 21, определяете уровень доступа для клиентов, прописываете название правила и сохраняете введенные настройки.
Следующим шагом вам необходимо настроить правила для исходящих соединений. Ведь не только клиент будет загружать на сервере различные данные и отдавать команды, но и сервер неоднократно поделиться своими файлами и будет высылать данные удаленному компьютеру. Потому исходящие соединения вам также нужно одобрить. В целом, настройка правил для таких соединений ничем не отличается от выше описанной. Вам также нужно будет прописать порт 21 и везде активировать разрешение, которое по умолчанию заблокировано. Если вы используете активный режим, то можете в строке, куда нужно прописывать порт, указывать через запятую сразу две цифры: 21 и 20. Если понадобится на будущее, то можете в правиле прописать целый диапазон портов, для которых соединение будет разрешено – для этого пропишите цифры через дефис без пробелов.
Иногда настройки одного брандмауэра недостаточно. К стандартным службам подобного плана относится еще и фаерволл. Его настраивать еще проще, чем брандмауэр. Вам не придется добавлять новое правило, а нужно будет лишь отметить галочку возле FTP-сервер для входящих и исходящих соединение. Firewall сам определит порты, через которые работает ваш сервер, и даст добро на их открытие.
Куда сложнее обстоят дела с роутерами. Дело в том, что их сейчас большое множество. Потому открыть порты 21 и 20 через роутер каким-то универсальным способом не получится – у каждой марки и модели свои нюансы, в которых нужно разбираться. Если вы вообще никогда не влазили в настройки роутера, то лучше не спешите с этим. Почитайте на форумах, разберитесь в меню и функциях, и только затем пробуйте пробросить порт в роутере.
Зачастую блокировка порта связана с несколькими опциями, которые установлены в роутере. К примеру, это может быть не проставленная галочка возле опции UPnP. Данная опция необходима для того, чтобы программы автоматически пробрасывали порты через роутер и вас не тревожили. Как правило, если в роутере есть такая функция, то она активирована, но бывает всякое, и вполне может быть, что в вашем маршрутизаторе она отключена. Тогда вам осталось найти такой пункт настроек и поставить возле него одобрительную галочку для включения.
С другой стороны, порой порты нужно указывать в специальных пунктах настроек роутеров. Для этого вам нужно подключиться к роутеру через локальную сеть. Чтобы сделать это, посмотрите на нижней стороне маршрутизатора его IP-адрес, а затем введите его в адресную строку любого браузера. Перед вами откроется меню роутера, в котором нужно найти настройки подключения по локальной сети. В таких настройках, обычно, есть конфигурации семейств IP, которые могут подключаться к роутеру, а также порты, которые открыты для работы. Вам нужно указать диапазон портов, чтобы роутер их не блокировал. Не забудьте учесть диапазон, чтобы числа 20 и 21 вошли в него.
Обязательно ли использовать 21 порт
Люди, которые постоянно имеют дело с серверами и создают их, наслышаны о цифре 21. Для них она является знаковой, так как многие сервера и протоколы, не только FTP, используют 21 порт по умолчанию. И это плохо, если начать анализировать ситуацию. Ведь протокол передачи данных совсем не защищен от перехвата. В любой момент опытные хакеры могут напасть на ваш сервер и перехватить пароль и логин клиента. Затем они проникнут на сервер и украдут оттуда важные данные, либо спрячут в каталогах вредоносные программы и вирусы.
Чтобы хоть как-то повысить уровень безопасности использования протокола FTP, рекомендуется сменить в настройках стандартный порт, который нужен для подключения. Сделать это несложно, но у каждого сервера данная опция настраивается по-своему. Единственный нюанс заключается в том, что потом при подключении клиенту необходимо будет указывать новый номер порта вместо цифры 21. В этом и суть защиты – хакеры не будут знать порт, по которому нужно перехватывать данные, потому не сумеют их украсть.
Полезные статьи. FTP. Общие сведения. LTD Beget.
FTP – это протокол передачи файлов. Основное назначение FTP – пересылать (копировать, передавать) файлы в Интернете (с удаленного компьютера на локальный и наоборот). Кроме того, при помощи FTP можно работать со своими файлами прямо на удаленном компьютере (переименовывать их, удалять, создавать каталоги и т.п.)
FTP-клиент
Чтобы воспользоваться протоколом FTP, понадобится специальная программа, так называемый FTP-клиент. FTP-клиентом может служить интернет-браузер (Internet Explorer, Mozilla Firefox, Google Chrome и другие), программа управления файлами FAR, специализированные программы CuteFTP, Filezilla и другие. FTP-клиент встроен также в некоторые HTML-редакторы, такие как HomeSite, Dreamweaver или FrontPage.
Как подключаться к своему аккаунту Beget по протоколу FTP
При подключении по FTP необходимо использовать логин и пароль, которые используются для доступа в Личный кабинет https://cp.beget.com. В то же время, с помощью раздела FTP в личном кабинете можно создать дополнительные аккаунты к отдельным сайтам или любым другим каталогам на вашем дисковом пространстве. Например, нужно предоставить доступ разработчику, но Вы не хотите, чтобы весь аккаунт был для него доступен, для этого можно создать отдельный аккаунт.
Можно ли использовать браузер для подключения по FTP?
Использовать браузер можно, для этого нужно набрать в адресной строке браузера:
ftp://ваш_логин:ваш_пароль@ваш_логин.beget.tech
Однако необходимо иметь в виду, что браузер не приспособлен для работы по FTP. Технически он может это делать, но многие необходимые функции в нем отсутствуют.
При работе по протоколу FTP между клиентом и сервером устанавливается два соединения – управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
В активном режиме, когда клиент говорит «Привет!», он также сообщает серверу номер порта (из диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя со своей стороны номер TCP-порта 20 для передачи данных.
В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных.
Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных. В активном режиме клиент должен принять соединение от FTP-сервера. В пассивном режиме клиент всегда инициирует соединение.
Вам необходимо включать пассивный режим в FTP-клиенте, чтобы можно было работать по FTP с нашими серверами.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».
Доступ к FTP-серверу за NAT. Категория: ОС Linux • Разное
Протокол FTP является старейшим сетевым протоколом (создан в 1971 году), но, тем не менее, широко используется по сей день. Важной особенностью протокола является то, что он использует несколько соединений: одно для управляющих команд, остальные для данных. Причем соединений для передачи данных может открываться несколько.
В зависимости от способа установления соединения для передачи данных различают активный и пассивный режимы работы FTP. В активном режиме сервер сам устанавливает соединение передачи данных к клиенту, в пассивном наоборот.
Активный режим
В активном режиме клиент устанавливает управляющее соединение на порт 21
сервера и передает специальную команду PORT
, в которой указывает свой адрес и порт для передачи данных. Получив данную команду, сервер устанавливает соединение с 20 порта на указанный в команде порт клиента.
Тут сразу виден недостаток данного метода: для работы в активном режиме клиенту требуется выделенный IP-адрес. Также определенные сложности будут возникать при нахождении клиента за брандмауэром или NAT-ом.
Пассивный режим
В пассивном режиме клиент устанавливает управляющее соединение на порт 21
сервера и передает специальную команду PASV
. В ответ сервер передает адрес и порт, на который следует устанавливать соединение для передачи данных. Получив эту информацию, клиент устанавливает подключение к серверу и начинает передачу данных.
Как видим, в пассивном режиме все соединения инициирует клиент и поэтому к нему нет никаких требований, он может находиться за NAT и брандмауэром, а также не иметь выделенного IP-адреса. Поэтому на сегодняшний день основным режимом работы FTP является пассивный.
FTP сервер за NAT
У меня дома компьютер с установленной Windows 10 и VirtualBox. Давайте создадим несколько виртуальных машин: router
, pc-1
, pc-2
, ftp-server
и web-server
(будет играть роль FTP-клиента). У виртуальной машины router
два сетевых интерфейса:
enp0s3
(сетевой мост) — смотрит в домашнюю сеть, получает ip-адрес192.168.110.8
от роутера Keenetic Airenp0s8
(виртуальная сеть) — смотрит в одну сеть с виртуальными машинамиpc-1
,pc-2
иftp-server
Виртуальная машина router
обеспечивает выход в интренет для pc-1
, pc-2
и ftp-server
. Все это более подробно можно прочитать здесь. А если совсем коротко, то тогда так
$ sudo nano /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
$ sudo sysctl -p net.ipv4.ip_forward = 1
$ sudo iptables -t nat -A POSTROUTING -o enp0s3 -j SNAT --to-source 192.168.110.8 # SNAT для enp0s3 $ sudo iptables-save > /etc/iptables/rules.v4 # должен быть установлен пакет iptables-persistent
Давайте установим на виртуальную машину ftp-server
FTP-сервер vsftpd
:
$ sudo apt install vsftpd
Про настройки подробно рассказывать не буду (подробнее можно прочитать здесь), упомяну только важные для нас:
pasv_enable=NO
— используется только активный режимpasv_enable=YES
— можно использовать пассивный режимpasv_address=XXX.XXX.XXX.XXX
— этот ip-адрес сервер будет передавать клиенту вместо своего в ответ наPASV
pasv_min_port
иpasv_max_port
— сервер будет отправлять клиенту порт из этого диапазона в ответ наPASV
$ sudo nano /etc/vsftpd.conf
# Слушать и обрабатывать входящие соединения listen=YES # Запретить доступ для анонимных пользователей anonymous_enable=NO # Использовать для авторизации учётные записи пользователей local_enable=YES # Разрешить изменения файловой системы (запись и удаление файлов) write_enable=YES # Маска для вновь создаваемых файлов и директорий local_umask=022 # Запретить пользователям выходить за пределы домашнего каталога chroot_local_user=YES # Разрешить запись в домашний каталог (иначе будет ошибка) allow_writeable_chroot=YES # Показывать скрытые файлы, которые начинаются с точки force_dot_files=NO # При выводе списка файлов показывать локальное время, а не GMT use_localtime=YES # Записывать в /var/log/vsftpd.log данные о скачиваниях и загрузках xferlog_enable=YES # Включить поддержку ASCII для замены символов переноса строки ascii_upload_enable=YES ascii_download_enable=YES # Использовать кодировку UTF-8 при работе с файловой системой utf8_filesystem=YES # Разрешить использование пассивного режима pasv_enable=NO # Диапазон портов для работы FTP-сервера в пассивном режиме #pasv_min_port=60000 #pasv_max_port=60100 # Передавать клиенту этот ip-адрес вместо своего в ответ на PASV #pasv_address=192.168.110.8
$ sudo systemctl restart vsftpd.service
Теперь на виртуальной машине router
настроим перенаправление пакетов, которые приходят на внешней интерфейс enp0s3
, порт 21
— это управляющее соединение от клиента к серверу:
$ sudo iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 21 \ > -j DNAT --to-destination 192.168.30.254 # управляющее соединение, активный и пассивный режим
И будем перенаправлять пакеты, которые приходят на внешней интерфейс enp0s3
, порт 60000-60100
, при работе в пассивном режиме — это соединение от клиента к серверу для передачи данных:
$ sudo iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 60000:60100 \ > -j DNAT --to-destination 192.168.30.254:60000-60100 # для передачи данных, пассивный режим
Сохраняем новые правила, чтобы они применились после перезагрузки:
$ sudo iptables-save > /etc/iptables/rules.v4
В реальной ситуации FTP-клиент и маршрутизатор должны иметь белые ip-адреса. Но мы здесь моделируем ситуацию, как будто бы у них белые ip-адреса. Просто потому, что у нас маршртузатор и FTP-клиент находятся в одной сети 192.168.110.0/24
и видят друг друга. Когда FTP-клиент устанавливает управляющее соединение с FTP-сервером — он отправляет пакеты на белый ip-адрес маршрутизатора, на порт 21. А маршрутизатор отправляет эти пакеты внутрь сети 192.168.30.0/24
— на ip-адрес 192.168.30.254
FTP-сервера (DNAT, первое правило).
Активный режим
Вроде все готово, пробуем из сети 192.168.110.0/24
подключиться к FTP-серверу за NAT. Подключаться будем с виртуальной машины web-server
(ip-адрес 192.168.110.12
) в активном режиме (в настройках сервера pasv_enable=NO
).
$ ftp > open 192.168.110.8 Connected to 192.168.110.8. 220 (vsFTPd 3.0.3) Name (192.168.110.8:evgeniy): evgeniy 331 Please specify the password. Password: пароль 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. > pwd 257 "/" is the current directory > dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. drwxrwx--- 1 0 999 0 Feb 28 13:59 share drwx------ 2 1000 1000 4096 Feb 24 14:53 test 226 Directory send OK. > exit 221 Goodbye.
Сервер получил от клиента команду PORT
и успешно ее обработал — PORT command successful
. Сервер устанавливает соединение с 20 порта на указанный в команде PORT
ip-адрес и порт клиента и отправляет листинг директории. Адрес клиента — это 192.168.110.12
, сервер отправит данные в шлюз 192.168.30.1
, маршрутизатор перебросит пакеты с интерфейса enp0s8
на enp0s3
и отправит дальше — FTP-клиенту web-server
.
Пассивный режим
Теперь изменим настройки сервера, чтобы разрешить работу в пассивном режиме:
$ sudo nano /etc/vsftpd.conf
# Слушать и обрабатывать входящие соединения listen=YES # Запретить доступ для анонимных пользователей anonymous_enable=NO # Использовать для авторизации учётные записи пользователей local_enable=YES # Разрешить изменения файловой системы (запись и удаление файлов) write_enable=YES # Маска для вновь создаваемых файлов и директорий local_umask=022 # Запретить пользователям выходить за пределы домашнего каталога chroot_local_user=YES # Разрешить запись в домашний каталог (иначе будет ошибка) allow_writeable_chroot=YES # Показывать скрытые файлы, которые начинаются с точки force_dot_files=NO # При выводе списка файлов показывать локальное время use_localtime=YES # Записывать в /var/log/vsftpd.log данные о скачиваниях и загрузках xferlog_enable=YES # Включить поддержку ASCII для замены символов переноса строки ascii_upload_enable=YES ascii_download_enable=YES # Использовать кодировку UTF-8 при работе с файловой системой utf8_filesystem=YES # Разрешить использование пассивного режима pasv_enable=YES # Диапазон портов для работы FTP-сервера в пассивном режиме pasv_min_port=60000 pasv_max_port=60100 # Передавать клиенту этот ip-адрес вместо своего в ответ на PASV pasv_address=192.168.110.8
$ sudo systemctl restart vsftpd.service
Пробуем подключиться к серверу
$ ftp > open 192.168.110.8 Connected to 192.168.110.8. 220 (vsFTPd 3.0.3) Name (192.168.110.8:evgeniy): evgeniy 331 Please specify the password. Password: пароль 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. > passive Passive mode on. > dir 227 Entering Passive Mode (192,168,110,8,234,149). 150 Here comes the directory listing. drwxrwx--- 1 0 999 0 Feb 28 13:59 share drwx------ 2 1000 1000 4096 Feb 24 14:53 test 226 Directory send OK. > exit 221 Goodbye.
После команды passive
(PASV
, пассивный режим), сервер сообщает клиенту ip-адрес 192.168.110.8
из директивы pasv_address
(вместо своего 192.168.30.254
) и порт — 60053
(порт вычисляется как 234*256+149=60053
). А клиент устанавливает еще одно соединение с сервером — уже для передачи данных.
Тут важно то, что FTP-сервер сообщает FTP-клиенту не свой серый ip-адрес, а белый ip-адрес внешнего интерфейса шлюза (который на самом деле серый, но мы только моделируем реальную ситуацию). И сообщает порт из диапазона 60000-60100, который мы задали в настройках FTP-сервера. FTP-клиент отправляет пакеты с данными на белый ip-адрес маршрутизатора, на порт 60053
. А маршрутизатор отправляет эти пакеты внутрь сети 192.168.30.0/24
— на ip-адрес 192.168.30.254
FTP-сервера (DNAT, второе правило).
Поиск:
Linux • Ubuntu • FTP • Конфигурация • Настройка • Сервер • iptables • Активный режим • Пассивный режим • Порт • NAT • Локальная сеть
Передача файлов по FTP | Losst
FTP — это один из самых популярных способов передачи файлов на сервер серди веб-мастеров и пользователей. File Transfer Protocol — довольно давняя технология, которая применялась для передачи файлов между компьютерами еще на заре зарождения интернета. Но она до сих пор сохранила свою популярность из-за простоты и надежности.
В одной из предыдущих статей мы писали о том, как выполняется настройка FTP на Ubuntu 16.04, в этой статье рассмотрим как работает передача файлов по FTP, рассмотрим как передать файлы с помощью терминала или в графическом интерфейсе.
Содержание статьи:
Как работает FTP?
Протокол FTP представляет из себя набор команд, которые мы можем передавать на сервер обычным текстом для аутентификации, просмотра содержимого каталогов, перемещения по каталогам, отправки и скачивания файлов. Все команды передаются в открытом виде, в том числе и пароль, поэтому использование FTP очень небезопасно, и лучше применять передачу файлов scp или защищенный протокол sFTP, который мы рассмотрим ниже.
Важно заметить, что для передачи файлов и обработки команд используются два разных соединения. Команды передаются на порт 21, а когда нужно передать файл, сервер FTP сообщает на какой порт нужно начать отправлять информацию. Не будем вдаваться в подробности, скажу только, что существует два режима передачи файлов. Это активный, когда сервер подключается к компьютеру и начинает считывать файл и пассивный, когда компьютер передает файл на сервер. Сейчас в большинстве случаев применяется пассивный режим, потому что большинство пользователей используют NAT, что не позволяет серверу самому подключаться к портам клиента.
А теперь перейдем ближе к практике и рассмотрим как выполняется передача файлов по FTP.
Передача файлов по FTP через терминал
Мы могли бы использовать telnet для передачи файлов по FTP через терминал, но это слишком сложно и не нужно. Существует консольный клиент FTP с более простым синтаксисом и достаточными возможностями. Сначала рассмотрим общий синтаксис и команды утилиты:
$ ftp опции адрес_сервера
Опций у утилиты всего несколько, но нам нужно их рассмотреть, потому что они могут быть вам очень полезны:
- -A — использовать активный режим во время передачи файлов;
- -p — использовать пассивный режим, используется по умолчанию;
- -i — отключать интерактивный режим во время передачи файлов;
- -n — попытаться использовать автоматический вход;
- -e — отключить историю команд;
- -v — максимально подробный вывод;
- -d — включить режим отладки.
Дальше рассмотрим команды интерактивного режима, которые вы будете использовать для подключения к серверу и управления файлами:
- account — отправить серверу свой пароль для авторизации;
- append — добавить локальный файл в конец удаленного файла на сервере;
- ascii — передавать файлы в кодировке ASCII;
- binary — передавать файлы в бинарном формате;
- bye — завершить сессию;
- cd — перейти в папку;
- cdup — перейти в папку уровнем выше;
- chmod — изменить права на файл;
- delete — удалить файл с сервера;
- dir — посмотреть список файлов в папке;
- get — скачать файл из сервера на локальную машину;
- hash — отображать статус передачи файла;
- lcd — сменить рабочую директорию на локальной машине;
- ls — список файлов в папке;
- mdelete — удалить несколько файлов;
- mget — скачать несколько файлов;
- mkdir — создать папку;
- mput — передать несколько файлов на сервер;
- open — подключится к удаленному FTP серверу;
- put — передать файл на сервер;
- pwd — вывести текущую папку;
- recv — то же самое что и get;
- rename — переименовать файл на сервере;
- rmdir — удалить папку;
- size — узнать размер файла;
- user — авторизоваться на сервере.
Это далеко не все команды, которые вы можете использовать для передачи файлов, но здесь перечислено все самое основное, и вам их точно хватит для решения простых задач.
Сначала подключаемся к нашему серверу, команде нужно передать адрес сервера:
ftp localhost
Затем авторизуемся на сервере, нужно передать логин и пароль:
Только после этого перед нами открывается командная оболочка FTP клиента. Именно здесь будет выполняться передача файлов ftp. Изменим текущую папку на FTP, затем посмотрим ее содержимое и выведем полный адрес текущей папки:
ftp> cd FTP
ftp> ls
ftp> pwd
Перейдем в папку documents на удаленном сервере и посмотрим ее содержимое:
ftp> cd documents
ftp> ls
Чтобы скачать файл по FTP с удаленного сервера нам нужно использовать команду get. Просто передайте команде имя файла:
ftp> get document2.odt
Теперь файл находится на нашей локальной машине. Мы можем выполнять команды на локальной машине если перед ними добавить символ «!». Например, посмотрим содержимое домашней папки чтобы убедиться, что файл был загружен:
ftp> !dir
Загрузка файлов по FTP на сервер выполняется с помощью команды put, причем, здесь, как и в предыдущей команде можно задать имя создаваемого файла:
ftp> put document2.odt document3.odt
Также можно управлять файлами на удаленном сервере. Переименуем файл doument1.pdf, так чтобы он назывался правильно:
ftp> rename doument1.pdf document1.pdf
Затем удалим document3:
ftp> delete document3.odt
Для завершения сеанса FTP наберите Bye:
ftp> bye
Сейчас многие FTP серверы используют шифрование на основе ssl сертификатов. Это необходимая мера, которая позволяет обезопасить данные пользователей. Для подключения к таким серверам необходимо использовать утилиту sftp, в остальном же процесс и команды не отличаются.
Передача файлов по FTP в графическом интерфейсе
Передача файлов на FTP через графический интерфейс может выполняться с помощью различных графических клиентов. Один из самых популярных из них — это Filezilla. Его можно использовать в Linux, Windows или MacOS. Например, для установки в Ubuntu используйте такую команду:
sudo apt install filezilla
Вот так выглядит главное окно утилиты. Для подключения к серверу необходимо ввести данные аутентификации в поля, которые находятся в верхней части окна:
Затем нажмите кнопку «Быстрое соединение». Если программа удачно подключится к серверу, то вы увидите список файлов на правой панели. На левой панели находится ваша локальная файловая система:
Чтобы передать файл достаточно его перетащить в нужную часть окна:
В контекстном меню вы можете выполнять различные действия с файлами, удалять, перемещать, копировать, переименовывать и даже редактировать. К тому же программа поддерживает подключение к серверам FTP, которые используют шифрование.
Выводы
В этой статье мы рассмотрели передача файлов ftp, а также как пользоваться ftp в целом для передачи, загрузки и управления файлами. Это очень полезная служба, которая позволяет просто и без особых знаний передавать файлы между компьютерами. Если у вас остались вопросы, спрашивайте в комментариях!
Ftp пассивный режим какие порты. Как включить пассивный режим? Изменение режима FTP-клиента в Internet Explorer
   
Аббревиатура FTP
происходит от английского F
ile T
ransfer P
rotocol (протокол передачи файлов) — протокол прикладного уровня для обмена файлами по транспортному протоколу TCP/IP между двумя компьютерами, FTP-клиентом и FTP-сервером. Это один их старейших, и тем не менее, по-прежнему активно используемый протокол.
Протокол FTP предназначен для решения следующих задач:
Протокол FTP поддерживает сразу два канала соединения — один для передачи команд
и результатов их выполнения, другой — для обмена данными
. При стандартных настройках FTP — сервер использует TCP порт 21 для организации канала передачи и приема команд и TCP порт 20 для организации канала приема/передачи данных.
FTP-сервер ожидает подключения от FTP-клиентов на TCP порт 21 и, после установления соединения, принимает и обрабатывает команды FTP
, представляющие собой обычные текстовые строки. Команды определяют параметры соединения, тип передаваемых данных и действия по отношению к файлам и каталогам. После согласования параметров передачи, один из участников обмена становится в пассивный режим, ожидая входящие соединения для канала обмена данными, а второй — устанавливает соединение на данный порт и начинает передачу. По завершении передачи, соединение для обмена данными закрывается, но управляющее соединение остается открытым, позволяя продолжить FTP — сессию и создать новый сеанс передачи данных.
Может работать в активном или пассивном режиме, который определяет, как устанавливается соединение с данными. Поэтому при открытии контрольного соединения обычно нет проблем. В активном режиме клиент начинает прослушивать случайный порт для входящих соединений данных с сервера.
По этой причине пассивный режим был введен и в настоящее время используется в основном. Использование пассивного режима предпочтительнее, поскольку большая часть сложной конфигурации выполняется только один раз на стороне сервера, опытным администратором, а не индивидуально на стороне клиента, неопытными пользователями.
Протокол FTP может использоваться не только для передачи данных между клиентом и сервером, но и между двумя серверами. В данном случае, клиент FTP устанавливает управляющее соединение с обоими FTP — серверами, переводит один из них в пассивный режим, а второй — в активный, создавая между ними канал передачи данных.
FTP- клиент является программой, которая выполняет подключение к FTP- серверу и выполняет необходимые операции для просмотра содержимого каталогов сервера, приема, передачи и удаления файлов или папок.
В качестве такой программы может использоваться обычный браузер, компоненты операционной системы или специально разработанные программные продукты, как,
например, популярный менеджер закачек Download Master
или многофункциональный бесплатный FileZilla FTP Client
.
Эти примеры сеансов должны помочь сделать вещи немного яснее. Традиционно это порт 21 для командного порта и порт 20 для порта данных. Однако путаница начинается, когда мы обнаруживаем, что в зависимости от режима порт данных не всегда находится на порту.
Затем сервер подключится к указанному порту данных клиента из своего локального порта данных, который является портом. На шаге 3 сервер инициирует соединение в своем локальном порту данных с портом данных, указанным клиентом ранее. С брандмауэра на стороне клиента это выглядит как внешняя система, инициирующая соединение с внутренним клиентом — то, что обычно блокируется.
Протокол FTP разрабатывался еще в те времена, когда клиент и сервер взаимодействовали напрямую, без каких-либо промежуточных преобразований TCP- пакетов, и в стандартном режиме
предполагает возможность создания TCP — соединения не только по инициативе клиента, но и по инициативе сервера от TCP порта 20 на TCP — порт клиента, номер которого передается
в процессе создания сеанса передачи данных.
Нормальный вывод сервера отображается черным цветом, а пользовательский ввод выделен жирным шрифтом. В этом диалоговом окне ест
FTP over SSL (FTPS) в Windows Server 2012 R2
Одним из основных недостатков протокола FTP для передачи файлов – отсутствие средств защиты и шифрования передаваемых данных. Имя и пароль пользователя при подключении к FTP серверу также передаются в открытом виде. Для передачи данных (особенно по публичным каналам связи) рекомендуется использовать более безопасные протоколы, такие как FTPS или SFTP. Рассмотрим, как настроить FTPS сервер на базе Windows Server 2012 R2.
Протокол FTPS (FTP over SSL/TLS, FTP+SSL) – является расширением стандартного протокола FTP, но соединение между клиентом и сервером защищается (шифруется) с помощью протоколов SSL /TLS. Как правило, для подключения используется тот же самый порт 21.
Примечание. Не стоит путать FTPS с SFTP (Secure FTP или SSH FTP). Последний является расширением протокола SSH, не имеющий с FTP ничего общего.
Поддержка FTP over SSL появилась в IIS 7.0 (Windows Server 2008). Для работы сервера FTPS, на веб сервере IIS понадобится установить SSL сертификат.
Установка роли FTP сервера
Установка роли FTP сервера на Windows Server 2012 проблем не вызывает и уже не раз описана.
Генерация и установка на IIS SSL сертификата
Затем открываем консоль IIS Manager, выбираем сервер и переходим в раздел Server Certificates.
Этот раздел позволяет импортировать сертификат, создать запрос на получение сертификата, обновить сертификат или создать самоподписанный сертификат. В целях демонстрации мы остановимся на самоподписанном сертфикате (его также можно создать с помощью командлета New-SelfSifgnedCertificate). При обращении к сервису будет появляться предупреждение о том, что сертификат выдан недоверенным CA, чтобы отключить это предупреждение для данного сертификата, его можно добавить в доверенные через GPO.
Выбираем Create Self-Signed Certificate.
В мастере создания сертификата указываем его имя и выбираем тип сертификата Web Hosting.
Самоподписанный сертификат должен появиться в списке доступных сертификатов. Срок действия сертификата – 1 год.
Создаём FTP сайт с поддержкой SSL
Далее нужно создать FTP сайт. В консоли IIS щелкаем ПКМ по узлу Sites и создаем новый FTP сайт (Add FTP).
Указываем имя и путь к корневому каталогу FTP сайта (у нас каталог по-умолчанию C:\inetpub\ftproot).
На следующем шаге мастера в разделе SSL сертификатов выбираем созданный нами сертификат.
Осталось выбрать тип аутентификации и права доступа пользователей.
На этом завершаем работу мастера. По умолчанию SSL защита является обязательной и используется для шифрования как команд управления так и и передаваемых данных.
FTPS и межсетевые экраны
При использовании протокола FTP используется 2 разных TCP соединения, по одному передаются команды, по другому данные. Для каждого канала данных открывается свой TCP порт, номер которого выбирается сервером или клиентом. Большинство файерволов позволяют инспектировать FTP трафик и, анализируя его, автоматически открывать нужные порты. При использовании защищенного FTPS передаваемые данные закрыты и не поддаются анализу, в результате межсетевой экран не может определить какой порт нужно открыть для передачи данных.
Чтобы не открывать снаружи к FTPS серверу весь диапазон TCP портов 1024-65535, можно принудительно указать FTP серверу диапазон используемых адресов. Диапазон указывается в настройках сайта IIS в разделе FTP Firewall Support.
После изменения диапазона портов нужно перезапустить сервис (iisreset).
Во встроенном файерволе Windows за входящий трафик будут отвечать правила:
- FTP Server (FTP Traffic-In)
- FTP Server Passive (FTP Passive Traffic-In)
- FTP Server Secure (FTP SSL Traffic-In)
Соответственно на внешнем межсетевом экране придется открыть порты 21, 990 и 50000-50100 (выбранный нами диапазон портов).
Тестирование подключения FTP over SSL
Для тестирования подключения по FTPS воспользуемся клиентом Filezilla.
- Запустите FileZilla (или любой другой клиент с поддержкой FTPS).
- Нажмите File > Site Manager, и создайте новое подключение (New Site).
- Укажите адрес FTPS сервера (Host), тип протокола (Require explicit FTP over TLS), имя пользователя (поле User) и требование требовать ввод пароля для авторизации (Ask for password)
- Нажимаем кнопку Connect и вводим пароль пользователя.
- Должно появиться предупреждение о недоверенном сертификате (при использовании самоподписанного сертификата). Подтверждаем соединение.
- Соединение должно установиться, а в журнале должны появиться строки:
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established. - Это означает, что безопасное соединение установлено, и вы можете передавать файлы по протоколу FTPS
SFTP против FTPS: ключевые отличия
FTP, SFTP, FTPS, HTTPS, AS2 … столько много вариантов для передачи файлов может ввести в заблуждение, чтобы ответить на вопрос, что имеет значение, какой лучший способ обезопасит данные Вашей компании во время передачи? Этот пост в блоге является введением в различиях между двумя основных защищенными протоколами FTP, SFTP и FTPS, и которые является лучшим выбором для защиты передачи ваших файлов.
Не могу просто использовать FTP?
FTP является популярным методом передачи файлов, который использовался везде, и на сегодняшней день не сильно изменилась, так как это изобретение. Тогда он, как правило, предполагался, что интернет-активность не была активно направлена на взлом, поэтому FTP не был создана с функциями, чтобы иметь дело с такой угрозой кибербезопасности, которую мы теперь видим в новостях каждый день.
FTP обменивается данными с использованием двух отдельных каналов, известных как командный канал и канал передачи данных. С помощью FTP, оба канала в незашифрованном виде, в результате чего любые данные, передаваемые по этим каналам, уязвимы для перехвата и чтения.
Даже если человек почти не рискует, нормативные акты отрасли, такие как PCI DSS, HIPAA, и другие, требуют передачи данных, которые будут зашифрованы. К сожалению, несмотря на наращивание угроз безопасности и высокую стоимость несоблюдения, FTP на самом деле растет в популярности.
Мы настоятельно рекомендуем вам избежать базового протокола FTP и выберите безопасный вариант.
Что такое FTPS?
В 1990-е годы озабоченность по поводу интернет-безопасности только росло, и в ответ Netscape создал Secure Sockets Layer (SSL, теперь известный как TLS) протокол для защиты связи по сети. SSL был применен к FTP для создания FTPS. Как FTP, FTPS использует два соединения, командный канал и канал передачи данных. Вы можете выбрать для шифрования оба соединения или только канал передачи данных.
FTPS проверяет подлинность подключения, используя либо идентификатор пользователя и пароль, сертификат, или обоих. При подключении к серверу FTPS торгового партнера, ваш клиент FTPS сначала проверит наличие доверенного сертификата сервера. Сертификат считается доверенным, если либо сертификат был подписан известным центром сертификации (CA) таким как Let’s Encrypt, или если сертификат был самозаверяющими вашим партнером и вы имеете копию своего открытого сертификата в доверенном хранилище ключей. Ваш партнер может также потребовать, чтобы вы предоставили сертификат при подключении к нему. Если сертификат не подписан третьей стороной CA, ваш партнер может позволить вам самостоятельно подписать сертификат, отправив им открытую часть заранее, чтобы загрузить в их доверенное хранилище ключей.
Идентификатор аутентификации пользователя может использоваться с любой комбинацией сертификата и/или пароля аутентификации.
Что такое SFTP?
В то время как FTPS добавляет слой к протоколу FTP, SFTP совершенно другой протокол, основанный на сетевом протоколе SSH (Secure Shell), а не FTP. В отличие от обоих FTP и FTPS, SFTP использует только одно соединение и шифрует как информацию об аутентификации так и передающееся файлы данных.
SFTP обеспечивает два способа аутентификации соединений. Как FTP, вы можете просто использовать идентификатор пользователя и пароль. Тем не менее, с SFTP эти учетные данные шифруются, что дает ей большое преимущество безопасности перед FTP. Другой метод аутентификации, который вы можете использовать с SFTP является ключи SSH. Это предполагает в первую генерацию секретного ключа SSH и открытый ключ. Затем отправляете свой открытый ключ SSH к вашему торговому партнеру, и они загружают его на свой сервер и связывают его с вашим аккаунтом. При подключении к вашему серверу SFTP, их клиентское программное обеспечение будет передавать свой открытый ключ на сервер для аутентификации. Если открытый ключ соответствует вашему закрытому ключу, наряду с любым пользователем или переданным паролем, то верификация будет пройдена.
Идентификатор аутентификации пользователя может быть использован с любой комбинацией ключа и/или аутентификации по паролю.
В чем разница между FTPS и SFTP?
Мы установили, что как FTPS и SFTP обеспечивают сильную защиту через параметры аутентификации, которые FTP не может обеспечить. Так почему вы должны выбрать один из двух?
Одним из основных отличий между FTPS и SFTP является то, что FTPS использует несколько номеров портов. Первый порт, для канала управления, используется для команд аутентификации и прохождения. Тем не менее, каждый раз, когда запрос на передачу файлов или запрос списка каталогов был сделан, другой номер порта должен быть открыт для канала данных. Таким образом, вы и ваши торговые партнеры должны будут открыть диапазон портов в брандмауэре, чтобы позволить FTPS соединение, которые могут представлять угрозу безопасности для вашей сети. SFTP требуется только один номер порта для всех SFTP коммуникаций, что делает его легко обеспеченным.
В то время как оба протокола имеют свои преимущества, мы рекомендуем SFTP благодаря его более удобного использования с межсетевыми экранами. Для предприятия, он идеально подходит, для решения с помощью менеджера передачи файлов (MFT), который может управлять, контролировать и автоматизировать передачу файлов с использованием различных протоколов, в том числе FTPS и SFTP. MFT является чрезвычайно ценным, если у вас есть торговые партнеры с разными требованиями, и она имеет дополнительные функции, такие как подробные журналы аудита, чтобы помочь вам соблюдать правила предприятия.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Зачем в FTP нужны порты и как их «пробрасывать»
Настройка FTP — несложный процесс, который имеет свои специфические особенности. Если вы сразу постараетесь во всем разобраться, то работа с сервером FTP станет для вас одним наслаждением. Через такие сервера вы сможете скачивать музыку, фильмы, картинки и прочие файлы, а также содержать сайт с хостом, работающим через протокол передачи данных. Но для этого нужно хорошо понять, что к чему, а в особенностях необходимо разобраться в том, что из себя представляет FTP-порт, для чего он нужен и как его настроить.Именно об этом и пойдет речь в статье. Вы узнаете, какой порт стандартный, как изменить настройки по умолчанию для портов и разблокировать его в брандмауэре и роутере.
Что из себя представляет порт и зачем он нужен
Если разобраться, то все предельно просто. У операционной системы компьютера есть определенное ограниченное число портов. Они нужны для того, чтобы программы могли подключаться через сеть. Это сделано для того, чтобы приложения несовместимы между собой во время подключиться к сети.Порт — это лишь цифра транспортного протокола. Его можно сравнить с трассой. Если все программы запускать по одной и той же «трассе», то на ней быстро образуется пробка. Должен быть выделен свой уникальный порт — то есть еще не занятое другими программами число.
Разработчики систем систем уже давно используют такой метод распределения программ по пронумерованным протоколам и он хорошо себя зарекомендовал. Ведь существует более тысяч портов, чего с головой хватит для любого компьютера!
FTP — это протокол передачи данных..
Такой протокол удобен для тех людей, которым неважен веб-интерфейс хранилища, которые ценят скорость загрузки и количество файлов, которые можно хранить на сервере. Нет лучшего способа обмена объемными данными, чем через протокол FTP. И работает этот протокол через канал TCP. А для того, чтобы подключиться к этому каналу, необходимый порт. То есть чтобы открыть сервер, клиент должен зайти на его порт, и уже через него проникнуть на его порт.В этом и кроется вся суть портов для FTP.
Что такое активный и пассивный режим, и как они связаны с портами
Дело в том, что есть два варианта развития взаимодействия клиента с сервером. Первый вариант — это когда программа назначает порт, по которому ей удобно пользоваться. То есть на сервере установлен специальный номер порта, и система с этим соглашается, освобождает его. А второй вариант — это когда операционная система сама подбирает для программы порт для выхода в сеть.
В FTP когда пытается подключиться к серверу, активный режим проявляется в момент установки соединения для передачи данных. Если задан активный режим, то тогда задает номер порта соединения, который должен открыть сервер. Получается, что клиент управляет ситуацией, а сервер подстраивается под него. А в пассивном режиме выступает пассивно, то есть принимает от сервера сообщение с номером порта для соединения, и подключается по нему.
Но дело в том, что в протоколе FTP есть два типа соединения:
- Управляющее.
- Соединение для передачи данных.
Активность и пассивность клиента проявляется только во втором типе соединения. Первое необходимо для того, чтобы сервер и клиент могли общаться между собой. То есть чтобы сервер принимал команды от клиента, потому что это соединение и называется управляющим. Такое соединение работает через стандартный порт, установленный по умолчанию.
Как настроить порты по умолчанию, чтобы FTP-сервер заработал
Многие, кто устанавливает FTP-сервер в популярной операционной системе Windows, сталкиваются с проблемой закрытых портов.В результате клиент не может открыть сервер, потому что тот недоступен для него — «трасса» перекрыта. Потому нужно уметь настраивать порты, и об этом далее пойдет речь в статье.
По умолчанию в FTP настроены 20 и 21 порты. Требуется 21 порт, который необходим для передачи данных. А вот 20 порт нужен в основном для активного режима. В любом случае вам необходимо освоить навык проброса портов, чтобы обойти стандартные блокировки системы и роутера.
Проблема в том, что далеко не все пользователи Windows решаются на затею создать у себя на компьютере FTP-сервер. Потому что операционная система блокирует доступ инородных тел (удаленных компьютеров) на ПК через каналы транспортных протоколов. И, как правило, 21 и 20 порты также входят в список заблокированных для удаленных клиентов. А блокируют их со стороны компьютера — брандмауэр, и устройство-посредник для доступа к Интернету — роутер. Вам нужно научиться обходить эту двойную защиту, чтобы вы могли открывать не только 21 порт, но и другие, когда потребуется.
Настройка проброса портов 21 и 20 начинается с изменений конфигурации брандмауэра. Вам необходимо открыть «Панель управления» через «Пуск». Далее отыщите вкладку «Система и безопасность» и внутри нее найдите раздел «Брандмауэр Windows». Далее вам необходимо добраться к «Дополнительным параметрам брандмауэра» в левом боковом меню настроек. Брандмауэр работает посредством правил, потому что вам нужно лишь создать новые стандарты для этой службы, чтобы она не мешала работе FTP-сервера.Для этого нажмите «Правила для входящих подключений» и кнопку «Создать правило». Ничего прописывать не придется — это не написание программы, так как в Windows все работает через интуитивно понятный интерфейс. Вам нужно будет указать тип правила «Для порта». Потом выбрать «Протокол TCP» и указать в форме «Определенные локальные порты» число 21. Далее разрешаете подключение через порт 21, определяете уровень доступа для клиентов, прописываете правила и сохраняете введенные настройки.
Следующий шаг вам необходимо настроить для исходящих соединений.Ведь не только клиент будет загружать на сервере различные данные и отдавать команды. Исходящие соединения вам также нужно одобрить. В целом, настройка правил для таких соединений ничем не отличается от выше описанной. Вам также нужно будет прописать порт 21 и везде активировать разрешение, которое по умолчанию заблокировано. Если вы можете активный режим, то использовать в строке, куда нужно прописывать порт, указывать через запятую сразу две цифры: 21 и 20.Может на будущее, то в правиле прописать целый диапазон портов, для которого соединение будет разрешено — для этого пропишите цифры через дефис без пробелов.
Иногда настройки одного брандмауэра недостаточно. К стандартным службам подобного плана относится еще и фаерволл. Его настраивать еще проще, чем брандмауэр. Вам не добавляйте новое правило, а нужно будет лишь отметить галочку возле FTP-сервер для входящих и исходящих соединение. Брандмауэр сам определит порты, через которые работает ваш сервер, и даст добро на их открытие.
Куда сложнее обстоят дела с роутерами. Дело в том, что их сейчас большое множество. Потому что открыть порты 21 и 20 через роутер каким-то универсальным способом не получится — у каждой марки и модели свои нюансы, в нужно разбираться. Если вы вообще никогда не влазили в настройки роутера, то лучше не спешите с этим. Почитайте на форумах, разберитесь в меню и функциях, и только затем пробуйте пробросить порт в роутере.
За блокировка портов через границы, которые установлены в роутере.К примеру, это может быть не проставленная галочка возле опции UPnP. Данная опция необходима для того, чтобы программы автоматически пробрасывали порты через роутер и вас не тревожили. Как правило, если в вашем роутере есть такая функция, то она активирована, но бывает всякое, и вполне может быть, что в вашем маршрутизаторе она отключена. Тогда вам осталось найти такой пункт настроек и поставить возле него одобрительную галочку для включения.
С другой стороны, порой порты нужно указывать в специальных пунктах настроек роутеров.Для этого вам нужно подключиться к роутеру локальную сеть. Чтобы сделать это, посмотрите на нижнюю сторону маршрутизатора IP-адрес, а затем введите его в адресную строку любого типа. Перед вами откроется меню роутера, в котором нужно найти настройки подключения по локальной сети. В таких настройках, как правило, есть конфигурации семейств IP, которые могут подключаться к роутеру, а также порты, которые открыты для работы. Вам нужно указать диапазон портов, чтобы роутер их не блокировал.Не забудьте учесть диапазон, чтобы числа 20 и 21 вошли в него.
Обязательно использовать 21 порт
Люди, которые постоянно имеют дело с серверами и их, наслышаны о цифре 21. Для них они являются знаковой, так как многие сервера и протоколы, не только FTP, используют 21 порт по умолчанию. И это плохо, если начать анализировать ситуацию. Ведь протокол передачи данных совсем не защищен от перехвата. В любой момент опытные хакеры могут напасть на ваш сервер и перехватить пароль и логин клиента.Затем они проникнут на сервер и украдут важные данные, либо спрячут в каталогах вредоносные программы и вирусы.
Чтобы хоть как-то повысить уровень безопасности использования протокола FTP, рекомендуется сменить в настройках стандартный порт, который нужен для подключения. Сделать это несложно, но у каждого сервера запускается по-своему. Единственный нюанс заключается в том, что потом при подключении клиенту необходимо указывать новый номер порта вместо цифры 21.В этом и суть защиты — хакеры не будут знать порт, по которому нужно перехватывать данные, потому что не сумеют их украсть.
.
Описание протокола FTP + примеры
. Если вы достаточно давно читаете этот, то можете помнить о том, как я решил собрать в нем описание популярных (и не очень) сетевых протоколов. Зачем это мне нужно, можно прочитать в статье Достаточно полное описание протокола SMTP. Вот решил пополнить коллекцию протоколом FTP, повсеместно используемым для передачи файлов.
1. Заходим
По традиции, сразу начну с примера:
$ telnet example.ru 21
Пробуем 192.] ‘.
220-Добро пожаловать в Pure-FTPd
Вы являетесь пользователем номер 5 из 100 возможных.
Местное время сейчас 17:41. Порт сервера: 21.
220 Вы будете отключены через 15 минут бездействия.
ПОЛЬЗОВАТЕЛЬ afiskon
331 Пользователь afiskon OK. Требуется пароль
PASS lamepassword
230-Пользователь afiskon имеет групповой доступ к: кодерам
230 OK. Текущий каталог с ограничениями: /
FTP-сервер обычно работает на 21 порту. В приведенном примере строки, начинающиеся с цифр, посылаются сервером, остальные — клиентом.Запросы клиента всегда состоят из одной строки формата КОМАНДА [аргументы] , в то время как ответы сервера могут содержать несколько строк.
Первая и последняя строки начинается с трех цифр, представляющих собой код ответа, за который идет текстовое описание ответа, отделенное от кода либо пробелом, либо тире. В качестве разделителя используется пробел, значит строка является последней в ответе (и, возможно, единственной), иначе — мы получили первую строку многострочного ответа.Где-то мы это уже видели, не так ли?
Существует пять групп ответов сервера:
Код | Значение |
1xx | Команда принята и в настоящее время идет ее выполнение. |
2хх | Команда принята и успешно выполнена. |
3хх | Команда принята, требуется дополнительная команда. |
4xx | Команда не может быть принята в данный момент. |
5xx | Невозможно выполнить команду. |
Как видно из примера, все начинается с посылки сервером кода 220. Затем пользователь должен залогиниться с помощью команд USER и PASS. Если все сделано, на первый сервер ответит кодом 331, а на вторую — 230. Для анонимного входа (если он разрешен настройками сервера), в качестве имени пользователя следует указать «анонимный», а в качестве пароля — свой e-mail. На практике обычно используется либо пустой e-mail, либо что-то типа root @ example.RU.
Как видно, пароль передается в открытом виде, потому что крайне желательно шифровать FTP-соединение с помощью SSL (это называется FTPS — FTP плюс SSL), а еще лучше — передать файлы по SSH с помощью утилит scp, sftp или WinSCP. Первые две есть в любой системе unix и используют для передачи файлов одноименные протоколы, работающие SSH. WinSCP написан для Windows и внешне напоминает Total Commander, умеет работать как с устаревшим SCP (Secure Copy), так и SFTP (SSH File Transfer Protocol), появившимся только в SSH-2.
2. Осматриваемся
Но что-то меня не в ту степь понесло. После прохождения аутентификации (надо же, больше не путаю с авторизацией ) FTP-сервер с радостью выполнит наши команды. Вот их список:
Команда | Ожидаемый код | Описание |
DELE | 250 | Удалить файл |
RMD | 250 | Удалить директорию |
CWD | 250 | Перейти в директорию |
MKD | 257 | Создать директорию |
PWD | 257 | Узнать текущую директорию |
ВЫЙТИ | 221 | Закончить работу |
ТИП | 200 | Установить тип передачи |
ПОРТ | 200 | Перейти в активный режим |
ПАСВ | 227 | Перейти в пассивный режим |
СПИСОК | 150, 226 | Получить содержимое каталога |
RETR | 150, 226 | Скачать файл |
СТОР | 150, 226 | Залить файл |
ABOR | 426 226 | Отменить передачу |
RNFR | 350 | Выбрать файл для переименования |
РНТО | 250 | Переименовать файл |
Здесь я перечислил лишь основные команды, которые достаточно для написания полноценного FTP-клиента.Дело в том, что в реальных условиях FTP-сервер очень защищо к поддержке команд, описанных в RFC959 и RFC3659. Так что, если мы хотим получить действительно работающее приложение, не сферического коня в вакууме, придется ограничиться лишь командой из приведенного списка.
Самые простые команды — это QUIT, DELE, MKD, CWD и RMD . Просто командуем и проверяем код, возвращаемый сервером. Если он равен ожидаемому, значит все ОК, если нет — обрабатываем ошибку.
MKD ftp_test
257 «ftp_test»: каталог был успешно создан
CWD ftp_test
250 OK. Текущий каталог: / ftp_test
CWD ..
250 OK. Текущий каталог: /
RMD ftp_test
250 Каталог был успешно удален
Если бы я писал FTP-клиент, то код, отвечающий за выполнение названных команд, выглядел бы примерно так:
внутренний код;
char * dir;
// …
if (code = rawcmd (250, «RMD% s \ r \ n», dir))
printf («Ошибка:% d \ n», код);
else
printf («Все готово! \ N»);
Чуть сложнее с парсингом ответа сервера по команде PWD :
PWD
257 «/ ftp_test» — ваше текущее местоположение
Текущая директория передается в единственной (последней?) Строке ответа, заключенная в двойные кавычки.Если полное имя текущей директории содержит двойные кавычки, они заменяются на две кавычки:
PWD
257 «/ ftp» «test» — ваше текущее местоположение
Для переименования файлов используется пара команд — RNFR и RNTO :
RNFR old_file.zip
350 Ты шутишь?
RNTO new_file.zip
250 Готово!
По всей видимости, это такая оптимизация, чтобы буфер, в котором сервер читает команду клиента, был максимально допустимой длины имени файла, а не в два раза больше.В 1971-м году, когда был создан протокол, это могло быть важно.
Команда TYPE позволяет установить режим передачи файлов. Пример:
TYPE E
200 TYPE теперь EBCDIC
TYPE A
200 TYPE теперь ASCII
TYPE I
200 TYPE теперь 8-битный двоичный
Насколько я могу судить, сегодня эта команда уже устарела и все данные можно передать в бинарном формате (ТИП I). Цитата из Википедии:
Первые компьютеры использовали формат, размером в байт, машинное, двойное машинное слово, не кратное слово 8.Обычно они были кратны шести. Восемь бит в байте было принято при разработке системы машинных команд для IBM System / 360. Это стало международным стандартом и с начала 1970-х большинство компьютеров использует байты, состоящие из 8 бит, и машинные слова, кратные 8.
3. Действуем
Особенность протокола FTP — для выполнения команд и передачи файлов используются разные соединения. Это в общем-то нормальное проектное решение. Что там в этих файлах записано, как-то кодировать содержимое файла, чтобы отличить его от команд.Зачем увеличить объем трафика и усложнять протокол, когда можно просто открыть новое соединение и послать файл, как есть?
При установлении нового соединения кто-то должен собственно соединяться, а кто-то принимать соединение. Если клиент открывает, а сервер коннектится к нему, режим передачи файла называется активным. В обратном случае — пассивным. Многие пользователи сегодня сидят за NAT, обычно используется пассивный режим. И это не очень хорошо, потому что число портов у сервера ограничено.
Что интересно — возможность передачи файлов с одного FTP-сервера на другой напрямую. Но поскольку такая возможность часто используется в DDoS-атаках, сейчас она практически везде отключена.
Для перехода в активный режим используется команда PASV , для перехода в активный — PORT :
PORT 192,168,10,1,21,133
200 Команда PORT выполнена успешно
PASV
227 Переход в пассивный режим (192,168,0,1,21,216)
Как несложно догадаться, с помощью цифр кодируется IP-адрес и порт для соединения.] ‘.
После чего, например, просмотреть текущий каталог, заюзав команду СПИСОК :
СПИСОК
150 Принятые соединения для передачи данных
226-Опции: -a -l
226 Всего 5 совпадений
Смотрим на вывод telnet:
drwx —— 5 кодеров afiskon 512 7 июля, 11:35.
drwx —— 5 кодеров afiskon 512 7 июля 11:35 ..
drwxr — r— 3 кодеров afiskon 512 6 июня 14:30 eax.me
drwxr-xr-x 2 кодеров afiskon 1024 7 июля 00:16 logs
drwxr — r— 2 afiskon coders 512 6 июня 14:30 tmp
Соединение прервано внешним хостом.
Абсолютно аналогично происходит скачивание и аплоад файлов, только используемые команды RETR {файл} и STOR {файл} соответственно. Команды RETR, STOR и LIST можно прервать в процессе выполнения с помощью команды ABOR , в ответ на который сервер должен ответить 426 «передача прервана», а — 226 «отмена операции произошла успешно».
4. Заключение
На этом я, пожалуй, закончу свое повествование. Получилось 9 Кб текста против 130 Кб RFC959.По этой статье вполне можно написать несложный FTP-клиент или сервер, я проверял! Самое главное — это протестировать его на совместимость с максимально возможным воздействием ПО, поскольку, как я уже отмечал, в мире FTP мало кто строго следует RFC. Ну и последнее — помните золотое правило «Будь либерален с входом, строг с выходом».
Дополнение: Вас также может заинтересовать заметка Памятка по использованию WebDAV
Метки: Протоколы, Сети.
.
Доступ к FTP-серверу за NAT. Категория: ОС Linux • Разное
Протокол FTP является старейшим сетевым протоколом (создан в 1971 году), но, тем не менее, широко используется по сей день. Важной особенностью протокола является то, что он использует несколько соединений: одно для управляющих команд, остальные для данных. Причем соединений для передачи данных может открываться несколько.
В зависимости от возможности установления передачи данных различают активный и пассивный режимы работы FTP.В активном режиме сервер сам устанавливает соединение передачи данных к клиенту, в пассивном режиме наоборот.
Активный режим
В активном режиме устанавливает управляющее соединение на порт 21
сервера и передает специальную команду PORT
, в которой указывает свой адрес и порт для передачи данных. Получив команду, установить соединение с 20 через команду порт клиента.
Тут сразу виден недостаток данного метода: для работы в активном режиме клиенту требуется выделенный IP-адрес.Также возникнет сложность при нахождении клиента за брандмауэром или NAT-ом.
Пассивный режим
В пассивном режиме устанавливает управляющее соединение на порт 21
сервера и передает специальную команду PASV
. В ответ сервер передает адрес и порт, который следует установить соединение для передачи данных. Получив эту информацию, клиент устанавливает подключение к серверу и начинает передачу данных.
Как активирует в пассивном режиме все вызовы, вызываемые клиентом, он может быть вызван через NAT и брандмауэром, а также не имеет выделенного IP-адреса.Поэтому на сегодняшний день основной режим работы FTP является пассивным.
FTP сервер за NAT
У меня дома компьютер с установленной Windows 10 и VirtualBox. Давайте создадим несколько виртуальных машин: router
, pc-1
, pc-2
, ftp-server
и web-server
(будет играть роль FTP-клиента). У предложенной машины роутер
два сетевых интерфейса:
-
enp0s3
(сетевой мост) — смотрит в домашнюю сеть, получает ip-адрес192.168.110.8
от роутера Keenetic Air -
enp0s8
(виртуальная сеть) — смотрит в одну сеть с виртуальным машинамиpc-1
,pc-2
иftp-server
Виртуальная машина router
обеспечивает выход в интренет для pc-1
, pc-2
и ftp-server
. Все это более подробно можно прочитать здесь. А если совсем коротко, то тогда так
$ sudo nano / etc / sysctl.conf
# Раскомментируйте следующую строку, чтобы включить пересылку пакетов для IPv4 net.ipv4.ip_forward = 1
$ sudo sysctl -p net.ipv4.ip_forward = 1
$ sudo iptables -t nat -A POSTROUTING -o enp0s3 -j SNAT --to-source 192.168.110.8 # SNAT для enp0s3 $ sudo iptables-save> /etc/iptables/rules.v4 # должен быть установлен пакет iptables-persistent
Давайте установим на виртуальную машину ftp-server
FTP-сервер vsftpd
:
$ sudo apt установить vsftpd
Про настройки подробно рассказывать не буду (подробнее можно прочитать здесь), секретну только важные для нас:
-
pasv_enable = NO
— используется только активный режим -
pasv_enable = YES
— можно использовать пассивный режим -
pasv_address = XXX.XXX.XXX.XXX
— этот ip-адрес сервер будет клиенту вместо своего в ответ наPASV
-
pasv_min_port
иpasv_max_port
— сервер будет отправлять клиенту порт из этого диапазона в ответ наPASV
$ sudo nano /etc/vsftpd.conf
# Слушать и обрабатывать входящие соединения слушай = ДА # Запретить доступ для анонимных пользователей anonymous_enable = НЕТ # Использовать для авторизации учётные записи пользователей local_enable = ДА # Разрешить изменения файловой системы (запись и удаление файлов) write_enable = ДА # Маска для вновь создаваемых файлов и директорий local_umask = 022 # Запретить пользователям выходить за пределы домашнего каталога chroot_local_user = ДА # Разрешить запись в домашний каталог (иначе будет ошибка) allow_writeable_chroot = ДА # Показывать скрытые файлы, которые начинаются с точки force_dot_files = НЕТ # При выводе списка файлов показывать локальное время, а не GMT use_localtime = ДА # Записывать в / var / log / vsftpd.журнал данных о загрузке и загрузках xferlog_enable = ДА # Включить поддержку ASCII для замены символов переноса строки ascii_upload_enable = ДА ascii_download_enable = ДА # Использовать кодировку UTF-8 при работе с файловой системой utf8_filesystem = ДА # Разрешить использование пассивного режима pasv_enable = НЕТ # Диапазон портов для работы FTP-сервера в пассивном режиме # pasv_min_port = 60000 # pasv_max_port = 60100 # Передавать клиенту этот ip-адрес вместо своего в ответ на PASV # pasv_address = 192.168.110,8
$ sudo systemctl перезапуск vsftpd.service
Теперь на машине router
настроим перенаправление пакетов, которые приходят на внешний интерфейс enp0s3
, порт 21
— это управляющее соединение от клиента к серверу:
$ sudo iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 21 \ > -j DNAT --to-destination 192.168.30.254 # управляющее соединение, активный и пассивный режим
И будем перенаправлять пакеты, которые приходят на внешний интерфейс enp0s3
, порт 60000-60100
, при работе в пассивном режиме — это соединение клиента к серверу для передачи данных:
$ sudo iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 60000: 60100 \ > -j DNAT - к месту назначения 192.168.30.254: 60000-60100 # для передачи данных, пассивный режим
Сохраняем новые правила, чтобы они применились после перезагрузки:
$ sudo iptables-save> /etc/iptables/rules.v4
В реальной ситуации FTP-клиент и маршрутизатор должны иметь белые ip-адреса. Но мы здесь моделируем ситуацию, как будто бы у них белые IP-адреса. Просто потому, что у нас маршртузатор и FTP-клиент находятся в одной сети 192.168.110.0/24
и видят друг друга.Когда FTP-клиент устанавливает управляющее соединение с FTP-сервером — он отправляет пакеты на белый ip-адрес маршрутизатора, на порт 21. Маршрутизатор отправляет эти пакеты внутрь сети 192.168.30.0/24
— на ip- 192.168.30.254
FTP-сервер (DNAT, первое правило).
Активный режим
Вроде все готово, пробуем из сети 192.168.110.0/24
подключиться к FTP-серверу за NAT. Подключиться будем с виртуальной машины веб-сервер
(ip-адрес 192.168.110.12
) в активном режиме (на настройках сервера pasv_enable = NO
).
$ ftp > открыть 192.168.110.8 Подключен к 192.168.110.8. 220 (vsFTPd 3.0.3) Имя (192.168.110.8:evgeniy): евгений 331 Пожалуйста, укажите пароль. Пароль: пароль 230 Вход выполнен успешно. Тип удаленной системы - UNIX. Использование двоичного режима для передачи файлов. > pwd 257 "/" - текущий каталог > реж Команда 200 PORT выполнена успешно. Рассмотрите возможность использования PASV. 150 А вот и список каталогов. drwxrwx --- 1 0 999 0 28 февраля 13:59 поделиться drwx ------ 2 1000 1000 4096 24 февраля, 14:53 тест 226 Справочник отправил ОК.> выход 221 До свидания.
Сервер получил от клиента команду PORT
и успешно обработал — Команда PORT выполнена успешно
. Сервер устанавливает соединение с 20 порталом в команде PORT
ip-адрес и порт клиента и отправляет листинг директории. Адрес клиента — это 192.168.110.12
, сервер отправит данные в шлюз 192.168.30.1
, маршрутизатор перебросит пакеты с интерфейсом enp0s8
на enp0s3
и отправит дальше — FTP-клиент веб-сервер
.
Пассивный режим
Теперь изменим настройки сервера, чтобы разрешить работу в пассивном режиме:
$ sudo nano /etc/vsftpd.conf
# Слушать и обрабатывать входящие соединения слушай = ДА # Запретить доступ для анонимных пользователей anonymous_enable = НЕТ # Использовать для авторизации учётные записи пользователей local_enable = ДА # Разрешить изменения файловой системы (запись и удаление файлов) write_enable = ДА # Маска для вновь создаваемых файлов и директорий local_umask = 022 # Запретить пользователям выходить за пределы домашнего каталога chroot_local_user = ДА # Разрешить запись в домашний каталог (иначе будет ошибка) allow_writeable_chroot = ДА # Показывать скрытые файлы, которые начинаются с точки force_dot_files = НЕТ # При выводе списка файлов показывать локальное время use_localtime = ДА # Записывать в / var / log / vsftpd.журнал данных о загрузке и загрузках xferlog_enable = ДА # Включить поддержку ASCII для замены символов переноса строки ascii_upload_enable = ДА ascii_download_enable = ДА # Использовать кодировку UTF-8 при работе с файловой системой utf8_filesystem = ДА # Разрешить использование пассивного режима pasv_enable = ДА # Диапазон портов для работы FTP-сервера в пассивном режиме pasv_min_port = 60000 pasv_max_port = 60100 # Передавать клиенту этот ip-адрес вместо своего в ответ на PASV pasv_address = 192.168.110.8
$ sudo systemctl перезапуск vsftpd.service
Пробуем подключиться к серверу
$ ftp > открыть 192.168.110.8 Подключен к 192.168.110.8. 220 (vsFTPd 3.0.3) Имя (192.168.110.8:evgeniy): евгений 331 Пожалуйста, укажите пароль. Пароль: пароль 230 Вход выполнен успешно. Тип удаленной системы - UNIX. Использование двоичного режима для передачи файлов. > пассивный Пассивный режим включен. > реж 227 Вход в пассивный режим (192,168,110,8,234,149). 150 А вот и список каталогов.drwxrwx --- 1 0 999 0 28 февраля 13:59 поделиться drwx ------ 2 1000 1000 4096 24 февраля, 14:53 тест 226 Справочник отправил ОК. > выход 221 До свидания.
После команды passive
( PASV
, пассивный режим) сервер сообщает клиенту ip-адрес 192.168.110.8
из директивы pasv_address
(вместо своего 192.168.30.254
) и порт — 60053
(порт вычисляется как ) 234 * 256 + 149 = 60053
).А клиент устанавливает еще одно соединение с сервером — уже для передачи данных.
Тут важно то, что FTP-сервер сообщает FTP-клиенту не свой серый ip-адрес, а белый ip-адрес внешнего интерфейса шлюза (который на самом деле серый, но мы только моделируем реальную ситуацию). И сообщает порт из диапазона 60000-60100, который мы задали в настройках FTP-сервера. FTP-клиент отправляет пакеты с данными на белый ip-адрес маршрутизатора, на порт 60053
. А маршрутизатор отправляет эти пакеты внутрь сети 192.168.30.0 / 24
— на ip-адрес 192.168.30.254
FTP-сервер (DNAT, второе правило).
Поиск:
Linux • Ubuntu • FTP • Конфигурация • Настройка • Сервер • iptables • Активный режим • Пассивный режим • Порт • NAT • Локальная
.