LINUX.ORG.RU
ФорумAdmin

Настройка iptables


0

0

Мне необходимо настроить iptables таким образом, чтобы можно было считать траффик по пользователям(ulog-acctd). Вот пример, но в нем где-то ошибка, помогите найти не работает DNS вроде как.
#!/bin/sh
######################################################################
EXTERNAL_DEVICE="eht0"
INTERNAL_DEVICE="eth1"
INTERNAL_ADDRESS="192.168.0.1"
IPTABLES="/sbin/iptables"
i="192.168.0.202"
######################################################################
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

$IPTABLES -N allowed
$IPTABLES -A allowed -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50 --ulog-prefix allow
$IPTABLES -A allowed -j ACCEPT

$IPTABLES -N rejected
$IPTABLES -A rejected -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50 --ulog-prefix drop
$IPTABLES -A rejected -j DROP

$IPTABLES -A OUTPUT -j allowed

$IPTABLES -A INPUT ! -i $EXTERNAL_DEVICE -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP ! --syn -m state --state NEW -j rejected
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP --syn --dport 22 -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP -m state --state ESTABLISHED,RELATED -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 53 -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 53 -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 123 -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 123 -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p ICMP -j allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -j rejected
$IPTABLES -t nat -A POSTROUTING -o $EXTERNAL_DEVICE -s $i -j MASQUERADE
$IPTABLES -A FORWARD -i $INTERNAL_DEVICE -o $EXTERNAL_DEVICE -s $i -j allowed
$IPTABLES -A FORWARD -o $INTERNAL_DEVICE -i $EXTERNAL_DEVICE -p TCP --syn -d $i -j rejected
$IPTABLES -A FORWARD -o $INTERNAL_DEVICE -i $EXTERNAL_DEVICE -p ICMP --icmp-type 8 -d $i -j rejected
$IPTABLES -A FORWARD -o $INTERNAL_DEVICE -i $EXTERNAL_DEVICE -d $i -j allowed
В этом примере маскарадинг сделан только для одной машины.
Мне вообще нужно настроить более тонко iptables это просто пример.
Мне нужно настроить со всякими там защитами от сетевых атак. И закрыть все лишние порты как на наружнем так и на внутреннем интерфейсе. Мне также нужно чтобы весь скачиваемый траффик считался по пользователям NAT(c что-то туго). ftp чтобы был открыт только на внутренний интерфейс(это вроде сделал). У меня есть наработки. Если кто может помочь двайте по мылу или по асе. Пишите на youra@razrabotka.net.ru


Зачем изобритать велосипед?
Ты читал http://www.opennet.ru/docs/RUS/iptables/

а DNS у тебя не работает, так как не подгружен модуль IP_NF_CONNTRACK

DNS работает по UDP протоколу, и если нет таблицы трассировки,
то система просто DROP входящие udp пакеты, так как не знает, что это ответ на твой запрос.

А если бы была таблица, то было бы достаточно указать
iptables -I OUTPUT -j ACCEPT
, и DNS бы работал, даже если на INPUT стоит -j DROP для всего

arum ★★
()
Ответ на: комментарий от arum

> и DNS бы работал, даже если... стоит -j DROP для всего
Нет, сударь, DROP - он и в Африке DROP :-)

На счет DNS честно говоря не особо понимаю почему оно не работает, но может все таки стоит еще вставить по аналогии с TCP такое:
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP -m state --state ESTABLISHED,RELATED -j allowed

spirit ★★★★★
()
Ответ на: комментарий от spirit

Согласен со spirit. Могу добавить, что можно просто убрать -p TCP из строчки про -m state --state ESTABLISHED,RELATED. Тогда и TCP, и UDP, и ICMP попадут в это правило. И для них для всех будет учитываться состояние соединения (state).

anonymous
()
Ответ на: комментарий от arum

Ядро я пересобрал, но дело было не в бабине ...
eth0 было написано как eht0!

Youra_P
() автор топика
Ответ на: комментарий от spirit

Da dejstvitelno ne zametel etu srochku v svojem rc.firewal :)

$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state STABLISHED,RELATED \-j ACCEPT

arum ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.