Ограничить IP-маскарад до определенного диапазона IP-адресов

Я использую всю подсеть 10.0.0.0/8 на частной стороне.

Я хочу разрешить определенному разделу подсети (скажем, 10.0.0.2 - 10.0.31.254) доступ к Интернету через маршрутизатор Linux, но не к остальной части сети (10.0.32.1 - 10.255.255.254)

Я пробовал iptables -t nat -A POSTROUTING -s 10.0.0.0/19 -o eth0 -j MASQUERADE 10.0.0.0/19 равен 10.0.0.2 - 10.0.31.254, но при этом ни одна из рабочих станций не может получить доступ к сети

Я знаю, что 10.0.0.0/8 составляет 16 777 214 IP-адресов, но у меня есть свои причины

Спасибо

3 ответа

Решение

Я понял это с помощью этого вопроса. Как разрешить диапазон IP-адресов с помощью IPTABLES?

его:

iptables -t nat -A POSTROUTING -m iprange --src-range (start ip) - (end ip) -o eth0 -j MASQUERADE

пример: iptables -t nat -A POSTROUTING -m iprange --src-range 10.0.0.2-10.0.31.255 -o eth0 -j MASQUERADE

Немного другой синтаксис в Ubuntu 22.04, который мне помог.

      sudo iptables -t nat -A POSTROUTING -s <network eg 192.168.0.0/16> -o <interface eg ens160> -j MASQUERADE

Squid - это кеширующий прокси для Интернета, поддерживающий HTTP, HTTPS, FTP и многое другое.

  http://www.squid-cache.org/

Вы можете написать ACL на Squid и разрешить / запретить на основе ваших требований.

Другие вопросы по тегам