Назад | Перейти на главную страницу

Разрешить OpenVPN через определенный порт - CentOS 6.5

У меня есть VPS (CentOS 6.5). Я установил OpenVPN на этом сервере. Все работает нормально, я могу подключиться и серфить и т.д. Допустим, мой IP-адрес сервера: 1.2.3.4. Когда я подключаюсь к своему VPS, мой IP-адрес 1.2.3.4.

Я также установил OpenERP (на том же VPS), который работает на порту 8069.

Я пытаюсь заблокировать весь трафик на порту 8069, кроме трафика VPN. Итак, мне нужно подключиться к своему VPS с OpenVPN для доступа http://1.2.3.4:8069.

Я попробовал несколько руководств по iptables в сети, но ни один из них не работает.

Например:

iptables -A INPUT -p tcp -s 1.2.3.4 --dport 8069 -j ACCEPT 
or 
iptables -A INPUT -p tcp -s  10.8.0.0/24 --dport 8069 -j ACCEPT
or
iptables -I INPUT \! --src 10.8.0.0/24 -m tcp -p tcp --dport 8069 -j DROP
or
iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 8069 -j DROP

Это примеры. Я пробовал еще больше правил. Все руководства, которым я следил, блокируют весь трафик на порт 8069, даже если я подключаюсь к своему VPS с помощью OpenVPN, у меня нет доступа http://1.2.3.4:8069.

Кто-нибудь знает, как заблокировать весь трафик на порту 8069, кроме моего VPN-соединения? Как мне этого добиться?

Мой server.conf:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
user nobody
group nobody
keepalive 5 30
cipher AES-256-CBC   
comp-lzo
persist-key
persist-tun
verb 5

Конфигурация моего клиента:

dev tun
client
proto udp
remote 1.2.3.4
port 1194
resolv-retry infinite
nobind
redirect-gateway def1
persist-key
persist-tun
ca ca.crt
cert nika-pc.crt
key nika-pc.key
cipher AES-256-CBC   
comp-lzo
ns-cert-type server
verb 5

Заранее спасибо.

Редактировать:

Вывод: iptables -L -n -v

http://pastebin.com/RhzFBG8R

Вывод: iptables -L -n -v | глава

http://pastebin.com/n6gLe68s

Честное слово, это сложная настройка брандмауэра (хотя ужасно многие правила имеют нулевое количество пакетов, что заставляет меня думать, что здесь много исторической неразберихи). Вместо того, чтобы вдаваться в подробности, пытаясь выяснить, какое существующее правило улавливает этот трафик по ошибке, я предлагаю прорезать и просто поместить соответствующие правила вверху:

iptables -I INPUT 1 -p tcp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 8069 -j REJECT

редактировать: Я действительно рекомендую вам редактировать обновления в вашем вопросе, вместо того, чтобы оставлять бесконечную серию ссылок pastebin, которые могут или не могут оставаться на месте с течением времени. В любом случае спасибо за новый вывод. Как видите, количество пакетов в первом правиле равно нулю, а во втором (общий отказ) - нет. Остается только один вывод: вы ошибаетесь насчет этого трафика, используя соединение OpenVPN; это довольно ясно идет через Интернет с открытым текстом. Если ты хочешь быть полностью конечно, добавьте третье правило между двумя вышеуказанными, с

iptables -I INPUT 2 -p tcp --dport 8069 -j LOG --log-prefix "CARROT: "

Если только слово CARROT часто появляется в ваших лог-файлах, должно быть легко найти вывод этих совпадений в ваших системных журналах (/var/log/messages, или как syslog/ ваш дистрибутив считает подходящим), и они должны подтвердить, на каком интерфейсе поступают отклоненные пакеты. Я не ожидаю, что это будет tun0.

Я добавляю ответ, потому что не могу добавить комментарий. Я думаю, что используется протокол udp, а не tcp, поэтому

iptables -I INPUT 1 -p udp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p udp --dport 8069 -j REJECT