свернуть

vsftpd + tcp wrapper

Расскажу я вам ребятки.. да не про зловещих мертвецов и эльфов 55 уровня в другом посте...сказ о лютом фтп сервере (не особо прокачанном, но зато стабильном и защищенном) и способе фильтрации доступа к нему по ip.

Cобственно что нам треба. установленный vsftpd в убунту/дебиан это можно сделать так : sudo apt-get install vsftpd, для любителей развлечься можно зайти на vsftpd.devnet.ru стянуть свежую сборку и собрать, и из исходников и получить дополнительные пряники =) хотя кашернее собирать из скаченного отсюда security.appspot.com, думаю wget-ом пользоваться все умеют), да и сама сборка сложностей не доставляет. Для базовой настройки vsftpd юзаем vsftpd.conf sudo nano /etc/vsftpd.conf не забываем включить tcp_wrappers = YES, если хотим сделать анонимный доступ, то создаем юзера без шела sudo useradd any_stupid_name -b /any/folder -s /bin/false в vsftpd.conf прописываем следующие строчки: anonymous_enable=YES (если NO то анонимный доступ отключен) КО торжествует)
anon_upload_enable=NO (разрешение анонимам грузить файло)
anon_mkdir_write_enable=NO(разрешение анонимам папки создавать)
anon_root=/бла-бла-бла_путь (путь для корневой директории фтп для анонимных)
anon_umask=0000 (маска которая устанавливает права в файле после загрузкии вычисляется анон_маска=777- права которые хотите выставить, на примере выставил 777)
chown_username=user (выставляем владельца загруженных файлов)
chown_uploads=YES(устанавливать владельца для загруженных файлов)
для того чтобы сделать доступ к фтп локальнм юзерам нужно написать всего две директивы в vsftp.conf:
local_enable=YES (разрешаем вход локальным юзверяем)
chroot_local_user=YES (запираем их в их хоумах, так безопаснее)
можно еще начепятать
write_enable=YES (разрешить запись, глобальное свойство)
из интересных директив еще deny_file={имя файла}
с помощью нее можно вызвать диабло запретить загрузку и доступ к файлам по маске, например указав *.mp3 мы запрещаем mp3 файлы ) директив много кому интересно сам в мане все найдет) пример конфига:

listen=YES
anonymous_enable=YES
local_enable=YES
tcp_wrappers=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
chroot_local_user=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftpshnic
anon_root=/ftp/anonim
anon_umask=0000
chown_upload_mode=0777
file_open_mode=0777
anon_other_write_enable=NO

собственно к переходим к tcp wrapper. допустим нужно ограничить доступ к фтп местным контент провайдером)

подсеть ххх.ххх.ххх.ххх/ххх
прописываем в /etc/hosts.allow
vsftpd : ххх.ххх.ххх.ххх/ххх
в /etc/hosts.deny
vsftpd : ALL
увсе рестартуем сетку и vsftpd доступ только с указанной подсети. to be continued...