300-тысячная статейка про интернет шлюз

Статьи Windows

Вводная

Я понимаю, что таких (подобных) инструкций в интернете – целое море. Но вот пришел мой черед искать информацию по данному вопросу – и все-равно немало времени убил на поиски. В принципе, в этой заметке я постараюсь не сильно дублировать информацию, но по максимуму выложу ссылки, которые помогли мне…

Началась моя эпопея со звонка одного знакомого: «А вот можно проверять на вирусы интернет-трафик всего офиса?» Причем, вопрошавший хотел, чтобы эта функция была возложена на какой-нибудь «трехкопеечный» SOHO-роутер, которому родную прошивку заменили на какую-нибудь альтернативную. Пришлось его разочаровать, т.к. те «коробочки» на использование которых собственно и рассчитывал мой знакомый, с такой задачей вряд-ли смогли бы справиться ввиду своей «хилости». Из недорогих (по меркам цен для подобного оборудования) решений были найдены шлюзы серии NetDefend фирмы D-Link. Цена эта, правда, оказалась сопоставима с ценой недорогого нового офисного компьютера (самого системного блока без монитора и манипуляторов). В итоге знакомый сказал «дорого» в последствии пропал с горизонта и вовсе), а я решил поискать информацию о том, как сделать это с помощью обычного компьютера, использующего Linux в качестве ОС, и open-source ПО для выполнения поставленных задач. По мере чтения всего того, что предлагал Google, вырисовывались даже гораздо более интересные перспективы, чем изначальная задача. В итоге и родился этот «сборник цитат», который Вы сейчас и читаете.

Процесс выполнения данной задачи можно разделить на несколько этапов. Заканчиваю рассусоливать и перехожу к первому:
1. Просто шлюз

«Просто шлюз» нам нужен, чтобы все пользователи офиса (или, допустим, «другие домашние компьютеры») могли легко подключаться к нему и получить доступ в интернет. Кстати, эта первая часть заметки будет очень полезна тем, кто ищет ответ на вопросы типа «Как расшарить интернет под Linux-ом?» и тому подобные.

Итак, у меня был компьютер, работающий под управлением Linux (дистрибутив Ubuntu 9.04). Компьютер был как раз класса того самого «недорогого офисного». Причем справится с задачей может даже б/у компьютер, объявлений о продаже которых предостаточно в любой местной газете. Главное отличие – в нем было установлено две сетевые платы. Первая сетевая плата называлась eth0, и через нее компьютер был подключен в интернет. Вопрос подключения к интернету тут мы рассматривать не будем. Единственное, что примем к сведению, так это адрес платы eth0 – 192.168.1.2 и адрес шлюза, к которому она подключена – 192.168.1.1. Ко второй сетевой плате – она называлась eth1 — я планировал подключать пользователей офиса. Причем, сделать это подключение для пользователей максимально простым. С этой целью на интерфейсе я поднял DHCP-сервер.

Сначала я выставил сетевой плате eth1 фиксированный адрес. Причем, выбрать его нужно таким, чтобы он не попадал в диапазон адресов подсети, к которой относится сетевая плата eth0 там, как мы помним, у меня 192.168.1.ххх). В итоге я решил, что пускай у моей платы eth1 адрес будет 192.168.100.1. Чтобы назначить ей такой адрес, я отредактировал файл /etc/network/interfaces, для чего ввел команду:
sudo nano /etc/network/interfaces

В файле этом я дописал следующие строки:
auto eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.255.0

После чего вышел из редактора, нажав «Ctrl + X». На вопрос о сохранении изменений ответил «Да» (кнопка «Y»). И подтвердил имя файла, не меняя его (кнопка «Enter»). Введенные строки определяют следующее:
Интерфейс eth1 автоматически стартует при загрузке (строка «auto eth1»);
У интерфейса eth1 будет статический .е. фиксированный) адрес (слово «static»)
У интерфейса eth1 будет адрес 192.168.100.1
Маска подсети на интерфейсе eth1 будет 255.255.255.0

После того, как изменения внесены, нужно либо перезагрузить компьютер, либо просто перезапустить поддержку сети. Лучше второе. Поэтому, просто перезапускаем сеть командой:
sudo /etc/init.d/networking restart

Теперь пришло время установить DHCP-сервер и запустить его на интерфейсе eth1. Для этого вводим команду:
sudo apt-get install dnsmasq

(Подразумевается, что через интерфейс eth0 наш компьютер уже подключен к интернету, и репозитории настроены). По этой команде программа dnsmasq это и есть тот самый DHCP-сервер) была загружена и установлена на мой компьютер. Мне оставалось лишь подстроить ее параметры под мои нужды. Для этого я слегка подредактировал файл настроек указанной программы (/etc/dnsmasq.conf), введя команду:
sudo nano /etc/dnsmasq.conf

Файл сам по себе достаточно большой, и настроить в нем можно «ну очень много всего». Для моего простейшего случая оказалось достаточным указать всего два параметра. Первый делом я указал тот интерфейс, на котором сервер собственно и будет работать (слушать DHCP и DNS запросы). Параметр указывается одной простой и доходчивой строкой:
interface=eth1

Второй параметр определяет диапазон адресов, присваиваемых пользователям при их подключении к серверу. В моем случае я ввел следующую строку:
dhcp-range=192.168.100.50,192.168.100.250,12h

Опять же, выходим из редактора и сохраняем изменения.

Эти два указанных мной параметра определили следующее: клиентам, подключающимся к сетевой плате eth1, автоматически будут присваиваться адреса в диапазоне от 192.168.100.50 до 168.100.250, и «срок аренды» составит 12 часов. Обратите внимание, что диапазон выдаваемых адресов, должен принадлежать той подсети, которую мы указали для сетевой платы eth1.

Два слова про «срок аренды». Параметр этот опциональный и указывает – в течении какого времени сервер помнит, что «такой-то» адрес, который был автоматически присвоен «такому-то  » клиенту (компьютеру), все еще «принадлежит» ему. Таким образом сохраняется возможность, что один и тот же компьютер будет по возможности получать один и тот же адрес. (Если вдруг это кому-то  важно) …

Все остальные настройки в файле закомментированы .е. либо не используются, либо, там где это необходимо, используются «умолчательные» значения). Они позволяют более тонко настроить сервер под собственные нужды. В том числе например, ЖЕСТКО указать присвоение одному и тому же клиенту всегда одного и того же адреса, а также многое другое. С другой стороны, все перечисленные в файле параметры хорошо прокомментированы (на английском, естественно), на тот случай, если Вы решите настроить сервер именно «более тонко»…

Но вернемся к нашему серверу. После того, как настройка его завершена, перезапускаем сам сервер:
sudo /etc/init.d/dnsmasq restart

С этого момента можно подключать клиентов (компьютеры пользователей) к сетевой плате eth1. Одного (например, второй компьютер в доме) можно подключить и напрямую, а если нескольких, то тогда уже через обычный hub или switch с требуемым числом портов. На компьютерах клиентов, работающих в ОС Windows, в свойствах сетевой платы для протокола TCP/IP нужно указать «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера автоматически». В таком случае компьютер пользователя при подключению к нашему шлюзу будет автоматом настраиваться на то, что основным шлюзом у него будет 192.168.100.1, маска подсети – 255.255.255.0, и адрес ему будет присваиваться один из того диапазона, который мы указали при настройке dnsmasq (то есть, от 192.168.100.50 и до 168.100.250). Для компьютеров клиентов, работающих под управлением ОС Linux, скорее всего вообще не нужно будет ничего настраивать – в большинстве дистрибутивов после установки DHCP-клиент стартует автоматом…

Итак, наши пользователи на автомате успешно подключаются к шлюзу и получают адреса. Все хорошо?! На первый взгляд – да. Первые пару минут… Но потом оказывается, что до полного счастья им не хватает …доступа в интернет! А мы то ведь шлюз делали…

На самом деле, для того, чтобы выпустить наших пользователей в интернет, осталось всего лишь включить функцию NAT (преобразования сетевых адресов). Для этого создадим новый файл настроек файервола, в котором на данном этапе будет всего одна единственная – включить NAT. Чтобы создать новый файл правил назвал его fw.rules и разместил в папке /etc/network, а Вы можете придумать и другое имя), введем следующую команду:
sudo touch /etc/network/fw.rules

Теперь откроем новый файл в редакторе:
sudo nano /etc/network/fw.rules

И впишем в него следующее:
#!/bin/sh
INET= «eth1»
INETIP= «192.168.1.1»

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -t nat -A POSTROUTING -o $INET -j SNAT --to-source $INETIP
echo «1» > /proc/sys/net/ipv4/ip_forward

