Разрешить 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
Вывод: iptables -L -n -v | голова
2 ответа
Моё слово, это сложная настройка брандмауэра (хотя в очень многих правилах количество пакетов равно нулю, что заставляет меня думать, что там много исторического беспорядка). Вместо того, чтобы разбираться, пытаясь выяснить, какое из существующих правил перехватывает этот трафик по ошибке, я предлагаю пройтись и просто поместить соответствующие правила вверху:
iptables -I INPUT 1 -p tcp -i tun+ --dport 8069 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 8069 -j REJECT
Редактировать: я действительно рекомендую вам отредактировать обновления в своем вопросе, вместо того, чтобы оставлять бесконечную серию ссылок для вставки, которые могут остаться, а могут и не остаться со временем. В любом случае спасибо за новый вывод. Как вы можете видеть, количество пакетов в первом правиле равно нулю, а во втором (общее отклонение) - определенно нет. Остается только один вывод: вы ошибаетесь в этом трафике, используя соединение 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