doc.3dn.ru
Воскресенье, 22.12.2024, 18:54
Приветствую Вас Гость | RSS
 
Главная Каталог статейРегистрацияВход
Меню сайта
Категории каталога
LINUX (Server`s) [16]
Windows (Server`s) [3]
Наш опрос
Нужны ли на сайте видео уроки по Flash?
Всего ответов: 489


Главная » Статьи » Сервера » LINUX (Server`s)

Настройка Proftpd


Мы не будем использовать системные учетные записи, вместо этого будем заводить виртуальных ftp-пользователей, учетные записи которых будут храниться в текстовом файле.

Устанавливаем proftpd

apt-get install proftpd

выбираем тип запуска "standalone" (самостоятельно)

Настраиваем ProFtpd для работы с виртуальными пользователями:

в конец конфигурационного файла /etc/proftpd/proftpd.conf добавим следующую строку:

AuthUserFile /etc/proftpd/ftpd.passwd
здесь говорим, что для авторизации пользователей используется файл ftpd.passwd

Ну и собственно создаём пользователя:

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=vasya --shell=/bin/false --home=/www/zvezda/ --uid=106 --gid=65534
и вводим пароль.

эта комманда создаст пользователя "vasya" с uid=106 и gid=65534 (такие же как и у системного пользователя ftp), домашней директориией для которго будет /www/zvezda/, шелл у "Васи" отсутствует (--shell=/bin/false)

Создадим ещё одного пользователя 

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=rinat --shell=/bin/false --home=/www/planeta/ --uid=106 --gid=65534
И так, сайт Васи это - /www/zvezda/, а сайт Рината это - /www/planeta/, необходимо, чтобы Вася при соединении с сервером попадал сразу в свой каталог /www/zvezda/ и не мог подняться выше него, т.е. не видел сайт Рината, а Ринат в свою очередь ходил бы только в свой каталог /www/planeta/ и не лазил бы к Васе.

Для реализации вышеописанного будем использовать файл .ftpaccess. 
Создадим файл .ftpaccess в каталоге /www/zvezda/

touch /www/zvezda/.ftpaccess

и впишем туда
<Limit READ WRITE DIRS> Order deny,allow Allowuser vasya </Limit>

Точно так же необходимо создать файл и в каталоге /www/planeta/, только заменив пользователя

<Limit READ WRITE DIRS> Order deny,allow Allowuser rinat </Limit>
В файлах мы запрещаем кому-либо доступ к каталогу и разрешаем доступ указанному пользователю (директива "Allowuser"), естественно он должен присутствовать в файле /etc/proftpd/ftpd.passwd.

Теперь нам небходимо завести третьего пользователя, который не будет иметь никаких ограничений, своего рода вэб-мастер или админ, кому как нравится:

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=admin --shell=/bin/bash --home=/www/ --uid=106 --gid=65534

Для админа домашней директорией будет /www/, так же для него мы указали shell.

И в итоге cоздадим файл .ftpaccess в каталоге /www/:

touch /www/.ftpaccess

И занесем туда следующие строки:
<Limit READ WRITE DIRS> Order deny,allow AllowUser admin </Limit>

Этот файл запрещает доступ к каталогу /www/ всем, кроме пользователя admin, если нужно дать доступ еще кому-то, то через запятую добавьте пользователя, предварительно создав для него учетную запись, как было показанно выше. 

Теперь нам необходимо обеспечить защищенную передачу данных между клиентом и нашим сервером, для этого используем SSL.
Сначала сгенерируем сертификат:

openssl req -new -x509 -days 365 -nodes -out \ /etc/ssl/certs/proftpd.cert.pem -keyout \ /etc/ssl/certs/proftpd.key.pem
Заполним регистрационную форму

Country Name (2 letter code) [AU]: RU State or Province Name (full name) [Some­State]: Ufa Locality Name (eg, city) []: Ufa Organization Name (eg, company) [Internet Widgits Pty Ltd]: artcom Organizational Unit Name (eg, section) []: IT Common Name (eg, YOUR name) []: artcom-ufa.ru Email Address []: root@localhost
Редактируем конфигурационный файл /etc/proftpd/tls.conf:

nano /etc/proftpd/tls.confTLSEngine on TLSLog /var/log/proftpd/proftpd_tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem TLSVerifyClient on TLSRequired off
Включим TLS в конфиге proftpd: 
nano /etc/proftpd/proftpd.confи расскомментируем или добавим следующую строку:Include /etc/proftpd/tls.conf
На этом настройку шифрования закончили.

Теперь же взглянем на конфигурационный файл нашего сервера.
Include /etc/proftpd/modules.conf Include /etc/proftpd/tls.conf UseIPv6 off ServerName "Super Server" ServerType standalone # выдавать многострочные сообщения в стандарте RFC 959 или RFC 2228 MultilineRFC2228 on DefaultServer on ShowSymlinks on # Таймауты # на передачу - вошел и не начал передачу TimeoutNoTransfer 600 # Подвисание во время передачи файлов TimeoutStalled 600 # бездействие после входа TimeoutIdle 1200 ListOptions "-l" DenyFilter \*.*/ Port 21 <IfModule mod_dynmasq.c> </IfModule> # Максимальное кол-во процессов MaxInstances 30 User ftp Group nogroup Umask 022 022 # разрешить перезаписывать существующие файлы AllowOverwrite on # куда делать chroot DefaultRoot /www/ DefaultRoot ~ TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log UseReverseDNS off <IfModule mod_quotatab.c> QuotaEngine off </IfModule> <IfModule mod_ratio.c> Ratios off </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule> <IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule> <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> <Global> RootLogin off </Global> RequireValidShell off # файл для авторизации пользователей AuthUserFile /etc/proftpd/ftpd.passwd

Всё, сервер готов к работе ;-).

P.S - ProFTPD Version 1.3.3a



Источник: http://www.artcom-ufa.ru
Категория: LINUX (Server`s) | Добавил: doc (24.09.2009) | Автор: doc
Просмотров: 3995 | Рейтинг: 0.0/0 |

Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск
Друзья сайта
www.work-zilla.com
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024
Бесплатный хостинг uCoz