Изучение Firewall

0
Rate this post

Нет нужды объяснять интерес, который представляет Firewall для любого имеющего доступ к интернету человека. Чего стоит, к примеру, возможность блокировать рекламу, которая лезет в наш компьютер с любого коммерческого сайта. Да и любителей пошалить в интернете не мало…

К сожалению в Linux IPCHAINS-HOWTO упущено несколько деталей, показавшихся мне крайне важными. Поэтому я решил написать несколько простых тестов, позволяющих быстро получить набор минимальных знаний необходимых для построения Firewall. Этот документ ни в коем случае не заменяет чтение Linux IPCHAINS-HOWTO, но дополняет его, поэтому я не буду останавливаться на перекомпилировании ядра и объяснении команд используемых ipchains.

Условия проведения тестов

Чтобы разобраться с принципом работы Firewall я пользовался следующей конфигурацией:

      |
      |          ----------            -----------------
  ISP |-----ppp0| My Host  |----------| Internal Server |
      |          ----------            -----------------
      |         192.168.1.10              192.168.1.1  
      |

При создании файла конфигурации и работе с firewall необходимо иметь ввиду следующее:

1. Если команда

ipchains -L 

не выводит на экран никаких результатов, то скорее всего проблема в IP адресах, которые не удается разрешить. Например /sbin/ipchains -A output -j REJECT -p tcp -s 0.0.0.0/0 -d 63.160.54.0/24, если ваш компьютер не подсоединен к интернету, заблокирует вывод результатов. Возможной альтернативой в этом случае может быть команда

ipchains -nL

2. Рассматриваемый IP-пакет сравнивается с установленными правилами по порядку, то есть правило:

/sbin/ipchains -A output -j REJECT -d 192.168.1.1
стоящее после строк
/sbin/ipchains -A input -p tcp -s 0/0 80 -d 192.168.1.10 -j ACCEPT
/sbin/ipchains -A output -p tcp -s 192.168.1.10 -d 0/0 80 -j ACCEPT

Не блокирует пакеты веб-сервера установленного на компьютере 192.168.1.1, а установленное перед ними — блокирует.

3. От перестановки слов внутри правила результат не меняется, то есть правило:

/sbin/ipchains -A output -d 192.168.1.1 -j DENY
и правило:
/sbin/ipchains -A output -j DENY -d 192.168.1.1

являются равными.

Тесты Firewall

ТЕСТ #1

Создайте файл simple.rc.firewall, сделайте его выполнимым. Этот скрипт устанавливает значения правил по умолчанию.

#!/bin/sh
#2.2.x+ kernels with IPCHAINS ONLY
#

echo " - Setting Policies: IN/OUT is ACCEPT; FWD is reject (poor security; great functionality)"
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward REJECT

echo " - Flushing any old rulesets"
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward

echo "simple.rc.firewall done."

Выполните скрипт. С компьютера 192.168.1.10 Вы должны «видеть» интернет и внутренний сервер 192.168.1.1

Теперь с командной строки введите команду:

/sbin/ipchains -A output -d 192.168.1.1 -j DENY

Попробуйте «пингнуть» внутренний сервер. Результат должен быть следующий:

station:~# ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Operation not permitted
ping: wrote 192.168.1.1 64 chars, ret=-1

Наш внутренний сервер стал недосягаемым

ТЕСТ #2

Теперь попробуем скрипт, использующий принцип «запрещено все, что не разрешено».

#!/bin/sh
#2.2.x+ kernels with IPCHAINS ONLY
#

echo " - Setting Policies: IN/OUT, FWD is reject (great security)"
/sbin/ipchains -P input REJECT
/sbin/ipchains -P output REJECT
/sbin/ipchains -P forward REJECT

echo " - Flushing any old rulesets"
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward

echo "strong.rc.firewall done."

Удостоверьтесь что, после выполнения вышеприведённого скрипта внешний мир оказался недосягаем.

Добавьте в конце скрипта:

/sbin/ipchains -A input -j ACCEPT -p icmp -s 0.0.0.0/0 -d 192.168.1.10 
/sbin/ipchains -A output -j ACCEPT -p icmp -s 192.168.1.10 -d 0.0.0.0/0

И Вы сможете делать «пинг» внутреннего сервера.

Вставьте перед этими строчками

/sbin/ipchains -A output -d 192.168.1.1 -j DENY

И сервер снова станет недосягаемым.

Теперь попробуйте переместить эту строку в конец скрипта и Вы обнаружите, что ping работает как ни в чем не бывало.

admin

рутор софт торрент скачать

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *