Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.
Модераторы: SLEDopit , Модераторы разделов
Cartmans
Сообщения: 6
ОС: sasas
Сообщение
Cartmans » 14.05.2009 12:53
хочу настроить 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 ) или что то другое ?
butch
Сообщения: 331
ОС: :OC
Сообщение
butch » 14.05.2009 13:01
Cartmans
Сообщения: 6
ОС: sasas
Сообщение
Cartmans » 14.05.2009 13:34
т.е в моем случаи нужно так :
acl lan src 192.168.1.35 192.168.2.0/24
Burmuley
Сообщения: 44
Сообщение
Burmuley » 14.05.2009 13:51
Cartmans писал(а): ↑ 14.05.2009 13:34
т.е в моем случаи нужно так :
acl lan src 192.168.1.35 192.168.2.0/24
скорее
acl lan src 192.168.2.0/24
--
Registered Linux user number 366113.
Cartmans
Сообщения: 6
ОС: sasas
Сообщение
Cartmans » 14.05.2009 15:29
В общем сейчас мой конфиг выглядит так
Код: Выделить всё
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'»
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)
Сообщение
danger08 » 14.05.2009 15:42
Cartmans писал(а): ↑ 14.05.2009 15:29
пытаюсь теперь настроить брандмауэр добавив для этого правила пересылки 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://www.opennet.ru/docs/RUS/iptables/#DNATTARGET .
Скажу сразу, чтобы squid работал только на локалку, никаких DNAT-правил не нужно.
Cartmans
Сообщения: 6
ОС: sasas
Сообщение
Cartmans » 18.05.2009 17:26
Попробовал настроить как показано в
http://itdoc.com.ua/2009/01/ustanovka-debi...arent-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
Burmuley
Сообщения: 44
Сообщение
Burmuley » 19.05.2009 17:23
http_port 127.0.0.1:3128 transparent
http_port 192.168.1.35:3128 transparent
ибо когда пакет редиректится на локалхосте, то и подключение идет через lo интерфейс, а там он у Вас не в прозрачном режиме...
еще лучше сделать так:
http_port 3128 transparent
и добавить правило
iptables -A INPUT -i eth1 --dport 3128 -j REJECT
--
Registered Linux user number 366113.