Многие организации получают у своего провайдера всего несколько маршрутизируемых в Интернете IP-адресов. По причине этой ограниченности администраторам требуются средства разделения доступа к Интернет-службам при нехватке IP-адресов всем узлам локальной сети. Обычно, чтобы все узлы локальной сети обращались к внутренним и внешним сетевым службам, используются частные IP-адреса. Пограничные маршрутизаторы (в частности, брандмауэры) могут принимать данные, приходящие из Интернета и отправлять пакеты нужному локальному узлу; и в то же время они также могут маршрутизировать запросы узлов локальной сети к удалённой Интернет-службе. Такое перенаправление сетевого трафика иногда может быть опасным, особенно, учитывая возможности современных средств взлома, способных подменять внутренние IP-адреса и представлять компьютер злоумышленника узлом вашей сети. Чтобы предотвратить незаконное использование сетевых ресурсов таким образом, iptables предоставляет политики маршрутизации и пересылки пакетов.
Политика FORWARD позволяет администратору управлять тем, как пакеты маршрутизируются в локальной сети. Например, чтобы разрешить маршрутизацию для всей локальной сети (предположим, что внутренний интерфейс брандмауэра/шлюза — eth1), можно задать такие правила:
iptables -A FORWARD -i eth1 -j ACCEPT iptables -A FORWARD -o eth1 -j ACCEPT |
Замечание | ||||
---|---|---|---|---|
По умолчанию, политика IPv4 в ядре Red Hat Enterprise Linux отключает пересылку IP, что не даёт компьютерам с Red Hat Enterprise Linux выполнять функции маршрутизаторов. Чтобы включить пересылку IP, запустите следующую команду:
Если эта команда запускается в командной строке, она не будет действовать после перезагрузки. Чтобы пересылка работала постоянно, отредактируйте файл /etc/sysctl.conf. Найдите и отредактируйте следующую строку, заменив 0 на 1:
Чтобы изменения в файле sysctl.conf вступили в силу, выполните следующую команду:
|
Это позволит узлам локальной сети связываться друг с другом, однако они не смогут обращаться к внешним сетям (например, к Интернету). Чтобы узлы локальной сети с частными IP-адресами могли связываться с внешними сетями, настройте на брандмауэре подмену IP, которая замаскирует узлы локальной сети под IP-адресом внешнего интерфейса брандмауэра (в данном случае, eth0):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |