Алексей Стахнов - Linux
- Название:Linux
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Стахнов - Linux краткое содержание
Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.
Для начинающих администраторов или пользователей Linux.
Linux - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Следующие правила разрешают прохождение входящих и исходящих ICMP-сообщений Parameter Problem:
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 12 -d $IPADDR -j ACCEPT pchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 12 -d $IPADDR -j ACCEPT
Сообщение об ошибке Destination Unreachable
ICMP-сообщение типа Destination Unreachable (узел назначения недоступен) представляет собой сообщение об ошибке. В заголовке пакета данного типа содержится код, обозначающий ошибку, которая имела место.
Следующие правила разрешают прохождение входящих и исходящих ICMP-сообщений Destination Unreachable:
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 3 -d $IPADDR -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 3 -d $IPADDR -j ACCEPT
С точки зрения безопасности – достаточно неоднозначный пакет, поскольку можно использовать такого типа сообщения для сбора информации об адресах узлов и портах. Кроме того, сообщения Destination Unreachable могут быть использованы для организации атаки с целью вывода узла из строя.
Тем не менее, подтип Fragmentation Needed сообщения Destination Unreachable необходим для нормальной работы сетевых средств. С его помощью взаимодействующие узлы договариваются об особенностях разбиения передаваемых сетевых пакетов на фрагменты.
Так же, если требуется, чтобы компьютеры вашей локальной сети отвечали на входящие запросы программы traceroute, необходимо разрешить передачу исходящих пакетов, содержащих подтип Port Unreachable сообщения Destination Unreachable.
Сообщение Time Exceeded
ICMP-сообщение типа Time Exceeded (превышение времени) передает сведения о том, что число узлов, через которые проходил сетевой пакет по пути его следования, превысило максимально допустимое значение. В настоящее время сообщение Time Exceeded обычно передается в ответ на U DP-запрос программы traceroute.
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 11 -d $IPADDR -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $IPADDR 11 -d $MY_ISP -j ACCEPT
Если требуется, чтобы ваша система отвечала на входящие запросы traceroute, необходимо разрешить передачу исходящих ICMP-сообщений Time Exceeded. Приведенные выше правила допускают обращения traceroute лишь с компьютера провайдера. Если вы хотите использовать traceroute на локальном узле, вы должны разрешить входящие сообщения Time Exceeded. Так как описываемая конфигурация брандмауэра не является маршрутизатором общего назначения, сообщения Time Exceeded используются только с описанной выше целью.
Программа ping: сообщения Echo Request и Echo Reply
Программа ping использует два типа ICMP-сообщений: Echo Request (эхо-запрос) и Echo Reply (эхо-ответ). Программа ping применяется для проверки связи с конкретными узлами сети.
Следующие два правила дают возможность передавать пакеты ping по любому адресу:
ipchains -A output -i $EXTERNAL_INTERFACE -р icmp -s $IPADDR 11 -d $MY_ISP -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -s $ANYWHERE 11-d $IPADDR -j ACCEPT
Приведенные ниже правила позволяют принимать пакеты ping только с определенных узлов, а конкретно – из сети вашего провайдера:
ipchains -A input -i $EXTERNAL_INTERFACE -р icmp -s $MY_ISP 8 -d $IPADDR -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -s $IPADDR 0 -d $MY_ISP -j ACCEPT
В данном примере набор внешних узлов, которым разрешена передача вашей системе пакетов ping, ограничен компьютерами провайдера. Сделано это для того, чтобы администратор провайдера мог в любой момент проверить, как происходит обмен данными с внешним интерфейсом вашего компьютера. Прием ping с остальных хостов запрещен. Противодействие smurf-атакам
При организации атаки типа sniuif пакеты ping, содержащие сообщения Echo Request, передаются в широковещательном режиме. Исходный IP-адрес в составе пакета подменяется IP-адресом «жертвы» – IP-адресом того узла, против которого направлена атака. В результате все узлы сети, получившие сообщения Echo Request, передают ответы по адресу «жертвы», загружая линии связи ICMP-пакетами. В результате, если у вас наружный канал не очень широкий – вы лишаетесь доступа в Интернет.
Приведенные ниже правила предназначены для протоколирования попыток smurf-атаки. Поскольку прохождение широковещательных ICMP-пакетов явно не разрешено ни одним из правил, эти пакеты будут удалены по умолчанию. Обратите внимание, что в правилах указаны не только Echo Request, но и другие типы сообщений. Дело в том, что возможности для атаки не ограничиваются сетевыми пактами ping.
# Противодействие smurf-атаке
ipchains -A input -i $EXTERNAL_INTERFACE -р icmp -d $BROADCAST_DEST -j DENY -l
ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -d $BROADCAST_DEST -j REJECT -l
# Маска сети
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -d $NETMASK -j DENY -l
ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -d $NETMASK -j REJECT -l
# Адрес сети
ipchains -A input -i $EXTERNAL_INTERFACE -p icmp -d $NETWORK -j DENY -l
ipchains -A output -i $EXTERNAL_INTERFACE -p icmp -d $NETWORK -j REJECT -l
Разрешение функционирования служб
Выше мы определили правила, позволяющие отклонять сетевые пакеты с сомнительными адресами, а также разрешили локальному компьютеру работать через интерфейс обратной петли. В результате мы получили нормально функционирующий локальный компьютер с полностью отсутствующим доступом в Интернет. Наша дальнейшая задача – обеспечить нормальное функционирование локального компьютера (сети) в Интернете. Для того чтобы ваш компьютер мог принимать и отправлять почту, работать по FTP, HTTP и т. п., необходимо разрешить прохождение сетевых пакетов с определенными портами. На первый взгляд – задача объемная, впрочем, необходимо обеспечить прохождение пакетов всего от десятка служб, что не так уж и много.
Служба DNS
Служба DNS использует в работе порт 53 и протоколы UDP и TCP. Соединение может устанавливаться как между клиентом и сервером, так и между двумя серверами. Для разрешения взаимодействия между клиентом и сервером необходимо добавить следующее правило:
ipchains -A input -i $EXTERNAL_INTERFACE -р udp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p udp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT
В том случае, если ответ сервера не помещается в одной UDP-датаграмме, между клиентом и сервером устанавливается TCP-соединение. Обычно это происходит при передаче данных зоны между первичным и вторичным DNS-серверами. Для этого случая необходимо в цепочку правил добавить следующее правило:
ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT
В том случае, если у вас есть локальный DNS-сервер, и вы предоставляете его услуги каким-либо клиентам (например, компьютерам вашей локальной сети), желательно ограничить конкретным списком компьютеров доступ к вашему локальному DNS-серверу. Для этого воспользуйтесь следующими правилами:
# разрешение обмена между клиентом и DNS-сервером
ipchains -A input -i $EXTERNAL_INTERFACE -р udp -s Cclients.addr> $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p udp -s cclients.addr> $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT
# разрешение обмена между DNS-серверами
Интервал:
Закладка: