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

Запрещение выхода диапазона IP-адресов в Интернет в Red Hat / CentOS Linux

У меня есть VPN, и мой сервер часто отправляет данные на частный IP-адрес, который маршрутизируется через VPN. Когда OpenVPN устанавливается или умирает, он включает / отключает маршруты.

Я хочу обнулить этот частный IP-адрес, выходящий из основного интернет-интерфейса (eth0). Есть ли простой способ сделать это, не мешая командам маршрута, поступающим из программного обеспечения VPN?

Iptables этого не сделает. Я попытался

iptables -A OUTPUT -i eth0 -p tcp -d 192.168.0.0/16 -j REJECT

Но iptables не работает при указании интерфейса в выходной цепочке.

Кто-нибудь знает, есть ли способ добавить фиктивный маршрут только к определенному интерфейсу (eth0), не мешая другим интерфейсам, которые могут использовать этот маршрут?

Ps- Я знаю, что 192.168.0.0/16 не маршрутизируется в ИНТЕРНЕТ, но по соображениям безопасности хочу гарантировать, что никакие данные не будут выходить в той редкой возможности, когда другой локальный сервер или сетевое устройство начнет прослушивать частную подсеть.

Спецификация вашего интерфейса в правиле iptables обратная.

Вы указали:

iptables -A OUTPUT -i eth0 -p tcp -d 192.168.0.0/16 -j REJECT

С помощью -i соответствует трафику, который входит система на названном интерфейсе.

Вместо этого вы хотите сопоставить трафик уходящий система на названном интерфейсе, что выполняется с помощью -o.

iptables -A OUTPUT -o eth0 -p tcp -d 192.168.0.0/16 -j REJECT

(И вы, вероятно, не хотите -p tcp там, иначе может пройти не-TCP трафик.)

У вас уже есть необходимый ответ с помощью iptables.

Если вы хотите сделать это с помощью маршрутов, хороший способ - создать маршрут для 192.168.0.0/16, и ваш vpn-сервер отправит вам два более конкретных маршрута, в вашем случае эти два маршрута будут 192.168.0.0. / 17 и 192.168.128.0/17

Маршрут / 16 будет фиксированным и нулевым:

ip route add blackhole 192.168.0.0/16

И ваш сервер vpn (или сценарий vpn-up) предоставит вам другие:

ip route add 192.168.0.0/17 via <VPNGW>
ip route add 192.168.128.0/17 via <VPNGW>

Это на самом деле то, что def1 опция в OpenVPN позволяет переопределить шлюз по умолчанию, не вмешиваясь в существующие маршруты.

В дополнение к ответу Майкла, я думаю, следует заблокировать трафик в FORWARD цепь, так как OUTPUT цепочка применяется только к локально сгенерированным пакетам и исходящим от межсетевого экрана. Насколько мне известно, это не относится к маршрутизируемым пакетам.