Денис Колисниченко - Linux-сервер своими руками
- Название:Linux-сервер своими руками
- Автор:
- Жанр:
- Издательство:Наука и Техника
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94387-063-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Денис Колисниченко - Linux-сервер своими руками краткое содержание
В книге подробно рассмотрены настройки сетевых сервисов, позволяющих создать сервер требуемой конфигурации и функциональности на основе ОС Linux. Вы сможете настроить сервер любого типа: от сервера локальной сети до Интернет-сервера и сервера удаленного доступа. Детальна описано администрирование Linux.
Изложение материала построено на основе дистрибутивов Red Hat и Mandrake. Много уникальной информации: запуск Windows-игр под Linux и создание Linux-сервера для игрового зала, настройка антивирусов Dr. Web и AVP под Linux, программа учета трафика MRTG, система защиты и обнаружения атак LIDS, а также многое другое. Особое внимание уделено безопасности Linux-серверов. Достаточно подробно описана сама ОС Linux и приведен справочник ее команд. Прочитав книгу, вы станете обладателями знаний по настройке и компилированию ядра, созданию собственных rpm-пакетов, командному интерпретатору bash, использованию массивов RAID. Вы узнаете внутренний мир Linux. Книга подойдет как для профессиональных, так и для начинающих администраторов, поскольку изложение материала начинается с установки ОС Linux, а в первой главе дано описание основных сетевых технологий и протоколов (Курс Молодого Администратора).
Все приведенные в книге листинги проверены на практике и размещены на прилагаемом CD. Помимо этого на нем содержится много справочной информации (HOWTO, RFC), a также статей, посвященных Linux. Размещен богатый набор вспомогательных утилит и программного обеспечения для сервера (Apache, MySQL, MRTG и др.).
Linux-сервер своими руками - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Для поддержки IPChains вам необходимо перекомпилировать ядро. О том, как это сделать рассказано в гл. 18. При этом вам нужно включить опции ядра IP:firewalling и IP:firewall packet. Я также рекомендую включить опции IP: masquerading и IP: always defragment. Скорее всего, они также вам понадобятся. Также вам следует включить IP-Forwarding (если вы еще это не сделали) командой:
echo "1" > /proc/sys/net/ipv4/ip_forward
Если же вам нужна поддержка динамических IP-адресов (например, для DHCP — см. гл. 8), включите ее с помощью команды:
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
14.2. Настройка IPChains
Настройку IPChains лучше всего рассматривать на практических примерах. Но прежде, чем это сделать попробуем разобраться, как ядро фильтрует пакеты.
Ядро стартует с тремя списками правил: input, forward, output. Эти правила называются firewall-цепочками или просто цепочками. Когда вы получаете новый пакет, ядро использует цепочку input (входная цепочка). Перед этим пакет проверяется: не был ли он поврежден при пересылке? Поврежденные пакеты отвергаются. Если с пакетом все в порядке, пакет проходит проверку целостности: не запутает ли пакет правила фильтрации? Если пакет не проходит проверку целостности, он отвергается.
Если фильтр пропускает пакет, то ядро решает, куда его направить дальше. Это называется маршрутизацией. Если пакет предназначен для другой машины, то пакет должен пройти через цепочку forward. Если пакет проходит через фильтр forward, то удаленная машина получит этот пакет. Что делать с этим пакетом дальше, будет решать уже получившая его машина и для нас это не представляет интереса.
Если пакет предназначен для нашей машины, пакетный фильтр определяет, на какой интерфейс его следует переслать. Пакет, предназначенный для интерфейса lо (обратная петля), сначала проходит выходную цепочку, а потом попадает во входную цепочку интерфейса lо. Если пакет создан локальным процессом, который запущен на бастионе, он попадает в цепочку перенаправления (forward). Цепочка перенаправления применяется ко всем пакетам, проходящим сквозь бастион на другие машины.
Прежде чем пакет выйдет из сетевого интерфейса, он должен пройти цепочку output.
Цепочка— это список правил. Каждое правило можно сформулировать примерно так: «если заголовок пакета удовлетворяет такому-то условию, то поступить с ним так-то». Если первое правило не применимо к этому пакету, то рассматривается следующее правило в цепочке. Если ни одно правило не применимо к пакету, пакет, скорее всего, будет отвергнут. Если какой-нибудь пакет отвергается, в журнале syslog появляется соответствующее сообщение.
Программу ipchains можно вызывать со множеством параметров. Одни параметры создают новые цепочки, другие добавляют правила в цепочки (см. табл. 14.1).
Параметры программы ipchains Таблица 14.1
Параметр | Описание |
---|---|
-N | Создать новую цепочку |
-X | Удалить пустую цепочку |
-P | Изменить стратегию для пустой цепочки |
-L | Вывести правила цепочки |
-F | Удалить все правила из цепочки |
-Z | Обнулить счетчики пакетов и байтов во всех правилах цепочки |
-А | Добавить новое правило к цепочке |
-I | Вставить новое правило в определенную позицию |
-R | Заменить правило |
-D | Удалить правило, удовлетворяющее какому-нибудь условию |
Один из примеров использования IPChains мы уже рассматривали в главе 8. Напомню, в той главе нужно было организовать маршрутизацию средствами IPChains. При этом использовались следующие команды:
ipchains –P forward DENY
ipchains –A forward –s 192.168.1.0/24 –d 192.168.2.0/24 –j ACCEPT
ipchains –A forward –s 192.168.2.0/24 –d 192.168.1.0/24 –j ACCEPT
Первая команда изменяет стратегию для пустой цепочки forward, которая используется именно для маршрутизации. Вторая команда перенаправляет пакеты из сети 192.168.1.0 в сеть 192.168.2.0. Опция –s означает источник (source), а опция –d означает назначение (destination). Опция –j определяет действие. В том случае, если вы должны принять пакет, используется параметр ACCEPT. Если вам нужно отбросить пакет, используйте параметр DENY.
Адреса источника и пункта назначения можно указывать четырьмя способами:
1. Просто указать IP-адрес, например, 192.168.1.1.
2. Указать имя компьютера, например, www.host.ru.
3. Указать целую группу IP-адресов, например, 192.168.1.0/24.
4. Указать группу адресов и маску сети, например, 192.168.1.0/255.255.255.0.
Для формирования правил также используются опции, представленные в табл. 14.2.
Все эти опции могут иметь предшествующий параметру символ «!». Как и в некоторых языках программирования, этот символ обозначает отрицание. Например, правило –s! localhost определяет любой пакет, не исходящий из компьютера localhost.
Опции формирования правил Таблица 14.2
Параметр | Описание |
---|---|
-s | Источник (IP-адрес или URL-адрес) |
-d | Назначение (IP-адрес или URL-адрес) |
-i | Интерфейс |
-p | Протокол |
Указать протокол можно с помощью опции –р. Например, для указания протокола TCP служит правило –р TCP. Иногда нужно указать порт соединения TCP или UDP. Это можно сделать так: IP-addr/ports_range.
Диапазон портов определяется параметром ports_range. Диапазон указывается через двоеточие, например, 0:1023. Нижний предел диапазона равен О, а верхний — 1023. Если нижний предел не задан, принимается значение по умолчанию — 0. Если не задан верхний предел, считается, что он равен 65535, то есть максимальному числу поддерживаемых портов.
Указать интерфейс можно с помощью опции –i. Например, –i ppp0. Если у вас несколько интерфейсов, названия которых начинаются символами ррр, указать их всех вы можете опцией –i ppp+. Под интерфейсом понимается физическое устройство, на (из) который приходит (уходит) пакет. Для того, чтобы просмотреть список доступных в текущий момент интерфейсов, используйте команду ifconfig.
Теперь рассмотрим пару полезных примеров. Возможно, вы захотите запретить использование telnet извне. Это можно сделать с помощью команды:
ipchains –A prov –p tcp –destination-port 23 –j REJECT
Через цепочку prov проходит весь трафик, идущий от провайдера. Ее можно создать командами:
ipchains –N prov
ipchains –A input –i ppp0 –j prov
Предполагается, что вы подключаетесь к провайдеру через интерфейс ррр0. Скорее всего, в вашей сети найдутся несколько машин, которые работают под управлением ОС Windows и имеют общие ресурсы. Возможно, вы даже настроили протокол SMB на сервере. Чтобы протокол 8MB не был заметен извне, что очень нежелательно, воспользуйтесь следующими командами:
ipchains –A prov –p tcp –destination-port 137 –j REJECT
ipchains –A prov –p udp –destination-port 137 –j REJECT
ipchains –A prov –p tcp –destination-port 138 –j REJECT
ipchains –A prov –p udp –destination-port 138 –j REJECT
Интервал:
Закладка: