Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: toti84 в Apr 16, 2008, 10:36



Титла: Проблем с достъпа на proftpd
Публикувано от: toti84 в Apr 16, 2008, 10:36
Здравейте,

На компютъра ми (192.168.1.222) имам инсталиран proftpd (XAMPP).
Нямам проблем с достъпа до ftp сървъра от локалната мрежа (192.168.1.0/24) с юзер: toti.
Рутера ми пренасочва порт 21 към  192.168.1.222, като идеята ми е да има достъп от всякъде от интернет до ftp сървъра.

Когато някой се опита от "вънка" да влезе, при правилно въведен юзер toti и парола излиза съобщение от сорта
Примерен код
An error occured openig that folder on FTP Server. Make sure you have permission to access that folder.


На 192.168.1.222:

-спрян iptables
-в /еtc/hosts.allow и /etc/hosts.deny има само закоментирани редове
- chmod 777 /root/Public/
-cat /opt/lampp/etc/proftpd.conf
Примерен код

# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName                      "ProFTPD"
ServerType                      standalone
DefaultServer                   on

# Port 21 is the standard FTP port.
Port                            21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            toti
#Group                          nogroup

# Normally, we want files to be overwriteable.
#<Directory /opt/lampp/htdocs/*>
<Directory /root/Public/*>
  AllowOverwrite                on
</Directory>

# only for the web servers content
#DefaultRoot /opt/lampp/htdocs
DefaultRoot /root/Public


# nobody gets the password "lampp"
# commented out by lampp security
#UserPassword nobody wRPBu8u4YP0CY
UserPassword toti vWP/y6C89VDGo

# nobody is no normal user so we have to allow users with no real shell
RequireValidShell off

# nobody may be in /etc/ftpusers so we also have to ignore this file
UseFtpUsers off


На Рутера (външно Ип 192.***.**.**)

-iptables -A PREROUTING  -d 192.***.**.** -i ppp0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.1.222:21

И от произволен комп от интернет
Примерен код
nmap 195.***.**.**

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2008-04-16 09:24 EDT
Interesting ports on 192.***.**.**:
(The 1653 ports scanned but not shown below are in state: closed)
PORT      STATE    SERVICE
21/tcp    open     ftp
........    ......... .........
........   .........  ..........


Благодаря предварително ...





Титла: Проблем с достъпа на proftpd
Публикувано от: neter в Apr 16, 2008, 11:44
Нека пренасочването изглежда така
Примерен код
/sbin/iptables -A PREROUTING -i ppp0 -p tcp -m tcp --dport 21 -j DNAT --to 192.168.1.222:21


Титла: Проблем с достъпа на proftpd
Публикувано от: toti84 в Apr 16, 2008, 12:54
За съжаление, като сменя мойто правило с твоето, отново го има този проблем.

Ако трябва да съм по-детайлен това съобщение:
Примерен код


An error occured openig that folder on FTP Server. Make sure you have permission to access that folder.


се показва от Windows машини.

Но при проба то Линукс, след мислене от около 5 мин. ми се отваря страница:

Примерен код


Index of ftp://192.***.***.**/

--------------------------------------------
Up to higher level directory
--------------------------------------------



И без да показва никакви папки при положене, че съм сигурен в това че трябва да има папки.


Титла: Проблем с достъпа на proftpd
Публикувано от: Slevin_ в Apr 16, 2008, 14:06
Поради особеностите на ФТП протокола само пренасочване на 21 порт няма да стане.
Ето ти помощ от google proftpd passive mode  proftpd behind nat
Ако след прочетено отново не се получава, пиши какво точно си направил и ще помагаме с каквото можем.
Иначе е ясно от къде се получава проблема.





Титла: Проблем с достъпа на proftpd
Публикувано от: neter в Apr 16, 2008, 14:49
Поради особеностите на FTP протокола, само пренасочване на порт 21 може да бъде достатъчно, ако се използват пасивни връзки, каквито се използват по подразбиране в клиентите. Ето четиво.
toti84, покажи изходите от тези команди
Примерен код
iptables -L
iptables -L -t nat


Титла: Проблем с достъпа на proftpd
Публикувано от: toti84 в Apr 16, 2008, 15:29
Ще карам подред:

към Slevin_

Използвах този пост за информация тук

като добавих тези двата реда в proftp.conf
Примерен код

DefaultAddress 192.168.1.222
PassivePorts 30000 30050

proftpd reload
добавих и следното правило на рутера :
Примерен код
-A INPUT -d 192.168.1.222 -p tcp --dport 30000:30050 -j ACCEPT


Но проблема продължава...

Към neter

Примерен код
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
REJECT     tcp  --  anywhere             anywhere            tcp dpt:sunrpc reject-with icmp-port-unreachable
ACCEPT     tcp  --  anywhere             192.168.1.222       tcp dpts:30000:30050

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Примерен код
iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  212.21.***.***/30     192.***.**.**       tcp dpt:radmin-port to:192.168.0.11:4899
DNAT       tcp  --  212.21.***.***/30     192.***.**.**       tcp dpt:5900 to:192.168.0.11:5900
DNAT       tcp  --  212.21.***.***/30     192.***.**.**       tcp dpt:jetdirect to:192.168.0.10:9100
DNAT       tcp  --  anywhere             192.***.**.**       tcp dpt:ipp to:192.168.1.119:631
DNAT       tcp  --  anywhere             anywhere            tcp dpt:ftp to:192.168.1.222

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.0.0/24       anywhere            to:192.***.**.**
SNAT       all  --  192.168.1.0/24       anywhere            to:192.***.**.**

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


Титла: Проблем с достъпа на proftpd
Публикувано от: shadow_qwe в Apr 16, 2008, 16:10
Ми по мое скромно мнение има няколко пропуска.

1. Не видях POSTROUTING верига да връща обратно към рутера отговорите на фтп сървъра.

2. Хубаво си сложил фтп сървърът да приема заявки на пасивните портове, но те трябва да идват от клиента и да се пренасочват от рутера към сървъра, (както е с 21 порт) и съответно с POSTROUTING верига да се връщат обратно.

Но ако ме питаш мен най -добре го изкарай на рутера си, иначе ще обясняваш на един куп хора защо IE не го отжаря и как да го накарат да работи в пасив мод





Титла: Проблем с достъпа на proftpd
Публикувано от: Slevin_ в Apr 16, 2008, 16:59
Цитат (neter @ Април 16 2008,15:49)
... само пренасочване на порт 21 може да бъде достатъчно, ако се използват пасивни връзки, каквито се използват по подразбиране в клиентите.

Правилно neter, а къде му е пренасочването в маршрутизатора на портове за пасивните връзки.
И в конфигурационния файл на proftpd не ги виждам.
Чак след това е направил нещо по този въпрос.
Проблема му на 100% е след издаване на команда PASV от страна на клиента,

toti84, я пробвай, с директивата
MasqueradeAddress xxx.xxx.xxx.xxx
Където xxx.xxx.xxx.xxx е адреса на самия маршрутизатор.
И кажи какво се получава.





Титла: Проблем с достъпа на proftpd
Публикувано от: VladSun в Apr 16, 2008, 18:38
Освен всичко останало, ip_conntrack_ftp модулът зареден ли е?


Титла: Проблем с достъпа на proftpd
Публикувано от: gat3way в Apr 16, 2008, 18:59
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.0.0/24       anywhere            to:192.***.**.**
SNAT       all  --  192.168.1.0/24       anywhere            to:192.***.**.**

Абе на този твой рутер има ли въобще интерфейс с вдигнат публичен адрес? Защото ако не е така, проблемът е съвсем различен и невъзможността съответно да се реши проблема скача с няколко порядъка.





Титла: Проблем с достъпа на proftpd
Публикувано от: toti84 в Apr 17, 2008, 09:26
Пробвах с MasqueradeAddress дерективата и пак го има проблема

ip_conntrack_ftp модула е зареден

има вдингнат публичен адрес (192.***.**.**)


Титла: Проблем с достъпа на proftpd
Публикувано от: neter в Apr 17, 2008, 10:22
Областта 192.168.0.0 – 192.168.255.255 е резервирана за частни мрежи. Ако адресът ти започва със 192.168, то това е частен, а не публичен адрес и проблемът вече е ясен какъв е - просто външните машини нямат видимост до теб, защото си с частен адрес. Има публични мрежи, които започват със 192, на които втората група цифри не е 168, но не съм чувал някой в България да раздава такива адреси. Дори не съм сигурен къде се използват.


Титла: Проблем с достъпа на proftpd
Публикувано от: Slevin_ в Apr 17, 2008, 11:55
Х-м, я пробвай с някой онлайн порт скенер. Примерно
http://nmap-online.com/
http://www.t1shopper.com/tools/port-scanner/
neter ти е написал за частните адреси.
Но все пак, ако се ползва NAT 1:1

Май в темата само гадаеме.





Титла: Проблем с достъпа на proftpd
Публикувано от: toti84 в Apr 17, 2008, 13:18
E добре адреса ми е публичен (192.113.***.***)

и с nmap-online ми показва, че порт 21 ми е отворен


Титла: Проблем с достъпа на proftpd
Публикувано от: Slevin_ в Apr 17, 2008, 23:34
Ти осъществяваш комуникацията по порт 21, но този порт се ползва за командите към сървара. Транспортирането на информация(Data) м/у самия сървър и клиента се осъществява по други портове в зависимост дали ще е в активен или пасивен режим.
В един от предишните постове имаше линк, в който нагледно са описани двата режима.
Ето ти още едно четиво за спецификацията на FTP протокола RFC 959
При теб явно проблема е с виждането на съдържанието на сървара.
Вземи с някой FTP клиент и направи опит да се вържеш отвън през  192.113.***.***
Гледай лога и кажи в кой момент се дъни.
Или направо "пусни" лога тук да го видим.


Титла: Re: Проблем с достъпа на proftpd
Публикувано от: pr0fessor в Nov 14, 2009, 20:36
здравейте, имам същия проблем. значи правилата ca:
rc.local :
Цитат
# /etc/rc.d/rc.local:  Local system initialization script.
ifconfig lo 127.0.0.1 netmask 255.255.255.0
ifconfig eth1 10.0.0.250 netmask 255.255.255.0 up
ifconfig eth0 83.71.28.39 netmask 255.255.255.128 up
route add default gw 83.71.28.1
echo "nameserver 83.71.0.1" > /etc/resolv.conf
echo "nameserver 83.71.1.1" >> /etc/resolv.conf
#simple traffic counter:
vnstat -u -i eth1
vnstatd -d
#dnsmasq:
/usr/local/sbin/dnsmasq
#squid proxy:
squid -DF
iptables -F
iptables -F -t nat
# www.aha.bg 85.14.21.152 bypass squid proxy:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -d 85.14.21.152 -j RETURN
# bgwan.iptv.bg 77.71.0.50 bypass squid proxy:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -d 77.71.0.50 -j RETURN
#proxy prenaso4wane otwyn za zelen hajwer:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 31280 -j DNAT --to 10.0.0.250:31281
#transparent proxy - prenaso4wane port 80 kym proxy port 31280:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 10.0.0.250:31280
iptables -t nat -A POSTROUTING -s 10.0.0.100 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.134 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.135 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.138 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.254 -j MASQUERADE
#za torenti i drugi:
iptables -t nat -A PREROUTING -p tcp --dport 10000:10010 -j DNAT --to-destination 10.0.0.100
iptables -t nat -A PREROUTING -p tcp --dport 13400:13410 -j DNAT --to-destination 10.0.0.134
iptables -t nat -A PREROUTING -p tcp --dport 13500:13510 -j DNAT --to-destination 10.0.0.135
iptables -t nat -A PREROUTING -p tcp --dport 13800:13810 -j DNAT --to-destination 10.0.0.138
iptables -t nat -A PREROUTING -p tcp --dport 25400:25410 -j DNAT --to-destination 10.0.0.254
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 10.0.0.135
(там съм си направил правилата за по лесен бекъп, отделно че рутера има само цд-ром...)
пренасочването на торентите бачка ама на фтп-то само от вътре:
ftp://10.0.0.135  влизам без проблем, от вънка пита за име парола (ако направя фтп-то да се влиза с име и парола и до там: грешка 425 unable to open a socket for data transfer)
а отвънка тествам от друг интернет и от http://www.g6ftpserver.com/ftptest :
[quote* About to connect() to 83.71.28.39 port 21
* Trying 83.71.28.39... connected
* Connected to 83.71.28.39 (83.71.28.39) port 21
< 220-SlimFTPd 3.181, by WhitSoft Development (www.whitsoftdev.com)
< 220-You are connecting from 87.98.200.119:4241.
< 220 Proceed with login.

> USER anonymous
< 230 User "anonymous" logged in.

> PWD
< 257 "/" is current directory.
* Entry path is '/'

> CLNT Testing from http://www.g6ftpserver.com/ftptest from IP 83.71.28.39
< 500 Syntax error, command "CLNT" unrecognized.
* QUOT command failed with 500
* Connection #0 to host 83.71.28.39 left intact

* Closing connection #0[/quote]
значи като направя проверка на портовете - са отворени
http://www.utorrent.com:16000/testport?port=21 - показва го отворен като пусна фтп-то иначе си е затворен. за торентите/емуле нямам проблем...
ето лог и от фтп-то:
Цитат
[14.11.2009 г. 20:20:24] -------------------------------------------------------------------------------
[14.11.2009 г. 20:20:24] SlimFTPd 3.181, by WhitSoft Development (www.whitsoftdev.com)
[14.11.2009 г. 20:20:24] SlimFTPd is starting.
[14.11.2009 г. 20:20:24] Executing "SlimFTPd.conf"...
[14.11.2009 г. 20:20:24] Configuration script parsed successfully.
[14.11.2009 г. 20:20:24] Waiting for incoming connections...
[14.11.2009 г. 20:20:31] [180] Incoming connection from 87.98.200.119:3702.
[14.11.2009 г. 20:20:31] [180] User "anonymous" logged in.
[14.11.2009 г. 20:20:32] [180] Connection closed.
eth0, nameserver, gateway съм ги променил за сигурност...
благодаря предварително


Титла: Re: Проблем с достъпа на proftpd
Публикувано от: neter в Nov 14, 2009, 22:40
Пренасочи и порт 20, след което седни да почетеш за разликата между FTP Active Connections и FTP Passive Connections. Явно е, че ти използваш първите в FTP клиента си ;)


Титла: Re: Проблем с достъпа на proftpd
Публикувано от: pr0fessor в Nov 15, 2009, 00:41
ами аз четох, даже пуснах фтп-то на порт от горните 13505 - и фтп-то трябва да си отвори и 13504 ама резултата е същия.. сега го направих и за 20:21 порт - никаква разлика. четох и за активното фтп обаче не ми е ясно как да накарам клиентите да отварят портове от отделен рейндж (което е за пасифно фтп).
четох тука: http://www.ncftp.com/ncftpd/doc/misc/ftp_and_firewalls.html за активните и пасивни конекции.
iptables -t nat -L вади това:
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
RETURN     tcp  --  anywhere             aha.bg              tcp dpt:http
RETURN     tcp  --  anywhere             ip-50-0-71-77.bgwan.com tcp dpt:http
DNAT       tcp  --  anywhere             anywhere            tcp dpt:31280 to:10.0.0.250:31281
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http to:10.0.0.250:31280
DNAT       tcp  --  anywhere             anywhere            tcp dpts:10000:10010 to:10.0.0.100
DNAT       tcp  --  anywhere             anywhere            tcp dpts:13400:13410 to:10.0.0.134
DNAT       tcp  --  anywhere             anywhere            tcp dpts:13500:13510 to:10.0.0.135
DNAT       tcp  --  anywhere             anywhere            tcp dpts:13800:13810 to:10.0.0.138
DNAT       tcp  --  anywhere             anywhere            tcp dpts:25400:25410 to:10.0.0.254
DNAT       tcp  --  anywhere             anywhere            tcp dpts:ftp-data:ftp to:10.0.0.135

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.0.0.100           anywhere           
MASQUERADE  all  --  10.0.0.134           anywhere           
MASQUERADE  all  --  10.0.0.135           anywhere           
MASQUERADE  all  --  10.0.0.138           anywhere           
MASQUERADE  all  --  10.0.0.254           anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

iptables -L вади това:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

странното обаче е че с някои фтп клиени влизам отвътре като подам заявка към външното ip (с windows-кото фтп и със fireftp - плугин към файерфокс, а със самия файверфокс не влизам...) и от вънка като подам заявка - от нета на съседа (със съседа сме локална мрежа неговия gw e 10.0.0.254 с сървър на бтк, моя 10.0.0.250 на друг доставчик) не влизам...


Титла: Re: Проблем с достъпа на proftpd
Публикувано от: Acho в Nov 15, 2009, 09:52
Здравейте колеги. Аз на моя Slackware сървър съм пренасочил само 20 и 21 порт (нищо друго) към вътрешната машина, на която е ftp-то ми (също със Slackware и желязно работещ proftpd). А там съм ОТВОРИЛ съответно само тях, 20-ти и 21-ви. И си се конектва винаги, трансферите хукват веднага. И ОТВЪН, и от локалната ми мрежа. Но когато в началото правя проби, дали ще работи като хората, никога не ползвам някакъв browser, а само с ftp клиент (направо конзолния ftp на Linux или Windows-кия в Command Prompt-а). Нито му мисля, аджеба ACTIVE или PASSIVE ще е конекцията. Клиента се оправя сам и се конектва на момента. А и wget-а с операнди отзад също си работи и тегли.

Поздрави и успех.


Титла: Re: Проблем с достъпа на proftpd
Публикувано от: pr0fessor в Nov 16, 2009, 20:54
реших проблема с пасивно фтп, на което мога да укажа порт рейндж и пренасочих пасивните портове, отделно указах на фтп сървъра какво е външното ип на рутера... filezilla има такива опции за настройване, докато slimftpd няма...