Главная

Движок сайта

Заметки и юмор

Записки ЕБЖ

unix




Логин:

Пароль:

debian или как с этим жить: iptables

Автор:  root


2017-03-31: debian или как с этим жить: iptables


Вместо старого доброго ipfw тут iptables, фигарим заметку с чем его едят.
файрволл разбит на чейны INPUt, FORWARD, OUTPUT + плюс всякая муть типа nat.

Текущие правила смотрим так:
iptables -L коротенько
iptables -L -v -n по полной
iptables -L -v -n --line-numbers с номерами правил, пример:
# iptables -L -v -n --line-numbers
Chain INPUT (policy DROP 1 packets, 48 bytes)
num pkts bytes target prot opt in out source destination
1 674 56743 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:222
2 0 0 ACCEPT tcp -- * * 92.63.97.179 0.0.0.0/0 tcp dpt:222
3 6 366 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT tcp -- * * 148.251.68.114 0.0.0.0/0 tcp dpt:222

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 4 packets, 608 bytes)
num pkts bytes target prot opt in out source destination

Настройка на лету:
Добавить (номер правила 2, -p протокол, -s сорс-адрес, --dport - входящий порт)
iptables -I INPUT 2 -p tcp -s 92.63.97.179 --dport 222 -j ACCEPT
Удалить
iptables -D INPUT 3


Настройка с начала:
# Очистка всех цепочек iptables
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# разрешаем локальный траффик для loopback
iptables -A INPUT -i lo -j ACCEPT
# разрешаем пинги
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#Разрешаем established (но на vds это не пашет пока)
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Открываем порты для нужных сервисов
iptables -A INPUT -p tcp --dport 222 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT




Добавляем это говно в автозагрузку
apt-get install iptables-persistent
iptables-save > /etc/iptables/rules.v4
скрипт первой настройки файрвола тут:
root@linux:~# cat /etc/network/if-up.d/iptables.conf


#!/bin/bash
# Задаём путь к исполняемому файлу IPTABLES
IPTABLES=/sbin/iptables

# Сбрасываем существующие правила для всех таблиц и цепочек
$IPTABLES -F
#$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
#$IPTABLES -t nat -X
$IPTABLES -t mangle -X

# Задаём правила по-умолчанию (если не сработало не одно правило из цепочки ? сработает правило отсюда)
#$IPTABLES -P INPUT DROP
#Пока так ибо для ESTABLISHED не пашет правило
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Разрешаем весь трафик по loopback интерфейсу lo0
$IPTABLES -A INPUT -i lo -j ACCEPT

# Разрешаем трафик уже установленным и создающим новые подключения соединениям:
# Не пашет на vds, потом разберусь
#$IPTABLES -A INPUT -m state state RELATED,ESTABLISHED -j ACCEPT

# Разрешаем входящий SSH через интерфейс eth0
$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 222 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT



Комментарии пользователей:


2017-03-31 root: Указываем несколько портов iptables -A INPUT -p tcp -m multiport --dports 25,110 -j ACCEPT или вот так iptables -A INPUT -p tcp -m multiport --dports 27000:27005 -j ACCEPT
2017-03-31 root: ipшники диапозоном: iptables -A INPUT -p tcp --dport 22 -m iprange --src-range 10.0.0.5-10.0.0.10 -j ACCEPT
2017-04-10 root: статья по настройке сети http://sys.dmitrow.com/node/217


Сколько будет 1+1+1*0=?: