Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как подружить 'squid' и FTP?  (Прочитано 69439 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« : 05-11-2008 18:18 » 

Необходимо настроить нормальную работу с FTP в Total Commander через 'squid'. сейчас работает так, что в Total Commander в настройках FTP соединения проставляется HTTP-прокси с поддержкой FTP, но не работают многие комманды. Файл на FTP нельзя удалить, переименовать, создать каталог. Есть ли другой вариант настройки работы с FTP через 'squid'?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-11-2008 19:12 » 

Serg79, проверь через консольный ftp-клиент - срабатывают ли эти команды и если нет, то что сообщает сервер.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 05-11-2008 19:29 » 

RXL, что то я не доганяю как проверить через консоль?

Если с машины на которой 'squid' крутиться, то проблем нет, все работает. А с Win-машины, то там консольный ftp не может через прокси работать, ему надо указывать действительный адрес ftp-сервера.
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 05-11-2008 19:55 » 

Сейчас записал дамп обмена 'Total Commander' с 'squid'. 'Total Commander' для работы с 'squid' использует метод 'HTTP-прокси с поддержкой FTP'.
Был очень удивлен  Улыбаюсь, оказывается все запросы к FTP через HTTP-прокси имеют такойже вид как запросы к обычному HTTP.

Запрос списка файлов корневой дериктории
Код:
GET ftp://name:passwd@ftp.narod.ru/ HTTP/1.0
Host: ftp.narod.ru
User-Agent: Mozilla/4.0 (compatible; Totalcmd; Windows XP)
Connection: close

HTTP/1.0 200 Gatewaying
Server: squid/2.7.STABLE4
Date: Wed, 05 Nov 2008 17:52:48 GMT
Content-Type: text/html
Age: 6106
Content-Length: 6508
X-Cache: HIT from server.local.net
Via: 1.0 server.local.net:3128 (squid/2.7.STABLE4)
Connection: close

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- HTML listing generated by Squid 2.7.STABLE4 -->
<!-- Wed, 05 Nov 2008 17:52:48 GMT -->
<HTML><HEAD><TITLE>
FTP Directory: ftp://name@ftp.narod.ru/
</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}--></STYLE>
</HEAD><BODY>
<H2>
FTP Directory: <A HREF="/">ftp://name@ftp.narod.ru</A>/</H2>
<PRE>
<A HREF="readme.txt"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[FILE]"></A> <A HREF="readme.txt">readme.txt</A> . . . . . . . . . . . May 29  2006     55  <A HREF="readme.txt;type=i"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-box.gif" ALT="[DOWNLOAD]"></A>
<A HREF="ganga.html"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[FILE]"></A> <A HREF="ganga.html">ganga.html</A> . . . . . . . . . . . May 29  2006   1741  <A HREF="ganga.html;type=a"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[VIEW]"></A> <A HREF="ganga.html;type=i"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-box.gif" ALT="[DOWNLOAD]"></A>
<A HREF="gbook.bk"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-unknown.gif" ALT="[FILE]"></A> <A HREF="gbook.bk">gbook.bk</A> . . . . . . . . . . . . May 29  2006   3361  <A HREF="gbook.bk;type=a"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[VIEW]"></A> <A HREF="gbook.bk;type=i"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-box.gif" ALT="[DOWNLOAD]"></A>
<A HREF="gmes.bk"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-unknown.gif" ALT="[FILE]"></A> <A HREF="gmes.bk">gmes.bk</A>. . . . . . . . . . . . . May 29  2006    334  <A HREF="gmes.bk;type=a"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[VIEW]"></A> <A HREF="gmes.bk;type=i"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-box.gif" ALT="[DOWNLOAD]"></A>
<A HREF="resource.html"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[FILE]"></A> <A HREF="resource.html">resource.html</A>. . . . . . . . . . Feb 22  2008   4377  <A HREF="resource.html;type=a"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-text.gif" ALT="[VIEW]"></A> <A HREF="resource.html;type=i"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-box.gif" ALT="[DOWNLOAD]"></A>
<A HREF="batty/"><IMG border="0" SRC="http://server.local.net:3128/squid-internal-static/icons/anthony-dir.gif" ALT="[DIR] "></A> <A HREF="batty/">batty</A>. . . . . . . . . . . . . . Aug 06 11:49       
</PRE>
<HR noshade size="1px">
<ADDRESS>
Generated Wed, 05 Nov 2008 17:52:48 GMT by server.local.net (squid/2.7.STABLE4)
</ADDRESS></BODY></HTML>

