Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет cats_shadow ([info]cats_shadow)
@ 2008-05-14 08:36:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Вопрос к пингвиноводителям...
Возникла необходимость вобрать рутер/брандмауэр на debian. Проблема в том, что на этом же компе файл/веб сервера живут.
Ну и, как всегда, цейтнот (долго рыть по сети в поисках нужной документации не успеваю). :)

Следовательно 2 вопроса:
1. как это сделать? (желательно "для чайников")
2. какие в этом случае проблемы с безопасностью и методы их решения?


(Читать комментарии) - (Добавить комментарий)


[info]checat@lj
2008-05-14 05:14 (ссылка)

*filter

# by default drop incoming
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# chain for intellectual drop
:DROP-CHAIN - [0:0]
-A DROP-CHAIN -p tcp -j REJECT --reject-with icmp-admin-prohibited
-A DROP-CHAIN -m udp -p udp --src 192.168.1.1/24 -m pkttype --pkt-type unicast -j REJECT
-A DROP-CHAIN -m udp -p udp --src $EXTERNAL_IP -m pkttype --pkt-type unicast -j REJECT
-A DROP-CHAIN -j DROP

# create chain for all packets
# specifically allow packets, drop all unlisted
:MAIN-CHAIN - [0:0]

-A INPUT -j MAIN-CHAIN
-A FORWARD -j MAIN-CHAIN
-A OUTPUT -j MAIN-CHAIN


# allow local
-A MAIN-CHAIN -i lo -j ACCEPT
-A MAIN-CHAIN -o lo -j ACCEPT

# allow all ICMP
-A MAIN-CHAIN -p icmp --icmp-type any -j ACCEPT

# open ms protocols for internal-to-internal and drop for others
# notice: may be not all UDP broadcasts included
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst 192.168.1.1/24 --dport 135 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst 192.168.1.1/24 --dport 139 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst 192.168.1.1/24 --dport 445 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst $EXTERNAL_IP --dport 135 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst $EXTERNAL_IP --dport 139 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src 192.168.1.1/24 --dst $EXTERNAL_IP --dport 445 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src $EXTERNAL_IP --dst 192.168.1.1/24 --dport 135 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src $EXTERNAL_IP --dst 192.168.1.1/24 --dport 139 -j ACCEPT
-A MAIN-CHAIN -m tcp -p tcp --src $EXTERNAL_IP --dst 192.168.1.1/24 --dport 445 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst 192.168.1.1/24 --dport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst 192.168.1.1/24 --sport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst 192.168.1.1/24 --dport 138 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst $EXTERNAL_IP --dport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst $EXTERNAL_IP --sport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst $EXTERNAL_IP --dport 138 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src $EXTERNAL_IP --dst 192.168.1.1/24 --dport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src $EXTERNAL_IP --dst 192.168.1.1/24 --sport 137 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src $EXTERNAL_IP --dst 192.168.1.1/24 --dport 138 -j ACCEPT

# and specifically drop for others
-A MAIN-CHAIN -m tcp -p tcp --dport 135:139 -j DROP-CHAIN
-A MAIN-CHAIN -m tcp -p tcp --dport 445 -j DROP-CHAIN
-A MAIN-CHAIN -m udp -p udp --dport 135:139 -j DROP-CHAIN
-A MAIN-CHAIN -m udp -p udp --dport 445 -j DROP-CHAIN
-A MAIN-CHAIN -m tcp -p tcp --sport 135:139 -j DROP-CHAIN
-A MAIN-CHAIN -m tcp -p tcp --sport 445 -j DROP-CHAIN
-A MAIN-CHAIN -m udp -p udp --sport 135:139 -j DROP-CHAIN
-A MAIN-CHAIN -m udp -p udp --sport 445 -j DROP-CHAIN


# allow all other tcp from internal to any
# includes http, smtp, ftp, ssh, pop3, etc.
-A MAIN-CHAIN -m state --state NEW -m tcp -p tcp --src 192.168.1.1/24 -j ACCEPT
-A MAIN-CHAIN -m state --state NEW -m tcp -p tcp --src $EXTERNAL_IP -j ACCEPT

# allow all packets for established and 'related' connections
-A MAIN-CHAIN -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow outgoing from router to all dns
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dport 53 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src $EXTERNAL_IP --dport 53 -j ACCEPT

# allow local UDP traffic
# -A MAIN-CHAIN -m udp -p udp --src 127.0.0.1/8 --dst 127.0.0.1/8 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst 192.168.1.1/24 -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src 192.168.1.1/24 --dst $EXTERNAL_IP -j ACCEPT
-A MAIN-CHAIN -m udp -p udp --src $EXTERNAL_IP --dst 192.168.1.1/24 -j ACCEPT

# reject other UDP traffic
# -A MAIN-CHAIN -p udp -j DROP-CHAIN

# reject unlisted by default
-A MAIN-CHAIN -j DROP-CHAIN

COMMIT

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]checat@lj
2008-05-14 05:15 (ссылка)
Примерно так.
Здесь подразумевается, что все IP фиксированы, надо вручную заменить $EXTERNAL_IP на реальный IP.
Если он динамический, то такой конфиг использовать не получится (либо надо генерить скриптом на каждую смену внешнего IP).
Этот конфиг в редхате обрабатывается скриптом /etc/init.d/iptables, или где они там валяются.

(Ответить) (Уровень выше)


[info]checat@lj
2008-05-14 05:21 (ссылка)
А, здесь ещё UDP весь запрещён, кроме DNS. То есть в контру не поиграешь, надо ещё правило дописывать. Можно даже, в принципе, весь исходящий UDP разрешить.

И здесь нет лазеек для раздач основных p2p сетей, будешь личером натуральным. Не получится принимать файлы по ICQ. Скайп будет, но, кажется, с пониженным качеством. На всё надо правила дописывать.

(Ответить) (Уровень выше)


(Читать комментарии) -