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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Прозрачный прокси. Все перепробовал - не работает  (Прочитано 3053 раз)

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

Оффлайн AdUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Здравствуйте, коллеги!

Суть такая: небольшой офис, сервак с Ubuntu, в нем две сетевухи eth0 сосет инет по pppoe и eth1 смотрит в локалку (dhcp, samba). Расшарил инет через firestarter (все по инструкции делал с этого форума).

Как сделал:
1. eth0 получает инет через pppoe, причем провайдер не дает ни статического ip, ни динамического. Т.е. отбалды написал айпишник 192.168.5.1, маска 255.255.255.0 Т.е. просто отправляет pppoe запрос в "пустоту".
2. С помощью pppoeconf настроил инет, все отыскал eth0, ввел логины пароли, на все ответил утвердительно. Инет подцепил (локально, на сервере)
3. eth1 (с айпишником 192.168.0.1) раздает ip клиентам (dhcp), успешно раздает ip,  с заданным шлюзом, днс и т.д.
4. Ну и включил форвардинг, НАТ, прописал в загрузку - все по инструкциям.

И НЕ ПАШЕТ ни на серваке, ни у клиента!!!

При пинговании инета с клиента он пишет так
Цитировать
ping ya.ru (77.132.63.31):
Превышен интервал ожидания
Превышен интервал ожидания
Превышен интервал ожидания

Т.е. dns как-то находит, но пакеты дальше не идут.

Любопытно, что при отключенном firestarter инет на серваке включается, но у клиента все равно нет инета.

Мои мысли: возможно из-за установленного ранее пакетов (samba, clamav, apache, php, mysql), возможно dhcp-сервер надо как-нибудь повесить на один конкретный интерфейс (в данном случае eth1), возможно я уже там намутил с iptables и прочими штуками и комп уже не знает куда пакеты слать и захлебывается.

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


Цель: eth0 сосет инет, eth1 раздает ip по dhcp, инет прозрачно, самба.

Оффлайн graddata

  • PreSale
  • Администратор
  • Старожил
  • *
  • Сообщений: 1841
  • BIGCloud
    • Просмотр профиля
Напишите по пунктам, как вы выполнили инструкцию, тк уже много людей ею воспользовались и у них всё работает.

Оффлайн AdUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Стал работать интернет!!! Прозрачно!
Но только порт 80 (т.е. сайты клиенты могут открывать).

Делал как тут http://leolik.blogspot.com/2008/04/dhcp-squid_19.html

Но теперь нужно открыть через сквид Skype и аську. И нетолько эти порты, а целый список.

Пробовал проброс портов - не канает.
В iptables.rules вот что
-A PREROUTING -d ! 192.168.0.0/24 -i eth1 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128
-A PREROUTING -d ! 192.168.0.0/24 -i eth1 -p tcp -m multiport --dports 443,563,873 -j DNAT --to-destination 192.168.0.1:3128
-A PREROUTING -d ! 192.168.0.0/24 -i eth1 -p tcp -m multiport --dports 5190 -j DNAT --to-destination 192.168.0.1:3128

Где 192.168.0.0/24 - сетевуха раздающая локалке инет
eth1 - та же сетевуха, имя интерфейса
192.168.0.1:3128 - заворачиваем на squid, порт 3128

И еще небольшой глюк: после перезагрузки компа инет врубается после /etc/init.d/networking restart

Где моя ошибка, как сделать?

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
а кто сказал что скайп умеет работать через сквид прозрачно?

Оффлайн graddata

  • PreSale
  • Администратор
  • Старожил
  • *
  • Сообщений: 1841
  • BIGCloud
    • Просмотр профиля
может поможет так:

Мой скрипт:
Код:

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128



eth0 - интернет, наружная сеть.
eth1 - внутренняя сеть

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

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Мой скрипт:
Код:

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128



eth0 - интернет, наружная сеть.
eth1 - внутренняя сеть

Вот из за таких вот скриптов, у пользователей наружной сети появляется дополнительный халявный шлюз.

Оффлайн graddata

  • PreSale
  • Администратор
  • Старожил
  • *
  • Сообщений: 1841
  • BIGCloud
    • Просмотр профиля
Mam(O)n
Иногда и этого вполне достаточно :)

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
хотя бы так
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

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

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
хотя бы так
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
И это тоже можно обойти, подменив адрес источника. Надо так:
iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -F FORWARD
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
iptables -P FORWARD DROP
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Оффлайн AdUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Короче, нихрена не работает. И вот так пробовал, и так.
Что не так?

https сайты не открываются, skype и аська не пашут. Если указать явно прокси в них, то пашут.

Подскажите мне, непросвещенному, плиз ОДНУ ВЕЩЬ ВСЕГО-ЛИШЬ!!!

Как с помощью iptables пустить МИМО сквида порт?
Сейчас ситуация такая: eth0 - инет, поднимается по pppoe, eth1 - смотрит в локалку. Надо пропустить мимо сквида (у нас все сови сидят там) какой-нибудь порт, чтобы он сразу в нет смотрел.

Например, как пропустить 5190 порт мимо свкида сразу в нет, или 433 пропустить или 1000 порт.
Напишите пример правила, плиз.

Спасибо БОЛЬШОЕ! =)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Вопрос неправильный. Правильный - как завернуть на сквид только нужные порты.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн AdUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Окей =)
Как завернуть нужные порты на сквид, и как определенный порт пропустить мимо сквида сразу в нет (прозрачно).

Ну задолбался я уже маны читать. И тему про шаринг инета я прочитал, и про iptables - не въезжаю.

Подскажите ОДИН РАЗ, пожалуйста.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Тебе уже не один раз сказали.
Показывай уже iptables-save, без этого дальнейший разговор бессмысленен.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн graddata

  • PreSale
  • Администратор
  • Старожил
  • *
  • Сообщений: 1841
  • BIGCloud
    • Просмотр профиля
AdUser
Что-то ты переборщил в правилах.

AnrDaemon
поддерживаю вопрос.

AdUser
почитай наши комментарии. Измени там свой интерфейс и всё будет путём.
Совет личный: Делай всё скриптами, так легче править конфиги. Reboot и все правила чисты. :)

Оффлайн AdUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
# Generated by iptables-save v1.4.1.1 on Mon Nov 30 16:19:31 2009
*filter
:INPUT ACCEPT [5819:3146287]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [6879:3545296]
-A INPUT -i eth1 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 5190 -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
COMMIT
# Completed on Mon Nov 30 16:19:31 2009
# Generated by iptables-save v1.4.1.1 on Mon Nov 30 16:19:31 2009
*nat
:PREROUTING ACCEPT [204:18226]
:POSTROUTING ACCEPT [258:18366]
:OUTPUT ACCEPT [258:18366]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 21 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 5190 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 9091 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Nov 30 16:19:31 2009
# Generated by iptables-save v1.4.1.1 on Mon Nov 30 16:19:31 2009
*mangle
:PREROUTING ACCEPT [5841:3151684]
:INPUT ACCEPT [5819:3146287]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6881:3545768]
:POSTROUTING ACCEPT [6921:3554666]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:15                                                                             36 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:15                                                                             36 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:15                                                                             36 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:15                                                                             36 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Mon Nov 30 16:19:31 2009

 

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