Автор: Сергей
Установка proftpd Ubuntu
На данную тему очень много разных статей но как то толи они корявые толи я не далекий и мне приходилысь собирать информацию по кусочкам. В результате я решил написать то что стоит у меня из всего выше предложенного в интернете.
Установка proftptd:
- sudo apt-get install proftpd
Открыть файл /etc/shells:
- sudo vim /etc/shells
Добавить в него строку: /bin/false
- /bin/false
Создать в /HOME каталоге папку FTP:
- sudo mkdir /home/FTP
Создать пользователя с именем ftp(вместо parol нужно ввести пароль):
- sudo useradd ftp -p parol -d /home/FTP -s /bin/false
В папке FTP создать две вложенные папки:
- sudo mkdir /home/FTP/Public
sudo mkdir /home/FTP/Share
Присвоить нужные права созданным папкам:
- chmod 755 /home/FTP/
chmod 755 /home/FTP/Public
chmod 777 /home/FTP/Share
Переименовать имеющийся конфигурационный файл proftpd.conf и создать новый:
- sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo vim /etc/proftpd/proftpd.conf
добавить в него следующие строки:
отключаю протокол
- UseIPv6 off
AllowOverwrite on
AuthAliasOnly on
# Здесь присваивается alias пользователю (в качестве примера присвоено имя ftp)
- UserAlias ftp
ServerName "server"
ServerType standalone
DeferWelcome on
MultilineRFC2228 on
DefaultServer on
ShowSymlinks off
TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200
DisplayChdir .message
ListOptions "-l"
RequireValidShell off
TimeoutLogin 20
RootLogin off
- ExtendedLog /var/log/ftp.log
TransferLog /var/log/xferlog
SystemLog /var/log/syslog.log
#DenyFilter *.*/
Я не использую файл /etc/ftpusers (здесь вводим имена пользователей, для ограничения их доступа)
- UseFtpUsers off # Allow to restart a download AllowStoreRestart on
- Port 21
Повышение безопасности
- MaxInstances 8
пользователь и группа:
- User nobody
Group nogroup
Umask 022 ограничение на создание файлов и папок
- Umask 022 022
PersistentPasswd off
- Придел количества клиентов,хостов,доступных подключений:
MaxClients 8 "Достигнут предел на количество клиентов"
MaxClientsPerHost 8 "Достигнут предел на количество клиентов с Вашего хоста"
MaxClientsPerUser 8 "Достигнут предел на количество подключений (%m)"
MaxHostsPerUser 8 "Больше нельзя"
Вывод приветствия после успешного входа
- AccessGrantMsg "Hellow piple!!!"
Идентификация
- ServerIdent on "TEST_WORK"
Делаем /home/FTP-shared папку домашней
- DefaultRoot /home/FTP
Запрещаем выходить пользователям за пределы домашней папки (строго рекомендуется)
- DefaultRoot ~
Максимальное количество попыток входа после которых будет применен таймаут
- MaxLoginAttempts 5
А вот сам пример моего рабочего конфига
- #VALID LOGINS
< Anonymous ~ftp>
< Limit LOGIN>
AllowUser userftp
DenyALL
< /Limit>
< Directory /home/FTP-shared>
Umask 022 022
AllowOverwrite off
< Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
< /Limit>
< /Directory>
< Directory /home/FTP-shared/public/*>
Umask 022 022
AllowOverwrite off
< Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
DenyAll
< /Limit>
< /Directory>
< Directory> /home/FTP-shared/upload/>
Umask 022 022
AllowOverwrite on
< Limit READ RMD DELE>
DenyAll
< /Limit>
< Limit STOR CWD MKD>
AllowAll
< /Limit>
< /Directory>
< /Anonymous>
Вот пример анонимного доступа:
-
< Anonymous /папка/для/доступа>
User userftp
Group nogroup
UserAlias anonymous userftp
MaxClients 8
DisplayChdir .message
< Directory *>
< Limit WRITE>
DenyAll
< /Limit>
< /Directory>
< /Anonymous>
Иногда требуется проверить скорсть интернета с ftp ресурса при этом не записывать файл на диск. Нам поможет в этом команда:
- wget -O /dev/null путь к удаленному ресурсу.
- ifstat -b -i eth0