В настоящее время я использую VPN-шлюз от Strongswan на CentOS 6.5 VPS.

Сервер CentOS имеет один порт eth.

VPN использует IKEv2, и соединения между клиентами и сервером установлены. Клиентам назначаются виртуальные IP-адреса, взятые из пула 10.0.0.0/24. Клиенты также могут без проблем обращаться друг к другу. Однако я заметил, что сам сервер, который действует как шлюз VPN, не имеет виртуального IP-адреса.

Я использую некоторые службы на VPS-сервере, которые я хотел бы защитить их с помощью VPN-туннеля. Если возможно, я бы не стал выставлять их напрямую в интернет.

Поэтому мне интересно, есть ли способ для подключенных VPN-клиентов для доступа к службам на сервере, который действует как VPN-шлюз через туннель? Заранее спасибо.

1 ответ1

0

Если клиенты перенаправляют весь трафик на сервер (т.е. с leftsubnet=0.0.0.0/0), вам нужно только убедиться, что частные сервисы доступны только через VPN. Это довольно просто сделать с помощью strongSwan. Просто примите трафик IKE и IPsec (и, возможно, SSH и другие протоколы, которые вы хотите разрешить) в цепочке INPUT а затем установите для политики по умолчанию значение DROP:

# allow ESP
iptables -A INPUT -p 50 -j ACCEPT
# allow IKE
iptables -A INPUT -p udp --dport 500 -j ACCEPT
# allow NAT-T (IKE and ESP-in-UDP)
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
# allow SSH and other protocols
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
...
# drop packets by default
iptables -P INPUT DROP

Затем настройте leftfirewall=yes и lefthostaccess=yes в ipsec.conf чтобы strongSwan автоматически вставлял правила, позволяющие вашим VPN-клиентам получать доступ к серверу. Эти правила используют модуль соответствия политики IPsec для iptables/Netfiler (-m policy), поэтому они применяются только к трафику, поступающему из установленных туннелей IPsec.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .