The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"host-gw : решение на SQUID & IPFW"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"host-gw : решение на SQUID & IPFW"
Сообщение от mrrc emailИскать по авторуВ закладки on 21-Апр-02, 23:23  (MSK)
Планируется поднятие сервера под FreeBSD 4.5, играющего роль шлюза в интернет для клиентов в офисе. На нем также находится почтовый сервер (domain.ru).

Условимся:
Интерфейс dc0 (IP 195.195.195.195) смотрит на ISP
Интерфейс rl0 (IP 10.0.0.1) смотрит во внутреннюю сеть.

Планирую все запросы пользователей (помимо почты) свести на SQUID, то есть дать им доступ со своих машин только на шлюз 10.0.0.1, порт 8080 (не считая портов почты), где будет сидеть SQUID, который и будет осуществлять доступ пользователей наружу в мир, работая при этом с прокси провайдера (parent).
Это облегчит контроль за их работой, позволит гибко осуществлять разграничения необходимые, подсчет трафика и прочие вещи.

Почтой пользоваться скорее всего все будут с локального почтового сервера, расположенного на этом же шлюзе или через броузер, у кого есть ящики на серверах в инете.
Поднимать или нет natd пока не решил.

Ниже привожу первоначальный необходимый набор правил ipfw, по которым и хочу получить критику с вашей стороны.
Смысл их должен быть понятен в целом, может чего убрать или добавить нужно, либо иначе как-то решить тот или иной момент.


#!/bin/sh

fwcmd="/sbin/ipfw"


${fwcmd} -f flush

