Глава 5
# Отбрасываем все пакеты со статусом INVALID
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Принимаем все пакеты из уже установленного соединения
# Состояние ESTABLISHED
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Наш провайдер использует IP-адреса из сети 10.0.0.0 для
# доступа к своим локальным ресурсам. Ничего не поделаешь,
# нужно разрешить эти адреса, иначе мы даже не сможем войти
# в билинговую систему. В вашем случае, может, и не нужно будет
# добавлять следующее правило, а, может, у вас будет такая же
# ситуация, но адрес подсети будет другим
$IPT -t nat -I PREROUTING -i $INET -s 10.0.0.1/32 -j ACCEPT
# Защищаемся от SYN-наводнения (довольно популярный вид атаки)
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# Защищаемся от UDP-наводнения
$IPT -A INPUT -p UDP -s 0/0 --dport 138 -j DROP
$IPT -A INPUT -p UDP -s 0/0 --dport 113 -j REJECT
$IPT -A INPUT -p UDP -s 0/0 --sport 67 --dport 68 -j ACCEPT
$IPT -A INPUT -p UDP -j RETURN
$IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT
# Защищаемся от ICMP-перенаправления
# Этот вид атаки может использоваться злоумышленником для
# перенаправления своего трафика через вашу машину
$IPT -A INPUT --fragment -p ICMP -j DROP
$IPT -A OUTPUT --fragment -p ICMP -j DROP
# Но обычные ICMP-сообщения мы разрешаем
$IPT -A INPUT -p icmp -m icmp -i $INET --icmp-type source-quench -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET --icmp-type source-quench -j ACCEPT
# Разрешаем себе пинговать интернет-узлы
$IPT -A INPUT -p icmp -m icmp -i $INET --icmp-type echo-reply -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET --icmp-type echo-request -j ACCEPT
# Разрешаем передачу ICMP-сообщения "неверный параметр"
$IPT -A INPUT -p icmp -m icmp -i $INET --icmp-type parameter-problem -j ACCEPT
$IPT -A OUTPUT -p icmp -m icmp -o $INET --icmp-type parameter-problem -j ACCEPT
# Запрещаем подключение к X.Org через сетевые интерфейсы
$IPT -A INPUT -p tcp -m tcp -i $INET --dport 6000:6063 -j DROP --syn
Работа в глобальной сети
215
# Указываем порты, открытые в системе, но которые должны быть
# закрыты на сетевых интерфейсах. Мы пропишем только порт 5501:
$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET -j DROP --dports 5501
# Разрешаем DNS
$IPT -A OUTPUT -p udp -m udp -o $INET --dport 53 --sport $UPORTS -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 53 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p udp -m udp -i $INET --dport $UPORTS --sport 53 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 53 -j ACCEPT
# Разрешаем AUTH-запросы к удаленным серверам, но запрещаем такие
# запросы к своему компьютеру
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 113 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 113 -j ACCEPT
! --syn
$IPT -A INPUT -p tcp -m tcp -i $INET --dport 113 -j DROP
# Далее мы открываем некоторые порты, необходимые
# для функционирования сетевых служб.
# FTP-клиент (порт 21)
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 21 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 21 -j ACCEPT ! --syn
# SSH-клиент (порт 22)
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 22 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 22 -j ACCEPT ! --syn
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 22 --sport 1020:1023 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport 1020:1023 --sport 22 -j ACCEPT
! --syn
# SMTP-клиент (порт 25)
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 25 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 25 -j ACCEPT ! --syn
# HTTP/HTTPS-клиент (порты 80, 443)
$IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET --sport $UPORTS -j ACCEPT
--dports 80,443
$IPT -A INPUT -p tcp -m tcp -m multiport -i $INET --dport $UPORTS -j ACCEPT
--sports 80,443 ! --syn
# POP-клиент (порт 110)
$IPT -A OUTPUT -p tcp -m tcp -o $INET --dport 110 --sport $UPORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $INET --dport $UPORTS --sport 110 -j ACCEPT
! --syn
# Разрешаем прохождение DCHP-запросов через iptables
# Необходимо, если IP-адрес динамический
216
Глава 5
$IPT -A OUTPUT -p udp -m udp -o $INET --dport 67 --sport 68 -j ACCEPT
$IPT -A INPUT -p udp -m udp -i $INET --dport 68 --sport 67 -j ACCEPT
Вот, практически, и все... Конечно, приведенное здесь описание iptables нельзя
назвать исчерпывающим. Для полного описания iptables пришлось бы издавать
отдельную книгу под названием «Брандмауэр в Linux».
П
РИМЕЧАНИЕ
В Интернете мы нашли одно из наиболее полных руководств по iptables на русском
языке. Так вот, если его распечатать, оно займет 121 страницу формата А4. Учитывая
размер полосы набора страницы книжного формата, которая обычно меньше А4, сме-
ло можно говорить, что объем такой книги составил бы около 200 страниц. Адрес ука-
занного руководства:
http://www.opennet.ru/docs/RUS/iptables/
.
Вот еще одна очень хорошая статья по iptables:
http://ru.wikipedia.org/wiki/Iptables
.
А для пользователей Debian и Ubuntu будет полезным следующее руководство:
http://www.linux.by/wiki/index.php/Debian_Firewall
.
Оптимизация доступа в Интернет
Основные мероприятия оптимизации
Сейчас большинство пользователей Интернета (как предприятия, так и частные ли-
ца) пользуются выделенным безлимитным (без учета количества передаваемого
трафика) каналом доступа в Интернет. Ранее трафик был платным (т. е. платилась
не фиксированная сумма в месяц, а оплачивалось количество принятой/переданной
информации), поэтому вопрос оптимизации доступа к Интернету стоял особенно
остро. Оптимизация не только ускоряла доступ, но и экономила деньги. В настоя-
щее время оптимизация уже не так важна: интернет-каналы быстрые, плата за со-
единение с Интернетом, как правило, фиксированная. Но все же есть еще предпри-
ятия, пользующиеся по тем или иным причинам медленными (5–10 Мбит/с на все
компьютеры) соединениями. Оптимизация в их случае не помешала бы.
Оптимизация доступа к Интернету сводится к следующим мероприятиям:
установке кэширующего прокси-сервера и увеличению дискового объема
для кэширования файлов
— как правило, кэширующий прокси-сервер работа-
ет на стороне провайдера, но там он общий, а здесь будет ваш личный. Выпол-
няя свои обязанности, пользователи одного предприятия часто заходят на одни и
те же ресурсы. Как показывает практика, изображения, сценарии, файлы стилей
меняются там крайне редко. Выходит, что если один пользователь зашел на не-
кий сайт
example.com
в первый раз, и в кэш прокси-сервера были загружены от-
туда все вспомогательные файлы, то все остальные пользователи получат доступ
к этим файлам (картинки, CSS и т. д.) уже не со скоростью 5 Мбит/с, а со ско-
ростью 100 Мбит/с, — поскольку получать они станут их не из Интернета,
а с нашего локального прокси-сервера;
ограничению и распределению полосы пропускания
— если какой-либо
пользователь запустит Torrent-клиент и начнет закачку фильма, то все остальные
Работа в глобальной сети
217
(учитывая ширину канала) не смогут открыть даже простые веб-странички.
Именно поэтому можно ограничить и распределить полосу пропускания, сохра-
нив возможность быстрого открытия веб-страниц. В результате остальные со-
трудники не почувствуют разницы, а закачка фильма будет осуществляться чуть
медленнее. Можно вообще запретить загрузку фильмов, музыки и Torrent-
файлов, и тогда нагрузка на канал станет минимальной. Решайте сами;
блокированию рекламы
— чем меньше информации на страничке, тем быст-
рее она загружается. К сожалению, объем рекламы на интернет-страницах часто
превышает объем содержащейся в них полезной информации. Если блокировать
рекламу, то странички будут загружаться быстрее.
Прокси-сервер
С помощью прокси-сервера можно очень эффективно управлять ресурсами своей
сети — например: кэшировать трафик (HTTP), «обрезать» рекламные баннеры, ука-
зывать, какие файлы можно скачивать пользователям, а какие — нет, допускается
также задать максимальный объем передаваемого объекта и даже ограничить про-
пускную способность пользователей определенного класса.
Однако основная функция прокси-сервера — это кэширование трафика. Если в сети
используется прокси-сервер, можно сократить кэш браузеров клиентов практиче-
ски до нуля — он уже не будет нужен, поскольку кэширование станет выполнять
прокси-сервер. Тем более, что он выполняет кэширование всех клиентов сети,
и уже запрошенные кем-то ранее страницы оказываются доступны другим пользо-
вателям. Это означает, что если кто-то зашел на сайт
firma.ru
, то у всех остальных
пользователей сети этот сайт будет открываться практически мгновенно, потому
что его уже кэшировали.
Даже если у вас всего один компьютер, все равно есть смысл использовать прокси-
сервер, хотя бы для того, чтобы «обрезать» рекламные баннеры, — так можно
сэкономить на трафике, да и страницы начнут открываться быстрее, потому что
многочисленные баннеры загружаться перестанут.
В среднем, если судить по статистике использования прокси-серверов, то при пра-
вильной его настройке можно добиться снижения интернет-трафика в два раза. То
есть, если раньше вы загружали из Интернета 10 Гбайт в день, то после установки
прокси-сервера вы будете загружать 5 Гбайт. Если трафик платный, экономия —
налицо. Если трафик безлимитный, налицо прирост скорости, поскольку примерно
5 Гбайт информации вы будете загружать не со скоростью относительно медленно-
го интернет-соединения, а со скоростью локальной сети (100 Мбит/с).
Впрочем, прокси-сервер нужен не всем (если рассматривать его в разрезе оптими-
зации скорости доступа к Интернету). Возьмем, например, небольшой офис: три
ноутбука, один стационарный компьютер (как бы сервер), несколько смартфо-
нов/планшетов. Подключается все это добро к Интернету через маршрутизатор
Wi-Fi, скорость доступа к Интернету согласно тарифному плану — 70 Мбит/с.
Маршрутизатор Wi-Fi в силу особенностей технологии Wi-Fi скорость немного
218
Достарыңызбен бөлісу: |