Оглавление
Постановка задачи
Имеем:
- соединение с Интернет по выделенной линии;
- локальную сеть, объединяющую все компьютеры школы.
Требуется обеспечить доступ в Интернет с любого компьютера ЛС. При этом:
- уменьшить трафик за счет кэширования данных;
- существенно сократить возможности доступа к сайтам «неучебной» тематики;
- предотвратить бесконтрольную загрузку учениками аудио/видео файлов и т.п.;
- по возможности сократить число демонстрируемой при просмотре web-страниц рекламы.
При этом желательно:
- обойтись без необходимости индивидуальных настроек (и вообще изменений конфигурации ПО) клиентских компьютеров;
- затратить минимум средств.
После анализа имеющихся возможностей и доступной информации было принято решение строить систему на основе операционной системы FreeBSD. Тому есть несколько причин.
Видимо, с тем же успехом можно было бы собрать аналогичную систему и под Linux. Выбор между этой ОС и FreeBSD — в большей степени вопрос личных предпочтений.
- ОС и необходимые программы распространяются как OpenSource.
- FreeBSD (естественно, без XWindow — а зачем маршрутизатору графический интерфейс?) очень нетребовательна к характеристикам аппаратуры. На данный момент все работает на P-II/333 МГц/256 Мбайт, причем основная часть ресурсов потребляется на фильтрацию.
- Большая гибкость настроек. Причем, с моей точки зрения, в unix-подобных ОС они гораздо более интуитивно понятны, чем в Windows.
- Весьма толковые статьи на русском языке, посвященные маршрутизации, фильтрации и т.п. под FreeBSD, позволяют не «изобретать велосипед» от начала до конца.
Подготовка
Естественно, первым делом нам потребуется найти какой-нибудь подходящий компьютер. Или собрать. Из блоков, которые их хозяева третий год не могли собраться донести до свалки. Если это и преувеличение, то совсем небольшое. Для нашего агрегата критичны только две характеристики: объем оперативной памяти (ее должно быть никак не меньше 128 Мбайт) и жесткого диска (поскольку мы собираемся кэшировать загружаемые из Интернет данные, десяток-другой-третий свободных гигабайт не выглядит излишеством)
Еще одно отличие собираемого компьютера — установка двух сетевых карт. Одной из них он будет «смотреть» в локальную сеть, другой — в Интернет. (Вообще-то, можно попробовать обойтись и одной карточкой, но с учетом их нынешней стоимости, я даже не стал экспериментировать с такой конфигурацией.) Хотя обычно рекомендуют использовать две одинаковые карты, лично я предпочитаю ставить карты разных производителей. Это позволяет легко их отличать (и мне, и компьютеру ;)).
А вот видеокарта может быть самой примитивной. Что-нибудь в ISA-слот с 256 килобайтами (именно кило, это не опечатка) видеопамяти вполне подойдет. Звуковая карта, естественно, не нужна вообще. Без флоппи-дисковода обойдемся. А вот CD-привод надо подключить, хотя бы на время установки операционной системы.
Кроме того нам потребуется установочный диск (диски). Загрузить их образы можно с одного из официальных ftp-серверов. Для России это:
- ftp://ftp.ru.freebsd.org/
- ftp://ftp2.ru.freebsd.org/
- ftp://ftp3.ru.freebsd.org/
- ftp://ftp4.ru.freebsd.org/
Поскольку наша цель не тестировать новейшие версии, а получить максимально стабильную систему с минимальными затратами, на любом из серверов нужно перейти в каталог /pub/FreeBSD/releases/i386/ISO-IMAGES
Помимо универсальных дистрибутивов для PC-совместимых компьютеров (i386), существуют специальные для 64-разрядных процессоров — ia64 и amd64. Их можно найти на серверах в соответствующих каталогах.
В этом каталоге выберем подкаталог желаемой версии. На мой взгляд, логично выбирать самую новую (но «release», а не «beta»!). На момент написания этих заметок такой была 6.2-RELEASE. Необходимы образы disk1 и disk2, может пригодиться еще и doc (сборник дополнительной документации), а также минимальный загрузочный диск bootonly.
Загруженные образы нужно записать на CD-R (Внимание! Записывать нужно именно в режиме «образ диска»).
Подготовим также данные для настройки интерфейсов маршрутизатора:
- IP-адрес, маска, адрес первичного шлюза для внешнего интерфейса (предоставленные нам провайдером)
- IP-адрес и маска для внутреннего интерфейса (определяем сами). У меня в локальной сети используются адреса подсети 10.0.1.0/24 (это часть приватного диапазона класса А), поэтому адрес маршрутизатора — 10.0.1.1, а маска — 255.255.255.0
- Адреса DNS-серверов. Первичный и вторичный. Предоставляются нам провайдером. Мне еще нравится использовать сервера проекта OpenDNS: 208.67.222.222 и 208.67.220.220. Но мы, вообще-то, сможем поднять на нашем маршрутизаторе свой кэширующий DNS-сервер; в таком случае адресом DNS будет его внешний IP-адрес.
Не фанат Макинтоша, но сайт очень достойный. У Вас талант преподователя. Спасибо.