LINUX.ORG.RU
ФорумAdmin

Веб-сервер + squid на одном сервере

 , ,


0

1

На сервере стоит прозрачный squid. Еще стоит lighttpd.
Задача: открыть доступ к веб-серверу снаружи.
Сейчас все пакеты с порта 80 заруливаются на 3128 и дальше их прокси обрабатывает. iptables: все снаружи кроме 80 закрыто, 80 на 3128.
Доступ снаружи сейчас ограничивает squid (если зайти на наш ip, то сообщение об ошибке сквидовое). Надо не открыть всем желающим доступ к сквиду, но позволить пользоваться веб-сервером.
Вариант А, если можно, сделать его: не перенаправлять соединения снаружи на squid. Не получается потому что если закрыть порт 80 для наружки, то ничего не выходит, а если закрыть порт 3128, то у меня интернет не работает (я пишу iptables -I INPUT 1 -p tcp --dport 3128 -j REJECT).
Вариант Б: рулить то же самое squid'ом. Как я понимаю, в этом случае надо будет для всех наружних хостов добавить один разрешенный хост на который можно ходить - ip моего сервера. Но они будут кешировать на моем сервере мой сервер, что как-то не по уму.
Конфиргурация iptables:

$ sudo iptables -L -v
Chain INPUT (policy DROP 4176 packets, 300K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all  — lo any anywhere anywhere
15634 2070K ACCEPT all  — eth1 any anywhere anywhere
17983 28M ACCEPT all  — any any anywhere anywhere state RELATED,ESTABLISHED
55 2685 DROP all  — any any anywhere anywhere state INVALID
10 1800 DROP tcp  — any any anywhere anywhere tcpflags:! FIN,SYN,RST,ACK/SYN state NEW
0 0 ACCEPT tcp  — any any anywhere anywhere tcp dpt:3128

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3340 168K TCPMSS tcp  — any any anywhere anywhere tcpflags: SYN,RST/SYN TCPMSS clamp to PMTU
301K 280M ACCEPT all  — any any anywhere anywhere state RELATED,ESTABLISHED
18 788 DROP all  — any any anywhere anywhere state INVALID
5979 428K ACCEPT all  — eth1 eth0 anywhere anywhere
0 0 REJECT all  — eth0 eth1 anywhere anywhere reject-with icmp-port-unreachable

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all  — any lo anywhere anywhere
22682 31M ACCEPT all  — any eth1 anywhere anywhere
17770 2231K ACCEPT all  — any any anywhere anywhere state NEW,RELATED,ESTABLISHED
0 0 DROP tcp  — any any anywhere anywhere tcpflags:! FIN,SYN,RST,ACK/SYN state NEW

Заранее спасибо всем за советы.

Перенаправляйте пакеты с 80 порта на порт сквида только на определённом интерфейсе (внутренней) сети, а не со всех интерфейсов.

kostik87 ★★★★★
()
Ответ на: комментарий от tutpusto

Мда, вы задумывались как работает кэширующий прокси сервер и зачем его указывают в настройках браузера и что такое прозрачный прокси ?

Указав в настройках браузера прокси сервер или настроив перенаправление пакетов с 80 порта на порт прокси сервера и задействовав в его (прокси сервера) конфигурационном файле опцию transparent, вы перенаправляете прокси серверу запросы на получение http трафика (определённых страниц).

Иными словами, что происходит: браузер отправляет запрос proxy серверу, если он указан в его настройках или посредством перенаправления на порт proxy сервера на шлюзе запрос попадает к прокси серверу. Прокси сервер получив запрос сам закачивает данные, требумые в этом запросе, кэширует их и отдаёт клиенту., в не зависимости прозрачный прокси или не прозрачный.

Перенаправлять запросы на 80 порт со всех интерфейсов на порт прокси сервера не нужно и даже вредно. К тому же прокси сервер должен быть настроен, что бы «слушать» только определённый интерйес для получения запросов и это интерйес внутренней сети. Если, конечно вы не хотите настроить публичный прокси сервер.

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

А что бы таких проблем меньше возникало в начале подтяните матчасть (знания) по той сфере деятельности, которой вы занимаетесь.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
22 января 2013 г.

ошибки в Squid

Подскажите, пожалуйста,почему вылезает ошибка /etc/init.d/squid: line 40: [: /var/run/squid/squid.pid: ожидается использование бинарного оператора. Я заходил в /var/run/squid там нет никакого файла squid.pid. Смотрел в других пидах там какие-то цифры! Что это за пид-файл и что в нем должно быть и где его взять?

Bogatyr
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.