# Разрешаем трафик по local интерфейсу
${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny all from 127.0.0.0/8 to any

# защищаемся от спуфинга, типа так:
${fwcmd} add deny ip from 10.0.0.0/24 to any in via dc0
${fwcmd} add deny ip from 195.195.195.195 to any in via rl0

# Запрещаем прохождение фрагментированных пакетов
${fwcmd} add deny icmp from any to any frag

# Разрешаем прохождение ICMP пакетов
${fwcmd} add pass ICMP from any to any

# разрешаем traceroute
${fwcmd} add pass udp from 195.195.195.195 to any 33434-33523 out via dc0

# Разрешаем работу с SMTP протоколом
${fwcmd} add pass tcp from any to any 25
${fwcmd} add pass tcp from any 25 to any

# Squid port 8080
${fwcmd} add pass tcp from 10.0.0.0/24 to 10.0.0.1 8080
${fwcmd} add pass tcp from 10.0.0.1 8080 to 10.0.0.0/24

# Squid ISP
${fwcmd} add pass tcp from 195.195.195.195 to ip_isp_squid 3128,3130
${fwcmd} add pass tcp from ip_isp_squid 3128,3130 to 195.195.195.195
${fwcmd} add pass udp from 195.195.195.195 to ip_isp_squid 3130
${fwcmd} add pass udp from ip_isp_squid 3130 to 195.195.195.195

# Разрешаем работу по портам 20,21,80 напрямую, при неудаче через
ip_isp_squid
${fwcmd} add pass tcp from 195.195.195.195 to any 20,21,80
${fwcmd} add pass tcp from any 20,21,80 to 195.195.195.195

# Разрешаем работу с DNS серверами
${fwcmd} add pass tcp from any to any 53
${fwcmd} add pass tcp from any 53 to any
${fwcmd} add pass udp from any to any 53
${fwcmd} add pass udp from any 53 to any

# Разрешаем забор почты по POP3 протоколу
${fwcmd} add pass tcp from any to any 110
${fwcmd} add pass tcp from any 110 to any

# Разрешаем доступ по ssh
${fwcmd} add pass tcp from good_ip to 195.195.195.195 22
${fwcmd} add pass tcp from 195.195.195.195 22 to good_ip

# Deny all log
${fwcmd} add deny log all from any to any


Знаю, что нужно использовать keep-state и check-state в связке с правилами ${fwcmd} add pass udp from any ХХ to any, иначе я даю доспут к своему шлюзу откуда угодно по tcp\udp.

Как это все правильнее прописать, хотелось бы примеры данных правил услышать по моему случаю.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: host-gw : решение на SQUID & IPFW"
Сообщение от Dima emailИскать по авторуВ закладки on 21-Апр-02, 23:38  (MSK)
А зачем тебе вообще ipfw нежен ???
Кроме SQUID они ходить не куда не будут
закрой им внешний инет от всего и скажи "ТОЛЬКО ЧЕРЕЗ ПРОКСИ".
и правил не надо будет.
или там акромя HTTP еще и аська надо будет ?
Я на сервер в офисе поставил, они на 192.168 сидят все, а в инет через dialup выходят,
почта рулится на сервер и от туда же тянется от прова. Единственный минус, это кривизна работы с fetckmail. Если будет у них стоять канал постоянный то будет почта рулится прямо на сервер. но в инет все рано только через прокси если не потребуют чего либо другого.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: host-gw : решение на SQUID & IPFW"
Сообщение от mrrc emailИскать по авторуВ закладки on 22-Апр-02, 00:00  (MSK)
Ну как же зачем правила ipfw?
Во первых, закрыть все на шлюзе, особенно на внешнем интерфейсе, открыв только необходимые для работы порты.
Аськи и прочее через SQUID пускай ходят.
Потом не исключаю natd все же придется поднимать  для бухгалтерии, да и для своих клиентских приложений, поэтому нужно четко и правильно правила настроить, которые я выше привел.
Вся предыстория и тактика в шапке у меня написаны.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: host-gw : решение на SQUID & IPFW"
Сообщение от Евгений Искать по авторуВ закладки on 22-Апр-02, 13:18  (MSK)
Правила сырые :(

${fwcmd} add deny ip from 195.195.195.195 to any in via rl0 - боишся, что какой-то юзер серверный ip на себя повесит? в серой-то сетке? и как он пакетики наружу роутить будет и сражаться с виндой, которая ему скажет, что ip уже используется и отключит интерфейс нафиг?

зато отрубил: passive ftp (default для bsd, между прочим), cvsup, www на нестандартных портах (русифицированный, например, так, что 8080=koi, 8081=win и т.д.)
...и оставил открытой систему для пакетов с кривым портом отправления, например: 53 порт кулхацкера -> 22 порт с непатченным ssh :(((((

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: host-gw : решение на SQUID & IPFW"
Сообщение от mrrc emailИскать по авторуВ закладки on 25-Апр-02, 23:23  (MSK)
Ну что, вот нарисовался принципиальный костяк правил, вроде грамотно и все работает.

#!/bin/sh

        fwcmd="/sbin/ipfw"


        ${fwcmd} -f flush

        # Разрешаем трафик по local интерфейсу
        ${fwcmd} add pass all from any to any via lo0
        ${fwcmd} add deny all from any to 127.0.0.0/8
        ${fwcmd} add deny all from 127.0.0.0/8 to any

        # Запрещаем прохождение фрагментированных пакетов
        ${fwcmd} add deny icmp from any to any frag

        # NATD
#       ${fwcmd} add divert natd ip from 10.0.0.0/24 to any out via dc0
#       ${fwcmd} add divert natd ip from any to 195.195.195.195 in via dc0

        # Разрешаем прохождение ICMP пакетов
        ${fwcmd} add pass ICMP from any to any

        # Check-state
        ${fwcmd} add check-state

        # Разрешаем работу с DNS серверами
        ${fwcmd} add pass tcp from me to any 53 setup keep-state
        ${fwcmd} add pass udp from me to any 53 keep-state

        # traceroute
        ${fwcmd} add pass udp from me to any 33434-33523 out via dc0

        # разрешаем прохождение почты к нам
        ${fwcmd} add pass tcp from any to me 25 setup keep-state
        # разрешаем прохождение почты от нас
        ${fwcmd} add pass tcp from me to any 25 setup keep-state

        # Разрешаем забор почты по POP3 протоколу
        ${fwcmd} add pass tcp from any to me 110 setup keep-state

        # Разрешаем забор почты по IMAP4 протоколу
        ${fwcmd} add pass tcp from any to me 143 setup keep-state

        # Squid port 8080
        ${fwcmd} add pass tcp from 10.0.0.0/24 to 10.0.0.1 8080
        ${fwcmd} add pass tcp from 10.0.0.1 8080 to 10.0.0.0/24

        ${fwcmd} add pass tcp from 195.195.195.195 to ip_isp_squid 3128,3130
        ${fwcmd} add pass tcp from ip_isp_squid 3128,3130 to 195.195.195.195
        ${fwcmd} add pass udp from 195.195.195.195 to ip_isp_squid 3130
        ${fwcmd} add pass udp from ip_isp_squid 3130 to 195.195.195.195

        # Разрешаем работу с HTTP,FTP протоколом
        ${fwcmd} add pass tcp from 195.195.195.195 to any 20,21,80,443,8101 via dc0 setup keep-state

        # Разрешаем доступ по ssh
        ${fwcmd} add pass tcp from good_ip to me 22
        ${fwcmd} add pass tcp from me 22 to good_ip

        # Deny all log
        ${fwcmd} add deny log all from any to any

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру