Настройка iptables для новичков.

Привет юные линуксоиды!Сегодня я расскажу о самом необходимом минимуме при использовании сети internet - точнее о встроенном фаерволе iptables.Все началось с того, что я поставил себе ASPLinux 9.0 URAL.Было все хорошо, но после месяца - двух использования я ради интереса выполнил nmap 127.0.0.1
И что я вижу:
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1592 ports scanned but not shown below are in state: closed)
Port State Service
27665/tcp open Trinoo_Master
31337/tcp open Elite
54320/tcp open bo2k
(список подредактирован)
Я очень удивился (обойдемся без крепких выражений) :)
Сам я их не ставил - это я мог себе гарантировать точно, так что кто-то постарался :)))
Почесав репу, я сел за настройку iptables. Походил по инету, только конфигурационных файлов для моей ситуации я не нашел, все сервера да сервера... Пришлось писать самому. Ну так вот, выкладываю пример моего конфигурационного файла с подробными пояснениями, который подойдёт любому модемщику.
Все пишется в /etc/sysconfig/iptables. Можно ручками, можно средствами webmin, может ещё как-то - я не заморачивался.
Описание команд iptables я не привожу, кому интересно, можете сходить сюда: http://www.opennet.ru/docs/RUS/iptables/index.html
Политики по умолчанию:
INPUT - DROP
FORWARD - ACCEPT
OUTPUT - DROP - это на случай если проморгаю :)))
cat /etc/sysconfig/iptables
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
Разрешаем прохождение любого трафика по интерфейсу обратной петли.
-A INPUT -m state ! -i lo --state NEW -j DROP
Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру.
-A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP
- если интерфейс не lo, то нефиг ломиться в его адресов.
-A INPUT -s 10.0.0.0/8 -i ppp0 -j DROP
-A INPUT -d 10.0.0.0/8 -i ppp0 -j DROP
-A OUTPUT -s 10.0.0.0/8 -o ppp0 -j DROP
-A OUTPUT -d 10.0.0.0/8 -o ppp0 -j DROP
-A INPUT -i ppp0 -f -j DROP
-A INPUT -s 172.16.0.0/12 -i ppp0 -j DROP
-A INPUT -d 172.16.0.0/12 -i ppp0 -j DROP
-A OUTPUT -s 172.16.0.0/12 -o ppp0 -j DROP
-A OUTPUT -d 172.16.0.0/12 -o ppp0 -j DROP
-A INPUT -s 192.168.0.0/16 -i ppp0 -j DROP
-A INPUT -d 192.168.0.0/16 -i ppp0 -j DROP
-A OUTPUT -s 192.168.0.0/16 -o ppp0 -j DROP
-A OUTPUT -d 192.168.0.0/16 -o ppp0 -j DROP
-A INPUT -s 127.0.0.1/255.0.0.0 -i ppp0 -j DROP
-A OUTPUT -s 127.0.0.1/255.0.0.0 -o ppp0 -j DROP
-A INPUT -s 255.255.255.255 -i ppp0 -j DROP
-A INPUT -d 0.0.0.0 -i ppp0 -j DROP
-A OUTPUT -s 255.255.255.255 -o ppp0 -j DROP
-A OUTPUT -d 0.0.0.0 -o ppp0 -j DROP
-A INPUT -s 224.0.0.0/4 -i ppp0 -j DROP
-A INPUT -s 1.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 2.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 5.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 7.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 23.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 27.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 31.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 37.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 39.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 41.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 42.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 58.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 60.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 65.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 66.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 67.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 68.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 69.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 70.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 71.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 72.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 73.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 74.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 75.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 76.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 77.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 78.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 79.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 80.0.0.0/4 -i ppp0 -j DROP
-A INPUT -s 96.0.0.0/4 -i ppp0 -j DROP
-A INPUT -s 112.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 113.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 114.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 115.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 116.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 117.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 118.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 119.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 120.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 121.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 122.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 123.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 124.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 217.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 218.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 219.0.0.0/8 -i ppp0 -j DROP
-A INPUT -s 220.0.0.0/6 -i ppp0 -j DROP
В интернете есть группы адресов с которых не могут прийти правильные запросы, значет кто-то шутит ) - дропаем.
-A INPUT -p icmp -m icmp -i ppp0 --icmp-type source-quench -j ACCEPT
-A OUTPUT -p icmp -m icmp -o ppp0 --icmp-type source-quench -j ACCEPT
Разрешаем icmp сообщение - подавление источника - используется для регулирования скорости обмена данными между узлами.
-A INPUT -p icmp -m icmp -i ppp0 --icmp-type echo-reply -j ACCEPT
-A OUTPUT -p icmp -m icmp -o ppp0 --icmp-type echo-request -j ACCEPT
Разрешаем себе пинговать кого угодно - нас же не попингуешь - пакеты рубятся.
-A INPUT -p icmp -m icmp -i ppp0 --icmp-type parameter-problem -j ACCEPT
-A OUTPUT -p icmp -m icmp -o ppp0 --icmp-type parameter-problem -j ACCEPT
Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись, или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом.
-A INPUT -p tcp -m tcp -i ppp0 --dport 6000:6063 -j DROP --syn
Иксов захотели? А ну в дроп!
-A INPUT -p tcp -m tcp -m multiport -i ppp0 -j DROP --dports прописываем порты, которые открыты в системе, но которые не должны светиться наружу.
-A OUTPUT -p udp -m udp -o ppp0 --dport 53 --sport 1024:65535 -j ACCEPT
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 53 --sport 1024:65535 -j ACCEPT
-A INPUT -p udp -m udp -i ppp0 --dport 1024:65535 --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65353 --sport 53 -j ACCEPT
ДНС - вещь нужная - разрешаем.
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 113 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 113 -j ACCEPT ! --syn
-A INPUT -p tcp -m tcp -i ppp0 --dport 113 -j DROP
Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем.
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 25 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 25 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 110 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 110 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 23 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 23 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 22 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 22 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 22 --sport 1020:1023 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 21 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 21 -j ACCEPT ! --syn
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 20 -j ACCEPT
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 20 --sport 1024:65535 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 1024:65535 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 1024:65535 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -m multiport -o ppp0 --sport 1024:65535 -j ACCEPT --dports 80,443
-A INPUT -p tcp -m tcp -m multiport -i ppp0 --dport 1024:65535 -j ACCEPT --sports 80,443 ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 79 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 79 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 43 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 43 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 70 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 70 -j ACCEPT ! --syn
-A OUTPUT -p tcp -m tcp -o ppp0 --dport 210 --sport 1024:65535 -j ACCEPT
-A INPUT -p tcp -m tcp -i ppp0 --dport 1024:65535 --sport 210 -j ACCEPT ! --syn
-A OUTPUT -p udp -m udp -o ppp0 --dport 33434:33523 --sport 32769:65535 -j ACCEPT
Почтой,shh,ftp,web,finger,whois,gopher и wais - на всякий случай, traceroute - разрешаем себе - к нам не проломятся - запрещено. Telnet запретил, чтобы соблазна не было передавать пароли прямым текстом.
-A OUTPUT -p udp -m udp -o ppp0 --dport 67 --sport 68 -j ACCEPT
-A INPUT -p udp -m udp -i ppp0 --dport 68 --sport 67 -j ACCEPT
Ну а это правило просто неоходимо, если ip_адрес у тебя динамический
Запускаем iptables - у меня за это отвечает S08iptables в каталоге /etc/rc.d/rc5.d/ - ./S08iptables start
Вот что выдал nmap, запущенный на удаленном хосте:
Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
All 1542 scanned ports on мой_ip_адрес are: filtered
Nmap run completed -- 1 IP address (1 host up) scanned in 2605 seconds
Вот в принципе и все - конечно не плохо было бы прикрутить службу логирования всех дропнутых пакетов, но это не первостепенная задача. Если ты разобрался о чем тут речь, то и с этой задачей уже разберёшься.
Все вопросы, возникшие в процессе разбирания моего конфа можешь слать по адресу elfarda@yandex.ru - чем смогу - помогу.

Добавь наш сайт в закладки зажми клавиши (Ctrl+D)

Похожие новости
File engine/modules/xf_topics/1.php not found.

(0) Комметарии

К этой статье комментарии в данный момент отсутствуют :(

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.