Сохраняем изменения, выходим из редактора. Из того, на что стоит обратить внимание:
Строка INET= «eth1″ указывает на сетевой интерфейс (плату) к которой подключены пользователи, которым мы будем предоставлять доступ в интернет.
Строка INETIP=„192.168.1.1″ указывает на шлюз, где у нас этот самый интернет и живет (помните, в самом начале я упоминал о том, что „…мой компьютер к интернету подключен сетевой платой eth9 через шлюз 192.168.1.1″. Так вот это он и есть….

Собственно, созданный нами только что файл является набором команд конфигурирования файервола. А раз это набор команд, то его нужно исполнять. По этому, делаем файл исполняемым:
sudo chmod +x /etc/network/fw.rules

…и запускаем его:
sudo /etc/network/fw.rules

Все! Вот теперь наши пользователи наконец-то получили то, чего так желали – доступ в интернет. Осталось лишь сделать так, чтобы наши „правила файервола“ запускались автоматически каждый раз при загрузке компьютера. Для этого еще раз отредактируем файл /etc/network/interfaces:
sudo nano /etc/network/interfaces

И впишем в него еще одну строку. В приведенном ниже примере она выделена красным:
auto eth1
iface eth1 inet static
pre-up /etc/network/fw.rules
address 192.168.100.1
netmask 255.255.255.0

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

В итоге мы получили самый простой шлюз, который при подключении к нему пользователей автоматом присваивает им IP-адреса и „выпускает“ их в интернет. Таким образом, первая часть „глобального плана“ выполнена. Ах да, я же не сказал – что выполнено и зачем? Помните еще – в самом начале знакомый мой хотел, чтоб шлюз проверял трафик на вирусы? Так вот сам шлюз мы уже сделали. Пользователи из локальной сети к нему подключаются, получают автоматом (по DHCP) все настройки и затем – доступ в интернет. Что нам это дало? Весь трафик нашей локальной сети теперь идет через шлюз, и проверять на вирусы достаточно только трафик самого шлюза, а не каждого клиентского компьютера в отдельности. О самой „борьбе с вирусами“ – будет далее, а пока что еще немного ссылок про шлюзы:
http://www.opennet.ru/base/net/debian_router.txt.html
http://www.openkazan.info/node/3456
http://silverghost.org.ua/2009/08/31/domashnij-shlyuz-na-ubuntu/

И еще. Как я уже прозрачно намекал ранее, написанные нами правила не стоит громко называть файерволом в том смысле, что в них «все разрешено“, и они ни от чего не защищают. Их единственной задачей было включить раздачу интернета для компьютеров локальной сети ( «расшарить его“). По этому, вот еще одна ссылка, подробно описывающая работу с iptables, которая позволит Вам настроить правила посерьезнее:
http://easylin ux.ru/node/190

 

http://dmitrykhn.homedns.org 

Оценка:

ОСсерверgoogle 

13.09.2010, 11838 просмотров.

Акции

02 марта 2011 г.

Бесплатный IT-аудит!
Наши дорогие и уважаемые, нынешние и будущие клиенты! Спешим вас порадовать нашим новым предложением — Бесплатный IT-аудит!

Что же такое IT-аудит? Читайте далее>>

Подробнее ...

Статьи

02 ноября 2010 г.

Чего стоит ждать от Windows 8
В поисках разработок, которые могут войти в Windows 8, полезно обратить внимание на технологии, создававшиеся в рамках проекта Windows Longhorn.

Подробнее ...

Контакты

Тел: (423) 221-51-91

(423) 22-602-58

E-mail:

О нас говорят

Компания ООО "ЛеРоТранс"

Работая в течение многих лет с разными компаниями, остановила свой выбор только на компании «БЭСТ». Очень грамотные специалисты, решающие все необходимые вопросы незамедлительно…

Читать далее

ОАО СК "Арктическое морское пароходство"

Мы работаем с компанией «БЭСТ» с августа 2008 года. Основные плюсы сотрудничества с этой компанией — оперативное, качественное и вежливое обслуживание!

Читать далее

ЗАО «Корпорация Технодром»

На протяжении 1.5 лет наша компания работает по сервисному и абонентскому обслуживанию компьютеров, серверов и локальных сетей с компанией ООО «Компания БЭСТ-ДВ»

Читать далее

Все отзывы

Новости

01 декабря 2010 г.
Статус IDECO ExpertPartner

Компания БЭСТ получила статус Expert Partner IDECO — компании, являющейся лидером в разработке программных продуктов для построения сетей и развития сетевых инфраструктур любого уровня сложности, а также решений для Интернет-провайдеров.

19 ноября 2010 г.
Мы переехали!

Уважаемы коллеги! Компания «БЭСТ» переехала в новый офис и распологается по адресу: 690001, г.Владивосток, ул. Абрекская, д.5, 1 этаж. Бизнес-Центр «Мой Дом»

Карта проезда

08 ноября 2010 г.
Скидки от компании Microsoft

С 1 октября 2010 г. у Вас появилась возможность получить программное обеспечение от Microsoft на существенно более выгодных условиях. Примите решение сейчас и воспользуйтесь специальными предложениями на покупку ПО.

Подробнее…

RSS Все новости