An-Ultimate-Guide-to-Setting-Up-FTP-Server-to-Allow-Anonymous-Logins

Полное руководство по настройке FTP-сервера для разрешения анонимных подключений — LFCS часть 18

LFCS

Сейчас, когда значительно место в нашей жизни занимает облачное хранилище, может быть странно говорить об обмене файлами с помощью FTP (File Transfer Protocol).

Тем не менее, он по-прежнему используется для обмена файлами, где безопасность не является важным аспектом, например, для массовой загрузки документов.

Именно по этой причине изучение того, как настроить FTP-сервер и включить анонимную загрузку (без аутентификации), по-прежнему является актуальной темой.

В этой статье мы объясним, как настроить FTP-сервер для разрешений соединений в пассивном режиме, когда клиент инициирует оба канала связи на сервере (один для команд (порт назначения 21 tcp), а другой для фактической передачи файлов (порт назначения 20 tcp), также известный как элемент управления и каналы данных соответственно).

Вы можете больше узнать о пассивных и активных режимах (которые мы здесь не будем рассматривать подробно) в Active FTP vs. Passive FTP.

Тем не менее, давайте начнем!

Настройка FTP-сервера в Linux

Чтобы настроить FTP на нашем сервере, мы установим следующие пакеты:

# yum install vsftpd ftp [CentOS]
# aptitude install vsftpd ftp [Ubuntu]
# zypper install vsftpd ftp [openSUSE]

 

Пакет vsftpd представляет собой реализацию FTP-сервера. Имя пакета — «Very Secure FTP Daemon (очень безопасный FTP-демон)». С другой стороны, ftp — это клиентская программа, которая будет использоваться для доступа к серверу.

Имейте в виду, что во время экзамена вам будет предоставлен только один VPS, где вам потребуется установить как клиент, так и сервер, так что это точно такой же подход, которому мы и последуем в этой статье.

В CentOS и openSUSE вам необходимо будет запустить службу vsftpd:

# systemctl start vsftpd && systemctl enable vsftpd

 

В Ubuntu необходимо запустить vsftpd и установка начнется автоматически после необходимых загрузок файлов. Если нет, вы можете запустить её вручную с помощью:

$ sudo service vsftpd start

 

После установки и запуска vsftpd мы можем перейти к настройке нашего FTP-сервера.

 

Настройка FTP-сервера в Linux

В любой момент вы можете обратиться к man vsftpd.conf для дальнейших настроек. Мы установим наиболее распространенные варианты и упомянем их цель в этом руководстве.

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

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

 

Затем откройте файл /etc/vsftpd/vsftpd.conf (основной файл конфигурации) и отредактируйте следующие параметры, как указано ниже:

1. Убедитесь, что вы разрешаете анонимный доступ к серверу (мы будем использовать каталог /storage/ftp для этого примера — там мы будем хранить документы для доступа анонимных пользователей) без пароля:

anonymous_enable=YES
no_anon_password=YES
anon_root=/storage/ftp/

 

Если вы опустите последний параметр, каталог ftp по умолчанию будет /var/ftp (домашний каталог выделенного пользователя ftp, который был создан во время установки).

 

2. Чтобы включить доступ только для чтения (таким образом отключив загрузку файлов на сервер), установите следующую переменную в НЕТ:

write_enable=NO

 

Важно: используйте только шаги №3 и №4, если вы хотите отключить анонимные логины.

3. Аналогичным образом, вы можете также разрешить локальным пользователям входить в систему со своими системными учетными данными на FTP-сервер. Позже в этой статье мы покажем вам, как ограничить их соответствующими домашними каталогами для хранения и загрузки файлов с помощью FTP:

local_enable=YES

 

Если SELinux находится в режиме принудительного исполнения, вам также необходимо установить флаг ftp_home_dir, чтобы FTP разрешал писать и читать файлы в своих домашних каталогах:

# getsebool ftp_home_dir

 

Если же нет, вы можете включить его с помощью:

# setsebool -P ftp_home_dir 1

 

Ожидаемый результат показан ниже:

SELinux-–-Enable-FTP-on-Home-Directories

 

 

4. Чтобы ограничить пользователей, прошедших проверку подлинности, в своих домашних каталогах, мы будем использовать:

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

 

С приведенными выше настройками chroot и пустым файлом /etc/vsftpd/chroot_list (который вы должны создать), вы ограничите ВСЕХ пользователей системы в своих домашних каталогах.

Важно: обратите внимание, что по-прежнему требуется гарантия, что ни один из пользователей не имеет права на запись в верхний каталог.

Если вы хотите разрешить такой доступ определенному пользователю за пределами своих домашних каталогов, вы можете вставить имена пользователей в /etc/vsftpd/chroot_list, по одному на строку.

 

5. Кроме того, следующие настройки позволят вам ограничить доступную пропускную способность для анонимных логинов (10 КБ) и пользователей с проверкой подлинности (20 КБ) в байтах в секунду и ограничить количество одновременных подключений на каждый IP-адрес до 5:

anon_max_rate=10240
local_max_rate=20480
max_per_ip=5

 

6. Мы будем ограничивать канал данных TCP-портами с 15000 по 15500 на сервере. Обратите внимание, что это произвольный выбор, и вы можете использовать другой диапазон, если хотите.

Добавьте следующие строки в /etc/vsftpd/vsftpd.conf, если они еще не присутствуют:

pasv_enable=YES
pasv_max_port=15500
pasv_min_port=15000

 

7. Наконец, вы можете установить сообщение приветствия, которое будет отображаться каждый раз, когда пользователь будет обращаться к серверу. Ниже приведен пример сообщения приветствия — банера который будет виден при входе на сервер:

ftpd_banner=This is a test FTP server brought to you by sedicomm.com

 

,
8. Теперь не забудьте перезапустить службу, чтобы применить новую конфигурацию:

# systemctl restart vsftpd [CentOS]
$ sudo service vsftpd restart [Ubuntu]

 

9. Разрешите FTP-трафик через брандмауэр (для firewalld):

В FirewallD
# firewall-cmd --add-service=ftp
# firewall-cmd --add-service=ftp --permanent
# firewall-cmd --add-port=15000-15500/tcp
# firewall-cmd --add-port=15000-15500/tcp --permanent

 

Для IP-tables
# iptables --append INPUT --protocol tcp --destination-port 21 -m state --state NEW,ESTABLISHED --jump ACCEPT
# iptables --append INPUT --protocol tcp --destination-port 15000:15500 -m state --state ESTABLISHED,RELATED --jump ACCEPT

 

 

Также нам потребуется загрузить модуль ядра ip_conntrack_ftp:

# modprobe ip_conntrack_ftp

 

И добавить его в автозагрузку. В CentOS и openSUSE это означает добавление имени модуля в IPTABLES_MODULES в /etc/sysconfig/iptables-config следующим образом:

IPTABLES_MODULES="ip_conntrack_ftp"

 

тогда как в Ubuntu вам необходимо добавить имя модуля (без команды modprobe) в нижней части /etc/modules:

$ sudo echo "ip_conntrack_ftp" >> /etc/modules

 

10. И последнее, но не менее важное: убедитесь, что сервер прослушивает сетевые сокеты IPv4 или IPv6 (но не оба одновременно!). В нашем примере мы будем использовать IPv4:

listen=YES

 

Теперь мы проверим недавно установленный и настроенный FTP-сервер.

Тестирование FTP-сервера в Linux

Мы создадим обычный файл PDF (в данном случае, файл vsftpd.conf в формате PDF) в /storage/ftp.

Обратите внимание, что вам может потребоваться установить пакет ghostcript (который есть в пакете ps2pdf) отдельно или использовать другой файл по вашему выбору:

# man -t vsftpd.conf | ps2pdf - /storage/ftp/vstpd.conf.pdf

 

Для тестирования мы будем использовать оба веб-браузера (перейдя на ftp://Your_IP_here) и используя клиент командной строки (ftp). Посмотрим, что произойдет, когда мы вводим этот FTP-адрес в нашем браузере:

FTP-Web-Directory-Browsing

 

 

Как вы можете видеть, файл PDF, который мы сохранили ранее в /storage/ftp доступен.

В командной строке введите:

# ftp localhost

 

И введите анонимное имя пользователя:

Verify-FTP-Connection

 

 

Чтобы скачать файлы с помощью командной строки, используйте команду get, а затем имя файла, например:

# get vsftpd.conf.pdf

 

Выводы

В этой статье мы объяснили, как правильно настроить FTP-сервер и использовать его для анонимного входа в систему. Вы также можете следовать инструкциям, приведенным для отключения таких логинов, и разрешать только локальным пользователям аутентифицироваться с использованием их системных учетных данных (не показано в этой статье, поскольку это не требуется на экзамене LFCS).

Если вы столкнулись с какими-либо проблемами, поделитесь с нами выводом следующей команды, которая будет давать исчерпывающую информацию о вашей ошибке, и мы будем более чем рады взглянуть и помочь:

# grep -Eiv '(^$|^#)' /etc/vsftpd/vsftpd.conf

 

Обратите внимание, что есть другие директивы конфигурации, которые мы не рассматривали в этой статье, поскольку они установлены по умолчанию, поэтому никаких изменений с нашей стороны не было внесенно:

local_enable=NO
write_enable=NO
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=This is a test FTP server brought to you by Tecmint.com
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
anon_max_rate=10240
local_max_rate=20480
max_per_ip=5
anon_root=/storage/ftp
no_anon_password=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=15000
pasv_max_port=15500

 

Ниже приведённая директива:

xferlog_enable=YES

 

включит журнал /var/log/xferlog. Убедитесь, что вы находитесь в этом файле во время устранения неполадок.

Кроме того, не стесняйтесь оставлять нам отзывы, используя форму комментариев ниже, если у вас есть вопросы или комментарии к этой статье.

Стать сертифицированным системным администратором Linux

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LFCS

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню