Разное

Vsftpd или proftpd: Какой FTP-сервер Вы используете на Debian? — Хабр Q&A

Содержание

Как настроить FTP-сервер на CentOS 8 с помощью VSFTPD

Что такое FTP?

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

FTP использует простой текст для передачи данных и доступа к данным. Для платформы операционной системы Linux доступно несколько различных FTP-серверов с открытым исходным кодом. Наиболее часто используемые FTP-серверы — это VSFTPD, ProFTPD и PureFTPD. Протокол FTP использует порт номер 21 для подключения и порт 20 для передачи данных. В пассивном режиме используются дополнительные порты.

В этом руководстве мы узнаем, как установить и настроить VSFTPD. Он очень безопасен и стабилен и доступен в репозитории пакетов CentOS 8.

Установить VSFTP FTP-сервер

Чтобы установить пакет VSFTPD в CentOS 8, откройте терминал или подключитесь к серверу по SSH как пользователь root и введите следующую команду:

# dnf install –y vsftpd

После установки пакета запустите и включите службу VSFTPD с помощью следующей команды:

# systemctl enable vsftpd
# systemctl start vsftpd

Сделайте копию исходного файла конфигурации /etc/vsftpd/vsftpd.conf , набрав следующую команду:

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk

Теперь отредактируйте файл конфигурации, с помощью следующей команды:

# vim /etc/vsftpd/vsftpd.conf

Найдите и установите в нем следующие директивы:

anonymous_enable=NO # disable anonymous users(Unknown users)
local_enable=YES # allow local users
write_enable=YES # allow ftp write commands
local_umask=022 # set default umask
dirmessage_enable=YES # enable messages on change directory
xferlog_enable=YES # enable logging of uploads and downloads
connect_from_port_20=YES # ensure PORT transfer connections from port 20 xferlog_std_format=YES # keep standard log format
listen=NO # prevent vsftpd run in stand-alone mode
listen_ipv6=YES # allow vsftpd to listen on IPv6 socket
pam_service_name=vsftpd # set PAM Service name to vsftpd

Настроить список пользователей на FTP-сервере

По умолчанию все пользователи, которые находятся в файле user_list , расположенном по адресу / etc / vsftpd / user_list разрешено использовать FTP-сервисы.

Чтобы ограничить пользователей в chrooted окружении , используйте следующие директивы:

chroot_local_user=YES # Create chrooted environment for users
allow_writeable_chroot=YES # Allow write permission to a user on chroot jail directory

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

userlist_enable=YES # enable vsftpd to load usernames
userlist_deny=NO # allow access to users in the user list

Если вы хотите предоставить общий доступ к наша система добавляет эту директиву в ваш файл конфигурации:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #users in this file list have an overall access

Сохраните и закройте файл конфигурации.

Теперь создайте chroot_list в каталоге / etc / vsftpd / , используя следующую команду:

# touch /etc/vsftpd/chroot_list

Добавьте в этот список только тех пользователей, которым вы хотите предоставить общий доступ к система.

Создайте пользователя для доступа к службам FTP

Чтобы создать пользователя для использования службы FTP, используйте следующую команду:

# useradd user1
# passwd user1

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

# vim /etc/vsftpd/user_list

Введите « i » для вставки и введите это имя пользователя, как показано на рисунке:

Нажмите ESC и введите : wq! для сохранения файла.

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

Перезапустите службу VSFTPD :

# systemctl restart vsftpd

Проверьте состояние службы FTP с помощью следующей команды:

# systemctl status vsftpd

Настроить брандмауэр для FTP

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

# firewall-cmd - - add-service = ftp - - permanent
# firewall-cmd - - reload

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

Для подключения к FTP-серверу необходимо клиентское программное обеспечение. Наиболее часто используемым программным обеспечением для FTP является FileZilla , WINSCP, и т. Д. Я использую FileZilla для подключения.

Откройте программное обеспечение FTP-клиента, введите следующие данные для подключения:

Host -> IP-адрес или имя хоста.

Имя пользователя : Имя пользователя FTP (в моем случае это user1)

Пароль

Порт: 21

После успешного подключения вы можете загружать / скачивать файлы в соответствии с вашими потребностями.

Заключение

В этом руководстве мы узнали, как настроить FTP-сервер на Centos 8, как ограничить пользователей их домашним каталогом и как предоставить им доступ для чтения / записи. Мы также увидели, как предоставить конкретному пользователю общий доступ к системе.

Как настроить FTP-сервер VSFTPD на CentOS 7


FTP (File Transfer Protocol) — это стандартный клиент-серверный сетевой протокол, который позволяет пользователям передавать файлы в удаленную сеть и из нее.


Для Linux доступно несколько FTP-серверов с открытым исходным кодом. Наиболее популярными и широко используемыми являются PureFTPd , ProFTPD и vsftpd .


Для более безопасной и быстрой передачи данных используйте SCP или SFTP .


Прежде чем продолжить этот урок, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .


Пакет vsftpd доступен в репозиториях CentOS по умолчанию. Чтобы установить его, введите следующую команду:

sudo yum install vsftpd


После установки пакета запустите демон vsftpd и включите его автоматический запуск во время загрузки:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd


Вы можете убедиться, что служба vsftpd запущена, напечатав ее статус:

sudo systemctl status vsftpd


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

● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago
 Main PID: 29612 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf


Настройка службы vsftpd включает в себя редактирование /etc/vsftpd/vsftpd.conf файла конфигурации. Большинство настроек хорошо задокументированы в файле конфигурации. Для всех доступных вариантов посетите официальную страницу vsftpd .


В следующих разделах мы рассмотрим некоторые важные параметры, необходимые для настройки безопасной установки vsftpd.


Начните с открытия файла конфигурации vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf


Мы разрешим доступ к FTP — серверу только локальным пользователям, найти anonymous_enable и local_enable директиву и подтвердить свой матч конфигурации линий ниже:


/etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES


Раскомментируйте write_enable параметр, чтобы разрешить изменения в файловой системе, такие как загрузка и удаление файлов.


/etc/vsftpd/vsftpd.conf


Запретить пользователям FTP доступ к любым файлам за пределами их домашних каталогов, раскомментировав chrootдирективу.


/etc/vsftpd/vsftpd.conf


По умолчанию, когда chroot включен, vsftpd откажется загружать файлы, если каталог, в котором заблокированы пользователи, доступен для записи. Это сделано для предотвращения уязвимости в безопасности.


Используйте один из методов ниже, чтобы разрешить загрузку, когда включен chroot.


Способ 1. — Рекомендуемый способ разрешить загрузку — оставить chroot включенным и настроить каталоги FTP. В этом уроке мы создадим ftpкаталог внутри домашнего пользователя, который будет служить chroot и записываемым uploadsкаталогом для загрузки файлов.

user_sub_token=$USER
local_root=/home/$USER/ftp

Способ 2. — Другой вариант — добавить следующую директиву в файл конфигурации vsftpd. Используйте эту опцию, если вам необходимо предоставить доступ на запись для вашего пользователя к его домашнему каталогу.


/etc/vsftpd/vsftpd.conf

allow_writeable_chroot=YES


vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.


Добавьте следующие строки в файл конфигурации:


/etc/vsftpd/vsftpd.conf

pasv_min_port=30000
pasv_max_port=31000


Чтобы разрешить только определенным пользователям входить на FTP-сервер, добавьте следующие строки после userlist_enable=YESстроки:


/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list
userlist_deny=NO


Когда эта опция включена, вам нужно явно указать, какие пользователи могут войти, добавив имена пользователей в /etc/vsftpd/user_list файл (по одному пользователю в строке).


Чтобы зашифровать передачи FTP с помощью SSL / TLS, вам необходимо иметь сертификат SSL и настроить сервер FTP для его использования.


Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.


Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный SSL-сертификат Let’s Encrypt .


В этом руководстве мы создадим самозаверяющий сертификат SSL с помощью opensslк оманды.


Следующая команда создаст 2048-битный закрытый ключ и самозаверяющий сертификат, действительный в течение 10 лет. И закрытый ключ, и сертификат будут сохранены в одном файле:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem


После создания SSL-сертификата откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf


Найдите директивы rsa_cert_fileand rsa_private_key_file, измените их значения на pam путь к файлу и установите ssl_enable директиву YES:


/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES


Если не указано иное, FTP-сервер будет использовать только TLS для создания безопасных соединений.


Как только вы закончите редактирование, файл конфигурации vsftpd (исключая комментарии) должен выглядеть примерно так:


/etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES


Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

sudo systemctl restart vsftpd


Если вы используете брандмауэр, вам нужно разрешить FTP-трафик.


Чтобы открыть порт 21(командный порт FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), введите следующие команды:

sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp


Перезагрузите правила брандмауэра, набрав:

firewall-cmd --reload


Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить доступ по FTP, пропустите первый шаг.
  • Если вы установили allow_writeable_chroot=YESв своем файле конфигурации пропустите 3-й шаг.

  1. Создайте нового пользователя с именем newftpuser:

    sudo adduser newftpuser
    


    Далее вам нужно установить пароль пользователя :

    sudo passwd newftpuser
    

  2. Добавьте пользователя в список разрешенных пользователей FTP:

    echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
    

  3. Создайте дерево каталогов FTP и установите правильные разрешения :

    sudo mkdir -p /home/newftpuser/ftp/upload
    sudo chmod 550 /home/newftpuser/ftp
    sudo chmod 750 /home/newftpuser/ftp/upload
    sudo chown -R newftpuser: /home/newftpuser/ftp
    


    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в ftp/upload каталог.


