Добрый день!
Имеется сервер на базе OpenSuSE 12.4, обслуживающий небольшую сеть (порядка 30 машин), где поднят домен. На нем установлен прокси сервер squid, через него раздается интернет на машины посредством авторизации.
IP адреса машинам раздаются через DHCP статическим образом (закреплены под каждый MAC).
Задача: реализовать доступ с машин (точнее с набора машин) обслуживаемой сети к диапазону IP адресов интернета, скажем 222.222.222.0/24 в обход авторизации.
Другими словами: есть организация А (наша) с работающим Squid и авторизацией, есть сторонняя организация В, необходимо, чтобы машины А имели доступ к машинам В через интернет в обход Squid вовсе, либо только авторизации в нем.
Спасибо!
Доступ к некоторым адресам в обход авторизации Squid
В конфиг iptables добавляем разрешающие правила в nat:PREROUTING перед редиректом в сквид - в случае с прозрачной проксей.
В настройках приложения, использующего проксю указываем, что не нужно ходить через проксю, обращаясь к заданному списку адресов - в случае с непрозрачной проксей.
Либо если используете wpad как я то в файлике прописать можно.
В этом деле новичок, почитал про iptables... И насколько я понял, следующие правила позволят пакетам перенаправляться к тем, кто их запросил, в обход Squid.
SERVER:~ # iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere state NEW tcp dpt:ssh recent: UPDATE seconds: 600 hit_count: 3 name: DEFAULT side: source
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh recent: SET name: DEFAULT side: source
Chain FORWARD (policy DROP)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
ACCEPT all -- 222.222.222.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Или мои рассуждения в корне неверны?
Это же filter таблица. И из приведенных вами правил не совсем понятно чего вы хотите добиться.
А вам нужна nat:
Прозрачный прокси:
[console]
# iptables -t nat -A PREROUTING -m tcp -p tcp --dport 80 -s 192.168.1.1 -j ACCEPT
# iptables -t nat -A PREROUTING -m tcp -p tcp --dport 80 -j REDIRECT --to-ports 3128
# iptables -t nat -A POSTROUTING -o ... -m mark ... -j MASQUERADE -m comment --comment "Здесь можно использовать NAT/MASQURADE"
...
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -m state --state NEW -m tcp -p tcp --dport 80 -s 192.168.1.1 -j ACCEPT
# iptables -A FORWARD -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
# iptables -A FORWARD -p udp --dport 53 -s 192.168.1.1 -j ACCEPT
...
[/console]
Не прозрачный прокси:
[console]
# iptables -t nat -A POSTROUTING -o ... -m mark ... -j MASQUERADE -m comment --comment "Здесь можно использовать NAT/MASQURADE"
...
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -m state --state NEW -m tcp -p tcp --dport 80 -s 192.168.1.1 -j ACCEPT
# iptables -A FORWARD -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
# iptables -A FORWARD -p udp --dport 53 -s 192.168.1.1 -j ACCEPT
...
[/console]