|
Вторник, 30.09.2014, 14:19 | Сообщение # 1
|
|
Начнем с того – что такое iptables?
iptables – утилита(служба) для контроля сетевого трафика или попросту некий фаерволл с огромными возможностями. Важно: запускать iptables необходимо с правами root’a.
Синтаксис iptables следующий:
iptables [-t Таблица] -A Цепочка Параметры -j Действие Ключи для работы с цепочками: -A – добавить новое правило. -D – удалить правило. -F – удалить все правила. -R – замена правила. -L – вывод списка всех правил.
В таблице filter(по умолчанию) существую следующие цепочки: INPUT – входящий трафик. OUTPUT – исходящий трафик. FORWARD – пересылаемый(транзитный) трафик.
Параметры: -p – протокол, можно использовать all,icmp,tcp,udp. -s – ip адрес/хост источника. -d – ip адрес/хост назначения. -i – интерфейс на который пришел пакет. -o – интерфейс с которого уйдет пакет . (просмотреть все интерфейсы можно с помощью команды.ifconfig, обычно это eth0) –sport – порт источника. –dport – порт назначения.
Действия: ACCEPT – разрешить пакеты. REJECT – блокировать пакеты с сообщением об отказе. DROP – блокировать пакеты(более приоритетный вариант, нежели REJECT, т.к для блокируемого ip адреса(или диапазонов) будет аналогичный эффект тому, когда сервер находится в дауне).
Несколько примеров: 1) Блокируем все входящие пакеты с ip адреса 111.111.111.111
iptables -A INPUT -s 111.111.111.111 -j DROP А с помощью знака «!«(отрицание) можно сделать блокировку всех адресов(хостов), кроме заданного. Например, с помощью нижеприведенной команды, пакеты будут блокироваться со всех адресов, кроме 111.111.111.111
iptables -A INPUT ! -s 111.111.111.111 -j DROP 2) Снимаем бан с IP 111.111.111.111
iptables -D INPUT -s 111.111.111.111 -j DROP 3) Просмотр списка с правилами
iptables -L INPUT --line-numbers Таким образом мы сможем увидить все пронумерованные правила, которые также можно удалить с помощью ключа -D. Нижеприведенная команда удаляет правила под номером 5.
iptables -D INPUT 5 4) Поностью очищаем список со всеми правилами
iptables -F 5) Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25
iptables -I INPUT -m iprange --src-range 192.168.0.8-192.168.0.25 -j DROP 6) Блокируем весь входящий трафик на 80 порт(http).
iptables -A INPUT -p tcp --sport 80 -j DROP 7) Блокируем домен vk.com(вконтакте).
iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com Другие домены вконтакта: vk.com, vkontakte.ru, incontact.ru , durov.ru
Также можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства использования первого и второго примера: alias ban='iptables -I INPUT -j DROP -s' alias unban='iptables -D INPUT -j DROP -s' После чего можно гораздо быстрее банить ip адрес командой
ban 111.111.111.111 и снимать бан командой
unban 111.111.111.111
|
|