1

Тема: PPTP та помилка 619 vs. iptables

Привіт, друзі. Прошу допомоги. Після переналаштування сервера виникла проблема у клієнтів отримати доступ до сервера через VPN.

Схема така:
Сервер Centos6:
eth0 - a.b.c.d - дивиться назовні
eth1 - 10.7.7.1 - роздає інет по внутрішній локалці
eth2 - 172.7.7.1 - з’єднаний з DIR-300, роздає інет по WiFi

Після встановлення з’єднання клієнти отримують по DHCP IP: 192.168.2-250, отримують доступ до ресурсів мережі 10.7.7.0
до цього вони можуть лише виходити в інет, доступу до внутрішніх ресурсів не мають.

Для авторизації на сервері гостям з WiFi використовується PPTP-сервер.

Стикнувся з тим, що не пускає клієнта, який знаходиться у внутрішній мережі (LAN aбо WiFi) на VPN, але пускає ззовні. Натомість якщо прописати на клієнті адресу сервера (172.7.7.1), то пустить.

Власне, iptables:

# Generated by iptables-save v1.2.7a on Mon Jan 20 13:10:32 2003
*mangle
:PREROUTING ACCEPT [4:192]
:INPUT ACCEPT [4:192]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:160]
:POSTROUTING ACCEPT [4:160]
[0:0] -A FORWARD -i eth0 -o eth0 -j DROP
[0:0] -A FORWARD -i eth1 -o eth1 -j DROP
[0:0] -A FORWARD -i eth2 -o eth2 -j DROP

COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.2.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -i ppp+ -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -s 172.7.7.1/24 -d 10.3.3.1/24 -j REJECT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 3128 -j REJECT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m udp -p udp --dport 6277 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 2703 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 7 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m udp -p udp --dport 953 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 953 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT

# Mail
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

# Bind
-A RH-Firewall-1-INPUT -i ppp+ -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -i ppp+ -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT

# PPTP
-A RH-Firewall-1-INPUT -p 47 -s 0/0 -j ACCEPT
-A RH-Firewall-1-INPUT -p gre -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 1723 -j ACCEPT

# Other
-A RH-Firewall-1-INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 7000 -j REJECT

-A RH-Firewall-1-INPUT -i eth0 -j REJECT --reject-with icmp-host-prohibited

-A RH-Firewall-1-INPUT -s 172.7.7.2 -d 10.3.3.0/24 -j REJECT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -d 10.3.3.0/24 -j REJECT
-A RH-Firewall-1-INPUT -i eth2 -j ACCEPT

COMMIT
*nat
:PREROUTING ACCEPT [56:3780]
:POSTROUTING ACCEPT [54:3708]
:OUTPUT ACCEPT [2:120]
[0:0] -A OUTPUT -p gre -j ACCEPT
[0:0] -A OUTPUT -p tcp --sport 1723 -j ACCEPT
[0:0] -A PREROUTING -i eth1 -d 10.3.3.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80
[0:0] -A PREROUTING -i eth1 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -i eth1 -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -i eth1 -p tcp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -i eth1 -p udp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -i ppp -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -s 192.168.2.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
[0:0] -A PREROUTING -p tcp -i eth2 -d a.b.c.d --dport 80 -j DNAT --to-destination a.b.c.d:80
[0:0] -A PREROUTING -p tcp -d a.b.c.d --dport 80 -j DNAT --to-destination 10.3.3.1:80
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80
[0:0] -A PREROUTING -p tcp -i eth2 -d a.b.c.d --dport 443 -j DNAT --to-destination a.b.c.d:443
[0:0] -A PREROUTING -p tcp -d a.b.c.d --dport 443 -j DNAT --to-destination 10.3.3.1:443
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 443
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 3128 -j REDIRECT --to-ports 80
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 4000 -j REDIRECT --to-ports 80
[0:0] -A PREROUTING -p tcp -s 192.168.2.0/24 -d a.b.c.d --dport 10000 -j DNAT --to-destination 10.3.3.1:10000
[0:0] -A PREROUTING -p tcp -i eth0 -d a.b.c.d --dport 10000 -j DNAT --to-destination 10.3.3.1:10000
[0:0] -A POSTROUTING -o eth0 -j MASQUERADE
[0:0] -A POSTROUTING -o eth1 -j MASQUERADE
[0:0] -A POSTROUTING -o eth2 -j MASQUERADE
[0:0] -A POSTROUTING -o ppp+ -j MASQUERADE
COMMIT

Допоможіть, будь ласка, розібратись. Дякую!

2 Востаннє редагувалося koala (19.08.2013 19:59:43)

Re: PPTP та помилка 619 vs. iptables

1. Шлюз не може бути за межами локальної мережі (якщо не помиляюся, RFC 950). Тобто якщо внутрішній IP шлюза 10.7.7.1, то 192.168.2.0/24 ніяк не може бути його локальною мережею. Ні, звісно, ваше право конфігурувати мережу як вам заманеться... але не дивуйтеся дивним ефектам.
2. По суті - все правильно: на внутрішній інтерфейс надходять пакети, призначені для зовнішнього. Одразу не збагну, хто саме і чому відкидає пакет (ніби дропів ви не ставили взагалі), але вам не було б підозріло, якби пакет надійшов не з того адаптера, з якого мав? Подивіться налаштування VPN, там може бути підказка, в чому проблема.
3. Нащо вам брандмауер, якщо дефолтні правила - ACCEPT?

3 Востаннє редагувалося knedlyk (20.08.2013 23:21:52)

Re: PPTP та помилка 619 vs. iptables

koala написав:

1. Шлюз не може бути за межами локальної мережі (якщо не помиляюся, RFC 950). Тобто якщо внутрішній IP шлюза 10.7.7.1, то 192.168.2.0/24 ніяк не може бути його локальною мережею. Ні, звісно, ваше право конфігурувати мережу як вам заманеться... але не дивуйтеся дивним ефектам.

VPN слухає на усіх інтерфейсах... Крім того, є модулі ip_nat_pptp, nf_conntrack_pptp, які дозволяють "випускати" клієнта за NAT. Раніше працювало, а тепер чомусь не хоче. Вже забодався шукати причину :)

koala написав:

2. По суті - все правильно: на внутрішній інтерфейс надходять пакети, призначені для зовнішнього. Одразу не збагну, хто саме і чому відкидає пакет (ніби дропів ви не ставили взагалі), але вам не було б підозріло, якби пакет надійшов не з того адаптера, з якого мав? Подивіться налаштування VPN, там може бути підказка, в чому проблема.

З внутрішньої мережі можна потрапляти на зовнішній інтерфейс, це дозволяється, але не навпаки.

koala написав:

3. Нащо вам брандмауер, якщо дефолтні правила - ACCEPT?

Мммм, пробачте... ніби ні?

4

Re: PPTP та помилка 619 vs. iptables

knedlyk написав:

Раніше працювало, а тепер чомусь не хоче. Вже забодався шукати причину :)

Раніше - це коли? Що змінилося?

knedlyk написав:
koala написав:

3. Нащо вам брандмауер, якщо дефолтні правила - ACCEPT?

Мммм, пробачте... ніби ні?

Ніби так. Єдині три дропи, які є, стосуються направлення з інтерфейсу на нього ж самого. Більше ніц не дропається, крім (очевидно) некоректних пакетів.

5

Re: PPTP та помилка 619 vs. iptables

knedlyk написав:

Раніше працювало, а тепер чомусь не хоче. Вже забодався шукати причину :)

koala написав:

Раніше - це коли? Що змінилося?

Змінив залізо повністю (у т.ч. мережеві карти), перевстановив з нуля ОС нової версії CentOS 6.4, раніше 5.5.
Власне конфіги ті самі, але не працює.

koala написав:

3. Нащо вам брандмауер, якщо дефолтні правила - ACCEPT?

knedlyk написав:

Мммм, пробачте... ніби ні?

koala написав:

Ніби так. Єдині три дропи, які є, стосуються направлення з інтерфейсу на нього ж самого. Більше ніц не дропається, крім (очевидно) некоректних пакетів.

В принципі, всі важливі порти захищені, порадите поставити по дефолту инші значення?