[OpenVPN] [iptables] [TightVNC] Безопасное удалённое администрирование
Добрый день. Необходимо реализовать безопасное удалённое администрирование на основе связки OpenVPN и TightVNC. Администрировать предполагается разнородные хосты (клиенты), причём с минимальным вмешательством в уже существующие сетевые структуры.
Предполагается работать по следующей схеме:
- На хосте-клиенте поднимается либо постоянное подключение к серверу OpenVPN, либо подключение инициирует клиент.
- Администратор должен иметь возможность работать откуда угодно (как из офиса, так и со своего ноутбука, через Интернет).
- Никакого другого трафика, кроме как на порт TightVNC (5900) ходить внутри сети не должно.
- Никакой маршрутизации между физическими сетями быть не должно, весь трафик должен ходить только внутри туннелей.
Самым простым способом реализации мне показался такой: и клиенты, и администратор подключаются к серверу OpenVPN в нашем офисе, после чего администратор, находясь с клиентом в одной виртуальной сети (172.17.255.0/24) и зная статический адрес клиента, подключается к последнему по TightVNC. Я сделал следующее:
- Поднял в нашей сети (192.168.1.0/24) сервер OpenVPN с нуля. (192.168.1.23).
- Настроил его на выдачу статических адресов для каждого клиента, выписал для клиентов и администратора сертификаты
Конфиг OpenVPN: Сервер (часть конфигурации): ------------------ local 192.168.1.23 port 1194 proto tcp dev tun0 server 172.17.255.0 255.255.255.0 client-to-client client-config-dir /etc/openvpn/ccd Пример клиентской конфигурации (/etc/openvpn/ccd/client1): ---------------------------------- ifconfig-push 172.17.255.9 172.17.255.10 Конфигурация администратора (/etc/openvpn/ccd/admin) ---------------------------------- ifconfig-push 172.17.255.5 172.17.255.6
- Частично настроил iptables
iiptables -n -t filter -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 192.168.1.0/24 192.168.1.23 tcp dpt:8000 ACCEPT tcp -- 0.0.0.0/0 192.168.1.23 tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 192.168.1.23 tcp dpt:1194 ACCEPT tcp -- 0.0.0.0/0 172.17.255.0/24 tcp dpt:5900 Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- 172.17.255.0/24 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 172.17.255.0/24 state RELATED,ESTABLISHED ACCEPT all -- 192.168.1.0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 192.168.1.0 state RELATED,ESTABLISHED Chain OUTPUT (policy ACCEPT) target prot opt source destination ------------------------------------------------------------------- sudo iptables -n -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 172.17.255.0/24 0.0.0.0/0 to:192.168.1.23 Chain OUTPUT (policy ACCEPT) target prot opt source destination
Сейчас все клиенты нормально подключаются, пинг между клиентами и на сервер проходит. Вопрос: что добавить/изменить в iptables, чтобы заблокировать весь трафик между клиентами, кроме как на порт 5900 от администратора к клиенту? Клиенты не должны иметь возможность подключения друг к другу на порт TightVNC.
Помогите, пожалуйста, разобраться.