Введение
Всё что нужно для практической реализации нашего проекта, – старый компьютер на базе безнадёжно устаревшего Pentium 90, который наверняка пылится у вас дома или в офисе. И, конечно же, желание узнать об интернет-маршрутизаторе больше, чем просто включить его в сеть. Создание маршрутизатора своими руками – прекрасный способ дать вторую жизнь старому компьютеру, производительности которого будет достаточно для большинства домашних сетей. Решение же на базе Linux позволит не задумываться о покупке лицензионного ПО.
Сегодня существует множество различных маршрутизаторов/брандмауэров, основанных на Linux. Кстати, некоторые из них мы уже рассматривали на наших страницах, например m0n0wall, Smoothwall Express и ClarkConnect. На этот раз мы остановимся на IPCop, девизом которого, в вольном переводе, является “Плохие пакетам мочим сразу”.
Аппаратные требования
В сопутствующей документации указано, что минимальные требования для IPCop – материнская плата с процессором 386, 32 Мбайт ОЗУ и жёсткий диск ёмкостью 300 Мбайт. Однако мы рекомендуем использовать более быстрое оборудование, если вам нужны скорости до 6 Мбит/с. Процессор класса Pentium и 256 Мбайт ОЗУ справятся с такой задачей без проблем, а жёсткий диск на 20 Гбайт станет прекрасным кэшем для прокси-сервера.
Напротив, использование современного “железа” может вызвать ряд проблем. Например, поддержка PCI Express в IPCop находится на начальной стадии, поэтому с некоторыми интегрированными контроллерами LAN могут возникнуть проблемы. Что касается сетевых адаптеров, использующих стандартную шину PCI, например Intel PRO-1000, то здесь всё будет работать сразу же.
Рис. 1. Система на базе Pentium 75 Socket 7.
В стандартной конфигурации IPCop требует наличия, как минимум, одного сетевого адаптера. Отметим, что даже с дешёвыми адаптерами Fast Ethernet, стоимостью около 150 рублей, проблем не возникает. Так, адаптеры, выполненные на базе чипа Realtek 8139, прекрасно подходят для наших целей из-за их широкой распространённости. Если вы хотите наверняка убедиться в поддержке ваших сетевых адаптеров, то рекомендуем ознакомиться со списком поддерживаемого оборудования (IPCops Hardware Compatibility List – HCL).
Из-за практически полного отсутствия драйверов использование IPCop в качестве беспроводной точки доступа пока достаточно затруднительно и требует серьёзной ручной работы. Поэтому, если вы хотите использовать IPCop в беспроводной сети, мы рекомендуем установить обычную сетевую карту и подключить к ней точку доступа WLAN. Информацию о том, как настроить такую систему, можно найти на сайте Host AP-Project.
Сколько нужно сетевых карт?
Вообще говоря, количество сетевых карт на маршрутизаторе зависит от задач, которые он будет выполнять. Так или иначе, как минимум, потребуется одна карта. В нашем примере мы будем использовать две, то есть получим классический пример кабельного или DSL-маршрутизатора (Рис. 2). В такой конфигурации один адаптер подключается к домашней сети (“зелёный интерфейс”), второй – к кабельному или DSL-модему (“красный интерфейс”).
Рис. 2. Схема нашей сети.
Вместо второй карты можно использовать аналоговый модем или ISDN-карту, всё зависит от вашего подключения. Кроме того, можно добавить “синий” интерфейс для WLAN, и “оранжевый” – для DMZ. На Рис. 3 показана максимальная конфигурация с четырьмя картами.
Рис. 3. Топология более сложной сети.
Рекомендуемое аппаратное обеспечение для IPCop | |
Процессор/материнская плата | Intel или AMD; Pentium или выше; 100 МГц или выше (Socket 7, Socket 370, Socket A) |
ОЗУ | 256 Мбайт SDRAM или DDR-SDRAM |
Жёсткий диск | 20 – 40 Гбайт для кэширования (прокси-сервер) |
Сеть | Два сетевых адаптера 10/100 |
Видеокарта | Любая от 2 Мбайт, 3D не требуется |
CD/DVD | Только для установки |
FDD | Не требуется |
Клавиатура | Любая. Для установки |
Установка
Как упоминалось ранее, в качестве операционной системы маршрутизатора мы выбрали IPCop. Эта ОС основана на Linux, её исходный код и она сама доступны для свободного скачивания на условиях лицензирования GPL. Образ ISO CD, объёмом 41 Мбайт, можно скачать с сайта IPCop. Также можно воспользоваться образами загрузочных дискет, но в этом случае после загрузки установка пойдёт из сети.
Остановимся на наиболее простом и быстром способе установки, то есть с CD или DVD. Естественно, сначала нужно установить загрузку с привода CD/DVD в BIOS. Напомним, что в большинстве версий BIOS это делается в разделе “Advanced Setup Options” или “Advanced BIOS Setup”.
Рис. 4. Настройка загрузки с CD-ROM.
Выходим из BIOS, предварительно сохранив настройки, нажав на клавишу F10, или выбрав в меню пункт “Exit Saving Changes”.
Теперь система будет загружаться с CD/DVD, в результате чего вы увидите загрузчик Isolinux. К сообщению о том, что все данные на жёстком диске будут уничтожены, следует отнестись серьёзно! После этого начнётся разбиение диска на разделы. Так что если на диске осталось что-то важное, сначала сохраните данные в безопасное место!
Рис. 5. Последнее предупреждение перед очисткой диска.
Нажав “Return”, загружаем ядро Linux. Если на этой стадии возникнут какие-то ошибки, то можно попробовать опции nousb и nopcmcia для отключения этих интерфейсов. Поскольку чаще всего маршрутизаторам эти интерфейсы не требуются, то проблем возникнуть не должно.
После загрузки автоматически запускается установка, которая предложит выбрать язык интерфейса. Доступно несколько вариантов, но не все переводы полные. Лучше выбрать английский.
Далее появляется предупреждение: выбрав “Cancel” на любом из последующих экранов, вы прекратите установку и перезагрузите систему. Затем нужно выбрать, откуда устанавливать систему: с диска или по HTTP/FTP. Если вы загрузились с дискеты, то выбираете HTTP/FTP. Конечно, можно выбрать и CD, если, например, диск есть, а возможности загрузиться с него нет. Такое бывает на некоторых старых материнских платах. В нашем случае выбираем CD-ROM.
Сначала установщик создаёт разделы на жёстком диске и форматирует их. Отметим, что при этом вмешательство пользователя не требуется; система сама исследует диск, создаёт разделы и форматирует их в соответствующей файловой системе. То есть пользователь полностью свободен от вопросов о размерах разделов и вовсе не должен знать, какая файловая система должна использоваться на разделе данных: ReiserFS или ext3.
Рис. 6. Просто нажмите OK.
Если вдруг потребуется переустановка маршрутизатора после какого-либо сбоя, то можно воспользоваться сохранением конфигурации на дискету. Если у вас уже есть готовая конфигурация на дискете, то можно указать её и пропустить все экраны установки. Для этого нужно выбрать “Restore/Восстановить” и немного подождать. Но мы устанавливаем всё “с нуля”, поэтому выбираем “Skip/Пропустить”.
Рис. 7. Запрос на восстановление конфигурации.
Настройка интерфейса LAN
IPCop может работать с нескольким интерфейсами в зависимости от сценария использования. “Зелёный” интерфейс присутствует во всех конфигурациях: к нему подключается локальный сегмент сети. Во время установки будет предложено выбрать подходящий драйвер для сетевой карты. В большинстве случаев достаточно указать “Probe/Определить самостоятельно”, после чего запустится система автоматического определения, которая обычно хорошо справляется с заданием (Рис. 9).
Рис. 8. Настройка сетевого адаптера.
Рис. 9. Удачная попытка определения.
Если всё же карта не определилась автоматически, придётся установить драйвер вручную, указав для этого “Select/Выбрать”.
Если имя, которое выдаст IPCop, не совпадает с названием карточки, не стоит беспокоиться: ядро Linux определяет карточки по чипу, а не по номеру модели. Именно поэтому карточки D-Link могут определиться как Realtek 8139.
После определения сетевого адаптера нужно назначить интерфейсу IP-адрес. Так как мы настраиваем интерфейс LAN, который подключается к домашней сети, то рекомендуем выбрать адрес из одного из зарезервированных диапазонов.
10.0.0.0 – 10.255.255.255 (10/8 prefix)
172.16.0.0 – 172.31.255.255 (172.16/12 prefix)
192.168.0.0 – 192.168.255.255 (192.168/16 prefix)
Подробнее о распределении диапазонов адресов можно узнать в RFC1918.
Мы остановились на наиболее часто используемом диапазоне 192.168.0.1 – 192.168.0.254, присвоив нашему маршрутизатору последний адрес диапазона (Рис. 10), при этом маска сети составила 255.255.255.0. Этой настройки достаточно для подключения к сети до 253 сетевых устройств.
Рис. 10. Установка IP-адеса IPCop.
На этом первая часть установки завершена (Рис. 11). Все дополнительные параметры можно подкорректировать позже. Сейчас система уже готова к загрузке.
Рис. 11. Установка завершена.
Достаточно часто случается так, что после установки забываются параметры устройства. Поэтому рекомендуем записать наиболее важную информацию, то есть IP-адрес и имя устройства. Это займёт не больше минуты, но в дальнейшем позволит сэкономить не только драгоценное время, но и нервы.
http://ipcop:81
https://ipcop:445
Отметим, что номера портов также очень важны, поскольку они не являются стандартными (81 и 445), хотя и не далеки от таковых HTTP (80) и HTTPS (443). Вместо имени можно использовать IP-адрес, в нашем случае 192.168.0.254.
Настройка основных параметров завершена, однако, нужно задать ещё ряд дополнительных: раскладку клавиатуры, если вы пользуетесь отличной от “QWERTY”, а также выбрать часовой пояс.
Далее будет предложено задать имя машины IPCop, по которому, как и по IP-адресу, можно будет обратиться к системе из Windows. Под этим именем маршрутизатор будет виден в сети. По умолчанию используется имя ipcop, оставим его. Домен можно также оставить по умолчанию – localdomain, если, конечно, ваша сеть не использует домены.
Напомним, что IPCop может работать с адаптерами ISDN. Мы таковой не использовали, поэтому выбрали “Disable ISDN” и продолжили.
Настройка интерфейса WAN и сервера DHCP
Ранее мы уже определили локальный “зелёный” интерфейс, сейчас нужно выбрать и настроить интерфейс WAN или “красный”. На Рис. 12 и 13 показано, как это сделать.
Рис. 12. Настройка сети.
Рис. 13. Наш вариант – “зелёный” и “красный” интерфейсы.
Если потребуется, можно также настроить “синий” и “оранжевый” интерфейсы для беспроводной сети и демилитаризованной зоны, соответственно. Конечно, это не значит, что сервер из локального сегмента нельзя “выставить” наружу без DMZ, однако вариант с DMZ является более безопасным.
После создания нужной конфигурации, вы попадаете обратно в раздел “Настройка сети/Network Configuration Menu”, где следует выбрать драйверы для сетевых карт и задать физическое распределение интерфейсов по картам. Внешний, или “красный” интерфейс также нуждается в настройке параметров IP, что и показано на следующем скриншоте (Рис. 14).
Рис. 14. “Красному” интерфейсу тоже следует задать IP-адрес.
При настройке порта WAN, нам нужно указать, какой тип соединения мы будем использовать. На Рис. 15 показаны доступные типы подключения WAN.
Рис. 15. Варианты подключений “красного” интерфейса (Интернет).
Чаще всего пользователи кабельных модемов выбирают DHCP, пользователи DSL – PPPoE, однако окончательно определить, какой тип соединения вам нужно использовать, подскажет только провайдер.
Пользователи, работающие с подключением со статическим адресом, должны указать адреса DNS-сервера и шлюза (Рис. 16 и 17).
Рис. 16. Настройки DNS и шлюза.
Рис. 17. Настройки DNS и шлюза.
IPCop имеет встроенный сервер DHCP, поэтому клиенты LAN могут автоматически получать IP-адреса, а также адреса шлюза и сервера DNS. Как показано на Рис. 18, в настройках DHCP можно задать начальный и конечный адреса диапазона, а также адреса серверов DNS и срок аренды адреса. Через web-интерфейс можно зарезервировать некоторые адреса для определённых ПК. Тогда указанные машины при каждом подключении будут использовать один и тот же адрес.
Рис. 18. Настройка сервера DHCP.
Завершение установки
На этом этапе мы уже почти закончили с установкой. Необходимо задать пароли для учётных записей “root” и “admin”. Учётная запись “root” в системе Linux имеет практически неограниченные привилегии. Это имя вам потребуется для входа в оболочку, например, для установки дополнительного ПО. Учётная запись “admin” обладает неограниченным доступом лишь через web-интерфейс. То есть “admin” может менять настройки сервера DHCP, перенаправления портов, подключений, обновлять IPCop, и, конечно, перезагружать его.
Можно поздравить: установка завершена! Теперь можно выключить систему и отсоединить привод CD-ROM, поскольку он больше не потребуется. Кстати, после этого система будет быстрее загружаться и потреблять меньше энергии. Однако не забудьте зайти в BIOS и изменить порядок загрузки, чтобы система загружалась с жёсткого диска.
Рис. 19. Первый экран IPCop.
При следующей загрузке системы вы увидите появившийся загрузчик Grub (Рис. 19), в котором можно выбрать варианты загрузки. Всего возможны четыре варианта. Обычная загрузка IPCop, IPCop SMP – для машин с мультипроцессорностью, в том числе для систем с технологией Hyper-Threading и двуядерных процессоров. Ещё предлагаются те же два варианта, но с поддержкой ACPI. Отметим, что выбор придётся сделать лишь единожды, в дальнейшем IPCop запомнит указанный вариант и будет автоматически загружать выбранную систему.
После загрузки появится экран входа (Рис. 20). С этого момента монитор и клавиатура больше не потребуются, и их можно смело отключить.
Рис. 20. Вход в систему.
Если вы решите отключить от компьютера все устройства ввода/вывода, рекомендуем всё же подключить встроенный динамик к материнской плате. Он позволит отслеживать состояние системы. Звуковой сигнал будет информировать о готовности системы к работе и о подключении/отключении Интернета. Ещё маленькое замечание: некоторые системы откажутся загружаться при отключённой клавиатуре. Тогда вам следует войти в BIOS и указать значение опции “Halt on” в “No Error” или “All But Keyboard”.
Настройка учётной записи DSL
С этого момента административный интерфейс маршрутизатора доступен через любой браузер по IP-адресу (или имени), заданному вами ранее. Не забывайте, что нужно указывать и порт (через двоеточие).
Первое, что нужно сделать пользователям DSL, – ответить на сообщение, которое появится сразу же после входа на интерфейс IPCop (Рис. 21).
Рис. 21. Ошибка из-за отсутствия учётных данных DSL.
Ошибка связана с отсутствием учётных данных DSL, которые указываются в разделе “Сеть/Network”, пункт “Dialup”. Учётные данные можно задать, если войти с правами admin или root. На Рис. 22 показаны все доступные параметры подключения PPPoE/DSL.
Рис. 22. Параметры DSL.
Сервер DHCP
Как упоминалось ранее, сервер DHCP позволяет назначить некоторым клиентам сети статические IP-адреса. Однако прежде чем это делать, рекомендуем ознакомиться с Рис. 23 и 24, на которых показаны левая и правая части окна web-интерфейса (мы специально разделили скриншот).
Рис. 23. Настройки сервера DHCP (левая часть).
Рис. 24. Настройки сервера DHCP (правая часть).
Фиксированные адреса присваиваются на основе MAC-адресов (физический адрес сетевой карты). Пользователи Windows для просмотра МАС-адресов могут воспользоваться командной строкой, выполнив “ipconfig /all”, либо посмотреть состояние подключения локальной сети, закладка “Support/Поддержка” (это справедливо для Windows XP).
Зная MAC-адрес, мы можем задать для него постоянный IP-адрес. Это делается в нижней части экрана. В нашем случае назначим адрес 192.168.0.168 (Рис. 25).
Рис. 25. Задание статического IP.
Для более простого поиска клиентов в дальнейшем можно занести дополнительную информацию в поле “Remark” (комментарий). Поля “Next Address”, “Filename” и “Root Path” необходимы для загрузки клиентов по сети. Новые клиенты добавляются в общий список (Рис. 26).
Рис. 26. Список клиентов с фиксированными IP-адресами.
Перенаправление портов и DDNS
Любой NAT-маршрутизатор, в том числе IPCop, отклоняет все запросы, приходящие из Интернета. Такой подход защищает компьютеры сети от атак из Интернета, но, в то же время, блокирует доступ и к внутренним серверам, например, Web или FTP. Естественно, IPCop, как и другие маршрутизаторы, может перенаправлять внешние запросы на машины локальной сети на основе портов (Port Forwarding).
Пример перенаправления портов показан на Рис. 27. Запросы, приходящие из Интернета на порт 80 маршрутизатора, будут перенаправлены на порт 80 локального компьютера с адресом 192.168.0.168. Поле “Remark”, как и ранее, может использоваться для комментариев. В нашем случае мы указали “Webserver”.
Рис. 27. Добавление правила перенаправления портов.
Для добавления правила в список и активации нужно нажать кнопку “Add/Добавить”.
Если вам нужно получать доступ к сети снаружи, то вы можете столкнуться ещё с одной проблемой – многие провайдеры назначают IP-адреса динамически, то есть при каждом следующем подключении ваш адрес будет изменяться. К счастью, для обхода этой проблемы можно воспользоваться службой DDNS, которая отслеживает изменение IP-адреса и позволяет по имени DNS всегда найти нужный адрес. Для того чтобы такое было возможным, в сети должен работать клиент, который отслеживает изменение внешнего адреса и сообщает об этом серверам Dynamic DNS. Как и многие другие маршрутизаторы, IPCop содержит встроенный клиент, который, несомненно, упростит работу с DDNS.
Рис. 28. Настройка клиента DDNS.
При настройке, вам будет предложено создать учётную запись DDNS. Отметим, что некоторые серверы предлагают эту услугу бесплатно, например http://www.dyndns.org/. После регистрации вы получаете имя и пароль, которые следует указать в соответствующих полях интерфейса IPCop (Рис. 28). Клиент IPCop Может работать через HTTP-прокси (флажок “Behind a Proxy”), как это требуют некоторые провайдеры. А галочка “Enable Wildcards” позволяет создавать суб-домены.
И, наконец, IPCop должен определять свой IP-адрес для DDNS. В большинстве случаев внешним считается адрес “красного” интерфейса, как показано на Рис. 29. Второй параметр интересен лишь при наличии дополнительного маршрутизатора между IPCop и Интернетом.
Рис. 29. Способ определения IP-адреса DDNS.
Прокси-сервер
Прокси-сервер, в основном, используется для кэширования Web-страниц. При использовании прокси браузер пользователя обращается не напрямую к сайту, а к прокси-серверу. А он уже отвечает за связь с сайтом. Но перед тем как обратиться к сайту, прокси-сервер просматривает свой кэш в поиске запрашиваемой страницы, а также появление новой версии страницы в Интернете. Тогда из Интернета запрашивается лишь обновлённая информация, остальная берётся из кэша. Это позволяет снизить нагрузку на используемый канал, увеличить скорость обработки запросов, и, соответственно, снизить трафик.
Существует два типа прокси. В классическом варианте прокси-сервер отвечает на определённом порту, обычно 8080 или 3128. Пользователи же должны соответствующим образом настроить свои браузеры. Второй вариант – прозрачный прокси, он перехватывает запросы соединений HTTP, не требуя настройки на клиентской стороне. В этом случае обход прокси невозможен, и этот вариант для многих компаний более предпочтителен, поскольку позволяет ограничить доступ на некоторые сайты.
IPCop поддерживает оба типа прокси, хотя по умолчанию прокси-сервер отключён. Для включения нужно перейти в раздел “Services -> Proxy”. Прокси-сервер можно включить отдельно для каждого из интерфейсов. На Рис. 30 показано, как можно активировать прокси-сервер для “зелёного” интерфейса (“Enabled on Green”). Если установлен беспроводной адаптер, для него также можно включить прокси (“Enabled on Blue”).
Рис. 30. Настройка прокси-сервера.
Флажок “Transparent” делает прокси-сервер прозрачным. В этом случае настройка порта в браузерах клиентов не требуется. Размер кэша прокси-сервера настраивается в разделе “Cache Management”, сам же кэш физически располагается на жёстком диске маршрутизатора. Мы ограничили размер кэша отметкой 40 Гбайт, максимальный размер кэшируемого файла – 32 Мбайт; минимальный размер не задали.
Совет. При выборе большого размера кэша, после нажатия на кнопку “Save/Сохранить”, web-интерфейс какое-то время не будет реагировать на ваши действия. Происходит выделение дискового пространства. Следует немного подождать.
В заключение отметим, что прокси позволяет ограничивать размер передаваемых файлов, что особенно полезно для тех, кто платит за каждый принятый мегабайт.
Мониторинг
Настроив IPCop, вы можете забыть о его существовании. Но если у вас есть желание, то можете контролировать состояние IPCop, благо, для этого есть множество экранов состояния, а также графиков использования ресурсов. На Рис. 31 – 34 показаны некоторые из них.
Рис. 31. Список сервисов.
Рис. 32. Время работы.
Рис. 33. Статус сети (отображает результаты команды ifconfig).
Рис. 34. Трафик “зелёного” интерфейса.
Журналирование
Хотя просмотр журнала гораздо скучнее диаграмм, он всё же может существенно помочь в деле выявления проблем. Для просмотра журналов нужно перейти по закладке “Logs/Журналы”.
Рис. 35. Запись об ошибке обновления DDNS.
Для любителей интерфейса командной строки IPCop может предоставить доступ непосредственно к оболочке (только под учётной записью “root”). Кроме того, такой доступ окажется полезным и в том случае, если по какой-то причине web-интерфейс станет недоступен. На Рис. 36 показана команда shutdown now -r.
Рис. 36. Завершение работы из командной строки
Конечно, командная строка позволяет и устанавливать дополнительное ПО. Но мы не рекомендуем изменять конфигурацию IPCop, если вы не особенно хорошо разбираетесь в Linux. Кроме того, дополнительное ПО может снизить защищённость маршрутизатора.
Заключение
Кроме всего перечисленного, маршрутизатор IPCop способен ещё на многое. Например, он содержит встроенную систему Snort для обнаружения вторжений, которую можно настроить на отслеживание всех интерфейсов. (Наш материал по Snort можете найти здесь).
Мы не рассмотрели управление полосой пропускания (“Traffic shaping”). Но вы тоже можете включить эту функцию через модуль WonderShaper. Можно задать разные приоритеты (высокий, средний или низкий) для различных сервисов или портов.
Приятно удивило наличие встроенного сервера IPsec VPN, который позволяет объединить две сети через Интернет, (как между двумя IPCop, так и между IPCop и другим IPsec-маршрутизатором). Технология VPN позволяет также подключить удалённый узел к вашей сети (любой клиент IPsec подключается к IPCop). Сервер IPsec может работать с общим ключом/паролем или с сертификатом X.509. К сожалению, документация IPCop по VPN недостаточно подробна. Поэтому можно рекомендовать ознакомиться с другими ресурсами, указанными на странице поддержки сайта IPcop.
Если ваше желание создать маршрутизатор собственными руками ещё не исчезло, вы можете использовать большое количество дистрибутивов. Вариант IPCop содержит ряд несомненных преимуществ: простота установки, широкие возможности, прекрасный дизайн пользовательского интерфейса.
Ссылки на другие обзоры Linux-маршрутизаторов/брандмауэров на сайте THG.ru.
- “Брандмауэр m0n0wall: надёжное программное решение”;
- “SmoothWall Express Firewall 2.0: межсетевой экран на базе Linux”;
- “Сервер ClarkConnect: надёжность Linux плюс дружественный интерфейс”.