Ограничить 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 и разрешить / запретить на основе ваших требований.