Денис Колисниченко - 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 -A net2-net1 -р tcp i -y -s 192.84.219.128 smtp -j ACCEPT
ipchains -A net2-net1 -р udp -s 192.84.219.129 domain -j ACCEPT
ipchains -A net2-net1 -р tcp i -y -s 192.84.219.129 domain -j ACCEPT
ipchains -A net2-net1 -р tcp i -y -s 192.84.218.130 www -j ACCEPT
ipchains -A net2-net1 -р tcp i -y -s 192.84.218.130 rsync -j ACCEPT
ipchains -A net2-net1 -р icmp -j icmp
ipchains -A net2-inet -j DENY -l
Правила для цепочки net2-inet выглядят так:
ipchains -A net2-inet -p tcp -s 192.84.219.128 smtp -j ACCEPT
ipchains -A net2-inet -p udp -s 192.84.219.129 domain -j ACCEPT
ipchains -A net2-inet -p tcp -s 192.84.219.129 domain -j ACCEPT
ipchains -A net2-inet -p tcp ! -y -s 192.84.218.130 www -j ACCEPT
ipchains –A net2-inet –p icmp
ipchains –A net2-inet –j DENY
Эти правила разрешают отправлять почту во внешнюю сеть, принимать почту из внешней и внутренней сети, получать почту только пользователям внутренней сети. Сервер DNS имеет право посылать запросы во внешнюю сеть, принимать запросы от внутренней и внешней сетей, а также от шлюза. Сервер WWW принимает запросы от пользователей внутренней и внешней сетей. Доступ rsync разрешен пользователям внутренней сети.
Следующая цепочка — это inet-net1. В этом случае мы не разрешаем никакого доступа из внешней сети к машинам внутренней сети.
ipchains –A inet-net1 –j REJECT
Основные правила уже определены, осталось установить правила для цепочки input шлюза. Создадим три цепочки input для каждого возможного адресата:
ipchains –N inet-if
ipchains –N net2-if
ipchains –N net1-if
По первой цепочке будут приходить пакеты от внешней сети, а по второй и третьей — от внутренних сетей. Правила для этих цепочек выглядят так:
ipchains –A input –d 192.84.219.1 –j inet-if
ipchains –A input –d 192.84.219.250 –j net2-if
ipchains –A input –d 192.168.1.250 –j net1-if
Непосредственно для цепочки inet-if определим такие правила:
ipchains –A inet-if –i ! ppp0 –j DENY –1
ipchains –A inet-if –p TCP –dport 61000:65096 –j ACCEPT
ipchains –A inet-if –p UDP –dport 61000:65096 –j accept
ipchains –A inet-if –p ICMP —icmp-type pong –j ACCEPT
ipchains –A inet-if –j icmp
ipchains –A inet-if –j DENY
Данные правила разрешают пропинговать любую сеть, использовать программу traceroute для любой сети, доступ к серверу имен, а также получать ICMP-сообщения об ошибках.
Цепочку net2-if определим следующим образом:
ipchains –A net2-if –i ! eth0 –j DENY
ipchains –A net2-if –p TCP ! –y –s 192.168.2.99 53 –j ACCEPT
ipchains –A net2-if –p UDP –s 192.168.2.99 53 –j ACCEPT
ipchains –A net2-if –p ICMP –icmp-type pong –j ACCEPT
ipchains –A net2-if - j icmp
ipchains –A net2-if –j DENY –l
Правила этой цепочки разрешают те же операции, что и для цепочки inet-if, только в этом случае вместо интерфейса ррр0 используется eth0.
Входящая цепочка net1-if определяется так:
ipchains –A net1-if –i ! eth1 –j DENY
ipchains –A net1-if –p ICMP –icmp-type ping –j ACCEPT
ipchains –A net1-if –p ICMP –icmp-type pong –j ACCEPT
ipchains –A net1-if –j icmp ipchains –A net1-if –j DENY –l
Разрешается доступ к серверам WWW, SMTP, POP3. Можно использовать программы ping, traceroute, ssh.
Теперь осталось удалить правила блокировки:
ipchains –D input l
ipchains –D forward l
ipchains –D output l
В начале этого пункта я обещал объяснить настройку ICQ. Предположим, что сервер SQUID у вас установлен на шлюзе, то есть на той машине, которая обеспечивает пакетную фильтрацию (о прокси-сервере SQUID читайте в следующей главе). В файле конфигурации SQUID разрешите порт 5190. Именно этот порт используется новыми клиентами ICQ.
acl SSL_ports port 443 563 5190
Затем установите сервер socks. Можно, конечно, настроить ICQ, используя маскарадинг, но данный метод, как мне кажется, лучше. В качестве сервера socks я рекомендую использовать сервер dame-socks. В файле конфигурации /etc/socks.conf установите внутренний и внешний адреса шлюза:
internal: 192.168.1.1 port = 1080
external: 111.1.1.1
Затем определите узлы, которые могут использовать socks:
client pass {
from: 192.168.0.0/16 to: 0.0.0.0/0
}
Осталось определить, кто может отвечать клиентам:
pass {
from: 0.0.0.0/0 to: 192.168.0.0/16
command: bindreply udpreply
log: connect error
}
14.5. IPTables
Пакетный фильтр IPChains использовался в ядрах Linux до версии 2.4. В новых версиях ядра (начиная с 2.4) вместо IPChains используется пакетный фильтр IPTables. Практически все основные опции остаются прежними. Только, естественно, в командной строке вместо ipchains следует писать iptables.
В этом пункте будут рассмотрены некоторые новые опции ядра, связанные непосредственно с IPTables. Эти опции для большей наглядности я представил в табл. 14.3. Если вы еще не знакомы с компилированием ядра, то эта информация вам пригодится после прочтения гл. 18.
Опции ядра Таблица 14.3
Опция | Описание |
---|---|
CONFIG_PACKET | Позволяет использовать программы, которые работают непосредственно с сетевым устройством. Примером такой программы может послужить tcpdump |
CONFIG_NETFILTER | Включите данную опцию, если вы собираетесь использовать ваш компьютер в качестве шлюза |
CONFIG_IP_NF_CONNTRACK | Позволяет отслеживать соединения. Данная опция необходима для работы функций NAT или IP-маскарадинга. В случае со шлюзом включите данную опцию |
CONFIG_IP_NF_FTP | Прослеживает FTP-соединения. Включите эту опцию, если на вашем компьютере установлен FTP-сервер. Из-за большого количества FTP-запросов модуль IP_NF_CONNTRACK не в состоянии проследить все FTP-соединения, поэтому в помощь ему добавлена опция CONFIG_IP_NF_FTP |
CONFIG_IP_NF_IPTABLES | Необходимая для работы IPTables опция. Без ее включения вы не сможете использовать IPTables |
CONFIG_IP_NF_MATCH_LIMIT | Необязательная опция. Позволяет ограничить количество пакетов передаваемых/принимаемых за промежуток времени |
CONFIG_IP_NF_MATCH_MAC | Позволяет блокировать пакеты, используя МАС-адрес (а не IP-адрес) |
Все остальные опции, связанные с IPTables, содержат в своем названии слово MATCH, например, CONFIG_IP_NF_MATCH_MARK. Эти опции разрешают выполнять определенные действия над пакетами. Действия над пакетами, как вы уже знаете, задаются с помощью опции -j. Использование этой опции аналогично как для IPChains, так и для IPTables. Назначение всех возможных действий вы можете узнать из документации по IPTables. Ранее, на примере IPChains, мы рассмотрели два основных действия — ACCEPT и DENY. В IPTables вместо действия DENY нужно использовать аналогичное ему действие DROP. А вместо MASQ (см. п. 14.4) — MASQUERADE.
Я не буду рассматривать различия таблиц (tables) и цепочек (chains), не усложняя тем самым вам жизнь избытком лишней информации, остановлюсь лишь на рассмотрении некоторых полезных примеров.
Представим, что вам нужно что-либо сделать с пакетами, приходящими от узла с МАС-адресом 11:12:13:14:15:16. Выделить данный пакет можно с помощью правила iptables –A INPUT —mac-source 11:12:13:14:15:16.
Дальнейшие операции над пакетом вы уже определите сами, с помощью опции –j. Если же вам нужно выделить все пакеты, кроме тех, которые присылает вам узел с МАС-адресом 11:12:13:14:15:16, то нужно использовать отрицание — !
Читать дальшеИнтервал:
Закладка: