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