Получение файла robots.txt
Код:
GET ftp://name:passwd@ftp.narod.ru/robots.txt HTTP/1.0
Host: ftp.narod.ru
User-Agent: Mozilla/4.0 (compatible; Totalcmd; Windows XP)
Connection: close

HTTP/1.0 200 Gatewaying
Server: squid/2.7.STABLE4
Date: Wed, 05 Nov 2008 18:58:27 GMT
Content-Type: text/plain
Last-Modified: Mon, 29 May 2006 04:04:56 GMT
Age: 2183
Content-Length: 57
X-Cache: HIT from server.local.net
Via: 1.0 server.local.net:3128 (squid/2.7.STABLE4)
Connection: close

User-agent: *
Disallow: /download
Disallow: /image

А вот тут уже облом. Удаление файла robots.txt
Код:
DELETE ftp://name:passwd@ftp.narod.ru/robots.txt HTTP/1.0
Host: ftp.narod.ru
User-Agent: Mozilla/4.0 (compatible; Totalcmd; Windows XP)
Connection: close

HTTP/1.0 501 Not Implemented
Server: squid/2.7.STABLE4
Date: Wed, 05 Nov 2008 19:34:55 GMT
Content-Type: text/html
Content-Length: 1075
Expires: Wed, 05 Nov 2008 19:34:55 GMT
X-Squid-Error: ERR_UNSUP_REQ 0
X-Cache: MISS from server.local.net
Via: 1.0 server.local.net:3128 (squid/2.7.STABLE4)
Connection: close

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
<STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The requested URL could not be retrieved</H2>
<HR noshade size="1px">
<P>
While trying to retrieve the URL:
<A HREF="ftp://name@ftp.narod.ru/robots.txt">ftp://name@ftp.narod.ru/robots.txt</A>
<P>
The following error was encountered:
<UL>
<LI>
<STRONG>
Unsupported Request Method and Protocol
</STRONG>
</UL>

<P>
Squid does not support all request methods for all access protocols.
For example, you can not POST a Gopher request.
<P>Your cache administrator is <A HREF="mailto:webmaster">webmaster</A>.

<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated Wed, 05 Nov 2008 19:34:55 GMT by server.local.net (squid/2.7.STABLE4)
</ADDRESS>
</BODY></HTML>
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 05-11-2008 20:44 » 

Логично, что дело в настройках прокси. Наверно разрешены только GET и POST.

С консолью я тормознул - виндовый клиент слишком прост и не работает с прокси.
« Последнее редактирование: 05-11-2008 20:52 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 06-11-2008 07:11 » 

доступ к squid есть?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #6 : 06-11-2008 07:19 » 

фаервол не мешает?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 06-11-2008 10:06 » 

доступ к squid есть?
С 'squid' все впорядки. Он без проблем проксирует как HTTP так и FTP. Но проксирование FTP какое то ущербное, если просто открывать FTP серверы в анонимном режиме то проблем нет, а вот команды для удаления файла с FTP, создания каталогов и т.п. не работают.

фаервол не мешает?
Нет не мешает Улыбаюсь, потому что он не используется: echo 0 >  /proc/sys/net/ipv4/ip_forward

Если все настроить через форвардинг с NAT-ом то проблем нет, все работает на УРА.
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 06-11-2008 10:08 » 

Я так понимаю, что 'squid' не поддерживает полноценное проксирование FTP.
Может кто подскажит нормальный прокси для FTP, функции кеширования протокола FTP не нужны.
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 06-11-2008 10:11 » 

в конфиге есть squid'a

что-нибудь типа

acl aclname method
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #10 : 06-11-2008 10:16 » new

