Tagged: vsftpd chroot

FileZilla

FileZilla — это свободный мультиязычный FTP-клиент для Microsoft Windows, Mac OS X и Linux. Он поддерживает FTP, SFTP, и FTPS (FTP через SSL/TLS).

Так же существует FileZilla Server — проект, родственный FileZilla Client. Это FTP-сервер, разрабатываемый той же компанией. На 3 марта 2009 года имеет версию 0.9.31. Он поддерживает FTP, SFTP, и FTPS (FTP через SSL/TLS). На 25 марта 2009 года он являлся пятым в списке самых популярных программ SourceForge.net.

(далее…)

Vsftpd

index

Легковесный, самый защищенный и очень быстрый FTP-сервер. Легко настраивается, имеет интуитивно понятный конфигурационный файл.

(далее…)

Ping от системного радио, всем привет!

Хочу поделится опытом быстрой настройки ftp сервера. Задача — предоставить возможность кому-то быстро залить файлик-другой прямиком к вам на компьютер. Решать эту задачу я решил ftp сервером с разрешением на заливку анонимусам. Больше ничего. Как только мне зальют мои файлики, я выключу фтп сервер, от греха подальше.

Ставим

sudo aptitude install vsftpd

Очень нетребовательный пакет, который кроме себя самого больше ничего не тянет. После установки появляется директория /home/ftp (drwxr-xr-x 3 root nogroup). Заходим в нее и создаем внутри директорию incoming, даем права на доступ всем желающим (chmod 777 incoming).

Правим конфигурацию:

sudo vi /etc/vsftpd.conf

 

Показываю только включенные опции:
listen=YES
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Что сможет наш анонимус на таком конфиге? Он сможет залить файл в incoming. Он НЕ СМОЖЕТ: прочесть собственный файл :), скачать что-либо себе от вас, создавать директории и заливать в них. Если хочется открыть и на скачивание доступ (от вашего фтп на клиента) то добавляем опцию download_enable=YES. Если запретить заливку на фтп, то write_enable=NO, anon_upload_enable=NO.

Залитые файлы будут помечаться следующими реквизитами: -rw——- 1 ftp nogroup, то есть — ничего нельзя! Меня устраивает. Впрочем, есть и проблемы. Если файл заливается с виндовса, да еще и имя имеет русскими буквами, то у вас имя будет выглядеть примерно так: ??????????? ???~01.05.2009.rar. Для решения кодировочной проблемы можно можно воспользоваться советом. В данный момент я уже себя корю, что не подумал о кодировках сразу. Но ладно.

Рестартуем сервер

sudo /etc/init.d/vsftpd restart

 

Дальше у кого как, кому-то больше ничего делать не нужно, а мне потребовалось открыть на своем роутере 21-й порт с пробросом на комп. Это, в общем, и всё. Оставайтесь на волне системного!

В этой маленькой статье описано как настроить ftp сервер vsFTPd на работу с разными кодировками,

по умолчанию он отдает пользователю список файлов и папок в кодировке системы.

Если вы используете Ubuntu, Debian то по умолчанию кодировка в системе UTF8 а у пользователей

Windows по умолчанию выставлено WIN1251. Стандартными средствами Windows у вас не получится

просматривать русские имена файлов и каталогов на вашем ftp сервере, но есть простое решение проблемы.

Официальный билд vsFTPd не поддерживает перекодировку на лету, но есть
модифицированная версия, переделанная русским разработчиком, в нее
включены несколько весьма полезных функций.
Скачаем последний билд с сайта В наличии там имеются сборки под все распространенные системы.
Если у вас еще нет установленного ftp сервера, то советую вам
ознакомится с руководством по его установке и настройке под виртуальных
пользователей
Если у вас уже установлен vsFTPd то советую вам на всякий случай сделать резервный копии файлов конфигурации.

Код:

cp /etc/vsftpd.conf ~
cp /etc/pam.d/vsftpd ~

Установите скачанный пакет, и отредактируйте файл конфигурации /etc/vsftpd.conf, добавив в него строки:

Код:

convert_charset_enable=1
local_charset=CP
remote_charset=CP

CP может принимать следующие значения: UTF8,
WIN1251 (1251), KOI8R (878), IBM866 (866), ISO-8859-5 (ISO5),
ISO-8859-1 (LATIN1 или ISO1), ISO-8859-15 (LATIN9 или ISO15), WIN1252
(1252), ISO-8859-2 (LATIN2 или ISO2), ISO-8859-16 (ISO16) или WIN1250
(1250).

