- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Спецвыпуск журнала «Хакер» #47, октябрь 2004 г. - Хакер
Шрифт:
Интервал:
Закладка:
Библиотека owner.so является весьма полезной. Она создана для того, чтобы запретить локальному пользователю обращаться к ресурсам сети. Часто хакеры совершают свои злодеяния с веба, и стандартная настройка брандмауэра не спасает. В случае если ты подвяжешь модуль owner, можно сделать так, чтобы процесс httpd не мог открывать порты, а тем более коннектиться на чужие машины. Это достигается всего двумя командами:
iptables –A OUTPUT -m owner -uid-owner 99 -p tcp -dport 80 -j ACCEPT
iptables -A OUTPUT -m owner -uid-owner 99 –j DROP
Модуль позволяет анализировать UID локального пользователя. Если он равен 99 (что соответствует логину nobody), правило запретит обращение к неизвестным портам. Второе правило запрещает любые действия под nobody. Оно должно располагаться ниже первого, потому что iptables анализирует рулесы по принципу от частного к общему.
Существует еще одна проблема, с которой ты можешь столкнуться. В случае если на твоем сервере прописаны другие пользователи и ты не хочешь, чтобы они прокачивали через машину фильмы и музыку, придется добавить несколько правил, которые аналогичны предыдущему. Пришло время урезать сетевые права пользователя по самые уши :). Необходимо помнить, что юзеру надо разрешить пропуск RELATED– и ESTABLISHED-пакетов, в противном случае он не сможет заливать файлы на локальный FTP.
iptables –A OUTPUT –p tcp –m state –state ! RELATED,ESTABLISHED –m owner –uid-owner 31337 –j DROP.
Этот рулес позволит фильтровать все пакеты, посланные юзером 31337. Помимо uid ты можешь ограничивать и gid, а также мутить доступ к произвольной сетевой команде. Если ты заинтересовался этим модулем, можешь ознакомиться со всеми его параметрами, набрав команду iptables –help –m owner.
Модификация пакетовНастало время поговорить о второй таблице iptables, которая называется nat. Эта чудесная таблица содержит три цепочки: PREROUTING, OUTPUT и POSTROUTING. Правила, расположенные в этих цепях, нужны для корректировки пакета. Например, ты хочешь, чтобы машина с IP-адресом 192.168.0.2 выходила в интернет напрямую. Для этого достаточно воспользоваться маскарадингом, добавив всего одно правило в таблицу POSTROUTING.
iptables –t nat –A POSTROUTING –s 192.68.0.2 –j MASQUERADE
Суть маскарадинга заключается в замене локального IP на адрес шлюза. Получается, что конечный узел фактически соединится не с локальной машиной, а с маршрутизатором. Последний будет форвардить все пришедшие пакеты узлу с адресом 192.168.0.2.
Вообще, использовать NAT в крупной сети не рекомендуется. Если какой-нибудь юзер стянет пару гигов с порносайта, администратор не определит виновника. Поэтому вместо NAT используется прокси-сервер. При переходе на прокси возникает одна проблема: админа ломает бегать по всем машинам и прописывать адрес проксика в настройки браузера. К счастью, не все так плохо: можно просто оформить редирект портов, а затем немного настроить конфиг squid. В этом случае клиент соединится с прокси-сервером, сам того не желая :). Для выполнения редиректа вписывай легкое правило в цепь PREROUTING.
iptables –t nat –A PREROUTING –s 192.168.0.0/24 –p tcp –dport 80 –j REDIRECT –to-port 3138
Рассмотрим ситуацию сложнее. В твоей локалке есть сервер, не имеющий внешнего адреса. А управлять им хочется из дома. С помощью iptables ты легко можешь намутить модификацию не только портов, но и IP-адресов. В результате небольшой подмены шлюз соединит твой домашний комп с локальным сервером. Вот правило, которое прописано на моем фаерволе. Оно связывает мой компьютер и терминальный сервер в локальной сети.
iptables –t nat –A PREROUTING –s 194.225.226.3 –p tcp –dport 3389 –j DNAT –to-destination 10.50.40.255:3389
Таким образом, если пакет направлен на порт 3389, шлюз заменит в нем адрес назначения на 10.50.40.225 и перенаправит данные на локальный сервер. С помощью этого механизма я без проблем могу рулить терминалкой из дома. Чего и тебе желаю :).
Хочешь большего? Ставь патчи!Несмотря на столь широкие возможности iptables не превосходит OpenBSD’шный pf по функциональности. Его конкурент умеет различать операционные системы по хитрому fingerprinting’у, защищать сервер от скана портов и т.д. Пришло время нанести ответный удар. Итак, встречаем новый патч для iptables под названием Patch-o-Matic. Набор POM создан для админов, которым мало стандартных возможностей фаервола. Он включает в себя набор модулей, позволяющих творить невероятные вещи. Правда, чтобы пропатчить брандмауэр, придется пройти через семь кругов ада. Сперва убедись, что твое ядро собрано из исходников. Сорцы ядра понадобятся инсталлятору POM, ведь все таблицы и цепочки создаются именно в кернеле. Если твоя система построена на RPM-пакетах, тебе придется перекомпилить ядрышко, предварительно стянув его с ftp.kernel.com (либо с диска). Не забудь включить в ядро поддержку ipfiltering и прочих сетевых вещей. После того как отмучаешься с кернелом, скачивай свежий iptables (http://netfilter.org/files/iptables-1.2.11.tar.bz2 ), а также прилагающийся к нему патч (http://netfilter.org/files/patch-o-matic-ng-20040621.tar.bz2 ). Теперь распаковывай фаервол и компилируй его. Когда ты сделаешь все эти шаги, наступит время для установки патча.
Внутри архива с POM содержится перловый инсталлятор. Для его корректной работы тебе понадобится библиотека termcap, поэтому убедись в наличии файла /etc/termcap. Запусти инсталлятор с параметром base. В интерактивном режиме выбери нужный патч из этой категории (проверенные базовые обновления). К каждому фиксу приводится развернутое описание с конкретным правилом. После базовой установки можно заинсталлить дополнительные патчи, запустив инсталлер с опцией extra. Процесс установки очень прост, ты с ним разберешься без дополнительной помощи. Сложности возникнут после инсталляции.
Итак, все фиксы установлены, и ты жаждешь применить их на практике. Перед тем как это сделать, тебе придется выполнить два финальных шага. Во-первых, зайди в каталог с исходниками ядра и запусти make menuconfig. Затем переходи в раздел ipfiltering и выбирай все патчи, которые были установлены скриптом runme. Сохрани все изменения и открой .config для редактирования. Если ты установил обновления TARPIT и OSF, убедись в наличии двух установочных директив и в случае их отсутствия внеси их самостоятельно.
CONFIG_IP_NF_TARGET_TARPIT=m
CONFIG_IP_NF_MATCH_OSF=m,
Во-вторых, заново перекомпилируй iptables и набери make install, чтобы все модули были скопированы в каталог /lib/iptables. Если все произошло без осложнений, можно сказать, что POM успешно установлен.
Практикуемся?Настало время для легкой практики после тяжелой установки. Рассмотрим модули из коллекции POM, которые действительно облегчат твою жизнь. Первая библиотека, которая мне очень понравилась, называется time.so. Она поможет активировать правило в определенное время. Это очень удобно, с помощью нее ты можешь либо открывать ночной интернет, либо ограничивать доступ к некоторым популярным ресурсам в час пик. Тебе достаточно добавить одно-единственное правило в цепь INPUT.
iptables -A INPUT -p tcp -dport 80 -m time -timestart 13:00 -timestop 15:00 -days Mon,Tue,Wed,Thu,Fri -j REJECT
Данный рулес запрещает обращаться к вебу в дневное время. Как я уже сказал, ты можешь юзать time.so в качестве ограничителя интернета. Для этого добавь правило в цепь POSTROUTING таблицы nat. Следующий модуль называется random.so. Он позволяет регулировать вероятность правила. В некоторых ситуациях библиотека просто незаменима. К тому же, ты можешь раскрутить своего шефа на апгрейд, показав ему великую нагрузку на сервер. Предварительно ты, конечно же, пропишешь хитрое правило, которое выставляет вероятность 33% на соединение с Web-сервером.
iptables -A INPUT -p tcp -dport 80 -m random -average 33 -j REJECT.
Но эти модули сделают работу удобной лишь в конкретных ситуациях. В повседневной практике ты можешь применять другие библиотеки. Например, mport.so и iprange.so. Эти дополнения – великая сила, ибо они позволяют гибко формировать целый диапазон портов и IP-адресов в одном правиле! Не веришь? Просто набери в консоли команду:
iptables -A INPUT -p tcp -m mport -dports 21,22,25,110,4000:5000 -j ACCEPT
и действие хитрого правила сразу вступит в силу. Теперь тебе не надо расписывать два десятка рулесов для каждого сервера. То же самое можно сказать и про IP-адреса. Разрешить соединения целому диапазону айпишников можно также одним правилом:
iptables –A INPUT –p tcp –m iprange –src-range 192.168.0.1-192.168.0.100 –j ACCEPT.
Соединение с пустотойИногда нужно имитировать соединение. Для этого админом пишется специальная программа, прослушивающая определенный порт. Теперь можно добиться результата с помощью модуля tarpit.so. Он нужен для открытия пустого порта. Причем порт будет светиться в выводе netstat’а после фактического соединения. Эта библиотека может быть полезна, если админ решается написать фаервольную утилиту против скана определенных портов, с последующим занесением в лог всех попыток соединения. Не буду тебя мучить, просто напишу правило.
iptables –A INPUT –p tcp –dport 31337 –j TARPIT
Фильтруй базарТеперь iptables умеет искать подстроку в пакете. В этом ему помогает модуль string.so. Например, ты захочешь намутить защиту от пересылки shell-кодов на твою машину либо просто не желаешь, чтобы юзер заливал бинарник на сервер. Если раньше приходилось патчить кернел и ставить дополнительный модуль, то сейчас достаточно вбить всего одно правило:

