Добрый день! Сегодня мы рассмотрим как просто можно установить FTP — Server на CentOS 7.
О том как установить CentOS 7 вы можете ознакомиться здесь.
А о том как установить FTP — Server на Windows Server мы говорили тут.
Итак, приступим к установке, устанавливать и настраивать мы будет пакет vsftpd.
Шаг 1. Выполним команду yum install vsftpd -y.
Будет установлен один пакет. Далее его мы и будем настраивать.
Шаг 2. Перейдем в папку /etc/vsftpd. И изменим имя конфигурационным файлам. Добавим к имени файла с окончание .conf к имени .old, чтобы наш файл стал иметь вид *.conf.old
Шаг 3. Теперь создадим файл vsftpd.conf новый, открыв его при помощи редактора vim: vim vsftpd.conf. Скопируем в наш файл следующее содержимое:
#Запуск сервера в режиме службы listen=YES #Работа в фоновом режиме background=YES #Имя pam сервиса для vsftpd pam_service_name=vsftpd #Входящие соединения контроллируются через tcp_wrappers tcp_wrappers=YES #Запрещает подключение анонимных пользователей anonymous_enable=NO #Каталог, куда будут попадать анонимные пользователи, если они разрешены anon_root=/ftp #Разрешает вход для локальных пользователей local_enable=YES #Разрешены команды на запись и изменение write_enable=YES #Указывает исходящим с сервера соединениям использовать 20-й порт connect_from_port_20=YES #Логирование всех действий на сервере xferlog_enable=YES #Путь к лог-файлу xferlog_file=/var/log/vsftpd.log #Включение специальных ftp команд, некоторые клиенты без этого могут зависать async_abor_enable=YES #Локальные пользователи по-умолчанию не могут выходить за пределы своего домашнего каталога chroot_local_user=YES #Разрешить список пользователей, которые могут выходить за пределы домашнего каталога chroot_list_enable=YES #Список пользователей, которым разрешен выход из домашнего каталога chroot_list_file=/etc/vsftpd/chroot_list #Разрешить запись в корень chroot каталога пользователя allow_writeable_chroot=YES #Контроль доступа к серверу через отдельный список пользователей userlist_enable=YES #Файл со списками разрешенных к подключению пользователей userlist_file=/etc/vsftpd/user_list #Пользователь будет отклонен, если его нет в user_list userlist_deny=NO #Директория с настройками пользователей user_config_dir=/etc/vsftpd/users #Показывать файлы, начинающиеся с точки force_dot_files=YES #Маска прав доступа к создаваемым файлам local_umask=022 #Порты для пассивного режима работы pasv_min_port=49000 pasv_max_port=55000
После чего сохраним наш новый конфигурационный файл.
Создадим каталог для настроек пользователей: mkdir /etc/vsftpd/users
Так же создадим каталог для анонимных пользователей.
Шаг 4. Создадим пользователя ftp и назовем его ftp-user, а также зададим ему пароль.
useradd -s /sbin/nologin ftp-user
passwd ftp-user
Если вы будете использовать не сложный пароль, то появится предупреждение о том, что используется плохой пароль.
В данном случае, так как вместе с пользователем используется nologin, то пользователь не сможет получать доступ к консоли.
зададим права для каталога /ftp, права предоставим 0777.
Далее создадим в каталоге ftp, каталог ftp-user, доступ к которому и будет иметь наш пользователь. И выдадим права на каталог нашему пользователю.
Сначала выполним: mkdir /ftp/ftp-user
Затем: chown ftp-user:ftp-user /ftp/ftp-user
Шаг 5. Перейдем в каталог users и создадим там файл с именем нашего пользователя. Чтобы как-то разнообразить данный материал воспользуемся командой touch: touch /etc/vsftpd/users/ftp-user.
Далее при помощи команды echo укажем локальную директорию нашему текущему пользователю: echo ‘local_root=/ftp/ftp-user/’ >> /etc/vsftpd/users/ftp-user
И выведем содержимое файла командой cat: cat ftp-users
Шаг 6. Далее нам необходимо создать файл, где будет содержаться список пользователей, которые могут выйти из домашней директории. Выйдем на уровень выше из текущего каталога. Файл будет называться chroot_list, поэтому команда будет иметь следующий вид: vim chroot_list.
В файл мы запишем имя пользователя root и сохраним файл.
Шаг 7. Далее в файле user-list нам необходимо внести изменения. Мы удалим всех текущих пользователей из файла и оставим пользователей, которые будут иметь доступ к серверу в данном случае это root и ftp-user. Текущий файл user-list
Примет вид:
После чего сохраним изменения в файле.
Шаг 8. Теперь мы создадим файл лога и дадим на него права 600, для создания файла используем команду touch. touch /var/log/vsftpd.log
chmod 600 /var/log/vsftpd.log
Шаг 9. Так как все настройки завершены, давайте запустим наш ftp — сервер и добавим его в автозагрузку выполнив следующие команды:
systemctl start vsftpd
systemctl enable vsftpd
Проверим что служба начала слушать порт, выполним команду: netstat -tulnp | grep vsftpd
Шаг 10. Теперь проверим, что подключение по ftp работает для нашего ftp-user пользователя. Для этого воспользуемся утилитой winscp.
В качестве имени хоста укажем наш ip — адрес, в качестве порта выбираем 21, а в качестве пользователя укажем ftp-user и введем пароль который мы ему указали при создании.
На данном этапе вы увидите сообщение «Access Denied» или доступ запрещен, чтобы это исправить необходимо в файл /etc/shells добавить строку /sbin/nologin.
После чего перезагружаем наш ftp-сервер, и теперь мы сможем без проблем подключиться. Как видите файлы копируются без проблем.
В данной статье мы рассмотрели простую настройку ftp — сервера на ОС Linux CentOS 7. Надеюсь она облегчит вашу дальнейшую работу.