Ро
Роман

Проблема со шлюзом на Debian

Пытаюсь настроить шлюз на Debian. Проблема в следующем: в правилах iptables политику по умолчанию ставлю DROP на все. После чего открываю по мере необходимости нужное. Так вот, если разрешить FORWARD полностью, то все работает, если разрешать только по портам 80, 443, 8080, то половина сайтов работает, половина нет. Даже больше - на одном сайте (например vk.com) некоторые разделы работают, другие - нет. В чем собственно может быть проблема? Ниже приведены правила iptalbes, которые использую:

IPT="/sbin/iptables"
LAN_DEV="eth0"
WAN_DEV="eth1"
NETWORK="192.168.1.0/24"
OPENPORTS="80,443,8080"

$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

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

$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -t nat -A POSTROUTING -o $WAN_DEV -j MASQUERADE

$IPT -A FORWARD -i $LAN_DEV -s $NETWORK -p tcp -m multiport --dports $OPENPORTS -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Вывод iptables -L:
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.1.0/24 anywhere multiport dports www,https,http-alt
ACCEPT all -- anywhere anewhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

ДС
Дмитрий Савушкин

Политика у тебя по-умолчанию все равно ACCEPT:
Chain FORWARD (policy ACCEPT)

Значит надо в конце FORWARD добавить :
$IPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited

Скорее всего ты забыл открыть ДНС:
OPENPORTS_TCP="80,443,8080"
OPENPORTS_UDP="53"
Соответственно меняем блок:

$IPT -A FORWARD -i $LAN_DEV -s $NETWORK -m state --state NEW -m tcp -p tcp -m multiport --dports $OPENPORTS_TCP -j ACCEPT
$IPT -A FORWARD -i $LAN_DEV -s $NETWORK -m udp -p udp -m multiport --dports $OPENPORTS_UDP -j ACCEPT

т. к. политика по-умолчанию ACCEPT не забудь закрыть доступ к шлюзу.
Только осторожно, а то заблокируешь и не войти будет.
Оставь доступ на вход первым делом:
$IPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -j DROP

$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -j DROP

Остальное по вкусу.

Похожие вопросы
Проблема с паролем рут в debian 6 СРОЧНО!!!
Проблема с ATI Radeon в Debian
Как установить Gnome в debian без интернета и диска?
Установил Linux Mint Debian
Проблема с grub загрузчиком debian в raid 0,1
Где или вообще можно скачать Debian с Xfce?
POMOGITE POGALYSTA C Debian Linux!
Проблема с настройкой шлюза
Ошибка при запуске скрипта (Debian)!
Как перенести Debian-пользователей и Samba-ползователей. На другой аналогичный Debian. (чтобы не писать их всех заново)