- Установка и настройка FTP-сервера в Linux
- Установка vsFTPd
- Настройка vsFTPd
- Настройка в режиме анонимного доступа
- Настройка в режиме авторизованного доступа
- Ограничение пользователей в своих домашних каталогах
- Защита данных с помощью SSL
- Русские Блоги
- Redhat FTP
- конфигурация
- Первый вид: вход анонимного пользователя
- Второй вид: назначенный логин пользователя
- Второй тип: виртуальный логин
- Настройка FTP-сервера в redhat
- 🇭🇳 Как установить, настроить и защитить FTP-сервер в RHEL 8
- Установите FTP-сервер на RHEL 8
- Настройте FTP-сервер на RHEL 8
- Тестирование FTP-сервера на RHEL 8
Установка и настройка FTP-сервера в Linux
File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.
Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:
- Работа с виртуальными пользователями.
- Работа с виртуальными IP-адресами.
- Конфигурирование пользователей.
- Поддержка
- SSL-шифровние для защиты передаваемых данных.
- Контроль полосы пропускания.
В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.
Установка vsFTPd
Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:
Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:
Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:
Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.
После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:
Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:
Запуск, перезапуск и остановка сервера:
Для включения демона vsftpd в автозагрузку используется команда:
Аналогично и с командой service.
Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:
Настройка vsFTPd
Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:
На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:
$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup
FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.
Настройка в режиме анонимного доступа
Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.
Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:
Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.
Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:
Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:
Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:
$ systemctl restart vsftpd
Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:
что в случае успешного выполнения даст примерно такой вывод:
Настройка в режиме авторизованного доступа
Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:
Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:
Примечание: для авторизации локальных пользователей используется пароль пользователя для локального входа в систему.
Теперь нужно перезапустить vsftpd для активации сделанных изменений:
Ограничение пользователей в своих домашних каталогах
Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:
Первая включает использование списка пользователей, вторая определяет файл, в котором в каждой строке перечислены пользователи с доступом только к своим домашним каталогам. Если при этом ещё указать директиву:
которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.
При распределении FTP-доступа среди пользователей может возникнуть ошибка, которая возникает из-за того, что локальный пользователь имеет права на запись в корне домашнего каталога, что по соображениям безопасности недопустимо. Эта ошибка выглядит следующим образом:
Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:
Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:
Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.
Защита данных с помощью SSL
Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.
Для включения режима FTPS нужно задействовать следующую директиву:
По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:
Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Русские Блоги
Redhat FTP
Этот протокол не будет много объясним. Я считаю, что пока вы изучаете компьютер, вы должны быть знакомы с этим протоколом. Посмотрите прямо на конфигурацию.
конфигурация
Перед настройкой, чтобы облегчить настройку, я поставил брандмауэр и selinux
server | client | |
---|---|---|
ip | 192.168.0.100 | 192.168.0.200 |
hostname | system1 | system2 |
Первый вид: вход анонимного пользователя
Сторона сервера:
3. Запустите службу и дайте разрешения для общего каталога
сторона клиента
1. Установите ftp и запустите сервис
yum -y install ftp
systemctl start ftp
2. Проверка соединения
ftp 192.168.0.100
Конечно, окна также могут быть доступны.
Второй вид: назначенный логин пользователя
Здесь я создал двух пользователей user1 и user2. Пользователь1 может переключать каталоги после входа в систему, а пользователь2 ограничен своим домашним каталогом (по умолчанию ftp — домашний каталог пользователя).
- Создать пользователя
- Изменить конфигурационный файл vsftp
Если вы хотите простую настройку, просто перезапустите anonymous_enable = NO. В vsftp.conf. Если это появляется
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot () , Это связано с тем, что начиная с 2.3.5 проверки расширенной безопасности vsftpd: если пользователь ограничен своим домашним каталогом, домашний каталог пользователя больше не может иметь разрешения на запись! Если проверка обнаружит, что разрешение на запись еще есть, она сообщит об ошибке. Решение: (1) Добавьте строку в vsftpd.conf: allow_writeable_chroot = YES, чтобы сделать ее доступной для записи. (2) Удалить разрешение на запись для каталога пользователя chmod a-w / home / user1
- проверка
user1: может переключиться на верхний каталог
user2: не может переключиться на верхний каталог
Второй тип: виртуальный логин
Создайте виртуального пользователя virtual_user, используйте зашифрованные пользовательские файлы для входа в ftp
- Создайте виртуального пользователя и зашифруйте
cd /
vim userlist
- Создать виртуального пользователя
- Настроить файл виртуальной конфигурации
vim /etc/pam.d/vsftpd.vu
cp vuser.db / etc / vsftpd / —————— Скопируйте файл пользовательских данных в соответствующий каталог
- Изменить файл конфигурации ftp
vim /etc/vsftpd/vsftpd.conf
- Настроить пользовательские файлы
mkdir / etc / vsftpd / vusers_config_dir # Если вы определяете права пользователя, вы можете создать файл с тем же именем пользователя в этом каталоге.
vim / etc / vsftpd / vusers_dir / vuser1 # определить права доступа vuer1
- Перезапустите сервис для просмотра результатов.
Источник
Настройка FTP-сервера в redhat
Я установил vsftpd в redhat. Все было до тех пор, пока я не зашел на ftp-сервер, используя:
or fileZilla Я получаю следующие ошибки:
Кроме того, когда я меняю каталог журнала с
Затем я получаю:
Из этой ссылки РЕШЕНИЕ выглядит следующим образом:
Как включить ftp без отключения SElinux?
SELinux не позволит vsftpd обслуживать файлы из других мест, кроме /var/ftp или записывать журналы вне /var/log . SELinux – все о смягчении последствий стихийных бедствий. FTP в основном небезопасен. Запуск vsftpd под SELinux – хорошая идея, поскольку он минимизирует ущерб, который может нанести злоумышленник, если он решает атаковать ваш FTP-сервис.
Выполнение фундаментально небезопасного сервиса, такого как vsftpd без его блокировки с SELinux, является глупым.
Если вы абсолютно должны перенастроить его так, вам нужно переписать политики SELinux, связанные с FTP, но это не тривиальное задание. Инструмент audit2allow может помочь .
Если вы решите, что отключение SELinux слишком рискованно, а создание новой политики SELinux слишком сложно, я бы рекомендовал вместо этого использовать SFTP или scp . RHEL отправляется с настройкой и запуском sshd , поэтому вам не нужно ничего делать, чтобы это работало.
Обычно вы можете найти отказ selinux в / var / log / messages. Попробуйте это (как root):
Просмотрите результаты и определите, являются ли отклонения ошибочными, учитывая желаемую конфигурацию. Настройте команды grep, если необходимо, чтобы сводить информацию до только тех утверждений, которые вы хотите исправить. Часто бывает полезно временно перевести систему в разрешающий режим ( setenforce 0 ), а затем выполнить операции, которые вы ожидаете. /var/log/messages будет собирать список ошибок, которые должны быть исправлены в вашей политике SELinux. После того как вы удовлетворены списком опровержений, которые необходимо устранить, создайте новую политику, используя следующее:
В вашем текущем каталоге будут два новых файла: my_vsftp.te и my_vsftp.pp . *.te файл читается, *.pp скомпилирован. Просмотрите файл * .te, чтобы убедиться, что он уместен.
Будьте осторожны, так как открытие слишком многих правил SELinux может оставить вас уязвимыми. Настоятельно рекомендуется читать SELinux.
Если политика выглядит подходящей, установите и активируйте ее:
Убедитесь, что система работает ( getenforce , setenforce 1 ) и проверяет ваш FTP-сервер, отслеживая /var/log/messages для отказов.
Немного жесткое решение, позволяющее доступу vsftpd в любом месте, было бы:
В этот момент vsftpd может работать практически в любой точке системы …
Источник
🇭🇳 Как установить, настроить и защитить FTP-сервер в RHEL 8
FTP (расшифровывается как «Протокол передачи файлов») – это стандартный и старый сетевой протокол, используемый для передачи файлов между клиентом и сервером в компьютерной сети.
Он построен на архитектуре модели клиент-сервер, которая предлагает доступ к файлам и каталогам через FTP-клиент, для загрузки файлов на сервер, а также для загрузки файлов с него.
В этой статье мы хотим описать, как установить, настроить и защитить FTP-сервер на RHEL 8 для базового обмена файлами между компьютерами.
Установите FTP-сервер на RHEL 8
1. Чтобы установить защищенный FTP-пакет, используйте следующую команду dnf.
2. После завершения установки вам необходимо запустить службу vsftpd, включить ее автоматический запуск в системе используя следующие команды systemctl.
3. Затем вам нужно открыть ftp порт 21 на системном брандмауэре, чтобы разрешить доступ к службам ftp из внешних систем.
Настройте FTP-сервер на RHEL 8
4. Для настройки на FTP-сервер необходимо использовать файл конфигурации файла резервной копии /etc/vsftpd/vsftpd.conf с помощью следующей команды копирования.
5. Затем откройте файл конфигурации, используя ваш любимый редактор командной строки.
Установите следующие параметры с этими соответствующими значениями (см. Man vsftpd.conf для просмотра значений параметров конфигурации):
6. Далее необходимо настроить ftp, чтобы разрешить / запретить пользователям доступ к службам ftp на основе файла списка пользователей /etc/vsftpd.userlist.
По умолчанию пользователям, перечисленным в файле /etc/vsftpd.userlist, запрещен доступ с параметром userlist_deny, установленным на YES, если userlist_enable = YES, он разрешает доступ.
Но, установив параметр userlist_deny = NO, вы установите другие параметры, что означает, что только пользователи явно перечисленые в userlist_file = /etc/ vsftpd.userlist смогут войти в систему.
Поэтому добавьте следующие строки в файл конфигурации vsftpd.conf (или, если он уже существует, раскомментируйте их и установите их значения, как показано далее):
7. Теперь добавьте следующие строки в файл конфигурации vsftpd.conf, чтобы ограничить пользователей FTP их домашними каталогами.
Сохраните изменения в файле и закройте его.
8. Установите следующее логическое правило SELinux, чтобы разрешить FTP читать / записывать файлы домашнего каталога пользователя.
9. Наконец, перезапустите службу vsftpd, чтобы внести все изменения, которые мы сделали выше:
Тестирование FTP-сервера на RHEL 8
10. Чтобы проверить, работает ли вышеуказанная настройка FTP, начните с создания пользователя FTP с помощью команды useradd и создайте пароль для этого пользователя.
11. Затем добавьте пользовательский tecmint в файл /etc/vsftpd.userlist с помощью команды echo следующим образом.
12. Затем создайте альтернативный локальный корневой каталог для пользователя (tecmint, ваш, вероятно, другой) и установите соответствующие разрешения для этого каталога.
13. Затем создайте каталог внутри локального корневого каталога, где пользователь хочет хранить свои файлы.
14. Теперь подключитесь к серверу ftp, используя любой клиент ftp, следующим образом.
Источник