АДМИНИМ ПРАВИЛЬНО! Руководство офисного пингвинистратора
Докучаев Дмитрий aka Forb
Спецвыпуск Xakep, номер #033, стр. 033-034-2
DefaultRoot ~ !root
## Установка chroot() для определенных групп. Chroot() это так называемая "скорлупа", когда сервер будет запущен относительно какой-либо корневой директории. В этом режиме посмотреть каталоги ниже нее невозможно.
В нашем примере chroot() выставляется всем пользователям, не имеющим root группу. Разумеется, что админам такой режим не нужен, поэтому, если у пользователя нулевой gid, сервер запустится относительно / каталога.
Port 21
## Порт, на котором будет находиться сервис. По умолчанию - 21.
Umask 022
## Параметр, отвечающий за расстановку прав на новые каталоги и файлы.
MaxInstances 30
## Бесполезный параметр для режима inetd :). Актуален лишь в standalone и указывает на количество подпроцессов сервиса.
User ftp
Group guest
## Права, под которыми будет запущен сервер. Разумеется, перед запуском необходимо создать юзера ftp и группу guest.
TimeoutNoTransfer 600
TimeoutIdle 1200
## Дефолтовая расстановка таймаутов.
<Global>
PassivePorts 2000 2500
AuthUserFile /etc/passwd.ftpd
RootLogin off
AllowOverwrite yes
AllowRetrieveRestart yes
AllowStoreRestart yes
DisplayLogin .message
</Global>
## Раздача прав на перезапись и дозапись в обе стороны. А также явное задание портов для передачи данных и отдельного файла с паролями. Не забудем про запрет рутового входа (для нашей же безопасности).
<Directory /*>
AllowOverwrite on
</Directory>
## Разрешаем дозапись на все директории.
<Anonymous ~ftp>
User ftp
Group ftp
## Для анонимной поддержки устанавливаем соответствующие права.
UserAlias anonymous ftp
## И делаем алиасинг логина anonymous.
MaxClients 10
## Пускаем лишь 10 клиентов.
DisplayLogin welcome.msg
DisplayFirstChdir .message
## Укажем пути к сообщениям.
<Limit WRITE>
DenyAll
</Limit>
## Запрещаем анонимным юзерам дозаписывать файлы.
</Anonymous>
Вот, собственно, и все важные параметры, которые необходимо правильно проставить. Далее создаем файл /etc/passwd.ftpd, формат которого в точности совпадает с /etc/shadow. Туда прописываем всех, кому необходимо иметь доступ к ftpd. Затем вставляем в /etc/inetd.conf следующую строку:
ftp stream tcp nowait root /usr/sbin/in.proftpd in.proftpd,
которая запустит сервис ftp через inetd, после следующей команды killall -1 inetd, заставляющей перечитать конфигурационный файл.
С настройкой закончено! Пользователи, которые прописаны в /etc/passwd.ftpd, будут иметь доступ к сервису. Права на этот файл должны совпадать с правами, под которыми запущен ftpd, то есть владельцем passwd.ftpd должен быть пользователь ftp.
ПОЧТОВЫЕ ЗАМОРОЧКИ
В любой офисной локалке существует почта, которую необходимо правильно настроить. Я не буду акцентировать твое внимание на установку smtpd, это не очень интересно. Поговорим о проблеме выбора pop3d, поддерживающего внешнюю аутентификацию. Имеется два самых популярных сервера - qpopper и teapop. Первый мы устанавливать не будем, так как количество багов в нем превышает все возможные пределы :). Teapop же отличается многофункциональностью и безопасностью, поэтому рассмотрим его подробнее.