Вписываем нужные нам значения, перезапускаем сервис vsFTPd командой /etc/init.d/vsftpd restart и поверяем результаты. Проблемы клиентов с кодировками в моем случае полностью исчезли.
О других дополнениях вы можете прочитать в руководстве к данному билду vsFTPd командой man vsftpd.conf

Специально для rekaa и его сайта welovecs.ru собрался с руками и попробую написать инструкцию для установки VsFTPD на Debian.

Установка:
И так, имеем систему
Linux version 2.6.26-2-openvz-amd64 (Debian 2.6.26-26lenny2) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Tue Jan 25 06:04:33 UTC 2011

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

1 sudo apt-get install vsftpd

Делаем, на всякий случай, копию исходного конфига

1 cp /etc/vsftpd.conf /etc/vsftpd.conf.default

Редактируем конфиг

1 vi /etc/vsftpd.conf

Мой конфиг:

1 listen=YES
2  #listen_ipv6=YES
3  anonymous_enable=NO
4  local_enable=YES
5  write_enable=YES
6  local_umask=022
7  #anon_upload_enable=YES
8  #anon_mkdir_write_enable=YES
9  dirmessage_enable=YES
10  use_localtime=YES
11  xferlog_enable=YES
12  connect_from_port_20=YES
13  #chown_uploads=YES
14  #chown_username=whoever
15  #xferlog_file=/var/log/vsftpd.log
16  #xferlog_std_format=YES
17  #idle_session_timeout=600
18  #data_connection_timeout=120
19  #nopriv_user=ftpsecure
20  #async_abor_enable=YES
21  #ascii_upload_enable=YES
22  #ascii_download_enable=YES
23  #ftpd_banner=Welcome to blah FTP service.
24  #deny_email_enable=YES
25  #banned_email_file=/etc/vsftpd.banned_emails
26  chroot_local_user=YES
27  #chroot_list_enable=YES
28  #chroot_list_file=/etc/vsftpd.chroot_list
29  ls_recurse_enable=YES
30  secure_chroot_dir=/var/run/vsftpd/empty
31  pam_service_name=vsftpd
32  rsa_cert_file=/etc/ssl/private/vsftpd.pem
33  pasv_min_port=50000
34  pasv_max_port=59000

От конфига по умолчанию мой отличается следующим:
Права на загружаемые файлы

1 local_umask=022

Разрешаю локальным пользователям запись

1 write_enable=YES

Убирал доступ для анонимных пользователей

1 anonymous_enable=NO

Разрешил локальным пользователям логиниться (убрал комментарий в конфиге)

1 local_enable=YES

Установил права для заливаемых файлов (убрал комментарий в конфиге)

1 local_umask=022

Дал пользователям только его домашний каталог, домашний каталог пользователя можно посмотреть в /ets/passwd (убрал комментарий в конфиге)

1 chroot_local_user=YES

Включил ls -R, требуется некоторым FTP клиентам, иначе будет зависать FTP передача, особенно со включенным файрволом

1 ls_recurse_enable=YES

Указал пассивные порты

1 pasv_min_port=50000
2 pasv_max_port=59000

Перезапускаем VsFTPd

1 /etc/init.d/vsftpd restart

Список заблокированных локальных пользователей

1 root@rekka:~# cat /etc/ftpusers
2  # /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
3 root
4  daemon
5  bin
6  sys
7  sync
8  games
9  man
10  lp
11  mail
12  news
13  uucp
14  nobody
15  root@rekka:~#

Чтобы у root появился доступ, надо удалить его из списка (НЕ СОВЕТУЮ)

Правила для IPTABLES

1 -A INPUT -p tcp -m tcp —dport 20:21 -j ACCEPT
2 -A INPUT -p tcp -m tcp —dport 32768:65535 -j ACCEPT
3 -A INPUT -p udp -m udp —dport 32768:65535 -j ACCEPT

Дополнительно:
Запретить доступ к определенным типам файлов по маске

1 deny_file={*.mp3,*.mov, *.avi, .filelist}

Скрыть определенные типы файлов при выводе списка, но дать скачать тем кто знает точное имя.

1 hide_file={*.mp3,*.mov, *.avi}

Ограничить скорость для пользователей (байт в сек.)анонимным

1 anon_max_rate=50000

локальным

1 local_max_rate=100000