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 через сквид все работает и логируется



Последнее исправление: iler (всего исправлений: 2)

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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.