Serg79, причем тут ip_forward и фаервол? Я имею ввиду порты не закрыты которые необходимы для работы этой связки. И вообще для нормальной работы тебе нужно именно файрволом делать необходимые операции.

как-то так:

Код:
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

#FTP managing
#ftp session
$IPTABLES -A FORWARD -p TCP -s $LAN_RANGE --dport 21 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d $LAN_RANGE -sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT

#ftp active mode
$IPTABLES -A FORWARD -p TCP -s $LAN_RANGE --dport 20 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s $LAN_RANGE -sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

#ftp passive mode
$IPTABLES -A FORWARD -p TCP -s $LAN_RANGE --sport $UNPRIVPORTS -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p TCP --dport $UNPRIVPORTS -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

$UNPRIVPORTS - от 1024 до 65535
$LAN_RANGE - твоя сеть
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #11 : 06-11-2008 10:19 » 

так же думаю тебе лучше подойдет вот это: http://frox.sourceforge.net/ нежели сквид.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 06-11-2008 10:42 » 

в конфиге есть squid'a

вот конфиг squid'a:
Код:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl users src 192.168.0.0/16
acl SSL_ports port 443
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow users
http_access deny all

icp_access allow localnet
icp_access deny all

http_port 192.168.2.1:3128
hierarchy_stoplist cgi-bin ?
cache_dir ufs /usr/local/squid/var/cache 300 16 256
access_log /usr/local/squid/var/logs/access.log squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

acl archives urlpath_regex -i \.zip$ \.rar$
acl archives urlpath_regex -i \.gz$ \.bz2$ \.tgz$ \.tar$
acl archives urlpath_regex -i \.iso$
acl programs urlpath_regex -i \.exe$
acl FTP proto FTP
always_direct allow FTP
always_direct allow archives
always_direct allow programs

coredump_dir /usr/local/squid/var/cache
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 06-11-2008 11:13 » 

упс, почитал,

оказывается squid не поддерживает метод delete для ftp
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 07-11-2008 21:36 » 

оказывается squid не поддерживает метод delete для ftp
Для анонимного доступа к FTP (через браузер) squid отлично подходит. Но работать с файлами и каталогами FTP через squid не получается.  Что, съел?

так же думаю тебе лучше подойдет вот это: http://frox.sourceforge.net/ нежели сквид.
Решил все проблемы.  Класс!

Serg79, причем тут ip_forward и фаервол? Я имею ввиду порты не закрыты которые необходимы для работы этой связки. И вообще для нормальной работы тебе нужно именно файрволом делать необходимые операции.
Для того чтобы пакеты начали проходить через цепочку FORWARD таблицы filter необходимо разрешить форвардинг (т.е. разрешить перебрасывать пакеты между интерфейсами). У меня отключена функция пробрасывания пакетов между интерфейсами (echo 0 > /proc/sys/net/ipv4/ip_forward, т.е. машина не используется в качестве шлюза (в прямом понимании этого слова) для доступа к Интернет).  Улыбаюсь

Хочу заметит, что правила iptables в цепочке FROWADR таблицы filter никак не влияют на пакеты генерируемые локальным процессом или предназначенные локальному процессу.
Записан
DiHalt
Гость
« Ответ #15 : 09-04-2010 20:40 » 

Для тех кто наткнется на эту тему в поисках решения проблемы полноценного доступа к FTP через squid.

У меня встала проблема доступа к ftp серверу своего сайта с помощью Total Commander'а через squid.
Прямого соединения нету.

решил добавлением следующих строк в конфиг сквида:
acl FTP_port port 21      # ftp
acl FTP_port port 60000-61000   # ftp

http_access allow CONNECT FTP_port
http_access deny CONNECT !SSL_ports

Юзаю squid 2.7 STABLE6 for Windows
Записан
DiHalt
Гость
« Ответ #16 : 10-04-2010 17:59 » 

Совсем забыл.
acl FTP_port port 60000-61000   # ftp

в этой строке прописаны пассивные порты, которые открывает ftp-сервер. В моем случае это 60000-60100. В Вашем - могут быть другие.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines