Перейти к содержанию

Squid как прозрачный прокси сервер


Рекомендуемые сообщения

хочу настроить Squid как прозрачный прокси. На компе 2 сетевухи:

eth0 192.168.1.35 для выхода в интернет

eth1 192.168.2.1 для подключения к локальной сети

в одном посте было описания конфига Squid такого содержания

 eth0 192.168.1.111 для выхода в интернет
 eth1 10.0.0.1 для подключения к локальной сети
http_port 3128
acl lan src 192.168.1.111 10.0.0.0/24
http_access allow localhost
http_access allow lan
http_access deny all

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy  on
httpd_accel_uses_host_header on

так вот мене не совсем понятно что значит строка 10.0.0.0/24

это что краткая форма записи диапазона ip адресов типа (10.0.0.0 ; 10.0.0.1; 10.0.0.2 …. 10.0.0.24 ) или что то другое ?

Ссылка на комментарий
Поделиться на другие сайты

В общем сейчас мой конфиг выглядит так

 http_port 3128 transparent
 dns_nameservers 192.168.1.1
 acl all src all
 acl manager proto cache_object
 acl lan src 192.168.1.35 192.168.2.0/24
 
 acl localhost src 127.0.0.1/255.255.255.255
 acl SSL_ports port 443		# https
 acl SSL_ports port 563		# snews
 acl SSL_ports port 873		# rsync
 acl Safe_ports port 80		# http
 acl CONNECT  method CONNECT

 http_access allow localhost
 http_access allow manager localhost
 http_access allow lan
 http_access deny CONNECT !SSL_ports
 http_access deny all

пытаюсь теперь настроить брандмауэр добавив для этого правила пересылки http-запросов, приходящих на порт 80, на порт прокси-сервера Squid

iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j DNAT –to 192.168.1.35:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128

но при попытки добавить первое правило получаю ошибку «Bad argument `–dport'»

Ссылка на комментарий
Поделиться на другие сайты

Попробовал настроить как показано в http://itdoc.com.ua/2009/01/ustanovka-debian-marshrutizatora -s-vozmozhnostyami-prozrachnogo-proxy-servera-debian-linux-p roxy-transparent-iptables/

но ничего не получилось , сейчас у меня следующее

скрипт /etc/network/if-up.d/00-firewall следующего

содержания:

#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# удалить все действующие правила
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Всегда принимать трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешить соединения, которые инициированы изнутри (eth1)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить доступ из LAN-сети к внешним сетям
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Запретить forward извне во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth0 -j REJECT

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8080 -j REDIRECT --to-port 3128

конфигурационный файл squid'а — /etc/squid/squid.conf

http_port 127.0.0.1:3128
 http_port 192.168.1.35:3128 transparent

 dns_nameservers 192.168.1.1
 acl all src all
 acl manager proto cache_object
 acl office  src  192.168.1.35 192.168.2.0/24
 
 acl localhost src 127.0.0.1/255.255.255.255
 acl SSL_ports port 443		# https
 acl SSL_ports port 563		# snews
 acl SSL_ports port 873		# rsync
 acl Safe_ports port 80		# http
 acl CONNECT  method CONNECT

 http_access allow localhost
 http_access allow manager localhost
 http_access allow office

 http_access deny CONNECT !SSL_ports

Ссылка на комментарий
Поделиться на другие сайты

Cartmans писал(а) Mon, 18 May 2009 17:30

Попробовал настроить как показано в http://itdoc.com.ua/2009/01/ustanovka-debian-marshrutizatora -s-vozmozhnostyami-prozrachnogo-proxy-servera-debian-linux-p roxy-transparent-iptables/

но ничего не получилось

Вы, как представляется, движетесь в верном направлении, но все же не оставили идею найти где-то готовое решение вашей задачи (вместо того чтобы взять примеры конфигов за основу и применить к своей ситуации).

Советую три ваши задачи разделить и выполнить поэтапно, проверяя результаты на каждом этапе.

1. Настройте nat в postrouting и проверьте интернет. При этом не забудьте включить форвардинг в ядре:

echo "1" >/proc/sys/net/ipv4/ip_forward

2. Настройте фаревол и снова проверьте интернет (или оставь это напоследок).

3. Настройте скуид без прозрачности и проверьте работу, прописав его в браузере.

4. Сделайте скуид прозрачным, перенаправив нужные пакеты (tcp:80) в prerouting.

PS. Надеюсь, все интерфейсы подняты верно и на самом сервере инет есть, а иначе -> этап 0.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...