LINUX.ORG.RU
ФорумAdmin

Открыть SSH для VPN клиентов

 , , ,


0

1

Есть ipsec/Strongswan VPN, настроенный 1 в 1 по этому гайду: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-16-04.

Правила iptables на сервере следующие:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -j ACCEPT

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A FORWARD --match policy --pol ipsec --dir in  --proto esp -s 10.10.10.10/24 -j ACCEPT
iptables -A FORWARD --match policy --pol ipsec --dir out --proto esp -d 10.10.10.10/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.10/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.10/24 -o eth0 -j MASQUERADE
iptables -t mangle -A FORWARD --match policy --pol ipsec --dir in -s 10.10.10.10/24 -o eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:153

iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

Как мне открыть 22 порт только для VPN соединений? Пробовал что-то типа такого:

iptables -t nat -A INPUT -s 10.10.10.10/24 -p tcp --dport 22 -j ACCEPT

или такого:

iptables -A INPUT --match policy --pol ipsec --dir in -p tcp --dport 22 -j ACCEPT

Но это не работает.


10.10.10.10/24

для начала стоит подумать почему эта строчка является бредовой(подсказка: значащие биты в последнем октете адреса при маске /24 должны быть равны нулю)

Если без VTI, то тогда только плясать с match policy. Счетчики соответствия правила растут или нет(посмотреть можно используя ключ -v)?

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

10.10.10.10/24

Да, эту ерунду из гайда уже заметил и поправил.

тогда только плясать с match policy

Попробовал:

iptables -A INPUT --match policy --pol ipsec --dir in -p tcp --dport 22 -j ACCEPT

перед

iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:isakmp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ipsec-nat-t
ACCEPT     tcp  --  anywhere             anywhere             policy match dir in pol ipsec tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.10.10.0/24        anywhere             policy match dir in pol ipsec proto esp
ACCEPT     all  --  anywhere             10.10.10.0/24        policy match dir out pol ipsec proto esp
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere   

Но это не помогло. Куда дальше копать?

tr0ll ()