Age: 6yrs 10mo 21d
Orion Server
Orion Server
Orion Server
Слава Украине!
Orion Server
IP на сайте:
52.91.185.49Orion ServerUnited States
Ashburn
Статистика посещений
Сейчас на сайте: 1
С начала суток (15.6 h):290
За прошедшие 24 h: 366
Уникальные IP: 108717
Всего посещений: 2028400

Very Secure FTP Daemon

VSFTPD - Very Secure FTP Daemon - оказался очень быстрым и "легким" FTP сервером. По моим наблюдениям он быстрее ProFTPD из прошивки. Кроме того встроенный ProFTPD не "понимает" большие файлы. Вернее неправильно интерпретирует размер файла. Например файл размером 5688 Мбт выглядит, как 1393 Мбт, хотя и закачивается правильно. Я выбираю VSFTPD. Хочу поделиться своим опытом в установке и настройке этого сервера.

FTP-клиент FAR-менеджера.

Итак, установка.
Обновляем пакет OPTWARE
ipkg-opt update

Устанавливаем vsFTPd сервер
ipkg-opt install vsftpd

Устанавливаем вспомагательную микро-библиотеку Cи - 0.9.28-13
ipkg-opt install uclibc-opt

Можно еще установить библиотеку для добавления юзеров - adduser
ipkg-opt install adduser

Проверяем установленные программы
ipkg-opt list_installed

root@Cherry-PC:~# ipkg-opt list_installed
adduser - 1.10.3-1 - a multi-call binary for login and user account administration
...................................................................................
uclibc-opt - 0.9.28-13 - micro C library for embedded Linux systems
vsftpd - 2.3.4-1 - ftp daemon with an emphasis on speed and security
..................................................................................
Successfully terminated.


Конфиг-файл должен находиться в папке /opt/etc/vsftpd.conf
Сервер находится по пути /opt/sbin/vsftpd
Папка /opt/var/run/vsftpd/ должна существовать, если нет создаем ее руками.

Далее меняем содержимое файла vsftpd.conf на следующее:
#Конфиг-файл должен находиться в папке /opt/etc/vsftpd.conf
#Настройки для анонимного пользователя
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
no_anon_password=YES
anon_world_readable_only=YES
# корневая папка для анонимуса
anon_root=/mnt/pub
# если нет такой папки - создайте
secure_chroot_dir=/opt/var/run/vsftpd
ftp_username=anonymous
#Настройки для остальных пользователей
nopriv_user=root
background=YES
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
dirmessage_enable=YES
#Приглашение сервера - на ваше усмотрение
ftpd_banner=Welcome to CHERRY FTP service.
ls_recurse_enable=YES
local_max_rate=0
chroot_local_user=YES
connect_from_port_20=YES


Копируем из папки /tmp/etc файлы group и passwd в папку /opt/etc/
Файл /tmp/etc/group содержащий строки:
root:x:0:


Файл /tmp/etc/passwd содержащий строки:
root:xxxxxшифрованный_парольxxxxxxxx:0:0:Root User,,,:/tmp/root:/bin/sh
reboot:xxxxxшифрованный_парольxxxxxxxx:0:0:Root User,,,:/tmp/root:/sbin/reboot


Правим файл /opt/etc/group
root:x:0:
users:x:100:


Правим файл /opt/etc/passwd
root:xxxxxшифрованный_парольxxxxxxxx:0:0:Root User,,,:/tmp/root:/bin/sh
reboot:xxxxxшифрованный_парольxxxxxxxx:0:0:Root User,,,:/tmp/root:/sbin/reboot
ftp:Password:0:0:User,,,:/:/bin/sh
nobody:Password:0:0:User,,,:/:/bin/sh
MainUser:xxxxxшифрованный_парольxxxxxxxx:0:0:User,,,:/:/bin/sh
guest:xxxxxшифрованный_парольxxxxxxxx:101:100:User,,,:/mnt/pub:/bin/sh
anonymous::102:100:User,,,:/:/bin/sh


Пользователи ftp и nobody - служебные и необходимы серверу для работы
Пользователь MainUser (или любой на ваше усмотрение) принадлежит к группе root (цифра 0) и имеет доступ ко всем папкам - /
Пользователь guest принадлежит к группе users (цифра 100) и корнем для него
является папка /mnt/pub
Пользователь anonymous принадлежит к группе users (цифра 100) и корнем для него
является папка, которая прописана в vsftpd.conf, а именно anon_root=/mnt/pub
Если из /opt/etc/passwd удалить строку
anonymous::102:100:User,,,:/:/bin/sh, а из конфига ftp_username=anonymous
при входе, как anonymous, сервер выдает известную в Google ошибку
500 OOPS: vsftpd: refusing to run with writable anonymous root Т.е. эти две строки дают возможность анонимно заходить на сервер

Теперь о паролях.
Пишем (например в PuTTY) openssl passwd -1
Вводим пароль(на экране не отображается), повторяем и получаем "шифровку"
Например: пароль MainUser для юзера MainUser
root@Cherry-PC:~# openssl passwd -1
Password:
Verifying - Password:
$1$rFV0UG.x$4Eh3CIi5i6wsqyUgW0dS2.
root@Cherry-PC:~#


Копируем "шифровку" и редактируем строку
MainUser:$1$rFV0UG.x$4Eh3CIi5i6wsqyUgW0dS2.:0:0:User,,,:/:/bin/sh


Далее создаем файл для запуска сервера
/opt/etc/vsftpd.startup
Содержимое файла:

#!/bin/sh
sleep 2
#копируем /mnt/opt/etc/group в /tmp/etc
cp -r /mnt/opt/etc/group /tmp/etc
#копируем /mnt/opt/etc/passwd в /tmp/etc
cp -r /mnt/opt/etc/passwd /tmp/etc

export LD_PRELOAD='/opt/lib/libuClibc-0.9.28.so'
/opt/sbin/vsftpd /opt/etc/vsftpd.conf
unset LD_PRELOAD
env > /dev/null


Версию библиотеки смотрим в /opt/lib/libuClibc-0.9.28.so
Возможно версия будет младше libuClibc-0.9.27.so или старше, тогда соответственно правим строку export LD_PRELOAD='/opt/lib/libuClibc-0.9.28.so'

Для перезапуска сервера во время отладки создаем файл /opt/etc/vsftpd.restart
Содержимое файла:
killall vsftpd
/opt/etc/vsftpd.startup

Потом, чтобы перегружать только сервер пишем в PuTTY /opt/etc/vsftpd.restart Не забываем дать права на выполнение vsftpd.startup и vsftpd.restart. Кстати о правах. Лично я предпочитаю использовать windоподобные оболочки. В этом смысле замечательная программа WinSCP. Ставим курсор на папку, смотрим свойства(F9) и выставляем права. Красиво и наглядно, но это впрочем дело вкуса. Не очень понятна роль библиотеки libuClibc-0.9.27.so. Мне кажется, что скорость обмена с сервером становится выше. Но без нее сервер работает и запускается командой
vsftpd /opt/etc/vsftpd.conf &
Т.е /opt/etc/vsftpd.startup сводится к следующему:

#!/bin/sh
sleep 2
#копируем /mnt/opt/etc/group в /tmp/etc
cp -r /mnt/opt/etc/group /tmp/etc
#копируем /mnt/opt/etc/passwd в /tmp/etc
cp -r /mnt/opt/etc/passwd /tmp/etc
vsftpd /opt/etc/vsftpd.conf &


Проверить, что сервер запущен можно командами

root@Cherry-PC:~# ps | grep vsftpd
3184 root 2012 S /opt/sbin/vsftpd /opt/etc/vsftpd.conf
3196 root 1848 S grep vsftpd
root@Cherry-PC:~#

root@Cherry-PC:~# pidof vsftpd
3184
root@Cherry-PC:~#

root@Cherry-PC:~# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
..............................................................................
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
..............................................................................
p 0 0 192.168.1.1:21 192.168.1.2:50655 ESTABLISHED
..............................................................................
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 2935 /tmp/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 2698 /tmp/php-fcgi.sock-0
unix 3 [ ] STREAM CONNECTED 10793
unix 3 [ ] STREAM CONNECTED 10792
unix 2 [ ] DGRAM 834
root@Cherry-PC:~#


Все. Заходим в роутер, Техобслуживание/Команды/Параметры запуска/ и добавляем строку /opt/etc/vsftpd.startup
В параметры брандмауэра добавляем
iptables -I INPUT 2 -i vlan2 -p tcp --dport 21 -j logdrop
iptables -I INPUT 2 -i vlan2 -p tcp -m state --state NEW --dport 21 -m limit --limit 3/minute --limit-burst 5 -j logaccept

чтобы к FTP серверу был доступ из внешней сети.

Перегружаемся и с чувством глубокого удовлетворения тестируем сервер.
У меня скорость обмена с сервером до 8500-9000 Кбт/сек

Комментарии.

Комментариев нет!


Здесь вы можете оставить свой комментарий.






Введите текст с картинки: