Автор Тема: vsFTPd and ip_nat_ftp  (Прочетена 2929 пъти)

d1saster

  • Напреднали
  • *****
  • Публикации: 182
    • Профил
vsFTPd and ip_nat_ftp
« -: Nov 03, 2005, 01:07 »
Бихте ли ми обяснили каква е ролята на ip_conntrack_ftp, ip_nat_ftp. Въпросът ми е породен от това, че тези модули или не работят или аз не мога да наглася iptables да ги ползва. И за да пусна FTP сървър на Slackware 10.1 се наложи да:
1. Укажа на inetd да ползва портове над 1024 за ftp услуги.
2. Настроя pasv_port-овете на vsFTPd в строго определен диапазон.
3. Разреша достъп на въшншната мрежа през гореупоменатите портове във файъруола.

Резултатът е че на FTP клиента трябва да се укаже и порта иначе няма достъп до моя сървър. FTP под DOS и UNIX не може също да отвори адреса. От търсенето в мрежата всеки предлага да се ползват модулите от ядрото. При мен те са заредени, но каква полза от тях. Благодаря предварително.
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1456
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #1 -: Nov 03, 2005, 08:39 »
Здравей,
Само инфо по някои от точките '<img'>
1.Това би трябвало да се налага от факта че "vsftpd" работи като "root" но после отваря сесия като user "ftp" (отделно пък вградения в него "ls" клиент май работи като "nobody" ).
Тоест не може да се ползват привилигеровани портове < 1024.
Не случайно го водят за най-сигурният FTP сървър :-)
2.тук не разбирам какво точно искаш да кажеш а и не ми се гадае (има active и passive режими)
3.Тук мисля че по-добро решение е да прехвърлиш всички заявки на порт 21 (ftp) на firewall-a към даден вътр. адрес и порт (където слуша vsftpd) във вътрешната мрежа (ако ftp-сървъра не е на firewall машината разбира се).
Имам идея от NAT но тъй като не го ползвам често някои друг да поясни тук.
Успех.Румен
Активен

d1saster

  • Напреднали
  • *****
  • Публикации: 182
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #2 -: Nov 03, 2005, 18:38 »
Благодаря за инфото.

Щом vsFTPd не ползва портове < 1024 тогава защо като стандартни се ползват 20 и 21? Мисля, че ограничението за тези портове идва от Слака или от файъруола (второто не ми се вярва). Имах същия проблем при пускането на уеб сървъра. И там нещата се решиха, като смених порта на непривилигирован. При мен всичко е на една машина: web, ftp & firewall, така че няма как да пренасоча заявките към порт 21 към вътрешен компютър. А и да можех, трябва да се укаже във файъруола и на порт 20 и на определен диапазон от портове, използващи се от пасивен режим.. В случая порта се сменя, но какво става с вградените ftp клиенти под DOS и UNIX - команта от рода някакси не се възприема:

$ftp my.ftp.server:8021
ftp: my.ftp.server:8021: unkown host

И все пак въпроса ми си остава: Какво е значението на ip_nat_ftp.

Относно пасивен и активен режим. За кого е от значение това - за клиента или сървъра? В смисъл, ако клиента се опитва да премине в пасивен режим, а сървъра позволява само активен, става ли объркване/неизпълнение на дадена команда.
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #3 -: Nov 07, 2005, 18:58 »
Цитат (d1saster @ Ноември 03 2005,19:38)
И все пак въпроса ми си остава: Какво е значението на ip_nat_ftp.

Ами би трябвало да ти осигури връзката между data & control connections на ftp-връзката.
ако имаш правило от типа:
iptables -m state --state ESTABLISHED,RELATED -j pravi_neshto_si
то именно този модул трябва да ти разпознае трафика, който върви по отделен канал и към отделен порт през NAT като свързан с нея и да направи "pravi_neshto_si".

Имам спомен, че vsftpd имаше възможност да се настрои да не проявява творчество относно портовете за трансфер, аз го ползвам като stand-alone, но все пак и за inetd/xinetd (и нямам проблеми с порт 21, като изключим инцидент с отсрещна машина с win xp с пуснат firewall, който не разреши връзката от порт 20) трябва да е възможно, огледай man vsftpd.conf за нещо от типа "connect_from_port_20", което като е YES за ftp за порт 2121, data-ta върви на 2120, но това не би трябвало да е валидно за pasive mode, мисля, че там избора на порт е на клиента.
Ako искаш да прекарваш ftp трафик към нестандартни портове (различни от 21), може би ще трябва да поразгледаш и обяснението за helper в man-a на iptables, не съм го ползвал, но мисля че за такива неща идеше реч там.
Относно pasv... ами ако единия го иска, а другия - не, според мен връзка няма да стане.
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1456
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #4 -: Nov 07, 2005, 19:55 »
Здравейте,
Скоро се занимавах с 'vsftpd' но със 'rsbac'-ядро и там ми се наложи да следя как се променят процесите и техните собственици, за да мога въобще да го подкарам (така и не успях, инсталирах 'proftpd''<img'>.
Опитай следното:
1.$ftp localhost; (за да се свържеш с сървъра като клиент);
2.$sudo netstat -tupan | grep vsftpd
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      13292/vsftpd
tcp        0      0 127.0.0.1:21            127.0.0.1:42278         ESTABLISHED 9565/vsftpd
...
3.$sudo ps auxww | grep vsftpd
root     13292  0.0  0.0   3016   556 ?        Ss   15:50   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
nobody    9565  0.0  0.1   3128   940 ?        Ss   19:44   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
ftp       9567  0.0  0.1   3152   824 ?        S    19:44   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
gentoo    9603  0.0  0.0   2632   704 pts/3    S+   19:45   0:00 grep vsftpd
...END...
Тези три едновременно работещи потребители ми създадоха най-големите проблеми (при два се справям без проблем '<img'>
Тоест 'root' пак си слуша на 21 но отваря и връзка на висок порт когато се свърже клиент (ftp user мисля), а nobody май е за "ls" която някъде четох че я има вградена в "vsftpd".
Мисля по-късно пак да се пробвам, но първо ще погледна сайта им (признавам че досега не съм го направил).
Румен
Активен

d1saster

  • Напреднали
  • *****
  • Публикации: 182
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #5 -: Nov 09, 2005, 19:37 »
И аз не знам за какво се хвърлих на vsFTPd, ама вече изчетох сума ти писания и не ми се връща назад.

Доколкото разбрах ip_conntrack_ftp и зависещите модули работят точно в passive mode и отварят непривилигировани портове. Странното (може би само на мен) в случая е че в конфиг файла на vsFTPd са упоменати min и max портове, които да се ползват в passive mode. Този диапазон от портове е позволен от iptables файъруола. Но след като се установи връзка клиент-сървър се отварят портове различни от упоменатите. Е да, но ако премахна позволените портове от файъруол конфиг файла, то тогава изобщо не може и да се започне връзка. Значи хем се ползват упоменатите от мен портове, хем се отварят нови. Явно има мнооого още да се чете.

Рей, аз изобщо не мога да пусна сървър на моята машина ползващ порт <1024. Все пак те не са комерсиални сървъри, така че що годе закрепих положението.

Накрая разбрах каква е командата за ползване на адрес и порт:
$ftp
ftp> open servername port
(а не както си мислех сървърнаме:порт)

Благодаря ви за помощта.
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1456
    • Профил
vsFTPd and ip_nat_ftp
« Отговор #6 -: Nov 09, 2005, 20:27 »
Здравей,
Малко ще импровизирам,но става като база за размисъл '<img'>
По принцип ftp протокола има една досадна особеност - работи/нуждае се от два порта (две връзки).
Стандартно те са на портове 21:ftp (контрол) и 20:ftp-data. Тоест информацията за контрола на дадена сесия се осъществява към порт 21 на сървъра от висок порт (>1024) на клиента.
Самият обмен на данни става на порт 20 (data) на сървъра.
Не стига че това е особено, но съществуват и два режима за връзка: пасивен и активен.
Пасивния е по-съвместим със защитните стени, тъй като не изисква връзка от страна на сървъра към клиента (който пък трябва да слуша на даден висок порт за да поеме тази връзка). Така че тук в общия случай не е необходима пренастройка на защ.стена.
Активния (май) позволява на сървъра стане един вид клиент и да инициира връзка към клиента (който става сървър) която да се насочи към висок слушащ порт.
Тук защ.стена обикновенно спира връзката и човек се чуди защо нещата не работят.
Тоест клиента става и сървър (за тази сесия само).
При пасивния режим "connection-tracking"-a следи за свързаните връзки и ги пуска.
Признавам че това е само по спомени (от преди доста време), но се надявам да ти покаже общата картинка - следва търсене и пак четене, може и някъде да бъркам (дано не).
PS:в моя /etc/vsftpd/vsftpd.conf няма "min/max port" настройки, версия 2.0.3.
Успех.Румен
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
vsftpd
Настройка на програми
PlamenB 0 2074 Последна публикация Dec 06, 2004, 15:09
от PlamenB
vsftpd
Настройка на програми
PlamenB 4 2761 Последна публикация Dec 07, 2004, 12:51
от PlamenB
vsftpd
Настройка на програми
PlamenB 1 2253 Последна публикация Dec 15, 2004, 14:31
от n_antonov
vsftpd s ssl
Настройка на програми
tonyboy1 2 2664 Последна публикация Apr 19, 2005, 17:40
от tonyboy1
Help RQ:vsftpd help
Настройка на програми
durotan 2 2922 Последна публикация Jul 26, 2005, 01:50
от durotan