Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помощь в установке и настройке ProFTPd на сервере под управлением FreeBSD 
:(
    Опции темы
Wowa
Дата 11.11.2004, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 2
Всего: 290



ProFTPd - популярный ftp демон под *NIX. Имеет гибкие настройки, стабилен в работе, быстр, достаточно безопасен, компилируется под многие платформы, имеет полезные расширения для работы с MySQL, LDAP и др. Альтернативы ему практически нет. Стандартный ftp FreeBSD уступает по функциональности и непригоден для большого ftp сервера.

Установка

Установку целесообразно производить из портов, предварительно накатив их через cvs до послених версий. 

su-2.05b# cd /usr/ports/ftp/proftpd/
su-2.05b# make all install
su-2.05b# make clean

Проблем с установкой возникнуть не должно. Если отсутствует канал в интернет, можно установить из пакетов. Дополнительно можно собирать модули используя опцию make --with-modules=${MODULES}. Запуск ProFTPd возможен двумя способами: скриптом при старте системы, либо через inetd. Для первого существует скрипт /usr/local/etc/rc.d/proftpd.sh.sample который нужно переименовать в proftpd.sh и дать права на запуск chmod 755 proftpd.sh. Для второго способа редактируем /etc/inetd.conf, закомментируем две строки и допишем нашу:

ftp stream tcp nowait root /usr/local/libexec/proftpd proftpd
#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
#ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l

Эта строка позволит загружать демон при старте системы. Без перезагрузки можно послать процессу inetd kill -HUP.

Настройка

Вооружившись документацией по используемым в конфигурационном файле директивам приступаем к настройке. Создаем конфиг и открываем его для редактирования. Можно открыть в любом текстовом редакторе, избегая для этих целей Word-a.

su-2.05b# cp /usr/local/etc/proftpd.conf.default /usr/local/etc/proftpd.conf
su-2.05b# vi /usr/local/etc/proftpd.conf

Код

# Имя сервера
ServerName "Мой FTP Server"

#Как запускается демон (в нашем случае через inetd)
ServerType inetd

DefaultServer on
ServerIdent off

#Если сервер в локалке, то можно руту дать возможность соединяться по ftp. В /etc/ftpusers закомментируем root
RootLogin on

#Стандартный FTP порт
Port 21

# Маска для ограничения создания директорий и файлов
Umask 022

# Пользователь и группа, под которой работает демон
User nobody
Group nogroup

# Ограничения
MaxClients 15 "Слишком много соединений с сервером"
MaxClientsPerHost 4 "%m клиента уже подключены с Вашего хоста, больше не разрешено"
MaxLoginAttempts 3 "Слишком много попыток войти"

# Ограничение трафика. В данном случае мы ограничиваем закачку и скачивание всем пользователям на 150k кроме рута
TransferRate RETR,STOR,APPE 150 user !root 

# Вывод сообщений при входе
DisplayConnect /etc/ftp_connect.msg
DisplayLogin /etc/ftp_login.msg
AccessDenyMsg "ATTENTION!!! ALL CONNECTIONS LOGED"
AccessGrantMsg "Now apload/download files"
DisplayGoAway "Go Away"

#Возможно определить с каких ip соединения допустимы или запрещены
#UseHostsAllowFile /etc/proftpd.allow
#UseHostsDenyFile /etc/proftpd.deny

# Установим ограничения по времени
TimeoutIdle 180
TimeoutLogin 120
TimeoutNoTransfer 360
TimeoutStalled 640

# Chroot определенные группы на директории
#Для рута
DefaultRoot / wheel 
#Для анонимных пользователей (директория определяется ниже)
DefaultRoot /путь.до.папки users
#Для других пользователей имеющих свою группу и доспупные только им файлы и папки
DefaultRoot /путь.до.папки specialusers

# Логи
SyslogLevel notice
UseReverseDNS off
TransferLog /var/log/proftpd-tranfer.log
SystemLog /var/log/proftpd-error.log
#ExtendedLog /var/log/proftpd-extended.log read,write


# Normally, we want files to be overwriteable.
<Directory />
AllowOverwrite on
</Directory>


# Открываем доступ анонимным пользователям
<Anonymous /путь.к.директории.для.анонимных.пользователей>
User anonftp 
Group nogroup
UserAlias anonymous anonftp
MaxClients 20 "Sorry, max %m users -- try again later"
DisplayFirstChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous> 



Создаем необходимые файлы и директории.
su-2.05b# cat > /var/log/proftpd-error.log
su-2.05b# cat > /var/log/proftpd-tranfer.log
su-2.05b# mkdir /var/run/proftpd/ && cat > /var/run/proftpd/proftpd.scoreboard


Создаем аналогично файлы приветствий /etc/ftp_connect.msg и /etc/ftp_login.msg. Создаем пользователя anonftp, каталогом для анонимного доступа укажем его домашний каталог(см. алиас выше).

Дополнительная информация

При запуске и отладке могут понадобиться некоторые ключи:

--help 
--version 
--list (список встроенных модулей) 
--debug уровень (от 0 до 9) 
--config имя-файла 
--configtest (проверить синтаксис) 
--nodaemon (вывод на stderr а не syslog) 


Информацию по состоянию можно отследить пользуясь выводом логов и дополнительными программами (ftpcount, ftptop, ftpwho).

su-2.05b# tail -f /var/log/proftpd-error.log
su-2.05b# tail -f /var/log/proftpd-tranfer.log

Анализаторы логов

Logwatch
The Webalizer
ftpweblog

Бочкарев Денис aka def
http://shelter.almnu.ru

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.1031 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.