Ppp0 и iptables

Автор: strangebrew Дата: 16.10.2005 18:39 Имеются след. настройки iptables:

# Generated by iptables-save v1.3.1 on Sun Oct 16 18:15:01 2005
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT
COMMIT
# Completed on Sun Oct 16 18:15:01 2005

С ними lo и eth0 работают, а ppp0 - нет.
Естественно, если прописать INPUT ACCEPT и OUTPUT ACCEPT, то все
ok. Но нам так не надо Улыбка
Подскажите пожалуйста, какие цепочки (я так понимаю, минимум 2: input и
output) нужно добавить. Или дайте ссылочку, если здесь уже было такое (искал, не
нашел).
Спасибо.
Re: ppp0 и iptables 17.10.2005 01:43sergeil strangebrew писал(а):

> Имеются след. настройки iptables:
>
> # Generated by iptables-save v1.3.1 on Sun Oct 16 18:15:01 2005
> *filter
> :INPUT DROP [0:0]
> :FORWARD DROP [0:0]
> :OUTPUT DROP [0:0]
> -A INPUT -i lo -j ACCEPT

# Это зря. Не все icmp одинаково полезны...
# Злоумышленние может немножко поуправлять Вашей системой.
> -A INPUT -p icmp -j ACCEPT

> -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
> -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT

> -A OUTPUT -o lo -j ACCEPT

# Это зря. Не все icmp одинаково полезны...
# Ваша система может рассказать злоумышленнику лишнего
> -A OUTPUT -p icmp -j ACCEPT

# У вас порты начинаются строго с 32768?
# Если не установить принудительно, то зависит от размера RAM.
# Посмотреть, установить можно здесь
# /proc/sys/net/ipv4/ip_local_port_range
> -A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
> -A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT

> COMMIT
> # Completed on Sun Oct 16 18:15:01 2005
>
> С ними lo и eth0 работают, а ppp0 - нет.
> Естественно, если прописать INPUT ACCEPT и OUTPUT ACCEPT, то все
> ok. Но нам так не надо Улыбка

Рекомендую прописать последними эти 3 правила.
Сразу станет понятко что было отброшено лишнего.

iptables -A INPUT -j LOG --log-level info --log-prefix "INP_DEF:"
iptables -A OUTPUT -j LOG --log-level info --log-prefix "OUT_DEF:"
iptables -A FORWARD -j LOG --log-level info --log-prefix "FWD_DEF:"

Кстати, в правилах я вообще не вижу сетевых устройств, кроме 'lo'
То есть, правила одинаково должны работать со всеми остальными сетевыми,
в том числе и ppp0.

Кстати, неплохие примеры...
[www.sentry.net]
Re: ppp0 и iptables 17.10.2005 15:41strangebrew > Рекомендую прописать последними эти 3 правила.
> Сразу станет понятко что было отброшено лишнего.
> iptables -A INPUT -j LOG --log-level info --log-prefix "INP_DEF:"
> iptables -A OUTPUT -j LOG --log-level info --log-prefix "OUT_DEF:"
> iptables -A FORWARD -j LOG --log-level info --log-prefix "FWD_DEF:"

А где посмотреть эти логи?

> Кстати, в правилах я вообще не вижу сетевых устройств, кроме 'lo'
> То есть, правила одинаково должны работать со всеми остальными сетевыми,
> в том числе и ppp0

Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
Modem hangup
Connection terminated.
pptp-command: pppd indicated failure

Даже не соединяет Грустный
Re: ppp0 и iptables 17.10.2005 21:28strangebrew Исправил ситуацию таким образом:

:OUTPUT ACCEPT [0:0]
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Работает ppp0. Но как обойти OUTPUT ACCEPT и сделать-таки DROP?
(Если сделать:
:OUTPUT DROP [0:0]
-A OUTPUT -p tcp -m tcp --sport 32768:65535 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 32768:65535 -j ACCEPT)
то ppp0 не работает).
Видно, tcp и udp мало. Что добавить для работы OUTPUT DROP, а не ACCEPT?

2 sergeil:
> Это зря. Не все icmp одинаково полезны...
Убрал цепочки с icmp. Или надо кое-что оставить?

Можно, пожалуйста, поподробнее с логами.

Спасибо.
Re: ppp0 и iptables 18.10.2005 11:46sergeil strangebrew писал(а):

Давайте по-порядку. Что такое pptp?
[www.tldp.org]

То ест, существует между Вами и VPN-Server:
1. Управляющее соединение 1723/tcp.
2. GRE тунель, внутри которого ppp.

Итого, что нужно разрешить...

1. VPN Server по 1723/tcp через host interface (у Вас это eth0).
2. Если используется tcpwrapper, необходимо разрешить также в
# /etc/hosts.allow
...
pptp: VPN_SERVER_IP

3. Необходимо разрешить в цепочках INPUT/OUTPUG протокол GRE через host-интерфейс от/на VPN_SERVER_IP ...

Короче, я у себя реализовал это так
function pptpLink()
{
locIP=${1}
vpnSRV=${2}

$IPTABLES -A INPUT -p tcp -s $vpnSRV -d $locIP \
--dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $locIP -d $vpnSRV \
--dport 1723 -m state --state NEW,ESTABLISHED -j ACCEPT

$IPTABLES -A INPUT -p gre -s $vpnSRV -d $locIP -j ACCEPT
$IPTABLES -A OUTPUT -p gre -d $vpnSRV -s $locIP -j ACCEPT
}

pptpLink $eth0_IP $VPN_SERVER_IP


>
> Убрал цепочки с icmp. Или надо кое-что оставить?
>

Да, по меньшей мере destination-unreachable.

>
> Можно, пожалуйста, поподробнее с логами.
>

Ничего нового...
/var/log/messages
Re: ppp0 и iptables 18.10.2005 14:01strangebrew Огромное спасибо sergeil. Все заработало.

Можно еще один вопросик? Улыбка

> Да, по меньшей мере destination-unreachable.
Как?

И еще один глупый:
А зачем, если все вроде нормально?
Re: ppp0 и iptables 18.10.2005 20:49sergeil strangebrew писал(а):

> Можно еще один вопросик? Улыбка
>> Да, по меньшей мере destination-unreachable.
> Как?

iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

> И еще один глупый:
> А зачем, если все вроде нормально?

Хозяин-барин. Вы можете оставить все как есть...
Улыбка
RSS-материал