Хакер №024. Спецвыпуск
ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-1
Добро пожаловать в ядерный реактор! Наверное, так следует поприветствовать начинающего монстра компьютерного мира, к которым ты себя причисляешь. Причем тут ядерный реактор?! Да ни при чем! А вот на ядре aka kernel стоит остановиться.
ЧТО К ЧЕМУ
Ты уже в курсе, что, для того чтобы ты смог защитить свою раздолбанную систему или сеть от нашествия всяких гнусных парней, нужно поставить firewall. Файрволлы бывают разных типов, в том числе и такого весьма забавного, как пакетные фильтры. У тебя есть возможность прочесть про них, но... там не рассказано о некоторых заморочках, с которыми тебе придется столкнуться. Перед применением пакетного фильтра тебе придется повозиться с самым сердцем твоей операционной системы - с ядром.
Я тебе не буду рассказывать про такую шнягу, как Windows. Это все пошло и неинтересно. Да, там можно быстро поставить программку фильтра трафика, только вот никто тебе не даст никакой гарантии, что она сама окажется без дырок. И никто тебе не даст гарантии, что эта фигня будет работать именно так, как задумал ты сам.
В операционной системы Linux все совсем по-другому. Подобно многим настоящим nix'ам, внутри Linux содержится система защиты. Тебе остается только активировать ее, настроить и задать правила фильтрации. После всех этих извращений ни одна сволочь к тебе не прорвется.
ПРОГУЛКА ПО ЯДРАМ
Как и любая нормальная система, Linux развивалась от версии к версии. Если быть откровенным, то самые первые версии ОС были очень слабы и неразвиты и представляли собой лишь полигон, на котором талантливые кодеры проводили свои эксперименты. Лишь с версии 2.0 Linux полноценно пошел в массы.
Номер версии ядра состоит из трех чисел в виде х.y.z (главный номер версии, вторичный номер версии, номер релиза). Главный номер, по сути, является номером поколения ядра. Вторичный номер (номер ветки) означает смену технологии внутри поколения, ну а номер релиза говорит об очередном шаге в улучшении и развитии ядра данного поколения. Чем выше номер релиза, тем лучше ядро данной ветки.
В литературе и в Сети говорят о ветках 2.0.х, 2.2.х и 2.4.х. Ты, наверное, заметил, что вторичный номер у них четный. Дело в том, что ядра с нечетными вторичными номерами являются экспериментальными и очень часто неработоспособны - они предназначены только для разработчиков ядер или для экстремалов.
Про ядра 2.0.х я говорить не буду. Компьютеры под управлениям этих ядрышек практически не встречаются и интереса не представляют. В настоящее время на серверах крутятся ядра веток 2.2.х и 2.4.х. Пакетные фильтры, встроенные в них, очень похожи (впрочем, ничего удивительного - iptables, встроенный в 2.4.х, является потомком ipchains из 2.2.х).
НАЧИНАЕМ КОВЫРЯНИЕ В МОЗГАХ
Прежде чем ты сможешь воспользоваться мощной защитой пакетного фильтра, тебе ее надо предварительно включить в состав твоего ядра. Для этого тебе нужны:
а) исходные тексты ядра Linux;
б) компилятор gcc;
в) текстовый редактор.
Способ установки исходных текстов ядра зависит от того, какой дистрибутив у тебя установлен. Если у тебя Slackware, Gentoo, LFS или еще что-то в этом роде, то мне нефига тут перед тобой распинаться. Ты и сам знаешь, что и как устанавливается (иначе как ты воткнул себе этот дистриб?).
Содержание Вперед на стр. 024-038-2