Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как пропустить 21 порт в обход squid?  (Прочитано 7449 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bober_man

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #15 : 19 Февраля 2010, 09:22:42 »
поставьте FROX proxy (он проксит ФТП)

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #16 : 19 Февраля 2010, 11:36:23 »
Вот! Bober_man, вы читаете мои мысли!!!

Как раз пошарил в нете по frox. Но опять же почему-то не работает :(

Вроде на словах все просто и очень прозрачно... настроек почти никаких нет... Но не работает...

Сам фрокс вроде фунцинклирует, ибо в коммандой строке после попытки подключений к фтп пишет всякие штуки...

frox.conf выгялдит следующим образом:
Listen 10.168.192.254
Port 2121
BindToDevice eth0
FromInetd yes
User nobody
Group nogroup
WorkingDir /frox/workingdir
DontChroot Yes
LogLevel 20
LogFile /usr/local/lib/frox/frox-log
PidFile /var/run/frox.pid
APConv yes
BounceDefend no
AllowNonASCII yes
CacheModule http
HTTPProxy 127.0.0.1:3128
MinCacheSize 1
CacheAll yes   # Set to yes to cache non anonymous ftp downloads
DoNTP yes
NTPAddress 10.168.192.254:2121
MaxForks 10
ACL Allow * - *

В клиенте в свойствах прокси для ftp прописываю порт 2121.

в итоге долгая попытка соединения и в результате стандартная ошибка "невозможно подключиться"

а еще вот такую штуку в логе написал
Fri Feb 19 12:24:25 2010 frox[2972] Dropped privileges
ERROR: "getpeername: Socket operation on non-socket" at line 177 of main.c
Fri Feb 19 12:24:25 2010 frox[2972] Unable to establish client address from inetd
Fri Feb 19 12:24:25 2010 frox[2972] Closing session
« Последнее редактирование: 19 Февраля 2010, 11:50:47 от Razielvamp »

Оффлайн bober_man

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #17 : 19 Февраля 2010, 12:15:43 »
1е. Сделайте фрокс транспарентом.
2е. Разрешите для начала всем.
3е. Проверьте подключение из под любого файл менеджера.
и проверьте есть в iptables строка
#Forward FTP connections to Frox proxy
-A PREROUTING -p tcp -m tcp -i eth0 --dport 21 -j REDIRECT --to-ports 2121

« Последнее редактирование: 19 Февраля 2010, 12:17:15 от bober_man »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #18 : 19 Февраля 2010, 12:24:44 »
1е. Сделайте фрокс транспарентом.
Если он даже непрозрачным не работает, зачем его прозрачным делать?

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #19 : 19 Февраля 2010, 12:30:13 »
1е. Сделайте фрокс транспарентом.

а можно узнать какая именно это комманда из моего файла конфигурации?

2е. Разрешите для начала всем.

Ммм... опять же какой коммандой разрешается? Listen? и в каком виде должна быть запись? Насколько я понимаю Listen 10.168.192.0/24, правильно?

3е. Проверьте подключение из под любого файл менеджера.

Фпринципе основная задача все-таки из под браузера на фтп заходить... так что имеет ли смысл?

и проверьте есть в iptables строка
#Forward FTP connections to Frox proxy
-A PREROUTING -p tcp -m tcp -i eth0 --dport 21 -j REDIRECT --to-ports 2121

Строки не было однозначно, но добавил её в файл конфига иптаблса.
Плюс попробывал прописать коммандной строке, получил такой вот ответ:
iptables: No chain/target/match by that name.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #20 : 19 Февраля 2010, 12:36:30 »
Полностью команда звучит так:
iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 21 -j REDIRECT --to-ports 2121

Но! Razielvamp, что такое прозрачный режим, и как он работает ты представляешь? А то сделаешь, а зачем и как это работает так и не поймешь.

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #21 : 19 Февраля 2010, 12:41:44 »
Mam(O)n, ога, я ижучил эту тему. Прозрачный нам нужен чтобы у клиентов никаке настройки не прописывать. Фпринципе мне это не надо. Т.к. шлюзом является не комп с проксей, и ничего редиректить на нем не надо.

а строка для iptables именно для прозрачного режима нужна?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #22 : 19 Февраля 2010, 12:44:51 »
а строка для iptables именно для прозрачного режима нужна?
Да. Без этого трафик заруливаться на 2121 порт прокси не будет. Да, и вот что. Наверное где-то в проксе есть опция, которая позваляет включить пассивный режим при работе с внешними серверами. Её тоже надо включить, если циска не умеет ftp-data потоки перенаправлять.

Пользователь решил продолжить мысль 19 Февраля 2010, 12:52:44:
Нашел:
# Active --> Passive conversion. If set then all outgoing connections
# from the proxy will be passive FTP, regardless of the type of the
# connection coming in. This makes firewalling a lot easier. Defaults
# to no.
#
APConv yes
« Последнее редактирование: 19 Февраля 2010, 12:52:44 от Mam(O)n »

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #23 : 19 Февраля 2010, 13:11:26 »
Mam(O)n, ога, в моей настройке есть APConv :) Собсно это пару постами выше указано, где общий конфиг

так что проблема в чем-то другом... :( А в чем не пойму... настроек-то толком никаких нет в forx

и мануалов поменьше в сети чем по iptables... Но iptables риальне мой мозг взрывает  :o

У кого-нибудь еще есть варианты? А то я совсем в отчаянии :(
« Последнее редактирование: 19 Февраля 2010, 14:15:19 от Razielvamp »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #24 : 19 Февраля 2010, 14:28:23 »
NAT?

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #25 : 19 Февраля 2010, 14:58:14 »
Mam(O)n, ок, продолжим дискуссию  ;D Только чем больше я читаю всего этого, тем меньше понимаю... уже даже конкретные вопросы толком задать не могу...

для начала можно узнать на пальцах каким способом мы хотим это реализовать?

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

1 вариант:
Или получается что это можно сделать только настроив прокси сервер одновременно и как шлюз? чтобы он принимал запросы на все порты (а не только на 3128 как сейчас) и редиректил их правильным способом?

2 вариант:
Или еще вариант. В свойствах прокси клиента прописываем порт для фтп отличный от 3128, и потом этот порт как раз перебрасываем с помощью iptables?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #26 : 19 Февраля 2010, 15:10:40 »
Нет способа отделить один вид запросов на прокси и отправить запрос мимо прокси. Если это можно было бы сделать, то это бы и получился банальный прокси. Как работает маршрутизация и что делает NAT я думаю не стоит объяснять? Это разные технологии..

На клиентских приложениях всегда можно было указать, какие протоколы пускать через прокси. Просто указываем прямое соединение на протоколе ftp и в качестве дефолтного шлюза в параметрах сетевого подключения прописываем проксёвую тачку.

На проксёвой тачке поднимаем нат:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -s 192.168.1.0/24 ! -d 192.168.1.0/24  -j ACCEPT
Еще в /etc/sysctl.conf придется раскоментировать строку: net.ipv4.ip_forward=1 и перегрузить эти параметры в ядро sudo invoke-rc.d procps restart

Оффлайн Razielvamp

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
Re: Как пропустить 21 порт в обход squid?
« Ответ #27 : 19 Февраля 2010, 17:01:17 »
Mam(O)n , огромное спасибо

правда это не совсем правильное решение для меня... т.к. надо менять шлюз у всех. Но тем не менее проблему это хоть как-то исправляет.

Буду сидеть, анализировать, чево такое мы натворили :)

ЗЫ но если кто-то сможет еще посодействовать по frox то тоже буду очень благодарен

 

Страница сгенерирована за 0.047 секунд. Запросов: 23.