u2c

Форум поддержки U2C S+, OptiBox, CryptoBox, Amiko, Vu+, Alma и других спутниковых ресиверов.

Локальная сеть в Linux

Локальная сеть в Linux

Сообщение gurasik431 » 08 май 2013, 07:55

Построение локальной сети в OS-Linux
Настройка шлюза локальной сети, на базе Ubuntu 12.04

Если у вас есть локальная сеть, то для ее клиентов необходимо предоставить доступ в интернет. Для обеспечения данной возможности необходимо настроить шлюз, который будет принимать запросы клиентов и пересылать их во внешний мир, а поступающие ответы, передавать обратно.

В этой статье, я расскажу как настроить шлюз для локальной сети на Ubuntu, схема его работы очень простая, но и защиты он не обеспечивает. Существует распространенное заблуждение что NAT ( Network Address Translation -транслятор сетевых адресов) обеспечивает защиту от внешних угроз, но это далеко не так, у него совершенно другое назначение, фактически это дверь, которая открывается в обе стороны, со всеми вытекающими последствиями…
Если есть необходимость в повышении уровня безопасности, а такая необходимость есть всегда, то тут нужно настраивать «фаерволл», я намеренно не привожу никаких правил на этот случай, т.к. они настраиваются исходя из конкретных задач.
В целом, данная статья планировалась как база, для статей на ближайшие пару лет, на ее основе можно развернуть целую кучу серверов, фактический, данный сервер может обрастать функционалом, исходя из ваших задач и потребностей.

Для работы нам понадобится
1) Система с двумя сетевыми картами-которая будет выполнять функцию шлюза.
2) Клиентский ПК, с которого мы будем тестировать работу шлюза.
Схема работы:
Предполагается, что операционная система у вас установлена, на сервере который имеет 2 сетевых интерфейса.
eth0 — подключение к интернет. (может получать IP адрес динамически, может иметь статический, я опишу оба варианта)
eth1 — подключение к локальной сети, будет иметь статический IP 192.168.10.1 и маску 255.255.255.0
Также, для тестирования нам понадобится клиентская машина, которая будет находиться в локальной сети (операционная система значения не имеет).

Первым делом, настраиваем сетевые интерфейсы сервера:

Открываем терминал:
Поднимаем права до root
sudo su

Вводим пароль.
Редактируем настройки сетевых интерфейсов:
nano /etc/network/interfaces


Навастриваем eth0 (по которому осуществляется подключение к интернет)
Вариант №1- Получение IP по DHCP от провайдера:
auto eth0
iface eth0 inet dhcp



Вариант №2-Статический IP
auto eth0
iface eth0 inet static

address XXX.XXX.XXX.XXX
netmask 255.YYY.YYY.YYY
gateway XXX.XXX.XXX.XXX
dns-nameservers ZZZ.ZZZ.ZZZ.ZZZ


Где:
Вместо XXX.XXX.XXX.XXX вписываем IP адрес, который мы получили от провайдера
Вместо 255.YYY.YYY.YYY -выписываем маску подсети.
Ну и вместо ZZZ.ZZZ.ZZZ.ZZZ вписываем IP адрес DNS сервера.
Настраиваем eth1 (по которому подключается локальная сеть)
auto eth1
iface eth1 inet static

address 192.168.10.1
netmask 255.255.255.0

В результате действий у на должен получиться файл interfaces, примерно, следующего содержания:
auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static

address XXX.XXX.XXX.XXX
netmask 255.YYY.YYY.YYY
gateway XXX.XXX.XXX.XXX

auto eth1
iface eth1 inet static

address 192.168.10.1
netmask 255.255.255.0


Сохраняем изменения, выходим.
Перезапустим сеть:
/etc/init.d/networking restart


Из написанного, думаю понятно, что в локальной сети адрес шлюза и dns сервера, будет 192.168.10.1.

Переходим на к нашему тестовому клиенту, т.к. у нас в сети нет DHCP сервера, то IP адрес мы будем назначать в ручную.
Присваиваем клиенту:
IP 192.168.10.2
маску подсети 255.255.255.0
шлюз 192.168.10.1
DNS 192.168.10.1

пробуем с клиента принговать 192.168.10.1 — запросы должны бегать нормально.

Переходим на наш шлюз.
Установим пакет dnsmasq, он необходим для перенаправления DNS запросов, вышестоящим серверам.
apt-get install dnsmasq


Возвращаемся к клиенту, выполняем на нем
nslookup mail.ru

В ответ подучаем:
Сервер: UnKnown
Address: 192.168.10.1

Имя: mail.ru
Addresses: 94.100.191.201
94.100.191.204
94.100.191.203
94.100.191.202
Отлично, разрешение имен работает, но если мы попробуем открыть страницу mail.ru, то у нас ничего не получится, потому что не настроена маршрутизация пакетов.
Настроим ее:
Первым делом, разрешаем перенаправление пакетов:
nano /etc/sysctl.conf

необходимо найти строку и снять с нее комментарий:
net.ipv4.ip_forward=1

Сохраняем изменения и выходим

Теперь, нам необходимо добавить правила для маршрутизации пакетов:
nano /etc/rc.local

Добавим перед строкой exit 0
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Значение можно разобрать самостоятельно (будет в качестве домашнего задания), на форуме ubuntu был отличный FAQ по настройке iptables.
Сохраняем изменения, и перезагружаем сервер
reboot
Дождемся загрузки сервера и перейдя к клиентской системе, пробуем открыть сайт Mail.ru-все должно открываться!

Вот так, настраивается шлюз для локальной сети. Это, одно из самых простых решений.
gurasik431
registered
registered
 
Сообщения: 1788
Зарегистрирован: 24 сен 2012, 16:42
Благодарил (а): 73 раз.
Поблагодарили: 741 раз.

Вернуться в Построение и модернизация сети

Кто сейчас на конференции

Зарегистрированные пользователи: ntv_valera1

Вверх страницы

Вниз страницы