LINUX.ORG.RU

iptables для билайна. Что исправить?


0

1

Всем доброе время суток.

Итак, гейтвей. Должен фильтровать в т.ч. транзитный траффик. DNS на нем поднят, но в билайновскую локалку доступ из домашней локалки все равно нужен - когда деньги кончатся, иногда проще счет пополнить с карточки, а через lynx это нереально :) WAN - eth1, через него поднимается ppp0. LAN - eth0. Коннектимся к Билайну по L2TP. Гейтвей в районной сети - 10.42.200.1, его, вместе с DNS и некоторыми локальными ресурсами, получаем по DHCP.

Вот такие я набросал настройки нетфильтра. Опыта в этом не имею, поэтому не удивлюсь, если оно кривое. Что посоветуете сделать иначе?

# Generated by iptables-save v1.4.7 on Sun Feb 20 15:51:15 2011
*security
:INPUT ACCEPT [37:7775]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:336]
COMMIT
# Completed on Sun Feb 20 15:51:15 2011
# Generated by iptables-save v1.4.7 on Sun Feb 20 15:51:15 2011
*raw
:PREROUTING ACCEPT [46:8436]
:OUTPUT ACCEPT [4:336]
COMMIT
# Completed on Sun Feb 20 15:51:15 2011
# Generated by iptables-save v1.4.7 on Sun Feb 20 15:51:15 2011
*nat
:PREROUTING ACCEPT [29:5478]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [1:70]
-A POSTROUTING -o ppp0 -j MASQUERADE 
-A POSTROUTING -o eth1 -j MASQUERADE 
COMMIT
# Completed on Sun Feb 20 15:51:15 2011
# Generated by iptables-save v1.4.7 on Sun Feb 20 15:51:15 2011
*mangle
:PREROUTING ACCEPT [1:229]
:INPUT ACCEPT [1:229]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
COMMIT
# Completed on Sun Feb 20 15:51:15 2011
# Generated by iptables-save v1.4.7 on Sun Feb 20 15:51:15 2011
*filter
:INPUT DROP [1:229]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:check_subnet - [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -i eth0 -j ACCEPT 
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -s 10.0.0.0/8 -j check_subnet 
-A INPUT -p udp -m multiport --dports 53,1701 -j ACCEPT 
-A INPUT -p tcp -m multiport --dports 20,21,25,53,110,80,8080,5190,443,6881:6887 -j ACCEPT 
-A FORWARD -s 10.0.0.0/8 -j check_subnet 
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -i eth0 -j ACCEPT 
-A FORWARD ! -i eth0 -p tcp -m multiport --dports 20,21,25,110,80,8080,5190,443,6881:6887 -j ACCEPT 
-A check_subnet -s 10.42.200.1/32 -j RETURN 
-A check_subnet -j REJECT --reject-with icmp-port-unreachable 
COMMIT
# Completed on Sun Feb 20 15:51:15 2011

Я может что-то не так понял, но, получается, что вы боитесь районной сети провайдера больше, чем Инета? То есть для 10-ой сети в разрешили только 10.0.0.0, а для всех остальных ip-адресов разрешили кучу портов.

А так, смотрите вывод iptables со счётчиками и тогда вам будет понятно, какие правила срабатывают, а какие нет. Обычно, если правило не срабатывает за несколько дней/часов, оно не нужно.

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

От локалки мне ничего не надо, а вот от интернета - вполне :) Я бы ее вообще закрыл всю на транзит - но хочется отставить себе возможность всегда пополнить баланс карточкой. Поэтому блокирую всех «соседей» по сети, нефиг им у меня делать :)

TerribleMutant
() автор топика
Ответ на: комментарий от TerribleMutant

Развер, чтобы пополнить счёт с карточки нужно вот это правило:

-A FORWARD ! -i eth0 -p tcp -m multiport --dports 20,21,25,110,80,8080,5190,443,6881:6887 -j ACCEPT

с учётом того, что всё, идущие с eth0 и так разрешено, и ответные пакеты на него тоже разрешены через RELATED,ESTABLISHED ?

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

>А для установки TCP-соединения еще нужен ответный пакет, разве нет?
А этот пакет уже будет ESTABLISHED, разве нет?

zorgan
()
5 апреля 2011 г.

-A INPUT -p udp -m multiport --dports 53,1701

Зачем? У вас сервер L2TP на машине? Или нужно открыть DNS всему миру? И так же установлено:

-A INPUT -i eth0 -j ACCEPT

-A INPUT -p tcp -m multiport --dports 20,21,25,53,110,80,8080,5190,443,6881:6887 -j ACCEPT

Еще раз - зачем? У вас все эти службы висят и слушают на вашем шлюзе?

-A FORWARD -i eth0 -j ACCEPT
-A FORWARD ! -i eth0 -p tcp -m multiport --dports 20,21,25,110,80,8080,5190,443,6881:6887 -j ACCEPT

Бред какой-то. Если нужно форвардить эти порты из домашней сети в мир/билайновскую локалку, то достаточно:

-A FORWARD -i eth0 -p tcp -m multiport --dports 20,21,25,110,80,8080,5190,443,6881:6887 -j ACCEPT
BitTorrent, кстати, юзает не TCP, а UDP + для раздачи нужен DNAT для этих портов вовнутрь.

-A INPUT -s 10.0.0.0/8 -j check_subnet
-A FORWARD -s 10.0.0.0/8 -j check_subnet
-A check_subnet -s 10.42.200.1/32 -j RETURN
-A check_subnet -j REJECT --reject-with icmp-port-unreachable

Здесь вообще песня. Нет, я еще понимаю это в INPUT. Но в FORWARD-то зачем? Или вы думаете, что ваша домашняя подсеть 192.168.x.0/24 каким-то чудом будет маршрутизироваться из билайновской локалки или, не дай б-же, мира?

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

забыл пометить тему как решенную

да, я сначала неправильно понял, когда соединение уже становится ESTABLISHED. Отсюда и странные правила.

ЗЫ: И торрент, кстати, замечательно работает без DNAT - за счет этого самого ESTABLISHED. Не путайте с DC++.

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