Если есть необходимость в повышении уровня безопасности, а такая необходимость есть всегда, то тут нужно настраивать «фаерволл», я намеренно не привожу никаких правил на этот случай, т.к. они настраиваются исходя из конкретных задач.
В целом, данная статья планировалась как база, для статей на ближайшие пару лет, на ее основе можно развернуть целую кучу серверов, фактический, данный сервер может обрастать функционалом, исходя из ваших задач и потребностей.
Для работы нам понадобится
1) Система с двумя сетевыми картами-которая будет выполнять функцию шлюза.
2) Клиентский ПК, с которого мы будем тестировать работу шлюза.
Схема работы:
Предполагается, что операционная система у вас установлена, на сервере который имеет 2 сетевых интерфейса.
В целом, данная статья планировалась как база, для статей на ближайшие пару лет, на ее основе можно развернуть целую кучу серверов, фактический, данный сервер может обрастать функционалом, исходя из ваших задач и потребностей.
Для работы нам понадобится
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Отлично, разрешение имен работает, но если мы попробуем открыть страницу mail.ru, то у нас ничего не получится, потому что не настроена маршрутизация пакетов.
Address: 192.168.10.1
Имя: mail.ru
Addresses: 94.100.191.201
94.100.191.204
94.100.191.203
94.100.191.202
Настроим ее:
Первым делом, разрешаем перенаправление пакетов:
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-все должно открываться!
Вот так, настраивается шлюз для локальной сети. Это, одно из самых простых решений.
Комментариев нет:
Отправить комментарий