vsftpd-2.3.4-1 из optware, пользователи в /etc/passwd , ничего почему-то не падает.
Конфиг:
Code:anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES vsftpd_log_file=/opt/var/log/vsftpd.log ftpd_banner=Welcome to the NSLU2 vsftp daemon. ls_recurse_enable=YES listen=YES check_shell=NO
Сервер FTP прослушивает порт номер 21 и при поступлении запроса открывает одиночное соединение - сеанс управления FTP. При выполнении команд в пределах этого сеанса, для передачи данных открываются дополнительные соединения. Эти соединения могут быть активными или пассивными.
При создании активного соединения (активный FTP) клент передает FTP серверу номер порта, IP адрес для соединения и открывает порт. Сервер подключает к заданному порту клиента свой порт с номером 20 (FTP Data) и передает данные через установленное соединение. Пассивный FTP действует противоположным образом. Клиент посылает запрос серверу на получение данных, а сервер возвращает клиенту IP адрес и номер порта для подключения. Клиент подключает свой 20-й порт (FTP-data) к указанному порту сервера и получает запрошенные данные.
На той странице ж давал ссылку, где во втором посте в выдаче 21й порт. Вот люди, блин.
FTP все вроде настроил в пассивном режиме работает. А в активном режиме глючит
Так как WAN & LAN Filter включен в оба направления, пришел к выводу что надо менять настройки iptables.
Открыл /usr/local/sbin/post-firewall
Скопироовал строчку с фтп поменял на OUTPUT, порт. И добавил:### Ограничиваем доступ ребенку.
### Во время действия летнего времени срабатывает на 1 час позже:
### Создаем новую цепочку, дропаем в ней все по умолчанию.
### Заворачиваем на нее все интернет-пакеты ребенка
#iptables -N CHILD
#iptables -A CHILD -j DROP
#iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD
#iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD
#iptables -I FORWARD 1 -m mac --mac-source xx:xx:xx:xx:xx:xx -o ppp0 -j CHILD
### Включаем ребенку интернет по времени
#iptables -I CHILD 1 -m time --timestart 09:00:00 --timestop 20:00:00 --weekdays
# port for Transmission (BitTorrent client)
iptables -I INPUT -p tcp --dport 65534 -j ACCEPT
iptables -I INPUT -p udp --dport 65534 -j ACCEPT
# iptables -I INPUT -p tcp --dport 51413 -j ACCEPT
# iptables -I INPUT -p tcp --dport 9091 -j ACCEPT
# FTP Server
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
фтп вроде работате, но при открывание папок (из внешки) выдает ошибку:# FTP Server
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 20 -j ACCEPTКак правильно сделать активный FTP, подскажите пожалуйста?500 Illegal PORT command.
p.s. с вебморды Port Forwarding default policy: ACCEPT
Last edited by xml111; 28-10-2011 at 09:10. Reason: WAN & LAN Filter
ASUS RT-N16; прошивка: 1.9.2.7-rtn-r4330
Все привет, ребята столкнулся с такой траблой,
поставил новую прошивку на dir-320
$ uname -a
Linux IP 2.6.22.19 #1 Sat May 21 09:04:48 MSD 2011 mips GNU/Linux
потом привычным методом поставил vsftpd
$ ipkg install vsftpd
Installing vsftpd (2.3.4-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/op...4-1_mipsel.ipk
Configuring vsftpd
You'll need to add line like
echo "ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf" >>/etc/inetd.conf
to your /unslung/rc.xinetd file -- see the wiki at http://www.nslu2-linux.org for more info
Successfully terminated.
по просьбе установщика сделал
echo "ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf" >>/etc/inetd.conf
и
echo "ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf" >>/opt/etc/inetd.conf
потом собрал такой конфиг
$ cat vsftpd.conf
listen=YES
check_shell=NO
anonymous_enable=no
dirmessage_enable=yes
download_enable=no
dirlist_enable=no
hide_ids=yes
ftpd_banner=Welcome to FTP Server
syslog_enable=yes
local_enable=yes
local_umask=022
chmod_enable=no
chroot_local_user=yes
check_shell=no
listen=yes
listen_port=21
background=yes
max_clients=3
idle_session_timeout=240
use_sendfile=no
anon_max_rate=1024
local_max_rate=0
но при попытке подключения с другого компа получаю такой ответ:
# ftp 192.168.2.1
ftp: connect: Connection refused
при просмотре активных соединений не вижу 21 порта
$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:51968 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:webcache 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 :::domain :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::telnet :::* LISTEN
tcp 0 0 ::ffff:192.168.2.1:telnet ::ffff:192.168.1.3:54461 ESTABLISHED
udp 0 0 localhost.localdomain:38032 0.0.0.0:*
udp 0 0 0.0.0.0:domain 0.0.0.0:*
udp 0 0 0.0.0.0:bootps 0.0.0.0:*
udp 0 0 IP-ATS:49487 0.0.0.0:*
udp 0 0 IP-ATS:5351 0.0.0.0:*
udp 0 0 0.0.0.0:upnp 0.0.0.0:*
udp 0 0 :::domain :::*
кто что думает по этому поводу?
Я думаю, что у Вас просто не запущен vsftpd. Приведенные строчки относятся к запуску сервера через inetd, который давно устарел (его и в репозитории нет). Сейчас используется xinetd - улучшенный аналог initd. Конфиги у них отличаются плюс нужен отдельный файл для запуска сервера на 21 порту (по умолчанию). Сложного ничего нет, но необходимо установить xinetd. Меня этот вариант запуска почему-то не устроил, не помню почему. Запускаю vsftpd с помощью файла S* в папке /init.d.
Расскажи по конкретнее что необходимо сделать, плюс посмотреть бы конфиг vsftpd.conf.
Сейчас проделано следующее
ipkg install xinetd
после этого пытаюсь запустить скрипт
$ ./S30vsftpd start
Starting VSFTPD:
ps: invalid option -- a
BusyBox v1.18.4 (2011-05-21 08:47:13 MSD) multi-call binary.
Usage: ps
Show list of processes
Options:
w Wide output
Вот такой ответ получаю.
Конфиг ftp:
$ cat vsftpd.conf
listen=YES
check_shell=NO
anonymous_enable=no
dirmessage_enable=yes
download_enable=yes
dirlist_enable=yes
hide_ids=yes
ftpd_banner=Welcome to FTP Server
syslog_enable=yes
local_enable=yes
local_umask=022
chmod_enable=yes
chroot_local_user=yes
user_config_dir=/opt/etc/vsftpd.users
listen=yes
listen_port=21
background=yes
max_clients=3
idle_session_timeout=240
use_sendfile=no
anon_max_rate=1024
local_max_rate=0
Роутер: D-Link DIR-320
Прошивка: WL500gpv2-1.9.2.7-rtn-r3015M.bin
Как я понял в ней ftp вырезан из за нехватки места во флеше, но на всякий случай в морде ftp отключен.
Установил ipkg install vsftpd
/opt/etc/vsftpd.conf:
Добавил в /tmp/etc/group:anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
vsftpd_log_file=/opt/var/log/vsftpd.log
ftpd_banner=Welcome to the Optware vsftp daemon.
ls_recurse_enable=YES
listen=YES
check_shell=NO
chroot_local_user=YES
anon_root=/tmp/harddisk/ftp
syslog_enable=YES
no_annon_password=YES
ftp:x:100:
Добавил в /tmp/etc/passwd:
ftp:x:100:100:ftp:/tmp/harddisk/ftp:/sbin/nologin
Папку /tmp/harddisk/ftp создал
Добавил в /usr/local/.files:
/etc/passwd
/etc/group
В post-firewall:
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -i vlan1 -p tcp --dport 21 -j DNAT --to-destination $4:21
iptables -A INPUT -j DROP
Выполнил:
flashfs save && flashfs commit && flashfs enable && reboot
Запускаю:
/opt/sbin/vsftpd /opt/etc/vsftpd.conf &
Проверяю
netstat -ltunp | grep ftp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2065/vsftpd
Через две попытке присоединится получаю:
500 OOPS: duplicate hash key
и vsftpd пропадает из процессов
Лог /opt/var/log/vsftpd.log вообще не создается
Всю тему перечитал по несколько раз. На предыдущих двух страницах что то подобное но не понял как решили.
Что делать?
Last edited by 3MMM; 05-12-2011 at 16:06.
ASUS RT-N16, rtn-3497, VSFTPd в прошивке.
Файл vsftpd.conf каждый раз пересоздается на основании настроек из NVRAM. Поэтому, я так понимаю, свою настройку туда добавить не представляется возможным.
Запись во FLASHFS правленного файла не прокатывает (перечисление его в .files).
Какой еще есть способ добавить нужную настройку в vsftpd.conf, кроме отключения FTP в веб-интерфейсе и запуска его из стартап-скрипта с указанием конфига?
Интересует, в частности, use_localtime=yes
Вставил в post-mount после старта rc.unslug:но как-то это не совсем правильно.Code:killall vsftpd echo use_localtime=yes>>/etc/vsftpd.conf vsftpd
UPD: При таком перезапуске vsftpd перестает отвечать извне, в локалке все работает. Убрал этот код и перезапустил - стало видно извне.
Last edited by Pasha_ZZZ; 04-12-2011 at 13:05.
Поиском искал - не нашел (искал как мог))
Имею RT-n16 с последней прошивкой энтузиастов (большое им спасибо!!!) и три USB жестких диска, подключенных к нему.
Поднят FTP посредством WEB-морды, т.е. встроенный в прошивку. Естественно, FTP дает доступ только к первому диску. А хочется ко всем, ну или иметь возможность настраивать доступ к дискам.
Можно ли это реализовать, и если да, то как это сделать?
Всем заранее большое спасибо!
Подскажите, что определяет (на что влияет) параметр usb_ftpnum_x