Security Teams



:::
  Ответ в темуСоздание новой темы

> Установка и настройка vsftpd, (c) Shadowless
Shadowless
Дата 13.09.2006 - 17:54
Цитировать сообщение




Unregistered












В наше время поевилось множество разных ftp-серверов. Среди них можно отметить такие как:
- pftpd
- wuftpd
- proftpd
- vsftpd
и прочие...
Среди данных можно выделить как один из наиболее безопастных и устойчивых последний (vsftpd). Именно о нём и будет дальнейшая речь.
В качестве базовой системы берём FreeBSD (знатоки других систем разобраться смогут сами smile.gif)

Итак, для начала ставим из портов:
Код
# cd /usr/ports/ftp/vsftpd
# make install clean


в представленных опциях при конфигурировании порта указываем:
Код
[x] RC_NG       install RC_NG script
[x] VSFTPD_SSL  Include support for SSL

Для наиболее безопасной (а именно этого мы и добиваемся) придётся ручками поправить конфиги и создать сертификат сервера.
Для начала создадим сертификат:
Код
# openssl req -x509 -nodes -days 1095 -newkey rsa:4096 -keyout /usr/local/etc/vsftpd.pem -out /usr/local/etc/vsftpd.pem


Код
openssl genrsa -des3 4096 > /usr/local/etc/vsftpd.key


Теперь переходим в каталог с конфигурационными файлами нашего ftp сервера и создаем директорию где будут хранится конфиги для каждого пользователя:
Код
mkdir /usr/local/etc/users


Теперь переходим апогею нашего опофиозу - создаем конфигуфирационный файл сервера
Код
touch /usr/local/etc/vsftpd.conf


Далее, преём свой любимый текстовый редактор (к примеру vi) и редактируем его в соотвитствии со своими вкусами. Я пердлагаю следующий вариант, но в конечном счёте решать всё-таки вам:
Код

anonymous_enable=NO # анонимный доступ к серверу запрещен, если хотите разрешить поменяйте на YES
local_enable=YES # доступ всем локальным пользователям
userlist_enable=YES #
userlist_deny=YES #
userlist_file=/usr/local/etc/userlist #
user_config_dir=/usr/local/etc/users # директория где хранятся конфиги для каждого пользователя
chroot_local_user=YES #
write_enable=YES # разрешить запись
local_umask=022 # umask
dirmessage_enable=YES # включение показа баннера
xferlog_enable=YES # разрешаем логирование upload\download
connect_from_port_20=NO #запрет оединяться по 20 порту - использовать пассивный режим
xferlog_file=/var/log/vsftpd.log # где будет хранится лог
xferlog_std_format=YES #лог в формате xferlog
idle_session_timeout=800 # таймаут на неактивную сессию
data_connection_timeout=120 # если передачи нет более определённого времени - разъединяться
nopriv_user=vsftpd # указываем непривилегированного пользователя
ftp_username=ftp # имя анонимного пользователя
async_abor_enable=YES #
ascii_upload_enable=YES #
ascii_download_enable=YES #
ftpd_banner=Welcome to STNC # Баннер (приветствие)
secure_chroot_dir=/var/empty #
listen=YES # Пропишите NO и добавьте соответствующую запись в /etc/inetd.conf , если хотите работать через inetd (не советуем)
background=YES # Запускать в режиме демона
setproctitle_enable=YES #
hide_ids=YES #
pasv_enable=YES # Использовать системные пароли
pasv_max_port=65535 #
pasv_min_port=49151 #
guest_enable=NO #
guest_username=ftp #
log_ftp_protocol=YES # логирование пользователя ftp
ls_recurse_enable=YES # Рекурсивный просмотр каталогов
max_per_ip=3 # Максимальное кол-во соединений с одного адреса
mdtm_write=YES #
session_support=YES #
ssl_enable=YES # Использовать SSL
ssl_sslv2=YES # Использовать SSL версии 2
ssl_sslv3=YES # Использовать SSL версии 3
ssl_tlsv1=YES # Использовать TLS версии 1
allow_anon_ssl=YES #Использовать SSL для анонимных соединений
force_local_data_ssl=NO # Использовать ssl для локальных соединений
force_local_logins_ssl=NO #
rsa_cert_file=/usr/local/etc/vsftpd.pem # Путь к файлу сертификата
rsa_private_key_file=/usr/local/etc/vsftpd.key # Путь к приватному ключу сертификата

далее в идем в usr/local/etc/users и создаем там файлики с именами юзеров
Код
vi username

в которые пишем то что им разрешено
например
Код
download_enable=YES
cmds_allowed=CWD,PASV,EPSV,LIST,MKD,MODE,NLST,NOOP,REN,PASS,PWD,SIZE,TYPE,USER,STOR,REST,FEAT,RETR,S
YST,QUIT

Теперь запускаем наш любимый vsftpd:
Код
# /usr/local/etc/rc.d/vsftpd.sh


(с)Shadowless

З.Ы. по всем вопросам и коментариям отписываемся в PM мыло или же асю
Top
mulder
Дата 13.09.2006 - 19:30
Цитировать сообщение
Offline



.:in root we trust:.
*****

Профиль
Группа: -vip-
Сообщений: 1181
Пользователь №: 1151
Регистрация: 9.08.2005



Рейтинг:
(70%) XXXX-


irmessage_enable=YES # включение показа баннера
надо dirmessage_enable=YES # включение показа баннера
при желании можно прописать путь к файлику в котором этот баннер хранится или путь к скрипту который будет генерить этот файлик(я это очень давно пробывал)
PM
Top
Shadowless
Дата 13.09.2006 - 19:53
Цитировать сообщение




Unregistered












очепятка была уже исправил
Top
drmist
Дата 14.09.2006 - 19:34
Цитировать сообщение
Offline



Professional
*****

Профиль
Группа: -users-
Сообщений: 1165
Пользователь №: 222
Регистрация: 14.04.2005



Рейтинг:
(0%) -----


хочу добавить, что в общем случае не требуется устанавливать настройки для каждого пользователя в отдельности.
если в vsftpd.conf закоментировать строку "user_config_dir=/usr/local/etc/users", пользователи будут иметь права по-умолчанию. Это может быть удобным на хостингах, где число пользователей может составлять несколько сотен, или даже тысяч.


--------------------
Когда нельзя еще больше хочется...
PMСайт пользователя
Top
darkmist
Дата 21.06.2009 - 09:13
Цитировать сообщение




Unregistered












спасибо ! пригодилось +
Top

Опции темы Ответ в темуСоздание новой темы