можливих небезпечних і шкідливих факторів при розробці програмного продукту та їх вплив на розробника, а також запропоновані заходи щодо захисту від них впливу.
Додаток 1
Захист інформації в IP мережах
Конфігурація брандмауера
Конфігурація iptables
Будь правило iptables записується у вигляді:
iptables [-t таблиця] команда [критерій] [дію перехід в іншу ланцюжок]
Використані команди
КомандаОпісаніе-A, --appendДобавляет нове правило в кінець заданої цепочкі.-D, --deleteУдаленіе правила з цепочкі.-L, --listВивод списку правил в заданій ланцюжку-F, --flushСброс ( видалення) всіх правил із заданої ланцюжка-N, --new-chainСозданіе нового ланцюжка із заданим ім'ям-X, --delete-chainУдаленіе заданої ланцюжка із заданої таблиці-P, --policyЗадает політику по-замовчуванню для заданої ланцюжка В якості політики по замовчуванням допускається використовувати DROP і ACCEPT.
Загальні критерії
КрітерійОпісаніе-p, --protocolЕтот критерій використовується для вказівки типу протоколу-s, --src, --sourceIP-адресу (а) джерела пакета.-d, --dst, --destinationIP-адресу (а) получателя.-i, --in-interfaceІнтерфейс, з якого було отримано пакет.-o, --out-interfaceЗадает ім'я вихідного інтерфейса.-j -jumpПереход на іншу ланцюжок
ДействіеОпісаніеACCEPTДанное дію припиняє рух пакета по цепочкеDROPДанное дію просто скидає пакет і iptables забуває про його существованіі.LOGДанное дію, служить для журналирования окремих пакетів і собитій.-j -jumpПереход на іншу ланцюжок
Для зручності використовуються елементи програмування bash.
#!/bin/sh
start_fw ()
{
Задаємо статичну інформацію, таку як використовувані інтерфейси і IP адреси:
# IPTables Configuration.
#=laquo;usr/sbin/iptablesraquo;_IFACE=laquo;eth0raquo;_IFACE=laquo;eth1raquo;_VIFACE=laquo;eth2raquo;_IP_RANGE =laquo;192.168.100.0raquo;_IP=laquo;192.168.100.254raquo;_PROXY_IP=laquo;192.168.100.250raquo;_TERM_IP=laquo;192.168.150.100raquo;_VIP=laquo;192.168.150.1raquo;_FIL = Laquo; 212.111.80.21 _IP== 192.168.100.3 _IP= 192.168.100.2 _IP= 127.0.0.1 _IFACE= lo
Активуємо необхідні нам модулі:
#
# Module loading.
# Needed to initially load modules
#
/sbin/depmod -a
#
# Required modules
#
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
#
# Required proc configuration
# 1 gt;/proc/sys/net/ipv4/ip_forward
Задаємо політики на скидання всіх пакетів:
#
# policies
#
$ IPTABLES -P INPUT DROP
$ IPTABLES -P OUTPUT DROP
$ IPTABLES -P FORWARD DROP
Ланцюжок bad_tcp_packets призначена для фільтрування пакетів з неправильними заголовками та вирішення ряду інших проблем. Тут фільтруються всі пакети, які розпізнаються як NEW, але не є SYN пакетами, а так само обробляються SYN/ACK-пакети, що мають статус NEW. Цей ланцюжок використана для захисту від вторгнення і сканування портів.
#
# rule bad_tcp_packets
#
$ IPTABLES -N bad_tcp_packets
$ IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN, ACK SYN, ACK
m state --state NEW -j REJECT --reject-with tcp-reset
$ IPTABLES -A bad_tcp_packets -p tcp!--syn -m state --state NEW -j LOG
- log-prefix New not syn:
$ IPTABLES -A bad_tcp_packets -p tcp!--syn -m state --state NEW -j DROP
Ланцюжок allowed використовується як додаткова перевірка після ланцюжка bad_tcp_packets. Перше правило перевіряє, чи є пакет SYN пакетом, тобто запитом на з'єднання. Такий пакет ми вважаємо допустимим і пропускаємо.
#