На этом этапе ваш FTP-сервер полностью функционален, и вы сможете подключиться к вашему серверу с помощью любого FTP-клиента, который можно настроить на использование шифрования TLS, например FileZilla .


По умолчанию при создании пользователя, если он не указан явно, у пользователя будет SSH-доступ к серверу.


Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что его учетная запись ограничена только доступом по FTP.


Выполните следующие команды, чтобы создать /bin/ftponly оболочку и сделать ее исполняемой:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a  /bin/ftponly
sudo chmod a+x /bin/ftponly


Добавьте новую оболочку в список допустимых оболочек в /etc/shells файле:

echo "/bin/ftponly" | sudo tee -a /etc/shells


Измените пользовательскую оболочку на /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly


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


Из этого руководства вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе CentOS 7.

Кау становить FTP сервер VSFTP на VestaCP в CentOS — Технический блог

В бесплатной панели управления хостингом VestaCP FTP-сервер VSFTP присутствует по-умолчанию. Но как известно установщик VestaCP позволяет исключить часть компонентов, и в том числе и FTP сервер. Поэтому вам вполне может попасться сервер и без FTP.

В этой инструкции я расскажу как добавить FTP сервер VSFTP на сервер с операционной системой CentOS 7 и панелью управления VestaCP.

Как установить VSFTPD на CentOS и VestaCP

Для начала обновите операционную систему:


# yum update

Установите пакет VSFTPD


# yum install vsftpd

Скачайте конфигурацию сервиса для VestaCP


# wget http://c.vestacp.com/0.9.8/rhel/vsftpd.conf -O /etc/vsftpd.conf

Добавьте строку (если ее нет) FTP_SYSTEM=’vsftpd’ в файле конфигурации панели управления VestaCP по адресу /usr/local/vesta/conf/vesta.conf

После этого в панели управления должна появиться возможность управления FTP сервером:

Как запустить FTP сервер VSFTP

Настройка автозапуска VSFTPD при старте операционной системы


# chkconfig vsftpd on

Запуск FTP сервера VSFTPD


# service vsftpd start

Настройка портов Межсетевого экрана

Если при установке панели VestaCP не было никакого FTP сервера, то скорее всего в FireWall будут закрыты необходимые для его работы порты. Следующая команда сделает необходимые настройки.


# echo "PROTOCOL='TCP' PORT='12000:12100'" >> /usr/local/vesta/data/firewall/ports.conf

Обновите правила межсетевого экрана:


# /usr/local/vesta/bin/v-update-firewall
Благодарности

При написании статьи были использованы следующие источники:

  1. http://vestacp.com/docs/#how-to-replace-vsftpd-with-proftpd-rhel-centos
  2. https://forum.vestacp.com/viewtopic.php?t=6592

Ftp | On-line журнал o Linux

Рассмотрю простую настройку и установку, ftp-сервера proftpd, так как самого пакета в официальных репозиториях нету, то придется собирать из исходников или ищем созданный пакет.
Вот здесь найдем то что нам надо, для себя взял proftpd-1.3.3c-1.el5.rf.x86_64.rpm. Чем меня привлек proftpd, эта простота в обслуживании и поддерживает различные схемы авторизации пользователей (через базы данных, PAM-модули, LDAP, так же авторизация через «альтернативный файл пользователей и паролей» (проще говоря текстовый файл). Если в конфиге ничего не указывать про тип авторизации, то используется системный passwd — так как у нас простая настройка на этом и остановимся. И так proftpd ubuntu настройка.
Ставим:
$ rpm -i proftpd-1.3.3c-1.el5.rf.x86_64.rpm
Запускаем:
$ /etc/init.d/proftpd start
Проверяем:

Connected to 127.0.0.1 (127.0.0.1).
220 FTP Server ready.
Name (127.0.0.1:root):

Читать далее…

9 Февраль 2009
ceval

Proftpd ubuntu настройка и базовая установка

Для начало ставим сам linux server ftp — proftp (proftpd ubuntu настройка):
apt-get install proftpd proftpd-common ucf
По ходу установки отвечаем на вопрос:

Run proftpd from inetd or standalone? <— standalone
или
<— самостоятельно

И теперь переходим к самому главному, редактируем наш конфиг proftpd.conf:
$ nano /etc/proftpd/proftpd.conf
Читать далее…

2 Февраль 2009
ceval

В этом руководстве предполагается vsftpd сервера под виртуальных пользователей для debian server, зарегистрированных в MySQL базе данных, взамен реальных системных пользователей. Такое решение позволяет открыть и управлять до тысячи ftp пользователей на одной машине.
Управлять MySQL базой вы можете с помощью пакета phpMyAdmin.Он имеет достаточно удобный графический интерфейс, который позволяет не применять командную строку.

Установка vsftpd, MySQL и phpMyAdmin

Все пакеты взяты из штатных репозитариев.
Vsftpd собран без поддержки MySQL, по этой причине необходимо установить пакет libpam-mysql для PAM аутентификацию в MySQL базе данных. Таким образом мы должны установить следующие пакеты libpam-mysql совместно с vsftpd, MySQL, и пакет phpMyAdmin (установка настройка mysql сервера linux):
$ aptitude install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin
Назначить пароль для пользователя root для управления MySQL (замените слово yourrootsqlpassword на ваш настоящий пароль):
mysqladmin -u root password yourrootsqlpassword
Проверим все ли получилось?
$ netstat -tap | grep mysql
должно написать:
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2713/mysqld
Читать далее…

Categories: FAQ, В помощь sysadmin’y Tags: Apache, Debian, Debian Etch 4.0, debian server, ftp, LAMP, linux, Mysql, phpmyadmin, Ubuntu, vsftpd

Страница 1 из 11

Debian, ftpd, vtpd, vsftpd. Very fast way. « Debian.pro

Если вы используете Debian 7 и выше, то по этой статье настроить уже ничего не выйдет. Переходите к статье Настраиваем FTP-сервер. Издание второе, улучшенное и дополненное: vsftpd.

Извиняюсь, что давно ничего не писал. Работа и эксперименты с виртуализацией отнимают очень много времени. Пока что ничего нового и особенного не откопал, лишь сделал некоторые выводы, которые напишу в финальной статье про KVM.
А сейчас, пожалуй, напишу как быстро настроить FTP сервер на Debian/Ubuntu. Способ действительно быстрый и не требует особого ковыряния в конфигах и базах.
За основу, как можно догадаться из заголовка, я беру vsftpd. Почему? Ну во-первых его название расшифровывается как very secure ftp daemon. Во-вторых именно его можно установить и настроить максимально быстро.
Что мы получим в итоге:
1) авторизоваться нужно (можно) будет по системным пользователям. То есть список пользователей и их домашние директории будут браться из /etc/passwd. Root в параде не участвует.
2) пользователи не могут выйти выше домашнего каталога в структуре ФС. То есть мы организуем ftp-chroot. Редки случаи, когда он помешает конечным пользователям, а вот безопасность он повышает ощутимо. Рут же может пользоваться sshfs, чтобы работать со всей ФС сразу.
3) Анонимы отключены. В принципе включаются 3мя строчками в конфиге, но в рамках данной статьи они не требуются.
Итак. Проверяем, что у нас не установлено никаких ftpd, если установлены — удаляем. Они нам не понадобятся.
Путь для ленивых:

root@Debian:~# aptitude install vsftpd && wget https://debian.pro/files/anlamp/configs/vsftpd.conf -O /etc/vsftpd.conf && /etc/init.d/vsftpd restart

Путь для пытливых:
Установим vsftpd:

root@Debian:~# aptitude install vsftpd

Скопируем стандартный конфиг на всякий случай (необязательно):

root@Debian:~# cp /etc/vsftpd.conf /etc/vsftpd.conf.default

Почистим стандартный конфиг от флуда разработчиков =) (вообще там интересно, советую почитать как-нибудь. )

root@Debian:~# echo > /etc/vsftpd.conf

И начнём писать новый. Собственно, чтобы следовать заголовку «Very fast way», предлагаю взять мой готовый конфиг.
Открываем /etc/vsftpd.conf нашим любимым редактором, например:

root@Debian:~# nano /etc/vsftpd.conf

и вставим в файл следующее:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to debian.pro ftpd!
#banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

В файл /etc/vsftpd.chroot_list мы можем записать пользователей, на которых не распространяется правило chroot. Для того, чтобы эта функция заработала — расскоментируйте строку #chroot_list_file=/etc/vsftpd.chroot_list в vsftpd.conf. Ну и не забудьте создать сам файл:

root@Debian:~# touch /etc/vsftpd.chroot_list

Перезагрузим vsftpd:

root@Debian:~# /etc/init.d/vsftpd restart

Ну и проверим наш ftpd. Много флуда, дальше читать совсем не обязательно) статья, собственно, закончена:
Попробуем зайти под анонимом:

user@desktop:~$ ftp localhost
Connected to localhost.
220 Welcome to debian.pro ftpd!
Name (localhost:inky): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

Попробуем зайти под локальным пользователем, немного погулять по хомяку и попробовать выйти из chroot:

user@desktop:~$ ftp localhost
Connected to localhost.
220 Welcome to debian.pro ftpd!
Name (localhost:inky): inky
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 1001 1001 316 Feb 26 17:27 diff.sh
-rwxr-xr-x 1 1001 1001 2281 Feb 26 22:35 diff2.sh
-rw-r—r— 1 1001 1001 1185 Feb 26 20:26 diff2.sh?
-rw-r—r— 1 1001 1001 357 Feb 07 14:47 examples.desktop
drwxr-xr-x 5 1001 1001 4096 Feb 23 05:06 iMacros
-rwxr-xr-x 1 1001 1001 57 Jun 09 15:53 script100
drwxr-xr-x 3 1001 1001 4096 Jul 25 13:10 scripts
-rw-r—r— 1 0 0 30888 Dec 13 2006 thunder.au
-rw-r—r— 1 1001 1001 22626 Feb 26 20:19 thunder2
-rw-r—r— 1 1001 1001 1642496 Feb 26 20:11 thunder2.au
drwxr-xr-x 2 1001 1001 4096 Feb 26 17:27 tmp
-rwxr-xr-x 1 1001 1001 7422 Jun 09 15:43 urgent
226 Directory send OK.
ftp> cd iMacros
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 1001 1001 4096 Feb 22 01:43 Datasources
drwxr-xr-x 5 1001 1001 4096 Apr 11 16:41 Downloads
drwxr-xr-x 2 1001 1001 4096 Feb 22 01:46 Macros
-rwxr-xr-x 1 1001 1001 188 Feb 27 00:19 iMacros.log
226 Directory send OK.
ftp> cd ../
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 1001 1001 316 Feb 26 17:27 diff.sh
-rwxr-xr-x 1 1001 1001 2281 Feb 26 22:35 diff2.sh
-rw-r—r— 1 1001 1001 1185 Feb 26 20:26 diff2.sh?
-rw-r—r— 1 1001 1001 357 Feb 07 14:47 examples.desktop
drwxr-xr-x 5 1001 1001 4096 Feb 23 05:06 iMacros
-rwxr-xr-x 1 1001 1001 57 Jun 09 15:53 script100
drwxr-xr-x 3 1001 1001 4096 Jul 25 13:10 scripts
-rw-r—r— 1 0 0 30888 Dec 13 2006 thunder.au
-rw-r—r— 1 1001 1001 22626 Feb 26 20:19 thunder2
-rw-r—r— 1 1001 1001 1642496 Feb 26 20:11 thunder2.au
drwxr-xr-x 2 1001 1001 4096 Feb 26 17:27 tmp
-rwxr-xr-x 1 1001 1001 7422 Jun 09 15:43 urgent
226 Directory send OK.
ftp> cd ../
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxrwxrwx 1 1001 1001 316 Feb 26 17:27 diff.sh
-rwxr-xr-x 1 1001 1001 2281 Feb 26 22:35 diff2.sh
-rw-r—r— 1 1001 1001 1185 Feb 26 20:26 diff2.sh?
-rw-r—r— 1 1001 1001 357 Feb 07 14:47 examples.desktop
drwxr-xr-x 5 1001 1001 4096 Feb 23 05:06 iMacros
-rwxr-xr-x 1 1001 1001 57 Jun 09 15:53 script100
drwxr-xr-x 3 1001 1001 4096 Jul 25 13:10 scripts
-rw-r—r— 1 0 0 30888 Dec 13 2006 thunder.au
-rw-r—r— 1 1001 1001 22626 Feb 26 20:19 thunder2
-rw-r—r— 1 1001 1001 1642496 Feb 26 20:11 thunder2.au
drwxr-xr-x 2 1001 1001 4096 Feb 26 17:27 tmp
-rwxr-xr-x 1 1001 1001 7422 Jun 09 15:43 urgent
226 Directory send OK.

И попробуем зайти под рутом:

user@desktop:~$ ftp localhost
Connected to localhost.
220 Welcome to debian.pro ftpd!
Name (localhost:inky): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

Всё работает. Спасибо за внимание, удачного использования =)

Создание FTP сервера с поддержкой русских имен файлов

После того, как вы установили Linux, вам, возможно, захочется поднять свой FTP сервер. Если до этого вы до сих пор не задавались такой целью, то, скорее всего, побродив по интернету в поисках наиболее удобного для вас сервера и даже поставив пару из них, вы обнаружите, что ни один из них не умеет правильно работать с файлами, имена которых содержат русские буквы.

Вы можете сказать, что выкладывать на FTP сервер файлы с русскими именами — плохая идея. Я с вами соглашусь, но только в том случае, когда вы настраиваете FTP сервер, имеющий выход в интернет. Если же он вам нужен исключительно для локальной (городской) сети, где каждый выкладывает на общий доступ практически весь свой диск за исключением личных файлов, то, скорее всего, вам все-таки понадобится FTP сервер, который нормально работает с именами файлов, содержащими русские буквы, т. к. далеко не все могут похвастаться тем, что на их компьютере все файлы содержат исключительно символы латинского алфавита. И я в их числе. 🙂

Сразу скажу, что данные проблемы имеются у FTP серверов не потому, что их пишут плохие программисты. 🙂 Дело в том, что стандарту, описывающему протокол FTP уже довольно много лет, и создавался он тогда, когда о таких вещах, как интернационализация никто не задумывался. А дотошные UNIX программисты четко следуют стандартам. 🙂

Помню как пару лет назад я настраивал сервер proftpd, который некорректно работал с файлами, содержащими букву «я». Тогда приходилось на него ставить патч, чтобы все работало нормально. Как сейчас у него с этим обстоят дела, я не в курсе, т. к. пользуюсь другим сервером — vsftpd, о котором и пойдет речь в данной статье. Проблема у него такая же, но источник проблемы другой.

Практически во всех современных дистрибутивах установлена локаль ru_RU.UTF-8, а, следовательно, FTP сервер выдает имена файлов в кодировке UTF-8. Но подавляющее большинство Windows’овских FTP клиентов считают, что все сообщения FTP сервера идут в кодировке Windows-1251. Поэтому пользователь, зашедший к вам на FTP сервер, например, через стандартный Windows’овский проводник, видит белиберду вместо нормальных имен файлов.

Так что для того, чтобы наш сервер понимали все клиенты, FTP сервер должен при обмене сообщениями с клиентом автоматически перекодировть их из UTF-8 в Windows-1251 и обратно.

Заставить vsftpd производить такую перекодировку без правки исходного кода невозможно. Но, бродя по просторам интернета в поисках решения данной проблемы, я наткнулся на проект под названием vsftpd.ext. vsftpd.ext — это все тот же vsftpd, но только со слегка расширенным функционалом. Вот он то как раз и умеет перекодировать имена файлов из одной кодировки в другую.

Так что если вас все устраивает в vsftpd — вперед. Ставьте vsftpd.ext, читайте документацию по vsftpd, благо написана она очень даже неплохо.

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

Для ленивых или для тех, кто что-то не понял в документации, выкладываю свои конфигурационные файлы.

/etc/xinetd.d/vsftpd:

# default: on
# description:
#   The vsftpd FTP server serves FTP connections. It uses
#   normal, unencrypted usernames and passwords for authentication.
#   vsftpd is designed to be secure.

service ftp
{
socket_type = stream
wait        = no
user        = root
server      = /usr/local/sbin/vsftpd
nice        = 0
disable     = no

# Max connections
instances   = UNLIMITED

# Max connections per IP
per_source  = 2
}

/etc/vsftpd.user_list:

anonymous
friend

/etc/vsftpd.conf:

ftpd_banner=Welcome to my FTP server!

# vsftpd будет запускаться через inetd
listen=NO

# Разрешаем анонимусов
anonymous_enable=YES

# Домашний каталог анонимуса
anon_root=/home/anonymous

# Разрешить анонимусам создавать дирректории
anon_mkdir_write_enable=YES

# Запрещаем анонимусам удалять и переименовывать файлы
anon_other_write_enable=NO

# Разрешить анонимусам заливать файлы (write_enable должна быть активирована)
anon_upload_enable=YES

# Не требуем у анонимуса пароль
no_anon_password=YES

# Разрешаем скачивать анонимусам только те файлы, у которых стоит разрешение на чтение для всех
anon_world_readable_only=YES

# Выставляет владельца для залитых файлов равным chown_username
chown_uploads=YES

# Владелец файлов, залитых анонимусами (актуально только при включенном chown_uploads)
chown_username=dmitry

# Имя анонимного пользователя
ftp_username=anonymous

# Маска для залитых анонимными пользователями файлов
anon_umask=000

# Отображать владельца так, как будто всегда владелец и группа - пользователь ftp
hide_ids=YES

# Запрещаем локальным юзерам выполнять SITE CHMOD (анонимусам такое никогда не разрешено)
chmod_enable=NO

# Разрешаем логиниться локальным юзерам
local_enable=YES

# Разрешаем ls -R
ls_recurse_enable=YES

# Не разрешаем локальным юзерам выходить за пределы домашней дирректории
chroot_local_user=YES

# Если нужен подробный лог (для отладки)
log_ftp_protocol=NO

# Включаем использование списка разрешенных/запрещенных пользователей
userlist_enable=YES

# Список пользователей отражает только разрешенных пользователей
# Внимание!!! Данный файл не должен быть пустым - иначе будут допускаться все пользователи!
userlist_deny=NO

# Виртуальным юзерам будут присвоены те привилегии, которые есть у соответствующих им локальных юзеров.
virtual_use_local_privs=YES

# Разрешаем запись
write_enable=YES

# Отбражение информации, о том, кто подключен в данный момент информации о процессах
setproctitle_enable=YES

# Включаем лог
xferlog_enable=YES

# Скорость для анонимусов
anon_max_rate=0

# Таймаут для клиентской сессии
idle_session_timeout=300

# Скорость для локальных юзеров
local_max_rate=0

# Маска для файлов, создаваемых локальными юзерами
local_umask=000

# Максимальное количество одновременно подключенных клиентов
max_clients=0

# Максимальное количество потоков от каждого клиента
max_per_ip=2

# Не проверяем шелл для локальных юзверей
check_shell=NO

# Пустая папка для нужд фтп сервера
secure_chroot_dir=/home/anonymous

# Настройки кодировки для расширенной версии vsftpd
convert_charset_enable=1
local_charset=UTF8
remote_charset=WIN1251

Домашняя страница vsftpd: http://vsftpd.beasts.org/
Домашняя страница vsftpd.ext: http://vsftpd.devnet.ru/

Да, и один маленький совет: если вы все настроили, но почему-то сервер не работает, включите в конфиге standalone запуск (опция listen) и запустите его из терминала — в таком случае он выведет ошибку на консоль.

Удачи!

FTP Server [Решено] | Kubuntu.ru

Разобрался сам со всем, спасибо всем кто участвовал
установил apt-get proftpd
основная конфигурация настраивается в файле по пути /etc/proftpd/proftpd.conf, там уже настроено всё на дефолт, но стоит во всем естественно разобраться, зачем оно нужно и почему и тд.
графу устанавливать, сразу скажу ненужно, поскольку все настройки будут в файле proftpd.conf
добавляем в конфиг
делаем пользователя с правами:
sudo ftpasswd —group —name=ftp —gid=50 —member=user —file /etc/proftpd/ftpd.group
как видно, это мы создаём группу ftp, пользователем которой с правами будет user
даллее нужно создать логин и пароль, набираем
sudo ftpasswd —passwd —name=user —home=/home/ftp —shell=/bin/false —uid=1003 —file /etc/proftpd/ftpd.passwd
тут нужно обратить внимание, что user это и будет ваш пользователь с правами, это логин на доступ, его можно назвать хоть lol или durachok, важный момент — при вводе этой команды у вас запросят придумать пароль к указанному «user», нужно будет подтвердить его повторно
теперь пользователь с логином у вас уже будет, но как сделать анонимного пользователя с полностью ограниченными правами, чтобы мог только читать каталоги и качать файлы?
а нужно изменить слкдующую строку:
<Anonymous /mnt/data/music>
  User ftp
  Group ftp

  # Рассматривать клиентов, вошедших под логином anonymous как ftp
  UserAlias anonymous ftp

  # Лимит на максимальное количество подключений пользователя anonymous
  MaxClients 5

  # не спрашивать пароля и оболочку.
  RequireValidShell off
  AnonRequirePassword off

  # ограничение ЗАПИСИ(WRITE) везде в anonymous chroot
  <Limit WRITE>
    Order Deny, Allow
    DenyAll
  </Limit>

</Anonymous>

гуглите плиз для подробностей, как я
еще нашел в гугле много интересного —
вот тут по основным настройкам, плюс предложения по улучшению
а вот тут про доступ анонимусом
В итоге, никто мне не помог, начали почему то тролить некоторые личности на форуме, непонятно из-за чего, vsftpd оказался слабее в мануалах, чем proftpd (по прежнему мой ответ естественно устроит не всех, но критика Вам ребяты! держите её прочно!)
Теперь из любого места где есть интернет, захожу к себе домой на ftp, качаю файлы, выкладываю их к себе домой в папку которую хочу, удобно просто, поэтому и наводил на тему

Выбор подходящего FTP-сервера

FTP — это старый протокол, и за последние годы появилось множество его реализаций. Эти серверы различаются по многим деталям; однако все они обслуживают один и тот же протокол, и все они очень похожи для своих пользователей. Параметры FTP-сервера для Linux включают следующее:

ProFTPd Этот сервер, расположенный по адресу http://proftpd.org, является одним из наиболее популярных среди очень сложных FTP-серверов. Он поставляется с большинством основных дистрибутивов Linux.Его файл конфигурации смоделирован по образцу Apache, и сервер поддерживает множество дополнительных функций.

vsftpd Этот сервер нацелен на обеспечение безопасности, стабильности и скорости. При этом его разработчики решили отказаться от некоторых более продвинутых функций серверов, таких как ProFTPd и WU-FTPD. Если вам не нужны эти функции, этот компромисс может быть более чем приемлемым. Вы можете узнать больше на его веб-сайте http://vsftpd.beasts.org. Он доступен во все большем количестве дистрибутивов Linux.

WU-FTPD Демон FTP Вашингтонского университета (WU-FTPD) — старый стандарт в мире Linux. К сожалению, он собрал больше, чем достаточно проблем с безопасностью, и не является самым быстрым из доступных FTP-серверов. По этим причинам сегодня он поставляется с меньшим количеством дистрибутивов Linux, чем в прошлые годы. Его главный веб-сайт: http://www.wu-ftpd.org.

BSD FTPD Версии BSD для Unix используют свой собственный FTP-сервер, который был перенесен на Linux и стал доступным в Debian (в пакете bsd-ftpd) и SuSE (в пакете ftpd).Этот сервер обычно считается достаточно безопасным.

PureFTPd Этот сервер, расположенный по адресу http://www.pureftpd.org, является еще одним FTP-сервером, который уделяет особое внимание безопасности. SuSE поставляется с версией этого сервера.

oftpd Этот сервер необычен, потому что он предназначен для работы только как анонимный FTP-сервер; он не поддерживает вход с использованием обычных учетных записей пользователей. Эта функция может быть привлекательной, если вы хотите запустить только анонимный сервер, но она делает этот сервер непригодным для многих других целей.Он доступен по адресу http://www.time-travellers.org/oftpd/.

Примечание. Этот список FTP-серверов далеко не полный. Веб-страница oftpd описывает поиск имени сервера основным разработчиком. Ему нужно имя в форме xftpd, где x — одна буква. Начав сhaftpd, он обнаружил, что oftpd — это первое имя, которое еще не использовалось!

Поскольку FTP потенциально может предоставить пользователям существенный доступ к системе — возможность читать или записывать любой файл в пределах, налагаемых правами собственности на файлы Linux и разрешениями, — серверы FTP необычайно чувствительны с точки зрения безопасности.В результате веб-страницы многих серверов в предыдущем списке подчеркивают внимание разработчиков к безопасности. Большинство FTP-серверов предоставляют явную поддержку блокировки в chroot-тюрьмах, как описано в главе 20, «Управление доступом к сети».

Для небольшого FTP-сайта есть вероятность, что любой из серверов в предыдущем списке будет работать хорошо, за исключением oftpd, если вы хотите авторизованный вход пользователя, а не анонимный доступ. Учитывая плохую историю безопасности, лучше всего избегать WU-FTP.Поскольку оба они поставляются с несколькими дистрибутивами Linux, следующие два раздела посвящены ProFTPd и vsftpd. ProFTPd лучше всего подходит для установок, требующих сложной конфигурации. Если ваши потребности проще или если ваш сайт обрабатывает большой трафик, vsftpd может быть лучшим выбором. Остальные серверы также заслуживают внимания, если они легко устанавливаются в вашем дистрибутиве или (в случае oftpd), если вы хотите запустить анонимный сайт.

Читать здесь: Конфигурация ProFTPd

Была ли эта статья полезной?

Оценка FTP-серверов: ProFTPd vs PureFTPd vs vsftpd

Обычно я пытаюсь подтолкнуть клиентов к использованию SCP (через клиента, такого как WinSCP), однако неизбежно есть клиенты, которые не понимают этот новый метод безопасного доступа к своим файлам в Интернете , и которые по той или иной причине настаивают на использовании FTP для доступа к файлам в Интернете.Как говорится — заказчик всегда прав?

В любом случае, в настоящее время существует 3 основных FTP-сервера, доступных через команду yum в CentOS 6.x. PureFTPd, ProFTPd и vsftpd. Итак, какой FTP-сервер лучше? Я кратко опишу серверы ниже или перейду к сводке.

ProFTPd

ProFTPd — это модульный FTP-сервер, который существует уже давно. Все большие панели управления (cPanel, DirectAdmin) поддерживают ProFTPd уже много лет.

Самым многофункциональным из всех, безусловно, является ProFTPd.Для него доступно множество плагинов, и его создатель смоделировал его конфигурационную архитектуру во многом так же, как Apache — он также использует GPL для лицензирования.

Конфигурация ProFTPd довольно проста, и примеры файлов конфигурации можно найти в большом количестве при быстром поиске в Google.

ProFTPd доступен для широкого спектра системных архитектур и операционных систем.

ProFTPd Security

Из всей совокупности ProFTPd имеет наибольшее количество перечисленных уязвимостей CVE.Высокое число, скорее всего, свидетельствует о широком использовании ProFTPd, что делает его целью хакеров.

ProFTPd CVE-записей: 40
Shodan ProFTPd-записей: 127

PureFTPd

PureFTPd ‘Мантра PureFTPd — «Безопасность прежде всего». Это проявляется в небольшом количестве CVE-записей (см. Ниже).

Обладая лицензией BSD, PureFTPd также доступен в широком спектре операционных систем (но не в Windows).

Конфигурация PureFTPd проста, без файла конфигурации.Хотя PureFTPd не так широко используется, как ProFTPd, он имеет множество примеров конфигурации, перечисленных в Интернете.

PureFTPd Security

Мантра PureFTPd «Безопасность прежде всего» ставит его на первое место в отделе безопасности с наименьшим количеством уязвимостей.

PureFTPd CVE-записей: 4
Shodan Pure-FTPd Entries: 12

vsftpd

vsftpd — еще один FTP-сервер с лицензией GPL, что означает «FTP-демон очень безопасности». Это легкий FTP-сервер, созданный с учетом требований безопасности.

Его легкий вес позволяет очень эффективно масштабироваться, и многие крупные сайты (ftp.redhat.com, ftp.debian.org, ftp.freebsd.org) в настоящее время используют vsftpd в качестве предпочитаемого FTP-сервера.

vsftpd Security

vsftpd имеет меньшее количество уязвимостей, перечисленных в CVE, чем ProFTPd, но больше, чем PureFTPd. Это может быть связано с тем, что, поскольку его название подразумевает, что это безопасный FTP-сервис, или потому, что он так широко используется на крупных сайтах, он находится под более пристальным вниманием, чем другие.

vsftpd CVE записей: 12
Shodan vsftpd записей: 41

Сводка и рекомендации по FTP-серверу

#

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

  • Если хотите сервер с наиболее гибкими параметрами конфигурации и внешними модулями: ProFTPd
  • Если у вас всего несколько пользователей и вам нужен простой и безопасный FTP-сервер: PureFTPd
  • Если вы хотите запустить FTP-сервер в масштабе со многими пользователи: vsftpd

Конечно, требования у всех разные, поэтому убедитесь, что вы оцениваете варианты в соответствии со своими потребностями.

Не согласны с моей оценкой? Дай мне знать почему!

vsftpd вместо proftpd | Virtualmin

# Это файл конфигурации ProFTPD
#
# См .: http://www.proftpd.org/docs/directives/linked/by-name.html

# Server Config — конфигурация, используемая для всего, что находится за пределами или context
# См.: http://www.proftpd.org/docs/howto/Vhost.html

ServerName «FTP-сервер»
ServerIdent на «FTP-сервер готов».
ServerAdmin root @ localhost
DefaultServer на

# Заставить каждого пользователя FTP, кроме adm, перемещать в свой домашний каталог
# Псевдоним / etc / security / pam_env.conf в chroot позволяет pam_env на
# работать во время окончания сеанса (http://bugzilla.redhat.com/477120)
VRootEngine на
DefaultRoot ~! adm
VRootAlias ​​etc / security / pam_env.conf / etc / security / pam_env.conf

# Использовать pam для аутентификации (по умолчанию) и быть авторитетным.
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c * mod_auth_unix.c
# Если вы используете NIS / YP / LDAP, вам может потребоваться отключить PersistentPasswd
# Не выполнять обратный поиск в DNS (зависает при проблемах с DNS)
UseReverseDNS off

# Установите пользователя и группу, которую запускает сервер, как
Userbody
Group nobody

# Чтобы предотвратить DoS-атаки, установите максимальное количество дочерних обрабатывает
# до 20.Если вам нужно разрешить более 20 одновременных подключений
# одновременно, просто увеличьте это значение. Обратите внимание, что это работает ТОЛЬКО
# в автономном режиме; в режиме inetd вы должны использовать inetd server
#, который позволяет вам ограничить максимальное количество процессов для каждой службы
# (например, xinetd)
MaxInstances 20

# Отключить sendfile по умолчанию, так как он нарушает отображение скорости загрузки в
# ftptop и ftpwho
UseSendfile off

# Определить форматы журнала
LogFormat по умолчанию «% h% l% u% t»% r «% s% b»
LogFormat auth «% v [% P]% h% t»% r «% s»

# Загрузка динамического общего объекта (DSO)
# См. README.DSO и howto / DSO.html для получения дополнительной информации
#
# Общая поддержка базы данных (http://www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql.c
#
# Поддержка base- 64- или шестнадцатеричные пароли MD5 и SHA1 из таблиц SQL
# (contrib / mod_sql_passwd.html)
# LoadModule mod_sql_passwd.c
#
# Поддержка MySQL (требуется пакет proftpd-mysql)
# (http: //www.proftpd. org / docs / contrib / mod_sql.html)
# LoadModule mod_sql_mysql.c
#
# Поддержка Postgresql (требуется пакет proftpd-postgresql)
# (http: // www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql_postgres.c
#
# Поддержка квот (http://www.proftpd.org/docs/contrib/mod_quotatab.html)
# LoadModule mod_quotatab.c
#
# Файловый «драйвер» для хранения информации таблицы квот в файлах
# (http://www.proftpd.org/docs/contrib/mod_quotatab_file.html)
# LoadModule mod_quotatab_file.c
#
# База данных SQL » драйвер »для хранения информации таблицы квот в таблицах SQL
# (http: // www.proftpd.org/docs/contrib/mod_quotatab_sql.html)
# LoadModule mod_quotatab_sql.c
#
# Поддержка LDAP (требуется пакет proftpd-ldap)
# (http://www.proftpd.org/docs/directives/linked/ config_ref_mod_ldap.html)
# LoadModule mod_ldap.c
#
# Поддержка квот LDAP (требуется пакет proftpd-ldap)
# (http://www.proftpd.org/docs/contrib/mod_quotatab_ldap.html)
# LoadModule mod_quotatab. c
#
# Поддержка аутентификации пользователей по протоколу RADIUS
# (http: // www.proftpd.org/docs/contrib/mod_radius.html)
# LoadModule mod_radius.c
#
# Получение информации о таблице ограничений квот с сервера RADIUS
# (http://www.proftpd.org/docs/contrib/mod_quotatab_radius. html)
# LoadModule mod_quotatab_radius.c
#
# Действия административного контроля для программы ftpdctl
# (http://www.proftpd.org/docs/contrib/mod_ctrls_admin.html)
# LoadModule mod_ctrls_admin.c
#
# Выполнять внешние программы или сценарии в различных точках процесса
# обработки команд FTP
# (http: // www.castaglia.org/proftpd/modules/mod_exec.html)
# LoadModule mod_exec.c
#
# Поддержка списков контроля доступа POSIX
# (http://www.proftpd.org/docs/modules/mod_facl.html)
# LoadModule mod_facl.c
#
# Поддержка использования библиотеки GeoIP для поиска географической информации на
# подключающемся клиенте и usng для настройки управления доступом для сервера
# (http://www.castaglia.org/proftpd/modules /mod_geoip.html)
# LoadModule mod_geoip.c
#
# Настроить доступность сервера в зависимости от загрузки системы
# (http: // www.proftpd.org/docs/contrib/mod_load.html)
# LoadModule mod_load.c
#
# Ограничить количество загрузок кратным объемом загрузки (см. README.ratio)
# LoadModule mod_ratio.c
#
# Переписать отправленные команды FTP клиентами на лету,
# с использованием сопоставления и подстановки регулярных выражений
# (http://www.proftpd.org/docs/contrib/mod_rewrite.html)
# LoadModule mod_rewrite.c
#
# Поддержка Протоколы SSh3, SFTP и SCP для безопасной передачи файлов через
# соединение SSh3 (http: // www.castaglia.org/proftpd/modules/mod_sftp.html)
# LoadModule mod_sftp.c
#
# Используйте PAM для предоставления «интерактивного с клавиатуры» метода аутентификации SSh3 для
# mod_sftp (http://www.castaglia.org/ proftpd / modules / mod_sftp_pam.html)
# LoadModule mod_sftp_pam.c
#
# Используйте SQL (через mod_sql) для поиска авторизованных открытых ключей SSh3 для пользователя
# и аутентификации на основе хоста
# (http: //www.castaglia. org / proftpd / modules / mod_sftp_sql.html)
# LoadModule mod_sftp_sql.c
#
# Обеспечить «формирование» скорости передачи данных по всему серверу
# (http://www.castaglia.org/proftpd/modules/mod_shaper.html)
# LoadModule mod_shaper.c
#
# Поддержка разного Команды SITE, такие как SITE MKDIR, SITE SYMLINK,
# и SITE UTIME (http://www.proftpd.org/docs/contrib/mod_site_misc.html)
# LoadModule mod_site_misc.c
#
# Обеспечить внешний кеш сеанса SSL с использованием общей памяти
# (contrib / mod_tls_shmcache.html)
# LoadModule mod_tls_shmcache.c
#
# Используйте файлы /etc/hosts.allow и /etc/hosts.deny или другие файлы allow / deny
# для управления доступом на основе IP
# (http://www.proftpd.org/ docs / contrib / mod_wrap.html)
# LoadModule mod_wrap.c
#
# Используйте файлы /etc/hosts.allow и /etc/hosts.deny или другие файлы allow / deny
#, а также файлы на основе SQL правила доступа для управления доступом на основе IP
# (http://www.proftpd.org/docs/contrib/mod_wrap2.html)
# LoadModule mod_wrap2.c
#
# Модуль поддержки для mod_wrap2, который обрабатывает правила доступа, хранящиеся в специально отформатированные
# файлы на диске
# (http: // www.proftpd.org/docs/contrib/mod_wrap2_file.html)
# LoadModule mod_wrap2_file.c
#
# Модуль поддержки для mod_wrap2, который обрабатывает правила доступа, хранящиеся в таблицах базы данных SQL
# (http://www.proftpd.org/docs/ contrib / mod_wrap2_sql.html)
# LoadModule mod_wrap2_sql.c
#
# Обеспечивает гибкий способ указания, что определенные директивы конфигурации
# применяются только к определенным сеансам на основе учетных данных, таких как соединение
# класс, пользователь или членство в группе
# (http: // www.proftpd.org/docs/contrib/mod_ifsession.html)
# LoadModule mod_ifsession.c

# TLS (http://www.castaglia.org/proftpd/modules/mod_tls.html)

TLSEngine на
TLSRequired на
TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem
TLSCipherSuite ALL:! ADH:! DES
TLSOClientLientTLSertificateTLSOClientTLSertificateTLSOClientTLSNoCertLoptions NoCertLoptions 3600 данные 512000 требуется тайм-аут 300
TLSLog / var / log / proftpd / tls.log

TLSSessionCache shm: / file = / var / run / proftpd / sesscache

# Списки динамических запретов (http://www.proftpd.org/ docs / contrib / mod_ban.html)
# Включите это с помощью PROFTPD_OPTIONS = -DDYNAMIC_BAN_LISTS в / etc / sysconfig / proftpd

LoadMovard mod_ban.c
BanEngogine /
BanLogoft на
BanLogoft на
BanLogoft на BanTable / var / run / proftpd / ban.tab

# Если один и тот же клиент достигает лимита MaxLoginAttempts 2 раза
# в течение 10 минут, автоматически добавляется бан для этого клиента, срок действия
# истечет через час.
BanOnEvent MaxLoginAttempts 2/00: 10: 00 01:00:00

# Разрешить администратору FTP вручную добавлять / удалять запреты
BanControlsACL все разрешают пользователю ftpadm

# Global Config — общая конфигурация для Server Config и все виртуальные хосты
# См .: http: // www.proftpd.org/docs/howto/Vhost.html

# Umask 022 — хорошая стандартная маска umask для предотвращения того, чтобы новые каталоги и файлы
# были доступны для групповой и мировой записи
Umask 022

# Разрешить пользователям перезаписывать файлы и изменить разрешения
AllowOverwrite yes

AllowAll

DefaultRoot ~

# Базовая анонимная конфигурация с каталогом загрузки
# Включите это с помощью PROFTPD_OPTIONS = -DANONYMOUS_FTPD_OPTIONS = -DANONYMOUS_ / etc / sysconfig / proftpd


Пользователь ftp
Группа ftp
AccessGrantMsg «Анонимный вход в систему, ограничения применяются.»

# Мы хотим, чтобы клиенты могли входить в систему как» анонимно «, так и» ftp «
UserAlias ​​anonymous ftp

# Ограничить максимальное количество анонимных входов
MaxClients 10″ Извините, максимум% m пользователей — попробуйте еще раз later «

# Поместите пользователя в / pub сразу после входа в систему
#DefaultChdir / pub

# Мы хотим, чтобы ‘welcome.msg’ отображался при входе в систему, ‘.message’ отображался в
# в каждом новом каталоге chdired и предлагал пользователям прочитать README * файлы.
DisplayLogin /welcome.msg
DisplayChdir .message
DisplayReadme README *

# Косметическая опция, позволяющая сделать так, чтобы все файлы принадлежали пользователю ftp.

DenyAll

# Каталог загрузки, который позволяет хранить файлы, но не извлекает
# или не создает каталоги.

AllowOverwrite no

DenyAll


AllowAll

# Не записывать анонимный доступ к системный файл wtmp (хорошая идея!)
WtmpLog off

# Регистрация анонимных передач
ExtendedLog /var/log/proftpd/access.log ЗАПИСАТЬ, ПРОЧИТАТЬ по умолчанию
ExtendedLog / var / log / proftpd / auth.log AUTH auth


Как настроить FTP-сервер с VSFTPD в Debian 9

FTP (протокол передачи файлов) — это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для более безопасной и быстрой передачи данных используйте SCP или SFTP.

Для Linux доступно множество FTP-серверов с открытым исходным кодом. Наиболее популярными и широко используемыми являются PureFTPd, ProFTPD и vsftpd.

В этом руководстве объясняется, как установить и настроить vsftpd (Very Secure Ftp Daemon) в Debian 9.vsftpd — стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd, чтобы ограничить пользователей их домашним каталогом и зашифровать всю передачу с помощью SSL / TLS.

Предварительные требования #

Пользователь, под которым вы вошли в систему, должен иметь права sudo, чтобы иметь возможность устанавливать пакеты.

Установка vsftpd в Debian 9 #

Пакет vsftpd доступен в репозиториях Debian. Установка довольно проста:

  sudo apt update   sudo apt install vsftpd  

служба vsftpd автоматически запустится после завершения процесса установки.Проверьте это, распечатав статус службы:

  sudo systemctl status vsftpd  

Результат будет выглядеть примерно так, как показано ниже, показывая, что служба vsftpd активна и работает:

  ● vsftpd.service - FTP-сервер vsftpd
   Загружено: загружено (/lib/systemd/system/vsftpd.service; включено; предустановка поставщика: включено)
   Активный: активен (работает) с понедельника 2018-12-10 11:42:51 UTC; 53с назад
 Основной PID: 1394 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─1394 / usr / sbin / vsftpd / и т.д. / vsftpd.конф
  

Настройка vsftpd #

Сервер vsftpd можно настроить, изменив файл vsftpd.conf , который находится в каталоге / etc .

Большинство настроек хорошо задокументированы в файле конфигурации. Чтобы узнать обо всех доступных вариантах, посетите официальную страницу vsftpd.

В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.

Начните с открытия файла конфигурации vsftpd:

  sudo nano / etc / vsftpd.conf  

1. FTP-доступ #

Найдите директивы anonymous_enable и local_enable и убедитесь, что ваша конфигурация соответствует приведенным ниже строкам:

/etc/vsftpd.conf

  anonymous_enable = NO
local_enable = ДА
  

Это гарантирует, что только локальные пользователи могут получить доступ к FTP-серверу.

2. Включение загрузки #

Раскомментируйте параметр write_enable , чтобы разрешить изменения файловой системы, такие как загрузка и удаление файлов.

/etc/vsftpd.conf

3. Chroot Jail #

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

/etc/vsftpd.conf

По умолчанию, чтобы предотвратить уязвимость системы безопасности, когда chroot включен, vsftpd откажется загружать файлы, если каталог, в котором заблокированы пользователи, доступен для записи.

Используйте один из следующих способов, чтобы разрешить загрузку, когда включен chroot.

  • Метод 1. — Рекомендуемый способ разрешить загрузку — оставить включенным chroot и настроить каталоги FTP. В этом руководстве мы создадим каталог ftp внутри дома пользователя, который будет служить chroot, и каталог uploads с возможностью записи для загрузки файлов.

    /etc/vsftpd.conf

      user_sub_token = $ USER
    local_root = / home / $ USER / ftp  
  • Метод 2. — Другой вариант — добавить следующую директиву в файл конфигурации vsftpd.Используйте эту опцию, если вам необходимо предоставить пользователю доступ с правом записи к его домашнему каталогу.

    /etc/vsftpd.conf

      allow_writeable_chroot = YES  

4. Пассивные FTP-соединения #

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

/etc/vsftpd.conf

  pasv_min_port = 30000
pasv_max_port = 31000
  

5.Ограничение входа пользователя #

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

/etc/vsftpd.conf

  userlist_enable = YES
userlist_file = / etc / vsftpd.user_list
userlist_deny = НЕТ
  

Если этот параметр включен, вам необходимо явно указать, какие пользователи могут входить в систему, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю на строку).

6. Защита передачи с помощью SSL / TLS #

Чтобы зашифровать передачи FTP с помощью SSL / TLS, вам потребуется сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.

Если у вас есть домен или субдомен, указывающий на IP-адрес FTP-сервера, вы можете легко сгенерировать бесплатный SSL-сертификат Let’s Encrypt.

В этом руководстве мы сгенерируем самозаверяющий сертификат SSL с помощью команды openssl .

Следующая команда создаст 2048-битный закрытый ключ и самозаверяющий сертификат, действительный в течение 10 лет.И закрытый ключ, и сертификат будут сохранены в одном файле:

  sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout /etc/ssl/private/vsftpd.pem -out / etc / ssl / private / vsftpd.pem  

После создания сертификата SSL откройте файл конфигурации vsftpd:

  sudo nano /etc/vsftpd.conf  

Найдите rsa_cert_file и измените значения директивы rsa_private_private в путь к файлу pam и установите для директивы ssl_enable значение YES :

/ etc / vsftpd.conf

  rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / и т.д. / SSL / частный / vsftpd.pem
ssl_enable = ДА
  

Если не указано иное, FTP-сервер будет использовать только TLS для безопасных подключений.

Перезапустите службу vsftpd #

После завершения редактирования файл конфигурации vsftpd (без комментариев) должен выглядеть примерно так:

/etc/vsftpd.conf

  listen = NO
listen_ipv6 = ДА
anonymous_enable = НЕТ
local_enable = ДА
write_enable = ДА
dirmessage_enable = ДА
use_localtime = ДА
xferlog_enable = ДА
connect_from_port_20 = ДА
chroot_local_user = ДА
secure_chroot_dir = / var / run / vsftpd / пусто
pam_service_name = vsftpd
rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key
ssl_enable = ДА
user_sub_token = $ USER
local_root = / home / $ USER / ftp
pasv_min_port = 30000
pasv_max_port = 31000
userlist_enable = ДА
userlist_file = / etc / vsftpd.user_list
userlist_deny = НЕТ
  

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

  sudo systemctl restart vsftpd  

Открытие брандмауэра #

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21 (порт команд FTP), порт 20 (порт данных FTP) и 30000-31000 (диапазон пассивных портов), выполните следующие команды:

  sudo ufw allow 20: 21 / tcp   sudo ufw allow 30000: 31000 / tcp  

Чтобы избежать блокировки, мы также откроем порт 22 :

  sudo ufw allow OpenSSH  

Перезагрузите правила UFW, отключив и повторно включив UFW :

  sudo ufw disable   sudo ufw enable  

Чтобы проверить изменения, запустите:

  sudo ufw status  
  Status: active

К действию от
- ------ ----
20: 21 / tcp РАЗРЕШИТЬ В любом месте
30000: 31000 / tcp ALLOW Anywhere
OpenSSH РАЗРЕШИТЬ В любом месте
20: 21 / tcp (v6) РАЗРЕШИТЬ в любом месте (v6)
30000: 31000 / tcp (v6) РАЗРЕШИТЬ в любом месте (v6)
OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6)
  

Создание пользователя FTP #

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить доступ по FTP, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot = YES в вашем файле конфигурации, пропустите 3-й шаг.
  1. Создайте нового пользователя с именем newftpuser :

      sudo adduser newftpuser  
  2. Добавьте пользователя в список разрешенных пользователей FTP:

      echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list  
  3. Создайте дерево каталогов FTP и установите правильные разрешения:

      sudo mkdir -p / home / newftpuser / ftp / upload   sudo chmod 550 / home / newftpuser / ftp   sudo chmod 750 / home / newftpuser / ftp / upload   sudo chown -R newftpuser: / home / newftpuser / ftp  

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы на Каталог ftp / upload .

На этом этапе ваш FTP-сервер полностью функционирует, и вы должны иметь возможность подключаться к своему серверу с помощью любого FTP-клиента, который можно настроить для использования шифрования TLS, например FileZilla.

Отключение доступа к оболочке #

По умолчанию при создании пользователя, если это не указано явно, у пользователя будет SSH-доступ к серверу.

Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что его учетная запись ограничена только доступом по FTP.

Создайте оболочку / bin / ftponly и сделайте ее исполняемой:

  echo -e '#! / Bin / sh \ necho "Эта учетная запись ограничена только доступом по FTP."' | sudo tee -a / bin / ftponly   sudo chmod a + x / bin / ftponly  

Добавить новую оболочку в список допустимых оболочек в файле / etc / shells :

  echo "/ bin / ftponly "| sudo tee -a / etc / shells  

Измените пользовательскую оболочку на / bin / ftponly :

  sudo usermod newftpuser -s / bin / ftponly  

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

Заключение #

В этом руководстве вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Debian 9.

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

Безопасный и быстрый FTP-сервер для UNIX-подобных систем

Вероятно, самый безопасный и самый быстрый FTP-сервер для UNIX-подобных систем.

О vsftpd

vsftpd - это FTP-сервер с лицензией GPL для систем UNIX, включая Linux. Это безопасно и очень быстро.Это стабильно. Но не верьте мне на слово. Ниже мы увидим доказательства, подтверждающие все три утверждения. Мы также увидим список нескольких важных сайтов, которые с радостью используют vsftpd. Это демонстрирует, что vsftpd - зрелое и надежное решение.

Характеристики

Несмотря на небольшой размер с точки зрения скорости и безопасности, с помощью vsftpd можно выполнить гораздо более сложные настройки FTP! Ни в коем случае не эксклюзивный список, vsftpd будет обрабатывать:

  • Виртуальные конфигурации IP
  • Виртуальные пользователи
  • Автономная работа или работа inetd
  • Мощные возможности настройки для каждого пользователя
  • Регулирование полосы пропускания
  • Настраиваемость для каждого IP-адреса источника
  • Ограничения IP-адресов для каждого источника
  • IPv6
  • Поддержка шифрования через интеграцию SSL
  • и др...

Интернет-источники / документы

Просмотрите онлайн-дерево исходных текстов vsftpd, включая документацию. В частности, обратите внимание на содержимое подкаталога EXAMPLE. Кроме того, вот HTML-версия справочной страницы, в которой перечислены все параметры конфигурации vsftpd.

Загрузка / поддержка

Последний выпуск vsftpd - v3.0.3, в настоящее время находится по адресу https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
Конечно, при загрузке всегда проверяйте подписи GPG! https: //security.appspot.com / downloads / vsftpd-3.0.3.tar.gz.asc
Релизы нечасты, поскольку в настоящее время нечасто появляются сообщения об ошибках.

Подходит ли мне vsftpd?

Если ваше основное требование к FTP-серверу - одно из следующих, то да, vsftpd, вероятно, тот FTP-сервер, который вы ищете.

  • Безопасность
  • Производительность
  • Устойчивость

Единственная причина, по которой вы можете предпочесть другой FTP-сервер vsftpd, - это если вам действительно нужна возможность настройки одного из наиболее раздутых FTP-серверов.Сказав это, обратите внимание, что vsftpd обслуживает подавляющее большинство случаев использования. Даже если кажется, что в vsftpd отсутствует какая-либо функция, она часто удовлетворяется внешним компонентом, таким как PAM или xinetd / tcp_wrappers. В этом отношении vsftpd представляет собой небольшой модульный компонент в собственном духе UNIX. Наконец, подумайте о переходе на vsftpd, даже если это означает отказ от какой-то странной функции вашего текущего FTP-сервера. Вас ждут улучшения в области безопасности, производительности и стабильности.

Что люди говорят о vsftpd?

  • Команда SAC из SANS рекомендует vsftpd в качестве предпочтительного безопасного FTP-сервера: «Тем из вас, кто ищет безопасную альтернативу FTP-демону, команда SAC рекомендует vsftpd».
  • IBM рекомендует vsftpd в своей статье «Защита серверов Linux для поставщиков услуг». Он находится в верхней части раздела «Рекомендуемые FTP-серверы».
  • RedHat хвалит производительность и масштабируемость vsftpd в пресс-релизе: «Отдельные серверы обрабатывали более 2500 одновременных загрузок» ... «Другое изменение заключалось в использовании очень легкого FTP-демона vsftpd, разработанного для требований, предъявляемых к серверу. при таком уровне нагрузки ».

Какие крупные сайты доверяют vsftpd?

ПРИМЕЧАНИЕ!! Следующий список актуален по состоянию на июнь 2004 г. (конечно, со временем все может измениться).Это лишь небольшая часть множества важных интернет-сайтов, использующих vsftpd.

  • ftp.redhat.com
  • ftp.suse.com
  • ftp.debian.org
  • ftp.freebsd.org
  • ftp.gnu.org
  • ftp.gnome.org
  • ftp.kde.org
  • ftp.kernel.org
  • rpmfind.net
  • ftp.linux.org.uk
  • ftp.gimp.org
  • ftp-stud.fht-esslingen.de
  • gd.tuwien.ac.at
  • ftp.sunet.se
  • ftp.ximian.com
  • ftp.engardelinux.org
  • ftp.sunsite.org.uk
  • ftp.isc.org

Продайте, пожалуйста, больше о безопасности vsftpd!

Безусловно. vsftpd был разработан и реализован с нуля с учетом требований безопасности.

  1. Он устраняет фундаментальные недостатки конструкции, присутствующие в большинстве инсталляций wu-ftpd, proftpd и даже bsd-ftpd, за счет отказа от чрезмерного использования опасного пользователя root.
  2. Он использует мощные средства безопасности, такие как возможности и chroot.
  3. Он использует методы безопасного кодирования, чтобы решить проблему с переполнением буфера.
  4. Написано кем-то, кто занимается исследованием уязвимостей.

Дополнительные сведения о том, почему vsftpd безопасен, см. В файлах распределенной документации:
Онлайн-копии здесь:

Продайте, пожалуйста, больше о производительности vsftpd!

Конечно.

  • Плакат usenet находит vsftpd в два раза быстрее, чем BSD-ftpd (что само по себе не сутулится, в отличие от wu-ftpd).
  • Кто-то тестировал vsftpd на localhost, сдвигая 70 Мбайт / сек, что в их случае было больше, чем великолепный TUX (55 Мбайт / сек).(ссылка потеряна)
  • Кто-то, разрабатывающий сеть Linux через гигабитный Ethernet, использует vsftpd, а vsftpd набирает 86 Мбайт / сек. (ссылка потеряна)
  • Ссылаясь на использование RedHat vsftpd, Алан Кокс в своем дневнике пишет: «

    наконец-то у нас есть масштабируемый ftpd для Linux ».

Вот пара графиков, присланных довольным пользователем, запустившим большой интернет-сайт с vsftpd.

За 24 часа vsftpd обслужил 2,6 ТБ (да, терабайт) с количеством одновременных пользователей, часто более 1500.Это на одной машине.

Контакт

НОВЫЙ! IRC-канал #vsftpd находится на irc.freenode.net. Там могут быть люди
умею отвечать на вопросы.

Меня заживо похоронили в почте vsftpd 🙁 Вы можете попробовать написать мне:
Крис Эванс,
[email protected] (сначала попробуйте прочитать FAQ)! Пожалуйста, не будь
разочарован, если на вашу почту vsftpd не ответят; Я могу только ответить
небольшой процент.

Как настроить FTP-сервер на CentOS 8 с помощью VSFTPD

Что такое FTP?

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

FTP использует простой текст для передачи данных и доступа к ним. Для платформы операционной системы Linux доступно несколько различных FTP-серверов с открытым исходным кодом. Наиболее часто используемые FTP-серверы - это VSFTPD, ProFTPD и PureFTPD. Протокол FTP использует порт номер 21 для подключения и порт 20 для передачи данных. В пассивном режиме используются дополнительные порты.

В этом руководстве мы узнаем, как установить и настроить VSFTPD. Он очень безопасен и стабилен и доступен в репозитории пакетов CentOS 8.

Установите VSFTP FTP-сервер

Чтобы установить пакет VSFTPD на CentOS 8, откройте терминал или подключитесь к серверу через SSH как пользователь root и введите следующую команду:

 # dnf install –y vsftpd

 

После установки пакета запустите и включите службу VSFTPD с помощью следующей команды:

 # systemctl enable vsftpd
# systemctl start vsftpd

 

Сделайте копию исходного файла конфигурации / etc / vsftpd / vsftpd.conf , набрав следующую команду:

 # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk 

Теперь отредактируйте файл конфигурации, используя следующую команду:

 # vim /etc/vsftpd/vsftpd.conf 

Найдите и установите в нем следующие директивы:

 anonymous_enable = NO # отключить анонимных пользователей (Неизвестные пользователи)
local_enable = YES # разрешить локальным пользователям
write_enable = YES # разрешить команды записи ftp
local_umask = 022 # установить маску по умолчанию
dirmessage_enable = YES # включить сообщения при смене каталога
xferlog_enable = YES # включить ведение журнала загрузок и загрузок
connect_from_port_20 = YES # убедиться, что PORT передает соединения с порта 20 xferlog_std_format = YES # сохраняет стандартный формат журнала
listen = NO # запретить запуск vsftpd в автономном режиме
listen_ipv6 = YES # разрешить vsftpd прослушивать сокет IPv6
pam_service_name = vsftpd # установить имя службы PAM на vsftpd 

Настроить список пользователей на FTP-сервере

По умолчанию всем пользователям, которые находятся в файле user_list , расположенном в / etc / vsftpd / user_list , разрешено использовать FTP-сервисы.

Чтобы ограничить пользователей в chrooted окружении , используйте следующие директивы:

 chroot_local_user = YES # Создать chroot-окружение для пользователей
allow_writeable_chroot = YES # Разрешить пользователю права на запись в каталог chroot jail 

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

 userlist_enable = YES # enable vsftpd для загрузки имен пользователей
userlist_deny = NO # разрешить доступ пользователям в списке пользователей 

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

 chroot_list_enable = YES
chroot_list_file = / etc / vsftpd / chroot_list # пользователи в этом списке файлов имеют общий доступ 

Сохраните и закройте файл конфигурации.

Теперь создайте chroot_list в каталоге / etc / vsftpd / , используя следующую команду:

 # touch / etc / vsftpd / chroot_list 

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

Создание пользователя для доступа к службам FTP

Чтобы создать пользователя для использования службы FTP, используйте следующую команду:

 # useradd user1
# passwd user1 

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

 # vim / etc / vsftpd / user_list 

Введите « i » для вставки и введите это имя пользователя, как показано на рисунке:

Нажмите ESC и введите : wq! для сохранения файла.

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

Перезапустите службу VSFTPD :

 # systemctl restart vsftpd 

Проверьте состояние службы FTP с помощью следующей команды:

 # systemctl status vsftpd 

Настройте брандмауэр для FTP

. через брандмауэр, используйте следующую команду:

 # firewall-cmd - - add-service = ftp - - постоянный
# firewall-cmd - - reload 

Тестирование FTP-сервера с Windows-машины

Для подключения к FTP-серверу требуется клиентское программное обеспечение.Наиболее часто используемым программным обеспечением для FTP является FileZilla , WINSCP, и т. Д. Я использую FileZilla для подключения.

Откройте программное обеспечение FTP-клиента, введите следующие данные для подключения:

Хост -> IP-адрес или имя хоста.

Имя пользователя : имя пользователя FTP (в моем случае это user1)

Пароль

Порт: 21

После успешного подключения вы можете загружать / скачивать файлы в соответствии с вашими потребностями.

Заключение

В этом руководстве мы узнали, как настроить FTP-сервер на Centos 8, как ограничить пользователей их домашним каталогом и как предоставить им доступ для чтения / записи. Мы также увидели, как предоставить конкретному пользователю общий доступ к системе.

Как настроить FTP-сервер с ProFTPd на CentOS 7 - Linux Hint

FTP (протокол передачи файлов) - очень популярный протокол для обмена файлами. Есть много популярных FTP-серверов. ProFTPd - один из них.ProFTPd - это очень мощное и простое в настройке программное обеспечение FTP-сервера.

В этой статье я покажу вам, как установить и настроить FTP-сервер ProFTPd на CentOS 7. Итак, приступим.

ProFTPd доступен в репозитории пакетов EPEL, который по умолчанию отключен. После включения репозитория пакетов EPEL вы можете легко установить ProFTPd с помощью диспетчера пакетов YUM.

Сначала обновите кеш репозитория пакетов YUM с помощью следующей команды:

Теперь включите репозиторий EPEL с помощью следующей команды:

$ sudo yum установить epel-release

Теперь нажмите y , а затем нажмите , чтобы продолжить.

YUM может попросить вас принять ключ GPG репозитория CentOS. Для этого нажмите y , а затем нажмите .

Репозиторий

EPEL должен быть включен.

Теперь снова обновите кеш репозитория пакетов YUM с помощью следующей команды:

Теперь установите ProFTPd с помощью следующей команды:

$ sudo yum install proftpd proftpd-utils

Теперь нажмите y и нажмите для подтверждения.

YUM может попросить вас принять ключ GPG репозитория EPEL. Просто нажмите y , а затем нажмите , чтобы принять его.

ProFTPd должен быть установлен.

Теперь проверьте, запущена ли служба proftpd , с помощью следующей команды:

$ sudo systemctl статус proftpd

Как видите, служба proftpd не активна. Итак, он не работает.

Чтобы запустить службу proftpd , выполните следующую команду:

$ sudo systemctl start proftpd

Как видите, служба proftpd теперь работает.

$ sudo systemctl статус proftpd

Теперь откройте порты FTP в брандмауэре firewalld с помощью следующей команды:

$ sudo firewall-cmd --zone = public --add-service = ftp --permanent

Теперь перезагрузите firewalld с помощью следующей команды, чтобы изменения вступили в силу.

$ sudo firewall-cmd - перезагрузить

Доступ к FTP-серверу:

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

Во-первых, вы должны знать IP-адрес FTP-сервера. Для этого выполните следующую команду на FTP-сервере.

Как видите, IP-адрес моего FTP-сервера - 192.168.21.133 . Для вас все будет иначе. Так что не забудьте заменить его теперь своим.

Теперь откройте FileZilla или предпочитаемый вами FTP-клиент и введите IP-адрес вашего FTP-сервера, ваше имя пользователя и пароль для входа в систему, а также порт 21. Когда вы закончите, нажмите «Подключиться» ( Quickconnect в FileZilla). Вы должны быть подключены к FTP-серверу, как показано на скриншоте ниже.

Автоматический запуск ProFTPd при загрузке системы:

Теперь, когда FTP-сервер ProFTPd работает нормально, неплохо добавить службу proftpd при запуске системы, чтобы она запускалась автоматически при загрузке системы.

Чтобы добавить службу proftpd в автозагрузку системы, выполните следующую команду:

$ sudo systemctl включить proftpd

Как видите, в автозагрузку системы добавлен сервис proftpd .

Файлы конфигурации ProFTPd:

В CentOS 7 файл конфигурации ProFTPd по умолчанию - /etc/proftpd.conf .

Файл конфигурации хорошо документирован. Так что вы можете просто использовать его как руководство.

Поскольку он содержит много комментариев, трудно увидеть, какие строки активны, а какие нет (закомментированы). Итак, лучше всего сделать резервную копию исходного файла конфигурации и удалить комментарии из исходного файла конфигурации. Так что, когда вам понадобится помощь, вы всегда можете посмотреть резервную копию.

Чтобы сделать резервную копию файла /etc/proftpd.conf , выполните следующую команду:

$ sudo cp -v /etc/proftpd.conf /etc/proftpd.conf.backup

Теперь удалите все комментарии из исходного файла конфигурации / etc / proftpd.. * # '/etc/proftpd.conf | sudo tee /etc/proftpd.conf

Это исходный файл конфигурации до удаления всех комментариев.

Это исходный файл конфигурации после удаления всех комментариев. Выглядит аккуратно!

Добавить новых пользователей:

Конфигурация CentOS по умолчанию позволяет пользователям, входящим в локальную систему, входить на FTP-сервер и выгружать файлы в свои домашние каталоги. Итак, чтобы добавить нового пользователя FTP, все, что вам нужно сделать, это создать нового пользователя на сервере CentOS 7, где установлен ProFTPd.

Чтобы добавить нового пользователя linda (скажем), выполните следующую команду:

Теперь установите пароль для вновь созданного пользователя linda с помощью следующей команды:

Теперь введите пароль еще раз и нажмите .

Пароль должен быть установлен.

Как видите, пользователь linda может подключиться к FTP-серверу. Никакой дополнительной настройки не требуется.

Пользователи Chroot в свои домашние каталоги:

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

Чтобы заблокировать пользователей в их собственном домашнем каталоге, вы можете просто включить функцию Chroot jail в ProFTPd. По умолчанию в версии ProFTPd для CentOS 7 включена функция Chroot jail.Но, если в некоторых случаях он не включен для вас, вы можете включить его следующим образом.

Чтобы включить chroot jail, сначала откройте файл конфигурации ProFTPd /etc/proftpd.conf с помощью следующей команды:

$ sudo vim /etc/proftpd.conf

Теперь введите строку, как отмечено на скриншоте ниже, и сохраните файл.

Теперь перезапустите службу proftpd с помощью следующей команды:

$ sudo systemctl перезапуск proftpd

Теперь пользователи FTP смогут просматривать только свои собственные домашние каталоги

Итак, вот как вы устанавливаете и настраиваете FTP-сервер ProFTPd на CentOS 7.Спасибо, что прочитали эту статью.

.

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

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