LINUX.ORG.RU
решено ФорумAdmin

Squid, IPTABLES -P INPUT DROP


0

1

Прокси на убунте

IPTABLES -P INPUT DROP все входящие блокирую

заворачиваю 80 порт на Squid:

sudo iptables -t nat -A PREROUTING -s 192.168.1.100 -d ! 192.168.1.222 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128

В итоге 80 порт не редиректиться на 3128, а при -P INPUT ACCEPT все работает.

при -P ACCEPT пробовал делать так:

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

однако ничего не выходит.

Подскажите, что нужно сделать, чтобы порты редиректились на squid при IPTABLES -P INPUT DROP

P.S. Чтобы не было лишних вопросов, выкладываю полный конфиг:

#eth0 локалка
#eth1 внешняя
#192.168.1.100 адрес машины в сети
#192.168.1.222/255.255.0.0 внутренний адрес сервера

#!/bin/sh

#утановка маршрутизации
echo 1 > /proc/sys/net/ipv4/ip_forward

#очистка правил
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat

#установка правил по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A POSTROUTING -t nat -s 192.168.0.0/255.255.0.0 -o eth1 -j MASQUERADE

#разрешения для входящих(SSH,SAMBA,SQUID)
 #ssh
iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT
 #samba
iptables -A INPUT -p tcp -m multiport --dports 137,138,139,445 -s 192.168.0.0/255.255.0.0  -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 137,138,139,445 -s 192.168.0.0/255.255.0.0  -j ACCEPT
 #squid
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

#forward пакетов
iptables -A FORWARD -s 192.168.1.100 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -d 192.168.1.100 -j ACCEPT

#проброс на squid
sudo iptables -t nat -A PREROUTING -s 192.168.1.100 -d ! 192.168.1.222 -p tcp -m multiport --dports 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128

Итог: при iptables -P INPUT DROP на squid ничего не приходит, при iptables -P INPUT ACCEPT через сквид все работает и логируется


iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

Так может у тебя 80-й порт закрыт, ведь написано

iptables -t nat -A PREROUTING -s 192.168.1.100 -d ! 192.168.1.222 -p tcp -m multiport --dport >>>80<<< -j REDIRECT --to-port 3128

red_eyed_peguin ()

Положим, что eth0 - интерфейс, который смотрит в локалку, тогда правила будут выглядеть примерно так:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
Marchael ()
Ответ на: комментарий от Marchael

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128

не помогло

iler ()
Ответ на: комментарий от Slavaz
# Generated by iptables-save v1.4.4 on Mon Jun  4 17:58:54 2012
*nat
:PREROUTING ACCEPT [18555:1624720]
:POSTROUTING ACCEPT [19:3332]
:OUTPUT ACCEPT [752:48450]
-A PREROUTING -s 192.168.1.100/32 ! -d 192.168.1.222/32 -p tcp -m multiport --dports 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-ports 3128
-A POSTROUTING -s 192.168.0.0/16 -o eth1 -j MASQUERADE
COMMIT
# Completed on Mon Jun  4 17:58:54 2012
# Generated by iptables-save v1.4.4 on Mon Jun  4 17:58:54 2012
*filter
:INPUT ACCEPT [4676:4513547]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [8674:5218036]
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -p tcp -m multiport --dports 137,138,139,445 -j ACCEPT
-A INPUT -s 192.168.0.0/16 -p udp -m multiport --dports 137,138,139,445 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3128 -j ACCEPT
-A FORWARD -s 192.168.1.100/32 -o eth1 -j ACCEPT
-A FORWARD -d 192.168.1.100/32 -i eth1 -j ACCEPT
-A FORWARD -s 192.168.1.11/32 -o eth1 -j ACCEPT
-A FORWARD -d 192.168.1.11/32 -i eth1 -j ACCEPT
-A FORWARD -s 192.168.1.12/32 -o eth1 -j ACCEPT
-A FORWARD -d 192.168.1.12/32 -i eth1 -j ACCEPT
COMMIT
# Completed on Mon Jun  4 17:58:54 2012
iler ()

iptables -A INPUT -i lo -j ACCEPT

Вот это правило в любом случае нужно, иначе могут начаться глюки других программ. В рамках localhost следует позволять любой сетевой обмен.

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

Почему в FORWARD нет -m state --state ESTABLISHED,RELATED ?

только начал разбираться с iptables, это потом добавлю, но на суть проблемы я как понял это не влияет?

iler ()
Ответ на: комментарий от KivApple

Вот это правило в любом случае нужно, иначе могут начаться глюки других программ. В рамках localhost следует позволять любой сетевой обмен.

буду иметь ввиду, однако вопрос все же не решен

iler ()

Народ тема еще не закрыта, может все таки кто может что-нибудь подсказать?

iler ()

Вот что удалось узнать опытным путем: при iptables -P INPUT DROP для сквида со стороны локалки достаточно открыть только 3128 порт:

iptables -A INPUT -p tcp --dport 3128 -i eth0 -j ACCEPT

однако с внешней стороны открытие этого порта не позволяет работать сквиду. Пока приходиться с внешней стороны делать так:

iptables -A INPUT -i eth1 -j ACCEPT

Вопрос остается открыт, какие порты нужно открыть или что необходимо сделать чтобы squid работал.

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