Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT.

Автор: Psimer Дата: 03.07.2005 14:35 Как говориться все большое начинается с малого, поэтому предлагаю создать FAQ по пошаговому созданию сервера который будет связывать инет и внутреннюю домашнюю локальную сеть.

Faq по созданию прокси сервера, ДНС сервера, VPN и почтового сервера считаю лишним если у тебя в квартире 2-5 машин.

Далее опишем пошаговое создание сети на базе ASPLinux 10 с внешним статическим адресом в интернете и внутренней локальной сетью. А также базовую настройку безопасности.

У нас имеется установленный на ПК дистрибутив ASPLinux 10 и пакет iptables-1.2.11-3.1.10.0asp и 2 сетевые карты:

eth0 - смотрящая в интернет
eth1 - смотрящая в внутреннюю локальную сеть

Шаг #1
Настраиваем сетевые интерфейсы утилитой system-config-network или любым текстовым редактором открываем файл
/etc/sysconfig/network-scripts/ifcfg-eth0

здесь нам нужны параметры
шлюз, номер сетевого интерфейса, маска сети, IP-адрес, автоматическая загрузка при старте системы (см. ниже)

пример:

GATEWAY=172.16.7.1 #шлюз
TYPE=Ethernet #тип соединения
DEVICE=eth0 #номер сетевого интерфейса (карты)
HWADDR=00:01:02:cd:4b:37 #MAC адрес (если нужен)
NETMASK=255.255.0.0 #маска сети
IPADDR=172.16.7.26 #IP-адрес
ONBOOT=yes #автоматическая загрузка при старте системы
PEERDNS=yes # параметр нужный при PPP и DNSP (если есть ДНС сервер)

В файле
/etc/sysconfig/network-scripts/ifcfg-eth1
должны быть строки

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.1
NETMASK=255.255.255.0
HWADDR=00:07:95:da:02:9f
PEERDNS=yes
TYPE=Ethernet

Шаг #2
В консоли пишем
echo 1 >/proc/sys/net/ipv4/ip_forward - включение шлюза с сетевой карты eth1 на eth0.

Перегружаем сетевые интерфейсы ifcfg eth0 down ifcfg eth0 up, тоже для eth1. Или перегружаем компьютер если вы приверженец стиля работы в Windows:-)

На другой локальной машине устанавливаем IP-адрес в зоне адресов от 192.168.0.2 до 192.168.0.254 и указываем как шлюз 192.168.0.1. ДНС-сервера указываем тотже, что и у внешней сетевой карты eth0.

Если на этой машине стоит Windows, то жмем Пуск-Выполнить набираем cmd и в данной убогой консоли пингуем сначала свою машину
ping 192.168.0.2
потом шлюз
ping 192.168.0.1
потом сетевую карту смотрящую в интернет
ping 172.16.7.26

если все пингуется то переходим к основной части - настройка Маскарадинга т.е. подмена адресов из локальной сети на адрес внешней сетевой карты.

Шаг #3
Вступление.
Маскарадинг работает так, Ваш пакет (например на www.asplinux.ru) проходит через сервер и в нем адрес источника меняется на адрес сервера (172.16.7.26). Пакет приходит на www.asplinux.ru и хост отвечает по адресу в пакете (172.16.7.26). Так как Ваш сервер запомнил, что пакет для www.asplinux.ru посылали c ip 192.168.0.2, то он принимает пакет и отдает его компьтеру с ip 192.168.0.2.
Вот и весь простой принцип.

Включается маскарадинг в iptables так:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
(этой командой мы разрешаем прохождение пакетов между сетевыми интерфейсами из локальной сети 192.168.0.0/24)
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
(этой командой мы разрешаем прохождение пакетов между сетевыми интерфейсами в локальную сеть 192.168.0.0/24)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
(тут мы включаем маскарад для сети 192.168.0.0/24).

Теперь пингуем с IP 192.168.0.2 шлюз внешней сетевой карты eth0
ping 172.16.7.1
и любой адрес в интернете
ping www.asplinux.net

Если все идет нормально и пингуется, то можно Вас поздравить! Локальная сеть внутри квартиры теперь может общаться с миром через интернет.

Для того чтобы злые хацкеры не поломали Ваш сервер можно принять коренное решение, которое рассмотрено в шаге #4

Шаг #4

В файл /etc/hosts.deny впишите строчку

ALL:ALL

Иначе говоря, даже если сервере запущены сервисы (это почти обязательно X-сервер, SSH-доступ, иногда FTP- или HTTP-службы и пр.), воспользоваться ими потенциальному злоумышленнику или вирусу (а вдруг аля msblast или lovesan для Linux появятся Поражён, пытающимся соединиться с вашей машиной через Сеть, не получится. Если же вам необходимо разрешить доступ, к примеру, для компьютера в локальной сети, просто впишите нужный IP-адрес в соседний файл hosts.allow Таким вот образом:
ALL: 192.168.0.21

Принимаються предложения по дополнению и упращению данного FAQ с конечной целью создания полноценного, прстого и понятного руководства по администрированию ОС ASPLinux.

P.S. Существует руководство администрирования ASPLinux. Там все написано как администрировать с помощью великой дыры webmin. ИМХО вещи глючной и непонятной где нет таких простых вещей, которые надеюсь показаны в данном руководстве.

P.P.S. Конечный вариант данного Faq можно будет вывешивать везде где только можно и принесет большую пользу пользователям. Например www.asplinux.net

Только ссылки на автора не забудте.
Re: Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT. 08.07.2005 23:50ezhikov Вот тоже хорошая статейка. Сегодня по ней дал второму компу под w2k доступ в инет.

[linuxportal.ru]
Re: Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT. 11.07.2005 20:09vaborg автору респект!
если бы все руководства писали так Улыбка
Re: Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT. 11.07.2005 21:54Psimer vaborg писал(а):

> автору респект!
> если бы все руководства писали так Улыбка

Рад, что сие хоть комуто помогло! Тут есть один минус, после перезагрузки надо включать маскарадинг каждый раз заново прописывая строки или создать выполняемый скрипт и засунуть его в автозагрузку, думаю как лучше сие щас написать, чтоб проще и пограмотнее было.
Re: Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT. 11.07.2005 21:58Psimer ezhikov писал(а):

> Вот тоже хорошая статейка. Сегодня по ней дал второму компу под
> w2k доступ в инет.
>
> [linuxportal.ru]

Статья хорошая! читал ее когда еще Fedora Core 1 стояла и только АСП 7.3 у меня был (ех, ностальгия). Только я так и не понял для чего нужен NAT для домашней локалки, если и маскарадинга достаточно.
Re: Предложение по созданию Фака по созданию шлюза и маскарадингу, NAT. 29.07.2005 15:54iVan а я бы ещё предложил настроить кеширующий днс на шлюзе (как, собственно и сделал у себя), чтобы лишний раз не терроризировать днс'ы провайдера и dhcp сервер с привязкой к мак адресам (никак не решаюсь сделать)
а ещё, очень важным моментом для шлюза является равномерное (и не очень*)) распределение скорости канала между всеми пользователями в сети. как сделать, читайте в моём недоделаном FAQ) [forum.asplinux.ru]
3 месяца уже мой серв работает в локалке и раздаёт инет. за это время ещё много чего на него повесил. но главное, что работает очень надёжно) я даже забыл уже что он вообще есть*)
RSS-материал