Месяц: Июль 2010

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

Устанавливаем FreeBSD

При установке и первоначальной настройке операционной системы FreeBSD мы будем руководствоваться (в основном) рекомендациями Олега Островерха.

Итак, первое, что нужно сделать,— загрузить компьютер с CD (того, что зовется «disk1»). Для этого, скорее всего, придется временно внести изменения в настройки BIOS.

В процессе загрузки на экран выводится масса сообщений по поводу обнаруженных устройств, выполненных ОС действий и т.п. Впоследствии их можно будет просматривать с помощью команды dmesg

Завершается загрузка запуском программы sysinstall и появлением ее серого псевдографического экрана. (Вообще-то, в процессе работы мы чаще будет иметь дело с совсем не графическим интерфейсом командной строки…)

┌─────────────────────────sysinstall Main Menu──────────────────────────┐ 
│ Welcome to the FreeBSD installation and configuration tool.  Please   │
│ select one of the options below by using the arrow keys or typing the │
│ first character of the option name you're interested in.  Invoke an   │
│ option with [SPACE] or [ENTER].  To exit, use [TAB] to move to Exit.  │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │    Usage       Quick start - How to use this menu system          │ │
│ │   Standard     Begin a standard installation (recommended)        │ │
│ │   Express      Begin a quick installation (for experts)           │ │
│ │    Custom      Begin a custom installation (for experts)          │ │
│ │   Configure    Do post-install configuration of FreeBSD           │ │
│ │   Doc          Installation instructions, README, etc.            │ │
│ │   Keymap       Select keyboard type                               │ │
│ │   Options      View/Set various installation options              │ │
│ │   Fixit        Repair mode with CDROM/DVD/floppy or start shell   │ │
│ │   Upgrade      Upgrade an existing system                         │ │
│ │   Load Config  Load default install configuration                 │ │
│ │   Index        Glossary of functions                              │ │
│ └───────────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────┤
│                        [ Select ]    X Exit Install                   │
└──────────────────[ Press F1 for Installation Guide ]──────────────────┘

Нам нужна настройка системы на вполне определенный набор задач, поэтому выбираем вариант установки Custom — по выбору.

Прежде чем что-то устанавливать на жесткий диск, его необходимо разметить. Выберем строку «3 Partition»— распределение дискового пространства для FreeBSD. Откроется окно FDISK Partition Editor. Поскольку на компьютере у нас никаких операционных систем, кроме FreeBSD, не будет, выделяем под нее весь диск (Use Entire Disk). Для этого нажимаем клавишу A. Видим, что в списке частей-слайсов появилась новая, занимающая большинство секторов. Ее имя будет выглядеть примерно как ad0s1 (Ata Disk 0 Slice 1). Завершаем этот этап разметки нажатием клавиши Q (Quit).

Теперь нам предлагают выбрать менеджер загрузки (boot manager). У нас на диске будет единственная ОС, значит менеджер ни к чему. Клавишами-стрелками перемещаемся к варианту Standart и отмечаем его, нажав пробел. Теперь добираемся до [OK] и жмем Enter.

Мы снова в меню выбора параметров установки по выбору. Строка «4 Label» отправит нас в редактор меток (Disklabel Editor), в котором мы должны будем выделить разделы и указать их файловые системы. Мы создадим 4 раздела: корневой (root), подкачки (swap), /usr и /var. Именно в таком порядке, как они здесь перечислены.

Последовательность действий при создании раздела:

  1. Нажимаем клавишу C (Create).
  2. В появившемся запросе вводим размер раздела (число и после него без пробела букву M — мегабайт, например, 250M) и жмем клавишу Enter.
  3. В следующем запросе выбираем тип раздела. Для всех обычных разделов нужно указывать FS A file system и только для раздела подкачки — особый тип Swap A swap partition. Вновь жмем Enter.
  4. Для всех разделов, кроме swap, нужно ответить еще на один запрос — о точке монтирования. Для тех, кто ранее не пользовался unix-подобными ОС поясню, что здесь все файловые системы (мало того, все устройства, которые, с точки зрения Unix/Linux, также являются файлами) объединяются («монтируются») в одно единое дерево каталогов.

Корневой раздел монтируется самым первым на этапе загрузки и содержит все необходимое для загрузки в однопользовательском режиме, а также чтобы подготовить систему к загрузке в многопользовательский режим. Он также содержит инструментальные средства для ремонта поврежденной системы и для восстановления потерянных файлов из резервных копий. В нем же находятся точки монтирования всех других файловых систем. Размер этого раздела может быть достаточно небольшим (100-200 Мбайт). Точка монтирования — /.

Размер раздела подкачки рекомендуется создавать раза в 2-3 больше имеющегося объема оперативной памяти. Однако, с учетом «любви» прокси-сервера Squid к этому разделу, выставим его равным 1 Гбайту (1024M).

Раздел /var содержит файлы, которые постоянно меняются; логи и другие административные файлы. Многие из этих файлов интенсивно читаются и записываются в процессе ежедневной работы FreeBSD. Рекомендуемый разными источниками размер колеблется от 50 до 250 Мбайт. Не будем экономить. Установим 250. Точка монтирования — /var.

У меня сейчас в корневом разделе занято 68 Мбайт, в разделе /usr 2,4 Гбайт (но из-за кэша Squid и других рабочих файлов это значение может здорово вырасти; первоначально установив маленький диск, я «попался»; пришлось для восстановления работоспособности системы срочно ставить второй диск и переносить на него /usr), в /var — 4,5 Мбайт (может в процессе работы увеличиваться, но не сильно). Кстати, посмотреть это можно в любой момент командой df -h.

Большая часть файлов, включая программы, которые мы будем устанавливать, хранится в каталоге /usr. Соответственно, разделу /usr должна достаться бОльшая часть дискового пространства. Чем больше, тем лучше (там ведь, помимо прочего, будет находиться кэш прокси-сервера). Так что отдаем все, что осталось. Точка монтирования, что очевидно,— /usr.

Разметку разделов заканчиваем нажатием клавиши Q.

Переходим к пункту «5 Distributions Select distribution(s) to extract»— выбору устанавливаемых программ. Задача у нас не вполне стандартная, поэтому далее нам придется выбрать «B Custom Specify your own distribution set»— собственный набор. На следующем экране будем отмечать (нажимая Пробел) нужные наборы программ:

  • base Binary base distribution (required)
  • compat4x FreeBSD 4.x binary compatibility
  • man System manual pages — recommended
  • ports The FreeBSD Ports collection
  • perl The Perl distribution
  • src Sources for everything (здесь появится дополнительный экран, на котором нужно будет отметить единственный пункт — «sys /usr/src/sys (FreeBSD kernel)»)

Возвращаемся к выбору параметров установки (<<< X Exit Exit this menu), затем еще дважды таким же образом переходим к предыдущему меню. Мы вновь оказались в окне «Choose Custom Installation Options». Проверим, откуда будет происходить установка: «6 Media Choose the installation media type» в открывшемся окне убеждаемся, что выделен пункт 1 (CD/DVD), и нажимаем Enter.

Теперь мы готовы запустить установку. Выбираем пункт «7 Commit Perform any pending Partition/Label/Extract actions», в появившемся окне подтверждаем серьезность наших намерений… Ждем окончания установки (минут 10).

По окончании установки появится окно, предлагающее перейти в меню конфигурирования системы. Откажемся от этого предложения, выбрав вариант No. Выйдем из программы sysinstall, выбрав «X Exit Exit this menu», затем «X Exit Install» и подтвердив это действие (Yes). После этого компьютер перезагрузится, после чего можно будет приступать к настройке операционной системы.

Внимание: теперь загрузка должна будет производиться с жесткого диска, так что нужно изменить настройки BIOS Setup (или хотя бы на первый раз просто вынуть CD из привода).

Опубликовано Михаил К в FreeBSD, 0 комментариев

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-адрес.
Опубликовано Михаил К в FreeBSD, 1 комментарий

Каталоги FreeBSD

Дерево каталогов FreeBSD

Каталог Описание
/ Корневой каталог файловой системы.
/bin/ Основные утилиты, необходимые для работы как в однопользовательском, так и в
многопользовательском режимах.
/boot/ Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы.
/boot/defaults/ Конфигурационные файлы с настройками по умолчанир, используемые в процессе загрузки операционной системы.
/dev/ Файлы устройств.
/etc/ Основные конфигурационные файлы системы и скрипты.
/etc/defaults/ Основные конфигурационные файлы системы с настройками по умолчанию.
/etc/mail/ Конфигурационные файлы для систем обработки почты.
/etc/namedb/ Конфигурационные файлы для утилиты named.
/etc/periodic/ Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно.
/etc/ppp/ Конфигурационные файлы для утилиты ppp.
/mnt/ Пустой каталог, часто используемый системными администраторами как временная точка монтирования.
/proc/ Виртуальная файловая система, отображарщая текущие процессы.
/root/ Домашний каталог пользователя root.
/sbin/ Системные утилиты и утилиты администрирования, необходимые для работы как в
однопользовательском, так и в многопользовательском режимах.
/stand/ Программы, необходимые для работы в автономном режиме (например, при установке системы).
/tmp/ Временный каталог (часто монтируется как mfs; обычно
содержимое этого каталога теряется во время перезагрузки системы).
/usr/ Большинство пользовательских утилит и приложений.
/usr/bin/ Пользовательские утилиты и приложения общего назначения.
/usr/include/ Стандартные заголовочные файлы для языка C.
/usr/lib/ Файлы стандартных библиотек.
/usr/libdata/ Файлы данных для различных утилит.
/usr/libexec/ Системные даемоны и утилиты (выполняемые другими программами).
/usr/local/ Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри /usr/local иерархия
каталогов должна следовать hier(7) для /usr. Исклрчение составляет каталог man, который расположен непосредственно в /usr/local, а не в /usr/local/share, и документация портов, которая расположена в share/doc/port.
/usr/obj/ Архитектурно-зависимые файлы и каталоги, образурщиеся в процессе сборки системы из исходных текстов в /usr/src.
/usr/ports/ Коллекция портов FreeBSD (опционально).
/usr/sbin/ Системные утилиты и утилиты администрирования (исполняемые пользователем).
/usr/share/ Архитектурно-независимые файлы.
/usr/src/ Исходные тексты BSD и/или программ.
/usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно).
/var/ Файлы журналов общего назначения, временные, перемещаемые файлы и файлы
очередей.
/var/log/ Различные файлы системных журналов.
/var/mail/ Почтовые ящики пользователей.
/var/spool/ Файлы очередей печати, почты, и пр.
/var/tmp/ Временные файлы, которые необходимо сохранять между перезагрузками операционной системы.
/var/yp/ Карты (maps) NIS.
Опубликовано Михаил К в FreeBSD, 0 комментариев

iPhone, антенна, «палки»…

Вряд ли хоть кто-то, интересующийся электронными новинками, не слышал историю про «особый способ» держать новый iPhone 4G. Или, точнее, о пропадании связи, если держать его так, как обычно держат обычные мобильники.

Сегодня на сайте Apple появилось специальное письмо по этому поводу — Letter from Apple Regarding iPhone 4. Если коротко, основные положения его такие:

  1. У любого телефона в той или иной мере проявляется эффект ослабления сигнала из-за руки человека [это действительно так, против физики не попрешь — человеческое тело очень даже неплохой проводник, и его близость неизбежно снижает эффективность антенны… вопрос в том, насколько сильно]
  2. Проведенные Apple исследования показали, что качество приема iPhone G4 не только не хуже, но даже лучше, чем у предыдущих моделей [тут остается только поверить на слово]
  3. Как выяснилось, Apple использовал неудачную формулу для преобразования реальной мощности сигнала в «палки» на индикаторе. Поэтому «полный» сигнал показывается и в тех случаях, когда он, на самом деле, довольно слабый, а при дальнейшем ослаблении почти сразу показания падают до нуля. [Трудно сказать, насколько это правда, но… обещано, что в ближайшее время будет опубликован патч, исправляющий работу индикатора в соответствии с рекомендациями AT&T, причем не только для 4G, но и 3GS, и 3G]
  4. «if you are not fully satisfied, you can return your undamaged iPhone to any Apple Retail Store or the online Apple Store within 30 days of purchase for a full refund.» То бишь, те, кто все же остался недоволен, могут в течение 30 дней после покупки вернуть гаджет, получив назад его полну стоимость.

Что ж, посмотрим, будут ли массовые возвраты… 😉

Опубликовано Михаил К в Новости IT, 0 комментариев