# Сценарий управления пакетной фильтрацией.,
# Если правил нет, то ничего не делать.
[ –f /etc/ipchains.rules ] || exit 0
case "51" in
start)
echo –n "Включение пакетной фильтрации:" /sbin/ipchains-restore < /etc/ipchains.rules || exit 1
echo 1 > /proc/sys/net/ipv4/ip_forward
echo ". "
;;
stop)
echo –n "Отключение пакетной фильтрации:"
echo 0 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains –X
/sbin/ipchains –F
/sbin/ipchains –P input ACCEPT
/sbin/ipchains –P output ACCEPT
/sbin/ipchains –P forward ACCEPT
echo " . "
;;
*)
echo "Использование: /etc/init.d/packetfliter {start|stop}"
exit 1
;;
esac
exit 0
Этот сценарий нужно добавить в сценарии загрузки системы.
14.3. Различные примеры
В этом пункте представлены несколько примеров для обеспечения безопасности вашей сети.
14.3.1. Пакеты SYN
Пакеты SYN используются для запроса на установку соединения. Вы можете отвергать эти пакеты для того, чтобы прервать попытки установить соединение.
Иногда это необходимо, если вы хотите получать пакеты только в одном направлении, например, рабочая станция должна соединяться с сервером, но сервер не должен соединяться с рабочей станцией.
Для фильтрации пакетов SYN нужно использовать опцию –у. Например, попытки соединения по протоколу TCP от узла 192.168.1.34 указываются так:
–р TCP –s 192.168.1.34 –у
14.3.2. Фрагментация пакетов
Иногда передаваемый пакет слишком большой, чтобы его можно было бы передавать за один раз. Если такое происходит, то пакет делится на фрагменты, и эти фрагменты пересылаются. Компьютер, которому этот пакет предназначен, собирает эти фрагменты в один пакет.
Ядро должно анализировать начало пакета, которое содержится в первом фрагменте. Ведь только в первом фрагменте находится заголовок исходного пакета. Для решения этой проблемы вам нужно перекомпилировать ядро с включенной опцией IP: always defragment.
В результате любое правило фильтрации не будет работать для фрагментированных пакетов. При этом только первый фрагмент будет обработан как пакет, а остальные не будут обрабатываться. Однако можно определить правило специально для фрагментированных пакетов. Это можно сделать с помощью опции –f. Эту опцию нельзя применять при указании портов протоколов TCP или UDP, кода ICMP или пакетов SYN.
Следующая команда отбросит все фрагменты, приходящие на компьютер server.domain.com:
# ipchains –A output –f –d 192.168.1.1 –j DENY
14.3.3. Пинг смерти
Есть хорошая новость по этому поводу: ОС Linux невосприимчива к пингу смерти. Напомню, что пинг смерти заключается в посылке большого пакета ICMP, который переполняет буферы стека TCP на компьютере-получателе.
14.3.4. IР-спуфинг
IP-спуфинг — это отправление пакетов с поддельным IP-адресом источника. Так как фильтрация пакета принимает решения на основании адреса источника, то IP-спуфинг используется, чтобы ввести пакетный фильтр в заблуждение.
Для решения этой проблемы мы можем использовать Проверку Адреса Источника (Source Address Verification) или использовать следующие команды IPChains:
ipchains –A prov –s 192.168.1.1/16 –l –j DENY
ipchains –A prov –s 127.0.0.1/8 –l –j DENY
Вторая команда нужна для ядер версий 2.0.x, но если мы ее укажем, явно хуже не будет. Опция –l позволяет протоколировать «плохие» пакеты. Файлом протокола является /var/log/messages. Ядра версий 2.1.x автоматически отклоняют пакеты, приходящие с адресов 127.*, которые зарезервированы для локального интерфейса.
Для включения проверки адреса источника можно воспользоваться сценарием, представленном в листинге 14.2.
# Наилучший способ: включить Source Address Verification и защитить
# от спуфинга все текущие и будущие интерфейсы.
if [ –e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then
echo –n "Установка защиты от спуфинга…
for f in /proc/sys/net/ipv4/conf/*/rp_fliter; do
echo 1 > $f
done
echo "готово."
else
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии