Автор Тема: Линукс Терминал (школьный): как сделать....  (Прочитано 9541 раз)

Drool

  • Гость
Заворачивать локальный траффик на сквид не пробовали? Что-то типа как Вы пытались первый раз.

пробовал (и IP eth0 и ip eth1). не cработало.   Возможно что то не так делал. сейчас как раз с этим ковыряюсь. 


Попробуйте заворачивать запросы с адреса 127.0.0.1.

Оффлайн German_Ivanov

  • Участник
  • *
  • Сообщений: 21
Попробуйте заворачивать запросы с адреса 127.0.0.1.

Уточню на всякий случай, Вот так заворачивать?
     iptables -I PREROUTING -t nat -s 192.168.0.1/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& iptables -I PREROUTING -t nat -s 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& iptables -I PREROUTING -t nat -s 127.0.0.1/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& echo 1 > /proc/sys/net/ipv4/ip_forward \
&& iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j MASQUERADE \
где:

192.168.0.1  - это eth0, интерфейс к которому подключены терминалы
192.168.1.0  - это eth1, интерфейс к которому подключен "интернет"




Drool

  • Гость
Уточню на всякий случай, Вот так заворачивать?
     iptables -I PREROUTING -t nat -s 192.168.0.1/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& iptables -I PREROUTING -t nat -s 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& iptables -I PREROUTING -t nat -s 127.0.0.1/24 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 \
&& echo 1 > /proc/sys/net/ipv4/ip_forward \
&& iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j MASQUERADE \
где:

192.168.0.1  - это eth0, интерфейс к которому подключены терминалы
192.168.1.0  - это eth1, интерфейс к которому подключен "интернет"

Ну, я бы так и пробовал. Только в конструкции 127.0.0.1/24 уберите "/24" - это же не подсеть, а конкретный IP-адрес.

Оффлайн German_Ivanov

  • Участник
  • *
  • Сообщений: 21
Ну, я бы так и пробовал.

попробовал - не хочет.
также попробывал посылать на 192.168.1.10:3128 ( eth1) и в последней строчке посылать всех на eth0

Может мы не там конфиги правим? Всмысле надо пойти покрутить их в chroot ?
 
« Последнее редактирование: 06.05.2009 13:09:19 от German_Ivanov »

Drool

  • Гость
Значит нужно дружно позвать сюда Саломатина ;)

Оффлайн German_Ivanov

  • Участник
  • *
  • Сообщений: 21
Полазив по папкам обнаружил каталог /var/lib/ltsp со своей собственной папкой /etc и впал в раздумья.

Значит нужно дружно позвать сюда Саломатина ;)

Это типа квеста в РПГ?  ;) А где он бывает?



 


Оффлайн German_Ivanov

  • Участник
  • *
  • Сообщений: 21
А где он бывает?

http://forum.altlinux.org/index.php?action=profile;u=899

написал личное сообщение с просьбой присоединиться к обсуждению и заранее перечитал полное его собрание сочинений на этом форуме. Рекомендованное им в одном из постов

#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

тоже нифига не сработало.  :( Что то тут у нас не так в консерватории...
 

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Значит нужно дружно позвать сюда Саломатина ;)

Уважаемый Drool, никогда не считал, что знаю и умею хотя бы десятую часть вашего.
Но если это добрая ирония, то я рад, что как минимум один форумчанин прочитал мое полное собрание сочинений.
Готов проутюжить проблему, но не хотел бы, чтобы был объектом, пусть хоть и добрых, но шуток.
У меня заработало так:

Пошаговая инструкция:

Шаг №1:
В  /etc/net/ifaces/eth1/ipv4address к имеющемуся там из условий задачи 192.168.1.2/24   добавляем 192.168.1.3/24
порядок важен
192.168.1.2/24 
192.168.1.3/24 

#service network restart

Шаг №2:
В /etc/squid/squid.conf
после
# Squid normally listens to port 3128
http_port 3128 transparent

после
#<----->tcp_outgoing_address 10.1.0.3
tcp_outgoing_address 192.168.1.3

#service squid restart

Шаг №3:

#iptables -t nat -A OUTPUT -s 191.168.1.2 -p tcp --dport 80 -j DNAT --to 192.168.1.3:3128




 
 
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Drool

  • Гость
Уважаемый Drool, никогда не считал, что знаю и умею хотя бы десятую часть вашего.

Вы меня переоцениваете. Количество флуда на форуме - не показатель знаний ;)

Но если это добрая ирония, то я рад, что как минимум один форумчанин прочитал мое полное собрание сочинений.

Ни малейшей иронии.

У меня заработало так:

Пошаговая инструкция:

Шаг №1:
В  /etc/net/ifaces/eth1/ipv4address к имеющемуся там из условий задачи 192.168.1.2/24   добавляем 192.168.1.3/24
порядок важен
192.168.1.2/24 
192.168.1.3/24 

#service network restart

Шаг №2:
В /etc/squid/squid.conf
после
# Squid normally listens to port 3128
http_port 3128 transparent

после
#<----->tcp_outgoing_address 10.1.0.3
tcp_outgoing_address 192.168.1.3

#service squid restart

Шаг №3:

#iptables -t nat -A OUTPUT -s 191.168.1.2 -p tcp --dport 80 -j DNAT --to 192.168.1.3:3128

Т.е. Вы пошли путем присвоения одной сетевой нескольких IP-адресов и завернуть с одного из них на прокси? Хм... Никогда бы не подумал. Теперь нужно только учитывать, что в сети не может быть другой машины с адресом 192.168.1.3.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Т.е. Вы пошли путем присвоения одной сетевой нескольких IP-адресов и завернуть с одного из них на прокси? Хм... Никогда бы не подумал. Теперь нужно только учитывать, что в сети не может быть другой машины с адресом 192.168.1.3.
Получилось, что такое решение тоже может иметь право на жизнь, если надо не просто по тупому всех клиентов той или иной локальной сети посылать через прозрачный прокси, а регулировать, когда у вас несколько провайдеров.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Drool

  • Гость
Просто обычный способ у человека, судя по всему, работает. Проблема была именно завернуть локальный траффик через прозрачный прокси на этой же машине.

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Просто обычный способ у человека, судя по всему, работает. Проблема была именно завернуть локальный траффик через прозрачный прокси на этой же машине.
Хотел обратить внимание, что  решал проблему для локального траффика на этой же машине, а получилось, что полезно и для серверов, где такого траффика не бывает. Сейчас сервера все чаще подключаются не к одному провайдеру. Если на внутреннем интерфейсе все пакеты на 80 порт заворачивать на прозрачный прокси обычно, то труднее или даже нет возможности протаскивать некоторых клиентов при обращении на 80 порт к отдельным сайтам, через другого провайдера. Прокси  может работать по медленному каналу или, наоборот, надо чтобы по быстрому. Много всяких случаев может быть. Например, про любовь кино качай через прокси, а по работе сайт посещай по скоростному каналу.
 В этом случае такой прозрачный прокси мне кажется более привлекателен типичного и чисто для сервера.
 
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн German_Ivanov

  • Участник
  • *
  • Сообщений: 21
Пошаговая инструкция:

Для чистоты эксперимента попробовал эту инструкцию на еще одной машине с Alt Linux Desktop 4.1 (полученный методом dist-upgrade c Линукс-Легкий). 

Имеются две сетевые карты
 
eth0 - ничего не подключено
eth1 - WIFI карта смотрящая в инет.

Прописываем в /etc/net/ifaces/eth1/
192.168.1.10/24
192.168.1.11/24

Затем замещаем содержимое squid.conf    нижеследующим текстом:

http_port 3128 transparent
tcp_outgoing_address 192.168.1.11
hierarchy_stoplist cgi-bin ?
cache_mem 8 MB
access_log /var/log/squid/access.log squid
coredump_dir /var/spool/squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl manager proto cache_object
acl CONNECT method CONNECT
acl TClients src 192.168.0.0/24
acl LocalServer src 192.168.1.10 192.168.1.11
http_access allow manager
http_access allow TClients
http_access allow LocalServer
http_access deny all


команду
 iptables -t nat -A OUTPUT -s 191.168.1.10 -p tcp --dport 80 -j DNAT --to 192.168.1.11:3128
подаю вручную из терминала .

и ноль на массу.  :( в смысле не работает. Но вот если прописать прокси вручную фаерфоксу
то на запрос страницы в /etc/squid/cache.log появляется вот такая строчка

2009/05/08 23:37:34| WARNING: transparent proxying not supported



« Последнее редактирование: 08.05.2009 23:56:19 от German_Ivanov »

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
и ноль на массу.  :( в смысле не работает.
Не горячитесь. Никогда не отвлекал бы, не проверив сам. Обязательное условие с чем лучше смириться  - инструкция работает.
(Из Законов Мерфи: Если после первого включения все работает, значит неисправны приборы)
Что-то сделали невнимательно.

  Шаг №1:
В  /etc/net/ifaces/eth1/ipv4address  , (а не в в /etc/net/ifaces/eth1/ как у вас) 
192.168.1.10/24 
192.168.1.11/24 

#service network restart

проверяем
#ip a s
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:6b:3c:e7:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
    inet 192.168.1.11/24 brd 192.168.1.255 scope global secondary eth1

У нас появилось  два IP для одной сетевой карты. Снаружи оба адреса должны пинговаться.
За инетом сервер будет ходить через 192.168.1.10 , так как он в списке первый.


 Шаг №2:
В /etc/squid/squid.conf   очень важен порядок
Если проверять на 4.1 , то этот файл трогать вообще не надо. Главное найти строки и разместить после них.
Вначале или в конце, просто прописать или дополнить не пройдет, работать не будет.

после
# Squid normally listens to port 3128
http_port 3128 transparent

после
#<----->tcp_outgoing_address 10.1.0.3
tcp_outgoing_address 192.168.1.11   # Если не будет этой строки и именно в этом месте, то squid будет ходить за инетом  через 192.168.1.10 , а мы его перекроем.


сети уже там прописаны и допуск с них разрешен:

acl localnet src 10.0.0.0/8<---># RFC1918 possible internal network
acl localnet src 172.16.0.0/12<># RFC1918 possible internal network
acl localnet src 192.168.0.0/16># RFC1918 possible internal network

В 4.1 redirector  подгружать не надо, с ним не работает, а squid  встает. 
Дальше
#service squid restart
Проверить, зайти клиентом через squid  со штатными настройками, через прокси и порт, получить страницу.

« Последнее редактирование: 09.05.2009 05:42:27 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"