Настройка FTP сервера linux
Описание
Установка ProFTPd серверa
1. Убедитесь, что ProFTPd есть в ваших репозиториях:
aptitude search proftpd
Если все успешно, ответ будет таким:
root@ns381662:/home/freezz# aptitude search proftpd
p gadmin-proftpd - GTK+ configuration tool for proftpd
p gadmin-proftpd-dbg - GTK+ configuration tool for proftpd
p gforge-ftp-proftpd - collaborative development tool - FTP manag
v proftpd -
v proftpd-abi-1.3.3a -
i proftpd-basic - Versatile, virtual-hosting FTP daemon - bi
p proftpd-dev - Versatile, virtual-hosting FTP daemon - de
p proftpd-doc - Versatile, virtual-hosting FTP daemon - do
p proftpd-mod-ldap - Versatile, virtual-hosting FTP daemon - LD
p proftpd-mod-mysql - Versatile, virtual-hosting FTP daemon - My
p proftpd-mod-odbc - Versatile, virtual-hosting FTP daemon - OD
p proftpd-mod-pgsql - Versatile, virtual-hosting FTP daemon - Po
p proftpd-mod-sqlite - Versatile, virtual-hosting FTP daemon - SQ
root@ns381662:/home/freezz#
2. Установка и настройка сервера.
Все действия производятся от имени root.
Устанавливаем сервер:
apt-get install proftpd
Настройка ФТП сервера происходит в 1 файле:
nano /etc/proftpd/proftpd.conf
открывается файл proftpd.conf (кофиг сервера), мы там увидим:
(вытянул самые важные конфиги)
UseIPv6 off # выключаем использование IP v6 за ненадобностью
ServerType standalone
# DeferWelcome off
DefaultServer on
# права, с которыми будут создаваться файлы и папки
Umask 022
#ServerName "0.0.0.0" # Любое имя для ftp-сервера
ServerIdent on "My FTP Server"
ServerAdmin
# запрещаем подключать от пользователя root:
RootLogin off
# определять имя хоста клиента по IP адресу (желательно отключать для ускорения доступа)
UseReverseDNS off
# Порт сервера
Port 21 # из соображений безопасности можете поставить любой незанятый
# Против DDOS атаки, полезно для безопасности
# максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances 8
MaxLoginAttempts 3
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8
# Сообщение после успешного захода на сервер
AccessGrantMsg "Kyky, server pashet"
TimeoutLogin 20
TimeoutNoTransfer 120
TimeoutIdle 120
DisplayLogin welcome.msg
DisplayChdir .message
#Запрещаем заливать на сайт файлы начинающиеся с точки, полезно для безопасности
DenyFilter \*.*/
# директория, на которую устанавливается сервер
# (сейчас указана домашняя директория подключенного пользователя)
DefaultRoot ~
# Пользователь и группа, от которого работает сервер
User nobody
Group nogroup
# Автоматическое удаление недогруженного файла.
DeleteAbortedStores off
</IfModule>
<IfModule mod_ratio.c>
# Количество попыток ввода пароль перед отсоединением
MaxLoginAttempts 3
# Ограничить допустимый размер загружаемых файлов
#MaxStoreFileSize 1 Gb
# Ограничить допустимый размер скачиваемых файлов
#MaxRetrieveFileSize 1 Gb
# Логи
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
</IfModule>
#VALID LOGINS Добавляем пользователей, которым разрешен доступ к серверу
<Limit LOGIN>
AllowUser user1
AllowUser user2
DenyALL
</Limit>
# Разрешить перезапись файлов
AllowOverwrite off
# разрешить перезаписывать существующие файлы,
# область действия - server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess
AllowOverwrite on
<Limit LIST NLST STOR STOU APPE RETR RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit NOTHING >
DenyAll
</Limit>
</Anonymous>
<Anonymous /var/www/httpd/user2-ru>
User user2
Group group1
AnonRequirePassword on
MaxClients 10 "The server is full, hosting %m users"
DisplayLogin welcome.msg
<Limit LOGIN>
Allow from all
Deny from all
</Limit>
# Разрешить перезапись файлов
AllowOverwrite off
# разрешить перезаписывать существующие файлы,
# область действия - server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess
AllowOverwrite on
<Limit LIST NLST STOR STOU APPE RETR RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit NOTHING >
DenyAll
</Limit>
</Anonymous>
В общем то и все, тонкая настройка FTP сервера завершена.
После всех настроек не забываем перезапустить демон proftpd
/etc/init.d/proftpd restart
Сервер готов к использованию!
II. Добавление пользователей.
У нас есть рабочий FTP-сервер, необходимо добавить его пользователей. Пусть все они, для удобства, хранят свои данные в каталоге /var/ftp/%имя_пользователя%. Добавим одного такого пользователя, создав для подобных ему группу ftp_users. 1.
Создадим группу:
addgroup ftp_users
2. Добавим пользователя ftp01, указав расположение его домашнего каталога, оболочку, запрет на вход в систему и группу.
Запрещаем ему SSH доступ включительно.
adduser ftp01 --home /var/ftp/ftp01 --shell /bin/false --disabled-login --ingroup ftp_users
3. Указываем пароль юзеру:
passwd ftp01
Рекомендуемые комментарии
Комментариев нет