Немного про NAT в CentOS

Эххх… Вот чего за всю свою не сознательную админскую жизнь не делал, так это ни разу не настраивал NAT на Linux. Почему? Да как-то было все это и не нужно мне, а тут раз и понадобилось.

Вообще, для чего нужен НАТ конкретно Вам, да и нужен ли вообще — не знаю, но я? будучи от природы крайне ленивым, предпочел его ковырянию в SQUID-е, дабы не иметь потом проблем как с пользователями так и с прочей неведомой хуйней вылезшими косяками интернет-зависимых прграмм. Да, безлимитная полоса позволяет забыть про платный пакетный трафик.

Для NAT сервера будет использоваться следующая конфигурация:

Процессор Intel DualCore 2.7 GHz

Материнская плата ASUS P5G41T-M

Память DDR3 DIMM 2GB PC10600 * 2

Винчестер WD SATA3 320Gb

Корпус Invin

Сетвая карта NoNAME * 2

В качестве системы CentOS 5.6 x86_64

Как видите — оборудование далеко не серверное, да и по полосе пропуская трафика больше 50 mbps канал не вытянет. Про пользователей вообще молчу — их не больше 100 человек. Задачи по меньшей мере скромные…

Что имеем по структуре сети? Имеем сеть 192.168.0.0/24, которая собственно в нашем случае сеть локальная, eth0. Также имеем лик до провайдера, внешний IP и прочие плюшки, eth1. Задача — организовать FULL NAT.

Для начала установи CentOS 5.6, например по этой статье. Можете включить FULL NAT в ядре. Как? Смотрите статью про включение FULL NAT на уровне ядра в CentOS 5.6. В моему случае пересборки ядра не потребуется, весь NAT будет реализован средствами IPTABLES.

Для начала разрешим шлюзу передавать транзитный трафик:

sysctl net.ipv4.ip_forward = 1

После, на всякий пожарный, очистим цепочку FORWARD:

iptables -F FORWARD

Разрешаем ходить пакетам по уже установленным соединениям:

iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Разрешаем исходящие соединения из локальной сети к интернет хостам:

iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.0.0/24 -j ACCEPT

Остальной транзитный трафик запрещаем:

iptables -P FORWARD DROP

Очищаем POSTROUTING цепочку таблицы nat:

iptables -t nat -F POSTROUTING

Пробрасываем весь трафик, идущий через eth1:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 89.250.xxx.xxx

После сохраняем правила iptables:

iptables-save > /etc/sysconfi/iptables

Перезапускаем iptables:

service iptables restart

После этого NAT полностью работоспособен. Да, не забываем NAT сервер прописать в качестве основного шлюза.

Popularity: 17% [?]




Похожие записи:

coded by nessus
Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins