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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Шлюз Интернета на базе Ubuntu-Server / Internet Connection Sharing + Squid  (Прочитано 521378 раз)

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

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
одного понять не могу, как запретить обход сквида? сейчас, если в браузере в настройках прокси поставить прямое подключение к инету, то юзер идет в обход сквида.

или настроить прозрачный сквид, но тогда непонятно как пишется правило в iptables для редиректа 80 порта на 8123.

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8123

Цитировать
пользователь сидит-то за компом, на котором сквид стоит, какой же интерфейс писать lo или eth0?

интерфейс тот, через который указан default gw

Цитировать
и если lo, то как поступить с iptables -A INPUT -i lo -j ACCEPT?

что имеется в виду под "поступить"?  ;)

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Имеется комп, к которому подключен адсл-модем, также комп подключен в локалку. На этом компе стоит squid и squidGuard и остальные компы выходят в инет через него, как через прокси.

Не получается решить две следущие задачи:
1. У одного из компов сети стоит динамический IP, менять его на статичный нельзя. Но для этого компа надо прописать правило в squidGuard'е. Видимо нужно сделать привязку не к ИП, а к MAC-адресу. Как это осуществить? (В инете находил привязку ИП к маку, но у меня ип то динамический)


2. Есть сетка, почти везде Ubuntu, мой комп является проксёй, на нем стоит сквид, непрозрачное проксирование настроено + squidGuard запрещает ненужные сайты. У всех в браузерах прописана прокся и всё нормально работает.
+ менеджеры пользуются терминалами, подключение к сервакам из нашей сети.

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

подсказали поднять для этого компа NAT, но сколько я не читаю я не понимаю как и что прописать для решения этой проблемы...

пробовал:
в /etc/sysctl.conf:
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 192.168.0.1 -d 0/0 -j MASQUERADE
где 192.168.0.1 - адрес менеджера которому нужен выход

эффекта ноль
« Последнее редактирование: 04 Марта 2008, 12:05:06 от fanat1k »

Оффлайн su6s

  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Цитировать
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8123
пробовал, но тогда браузер долго пытается получить ответ и не получает. полагаю, что надо как-то об"яснить iptables, что запросы сквида на 80 порт перебрасывать на 8123 не нужно. но по ходу iptables работает в категориях адресов и портов, речи о приложениях не идет.
Цитировать
интерфейс тот, через который указан default gw
спс, это на будущее пригодится
Цитировать
что имеется в виду под "поступить"?  ;)
сейчас уже трудно сказать, в тот момент я очень опасался менять это правило.
jabber: [su6s]AT[jabber]DOTru
eeepc 701

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
Цитировать
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8123
пробовал, но тогда браузер долго пытается получить ответ и не получает. полагаю, что надо как-то об"яснить iptables, что запросы сквида на 80 порт перебрасывать на 8123 не нужно. но по ходу iptables работает в категориях адресов и портов, речи о приложениях не идет.

Для этого необходимо в правиле указать с каких адресов делать редирект на прокси, а с каких не нужно.
Например, можно указать "выходной интерфейс не lo" так:

iptables -t nat -A PREROUTING -o ! lo -p tcp --destination-port 80 -j REDIRECT --to-ports 8123

или адрес источника не 192.168.1.1 так:

iptables -t nat -A PREROUTING -s ! 192.168.1.1 -p tcp --destination-port 80 -j REDIRECT --to-ports 8123


К тому же, у Вас в настройках сквида есть параметр http_port, который указывает сквиду на каком порту
и на каком интерфейсе нужно "слушать". По-умолчанию - на всех имеющихся интерфейсах, в том числе и на lo.
Можете указать конкретный интерфейс, например так - http_port 192.168.1.1:3128, в этом случае, будет использоваться только один указанный интерфейс.

А еще есть параметр tcp_outgoing_address  ;)

 :coolsmiley:
« Последнее редактирование: 04 Марта 2008, 08:09:54 от IS »

Оффлайн IS

  • Участник
  • *
  • Сообщений: 231
    • Просмотр профиля
Имеется комп, к которому подключен адсл-модем, также комп подключен в локалку. На этом компе стоит squid и squidGuard и остальные компы выходят в инет через него, как через прокси.

Не получается решить две следущие задачи:
1. У одного из компов сети стоит динамический IP, менять его на статичный нельзя. Но для этого компа надо прописать правило в squidGuard'е. Видимо нужно сделать привязку не к ИП, а к MAC-адресу. Как это осуществить? (В инете находил привязку ИП к маку, но у меня ип то динамический)

Никогда не имел дела со SquidGuard-ом, потому не подскажу.  ;)

Цитировать
Но одному пользователю из нашей сети, у него винХР, нужно работать с терминалом и подключаться к серверу не из нашей сети, сервер в интернете. Его туда не пускает.
подсказали поднять для этого компа NAT, но сколько я не читаю я не понимаю как и что прописать для решения этой проблемы...

пробовал:
в /etc/sysctl.conf:
net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 192.168.0.1 -d 0/0 -j MASQUERADE
где 192.168.0.1 - адрес менеджера которому нужен выход

эффекта ноль

iptables -t nat -A POSTROUTING -s 192.168.0.1 -d <адрес нужного сервера> -j SNAT --to-source <адрес интерфейса через который идет выход в и-нет>
 ;)

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Прокся вообще инет давать перестала (((
Сбросил все настройки, попытался настроить заново, разрешив всё - эффекта нет
Можете  написать для моего случая основные правила?

Комп который подрублен к адсл-модему имеет настройки:
eth0: 192.168.0.202 (IP в нашей локальной сети)
eth1: 192.168.0.190 (IP в соединении с ADSL-модемом)
192.168.0.20 (IP адсл-модема)
В настройках сквида выставлено http_port 192.168.0.202:3128
В данный момент в IPTABLES пусто + везде ACCEPT выставлено
Нужно разрешить подключаться к инету адресам 192.168.0.1-192.168.0.254

Оффлайн bucker

  • Участник
  • *
  • Сообщений: 171
    • Просмотр профиля
Жуть. А маски какие? Случаем не 255.255.255.0 ли?

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Да 255.255.255.0

Оффлайн bucker

  • Участник
  • *
  • Сообщений: 171
    • Просмотр профиля
Удивительно, что хоть что-то работает. Я бы на месте убунты уже скопытился. А развести интерфейсы в разные ip-подсети никак?

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Переведем в разные) Подскажите с iptables plz

Оффлайн bucker

  • Участник
  • *
  • Сообщений: 171
    • Просмотр профиля
В iptable я плаваю, всё больше pf настраивать приходилось :) Но одно скажу точно, пока с сетями порядок не наведешь, всё равно ничего не настроишь.

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Вот такие интерефейсы на серваке:
eth1 (с адсл-модемом)
192.168.1.190
255.255.255.0
192.168.1.20

eth0 (в локальной сети)
192.168.0.202
255.255.255.0
192.168.1.190

в iptables ставлю всё ACCEPT, правила все удаляю
потом хочу поднять НАТ для того, чтобы все компы через сервак получали инет прописав шлюзом 192.168.0.202:

# GoTo in 1 IP-addr -єто чтоб работал нат- т.е все пк твоей сети маскируются под сервак и имеют через него выход (eth1 внешняя сетевуха- та что в инет или на модем)
iptables -t nat -A POSTROUTING -p icmp -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE
 
# Redirect внешний ип to на пк в локали - это если нужно перебросить внешний реальный ип на комп в внутренней локальной сети
iptables -t nat -A PREROUTING -p tcp -m tcp -d 192.168.1.190 -j DNAT --to-destination 192.168.0.202
iptables -t nat -A OUTPUT -p tcp -j DNAT --to-destination 192.168.0.202  --dst 192.168.1.190
iptables -t nat -A PREROUTING -p tcp -m tcp -d 192.168.1.190 -j DNAT --to-destination 192.168.0.202
 

 
# MY ADMINING REDIRECT PORTS
# Redirect port to local_ip
iptables -t nat -A PREROUTING -p tcp -m tcp -d 192.168.0.190 --dport 80 -j DNAT --to-destination 192.168.0.202:3128


Что-то ещё нужно прописывать? Потому как я прописываю эти правила, а эффекта не получаю, инет только при прописывании клиентами прокси дается
« Последнее редактирование: 07 Марта 2008, 10:38:12 от fanat1k »

Оффлайн Vadim Bilalov

  • Автор темы
  • Любитель
  • *
  • Сообщений: 56
    • Просмотр профиля
# modprobe iptable_nat
# modprobe ip_conntrack
# modprobe ip_tables
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
# modprobe ip_nat_ftp

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Оффлайн Raider

  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
Попросили написать мануальчик по установке и настройке связки squid3+sams+c-icap+clamav
Написал ... :)
так что, если у кого есть необходимость или просто желание протестить Howto,
можно посмотреть тут>>>
Если не вскроется глобальных проблем, можно будет разместить на этом форуме.
I would change the world, but the God does not give source codes...

Оффлайн fanat1k

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
...
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

ppp0 нету, у меня роутером настроен адслмодем

Вот что сейчас, НАт не пашет...
root@odmin:/home/evn# 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         
root@odmin:/home/evn# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             odmin.local         tcp to:192.168.0.202
DNAT       tcp  --  anywhere             odmin.local         tcp to:192.168.0.202
DNAT       tcp  --  anywhere             odmin.local         tcp to:192.168.0.202
DNAT       tcp  --  anywhere             odmin.local         tcp to:192.168.0.202
DNAT       tcp  --  anywhere             192.168.0.190       tcp dpt:www to:192.168.0.202:3128

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  icmp --  192.168.0.0/24       anywhere           
MASQUERADE  tcp  --  192.168.0.0/24       anywhere           
MASQUERADE  tcp  --  192.168.0.0/24       anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             odmin.local         to:192.168.0.202

« Последнее редактирование: 07 Марта 2008, 11:01:34 от fanat1k »

 

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