Настройка ftpd c авторизацией
Возникла необходимость копировать бэкапы с удаленного филиала на фтп головного офиса. Для такой задачи настраивать навороченный ProFTPD или vsFTP стало лень, решил использовать стандартный ftpd.
Итак начнем, включаем в rc.conf строки -
ftpd_enable="YES"
ftpd_flags="-D -l"
где флаг -D запускает ftpd в качестве демона, а -l включает логирование.
По умолчанию логи пишутся в /var/log/xferlog.
Другие доступные флаги:
-a <адрес>: в режиме демона принимать соединения только на указанный IP-адрес.
-d: включить режим отладки (подробная информация о работе будет выдаваться серверу syslog как LOG_FTP).
-h: не выводить информацию о системе в сообщениях сервера.
-A: разрешить только анонимный доступ.
-M: запретить анонимным пользователям создавать папки.
-m: разрешить анонимным пользователям модифицировать существующие файлы (если для этого достаточно системных прав).
-o, -O: разрешить только запись на сервер всем пользователям (-o) или только анонимному пользователю (-O). В частности, таким образом можно организовать сбор с удаленных серверов файлов резервных копий, чтение которых пользователями не предусмотрено.
-r: перевести сервер в режим «только для чтения». Любая модификация размещенных данных будет запрещена.
Другой способ запуска ftpd, это добавить в rc.conf строку -
inetd_enable="YES"
И изменением файла /etc/inetd.conf -
?Раскомментировать строку:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
В нашем случае этот способ тоже подойдет, но если пользователей сервера ftp будет много, то для каждого пользователя ftp в этом случае будет запускаться отдельный экземпляр ftpd, что приведет к повышенному потреблению памяти.
/var/log/>adduser ftpgreen
Username: ftpgreen
Full name: ftpgreen
Uid (Leave empty for default):
Login group [ftpgreen]:
Login group is ftpgreen. Invite ftpgreen into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: nologin
Home directory [/home/ftpgreen]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : ftpgreen
Password : *****
Full Name : ftpgreen
Uid : 1004
Class :
Groups : ftpgreen
Home : /home/ftpgreen
Home Mode :
Shell : /usr/sbin/nologin
Locked : no OK? (yes/no): y
adduser:
INFO: Successfully added (ftpgreen) to the user database.
Add another user? (yes/no): n
Goodbye!
<имя пользователя> <путь к папке>
<@ имя группы>
ftpgreen /home/ftpgreen
/etc/ftphosts – настройка виртуальных хостов
/etc/ftpwelcome – приветственное сообщение
/etc/ftpmotd – приветственное сообщение, выводимое при входе на сервер