FreeBSD+ipfw+Squid+SquidGuard+… часть 1

FreeBSD+ipfw+Squid+SquidGuard+… часть 1

Постановка задачи

Имеем:

  • соединение с Интернет по выделенной линии;
  • локальную сеть, объединяющую все компьютеры школы.

Требуется обеспечить доступ в Интернет с любого компьютера ЛС. При этом:

  • уменьшить трафик за счет кэширования данных;
  • существенно сократить возможности доступа к сайтам «неучебной» тематики;
  • предотвратить бесконтрольную загрузку учениками аудио/видео файлов и т.п.;
  • по возможности сократить число демонстрируемой при просмотре web-страниц рекламы.

При этом желательно:

  • обойтись без необходимости индивидуальных настроек (и вообще изменений конфигурации ПО) клиентских компьютеров;
  • затратить минимум средств.

После анализа имеющихся возможностей и доступной информации было принято решение строить систему на основе операционной системы FreeBSD. Тому есть несколько причин.

Видимо, с тем же успехом можно было бы собрать аналогичную систему и под Linux. Выбор между этой ОС и FreeBSD — в большей степени вопрос личных предпочтений.

  • ОС и необходимые программы распространяются как OpenSource.
  • FreeBSD (естественно, без XWindow — а зачем маршрутизатору графический интерфейс?) очень нетребовательна к характеристикам аппаратуры. На данный момент все работает на P-II/333 МГц/256 Мбайт, причем основная часть ресурсов потребляется на фильтрацию.
  • Большая гибкость настроек. Причем, с моей точки зрения, в unix-подобных ОС они гораздо более интуитивно понятны, чем в Windows.
  • Весьма толковые статьи на русском языке, посвященные маршрутизации, фильтрации и т.п. под FreeBSD, позволяют не «изобретать велосипед» от начала до конца.

Подготовка

Естественно, первым делом нам потребуется найти какой-нибудь подходящий компьютер. Или собрать. Из блоков, которые их хозяева третий год не могли собраться донести до свалки. Если это и преувеличение, то совсем небольшое. Для нашего агрегата критичны только две характеристики: объем оперативной памяти (ее должно быть никак не меньше 128 Мбайт) и жесткого диска (поскольку мы собираемся кэшировать загружаемые из Интернет данные, десяток-другой-третий свободных гигабайт не выглядит излишеством)

Еще одно отличие собираемого компьютера — установка двух сетевых карт. Одной из них он будет «смотреть» в локальную сеть, другой — в Интернет. (Вообще-то, можно попробовать обойтись и одной карточкой, но с учетом их нынешней стоимости, я даже не стал экспериментировать с такой конфигурацией.) Хотя обычно рекомендуют использовать две одинаковые карты, лично я предпочитаю ставить карты разных производителей. Это позволяет легко их отличать (и мне, и компьютеру ;)).

А вот видеокарта может быть самой примитивной. Что-нибудь в ISA-слот с 256 килобайтами (именно кило, это не опечатка) видеопамяти вполне подойдет. Звуковая карта, естественно, не нужна вообще. Без флоппи-дисковода обойдемся. А вот CD-привод надо подключить, хотя бы на время установки операционной системы.

Кроме того нам потребуется установочный диск (диски). Загрузить их образы можно с одного из официальных ftp-серверов. Для России это:

Поскольку наша цель не тестировать новейшие версии, а получить максимально стабильную систему с минимальными затратами, на любом из серверов нужно перейти в каталог /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-адрес.
Один комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *