Конфигурация файла “/etc/ftpaccess”
“/etc/ftpaccess” – это основной конфигурационный файл, используемый для конфигурирования сервера Wu-ftpd. Этот файл первоначально предназначен для определения какие пользователи, сколько пользователей, могут получить доступ к вашему серверу, и прочих важных элементов настройки безопасности сервера.
Шаг 1
Редактируйте файл ftpaccess (vi /etc/ftpaccess) и добавьте/измените в нем следующие строки:
class openna guest 208.164.186.*
limit openna 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg email admin@openna.com
loginfails 3
readme README* login readme README* cwd=*
message /home/ftp/.welcome.msg login message .message cwd=* compress yes all tar yes all chmod yes guest delete yes guest overwrite yes guest rename yes guest
log commands real,guest log transfers real,guest inbound,outbound
guestgroup ftpadmin guestgroup webmaster
# We don't want users being able to upload into these areas. upload /home/ftp/* / no upload /home/ftp/* /etc no upload /home/ftp/* /dev no
# We'll prevent downloads with noretrieve. noretrieve /home/ftp/etc noretrieve /home/ftp/dev
log security real,guest
guest-root /home/ftp ftpadmin webmaster restricted-uid ftpadmin webmaster restricted-gid ftpadmin webmaster
greeting terse keepalive yes noretrieve .notar
Шаг 2
Сейчас мы должны изменить права доступа на 600:
[root@deep /]# chmod 600 /etc/ftpaccess
Эти параметры конфигурационного файла говорят следующее:
class openna guest 208.164.186.*
Опция “class” определяет классы пользователей, которые имеют доступ к вашему FTP серверу. Вы можете определить столько классов, сколько хотите. В нашем случае, например, мы определяем класс с именем <openna>, и позволяем пользователю <guest> с учетными записями на ftp сервере доступ к их домашним каталогам через FTP, если они заходят с адреса 208.164.186.*. Важно заметить, что существует три различных типа пользователей: anonymous, guest, и real. Пользователи Anonymous – это любой пользователь сети, который подключается к серверу и пересылает файлы не имея учетной записи на нем. Пользователь Guest – это реальный пользователь системы для которых сессии настроены также, как и для анонимных пользователей FTP (это то, что мы определили в нашем примере), и пользователь Real должен иметь учетную запись и командный процессор (shell) (это может приводить к риску для безопасности) на сервере для доступа к нему.
limit openna 20 MoTuWeTh,Fr0000-1800 /home/ftp/.too_many.msg
Опция “limit” определяет число пользователей данного класса, которым разрешается подключаться к серверу, и разрешенное время суток. В нашем примере, к FTP серверу из класса <openna> может подключаться максимум 20 пользователей, в понедельник, вторник, среда, четверг целый день, а в пятницу с полуночи до 6:00 вечера <Fr0000-1800>. Также, если количество пользователей достигло предела (20), то вновь подключаемым пользователям будет выдаваться сообщение </home/ftp/.too_many.msg>. Это очень полезный параметр для контроля за ресурсами сервера.
loginfails 3
Опция “loginfails” определяет число ошибочных попыток подключений к серверу, которое может осуществить пользователь до того, как будет отсоединен от сервера. В нашем примере мы отключаем пользователя от FTP сервера после трех попыток.
readme README* login
readme README* cwd=*
Опция “readme” определяет сообщение выдаваемое клиенту во время регистрации на сервере, или во время использования команды смены каталога, которая определяет файлы в текущем каталоге измененные в последнее время. В нашем примере, мы устанавливаем имя файла <README*> относительно каталога FTP, и условия вывода сообщения: при успешном входе в систему <login> или входе в новый каталог <cwd=*>.
message /home/ftp/.welcome.msg login
message .message cwd=*
Опция “message” определяет специальные сообщения, отображаемые клиентам, когда они либо вошли в систему, либо используют команду смены рабочего каталога. В нашем примере, мы показываем месторасположение и имя файлов выводимых файлов </home/ftp/.welcome.msg или .message>, и условия при которых они выводятся: при успешной регистрации в системе <login>, или когда клиент входит в новый каталог <cwd=*>. Для опций “readme” и “message”, когда вы определяете путь для анонимных пользователей, вы должны использовать абсолютный путь относительно анонимного FTP каталога.
compress yes all
tar yes all
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
Опции “compress”, “tar”, “chmod”, “delete”, “overwrite” и “rename” определяют права, которые вы хотите дать вашим пользователям на выполнение этих команд. В нашем примере, мы даем права группе <guest> на команды chmod, delete, overwrite и rename, и позволяем всем <all> использовать команды compress и tar. Если вы не определите следующие директивы, они по умолчанию будут выставлены в “yes” для всех.
log commands real,guest
Опция “log commands” включает регистрацию команд пользователей из соображений безопасности. В нашем примере, мы регистрируем все индивидуальные команды пользователей real и guest <real,guest>. Результаты регистрации сохраняются в файле “/var/log/message”.
log transfers real,guest inbound,outbound
Опция “log transfers” включает регистрацию всех FTP пересылок из соображения безопасности. В нашем примере, мы регистрируем все пересылки пользователей real и guest <real,guest>, inbound и outbound <inbound,outbound> определяют направления пересылки, в нашем случае входящие и исходящие. Результаты сохраняются в файле “/var/log/xferlog”.
guestgroup ftpadmin
guestgroup webmaster
Опция “guestgroup” определяет всех реальных пользователей относящихся к группе гостей, сессии которых настроены также, как и в анонимном FTP <ftpadmin и webmaster>. Файл "/home/ftp/etc/group" имеет входы для каждой из этих групп, каждая из которых имеет только одного члена. Важно, что в конфигурационном файле в одной строке должна быть записана одна гостевая группа.
log security real,guest
Опция “log security” включает регистрацию нарушений правил безопасности для реальных, гостевых и/или анонимных FTP клиентов. В нашем примере, мы разрешаем регистрацию нарушений для пользователей использующих FTP сервер для доступа с реальных учетных записей и гостевых бюджетов <real,guest>.
guest-root /home/ftp ftpadmin webmaster
restricted-uid ftpadmin webmaster
restricted-gid ftpadmin webmaster
Эти опции, “guest-root”, “restricted-uid”, “restricted-gid”, определяют и контролируют могут или нет пользователи guest получить доступ в области FTP сервера вне их домашних каталогов (это важная функция повышения безопасности). В нашем примере, мы определяем chroot() путь для пользователей <ftpadmin и webmaster> в </home/ftp>, и они не могут получить доступа к другим файлам, потому что ограничены своими домашними каталогами <restricted-uid ftpadmin webmaster>, <restricted-gid ftpadmin webmaster>. Несколько диапазонов UID может задаваться в этой строке. Если для пользователя выбран guest-root, то домашний каталог пользователя из файла “<root-dir>/etc/passwd” используется для определения начального каталога, и их домашний каталог в масштабе всей системы из файла “/etc/passwd” не используется.
greeting terse
Опция “greeting” определяет, как много системной информации будет выводится до того, как удаленный пользователь войдет в систему. Здесь вы можете использовать три значения: <full> - используется по умолчанию, показывает имя хоста и версию демона, <brief> - только имя хоста, <terse> - просто сообщает "FTP server ready".
keepalive yes
Опция “keepalive” определяет должна ли система сообщения keep alive на удаленный FTP сервер. Если установлена в “yes”, то сервер получит необходимое предупреждение о разрыве соединения или падении удаленной машины.