настройка протстого шлюза =)
...
eth0 - интернет
...
Если ip динамический то:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
...
Если делаете прозрачный прокси то:
при условии, что у вас установлен и настроин прокси сервер, например squid
При этом eth1 - сетевая карточка компа, раздающего инет, ppp0 - интернет-интерфейс, 192.168.0.8 - адрес данного компьютера в локальной сети.
Почему-то squid не получает полностью запроса:
Код:
ERROR
The requested URL could not be retrieved
While trying to process the request:
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.9 (like Gecko)
Accept: text/html, image/jpeg, image/png, text/*, image/*, */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate
Accept-Charset: utf-8, utf-8;q=0.5, *;q=0.5
Accept-Language: ru, en
Host: ya.ru
Connection: Keep-Alive
The following error was encountered:
Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:
Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed
Your cache administrator is ***.
Generated Sun, 21 Sep 2008 13:32:55 GMT by WL-Linux (squid/2.7.STABLE3)
Если же в браузере прописать вручную прокси, то проксирование работает нормально. В логах сквида следующие строки:
1222004461.727 30 192.168.0.1 TCP_DENIED/400 1897 GET error:invalid-request - NONE/- text/html
1222004572.247 2 192.168.0.1 TCP_DENIED/403 1514 GET http://www.tns-counter.ru/V13a****yandex_ru/ru/CP1251/tmsec=yandex_ya/0 - NONE/- text/html
1222004572.869 228 192.168.0.1 TCP_MISS/302 257 GET http://clck.yandex.ru/redir/dtype=stred/pid=17/cid=1729/*http://export.yandex.ru/morda/mail.xml?host=yandex.ru - DIRECT/213.180.204.14 -
1222004573.298 426 192.168.0.1 TCP_MISS/200 518 GET http://export.yandex.ru/morda/mail.xml?host=yandex.ru - DIRECT/87.250.251.69 text/javascript
Первая строчка относится к попытке открытия яндекса без указания прокси в браузере, последующие - запрос с прописанным вручную прокси.
Как же сделать, чтобы iptables автоматически переводило веб-траффик на прокси-сервер? Заранее спасибо.
настройка протстого шлюза =)
...
eth0 - интернет
...
Если ip динамический то:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
...
Если делаете прозрачный прокси то:
при условии, что у вас установлен и настроин прокси сервер, например squid
При этом eth1 - сетевая карточка компа, раздающего инет, ppp0 - интернет-интерфейс, 192.168.0.8 - адрес данного компьютера в локальной сети.
Почему-то squid не получает полностью запроса:
Код:
ERROR
The requested URL could not be retrieved
While trying to process the request:
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.9 (like Gecko)
Accept: text/html, image/jpeg, image/png, text/*, image/*, */*
Accept-Encoding: x-gzip, x-deflate, gzip, deflate
Accept-Charset: utf-8, utf-8;q=0.5, *;q=0.5
Accept-Language: ru, en
Host: ya.ru
Connection: Keep-Alive
The following error was encountered:
Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:
Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed
Your cache administrator is ***.
Generated Sun, 21 Sep 2008 13:32:55 GMT by WL-Linux (squid/2.7.STABLE3)
Если же в браузере прописать вручную прокси, то проксирование работает нормально. В логах сквида следующие строки:
1222004461.727 30 192.168.0.1 TCP_DENIED/400 1897 GET error:invalid-request - NONE/- text/html
1222004572.247 2 192.168.0.1 TCP_DENIED/403 1514 GET http://www.tns-counter.ru/V13a****yandex_ru/ru/CP1251/tmsec=yandex_ya/0 - NONE/- text/html
1222004572.869 228 192.168.0.1 TCP_MISS/302 257 GET http://clck.yandex.ru/redir/dtype=stred/pid=17/cid=1729/*http://export.yandex.ru/morda/mail.xml?host=yandex.ru - DIRECT/213.180.204.14 -
1222004573.298 426 192.168.0.1 TCP_MISS/200 518 GET http://export.yandex.ru/morda/mail.xml?host=yandex.ru - DIRECT/87.250.251.69 text/javascript
Первая строчка относится к попытке открытия яндекса без указания прокси в браузере, последующие - запрос с прописанным вручную прокси.
Как же сделать, чтобы iptables автоматически переводило веб-траффик на прокси-сервер? Заранее спасибо.
Всего две строки и у вас прозрачный прокси
iptables -t nat -A PREROUTING -p tcp -s $LAN_IP_RANGE -d ! (тут пишем ip своего шлюза) --dport 80 -j REDIRECT --to-ports 3128 #
в конфиге squid находим строчку http_port 3128 и через пробел пишем transparent
Соответственно в правилах iptables должны быть такие вот строки: