FTP сервер на linux centos 7
По моим наблюдениям, популярность ftp серверов с каждым годом падает. Сам я очень редко им пользуюсь и на свои сервера чаще всего не устанавливаю. Так как я работаю с серверами, к которым имею доступ по ssh, необходимости в ftp нет. Серьезную конкуренцию ftp создали облачные сервисы для хранения файлов. Чтобы кому-то передать файл, достаточно его расшарить на облачном хранилище и отправить человеку ссылку. Тем не менее, в некоторых случаях может понадобиться ftp сервер. Доступ к такому серверу часто дают тогда, когда нужно, чтобы к вам кто-то что-то закачал большого объема. Так же ftp доступ дают некоторые хостинг компании, когда вы у них заказываете сервер для бэкапов. Например, ihor, которым я раньше пользовался, предлагает услугу пространство для бэкапа именно по протоколу ftp.
Обновляем систему
Установка репозитории
Устанавливаем FTP
Очистим каталог /etc/vsftpd
Открываем конфиг сервера
Настраиваем права и папку
Открываем порт на сервере
Запускаем
Удалям или очистить все записи из истории bash
Проверяем
Настраиваем свой FTP-сервер на ОС Linux
С 1 июля 2024 года закончился срок поддержки CentOS 7, а значит – официальные репозитории перестали поддерживаться.
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/CentOS-*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/CentOS-*.repo
Обновляем систему
yum update
Установка репозитории
yum -y install epel-release
Устанавливаем FTP
yum -y install ftp
yum -y install vsftpd
Очистим каталог /etc/vsftpd
rm -rf /etc/vsftpd/*
Открываем конфиг сервера
mcedit /etc/vsftpd/vsftpd.conf
#*****************************Конфигурация FTP доступа в 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
#Включить сертификат
#ssl_enable=YES
#allow_anon_ssl=NO
#force_local_data_ssl=NO
#force_local_logins_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
#******************************************************************************************
# Запуск сервера в режиме службы
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
#Включить сертификат
#ssl_enable=YES
#allow_anon_ssl=NO
#force_local_data_ssl=NO
#force_local_logins_ssl=NO
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
#******************************************************************************************
Настраиваем права и папку
touch /etc/vsftpd/chroot_list
echo 'root' >> /etc/vsftpd/chroot_list
touch /etc/vsftpd/user_list
echo 'root' >> /etc/vsftpd/user_list
touch /var/log/vsftpd.log && chmod 600 /var/log/vsftpd.log
Открываем порт на сервере
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
Запускаем
systemctl start vsftpd && systemctl enable vsftpd && systemctl status vsftpd
Удалям или очистить все записи из истории bash
history -c && cat /dev/null > ~/.bash_history && reboot
Проверяем
- root от