Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

FreeBSD + ipfw + nat

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
async



Зарегистрирован: 05.11.2004
Сообщения: 9

СообщениеДобавлено: Пт Мар 09 2007 11:15    Заголовок сообщения: FreeBSD + ipfw + nat Ответить с цитатой

Добрый день возникла проблема в понимании коректного использования ipfw.

Стоит шлюз ОС: FreeBSD 5.2
firewall: ipfw + natd

Вчера написал скриптец для разруливания правил и выдачу прав на подключение пользователей.

#!/bin/sh

# Network sites
gw="192.168.1.1"
office="55.55.55.55"
trust1="66.66.66.66"
trust2="77.77.77.77"
proxy="192.168.1.2"
dns="192.168.1.50"
admin="192.168.1.3"
lan="192.168.1.0/16"

# Commands

command="/sbin/ipfw -q"

# Rules

# Cleaning all cache
$command flush

# Diverting socket
$command add 10 divert 8668 ip from any to any
$command add 20 allow ip from any to any via lo0
$command add 30 allow ip from 192.168.1.1 to 192.168.1.1 via lo0
$command add 40 allow ip from 127.0.0.1 to any
$command add 50 check-state
$command add 60 allow ip from 192.168.1.1 to any
$command add 70 allow ip from 195.245.76.194 to any
# Loging connections

$command add 50 deny log ip from any to $office 3389 in via rl0
$command add 100 deny log ip from any to $office 23 in via rl0
$command add 150 allow log ip from any to $office 1723 in via rl0
$command add 200 allow log ip from any to $gw 22 in via vr0

# VPN tunneling

$command add 500 allow ip from any to $office 1723 in via rl0
$command add 550 allow gre from any to any
$command add 600 allow ip from any to $gw 1723 in via vr0

# Clients NAT

$command add 1000 allow ip from 192.168.1.151 to any in via vr0
$command add 1050 deny log ip from 192.168.1.151 to $lan in via vr0

# Office NAT

$command add 2000 allow ip from any to any 22 in via vr0
$command add 2050 allow ip from any to any 25 in via vr0
$command add 2100 allow ip from any to any 110 in via vr0
$command add 2150 allow ip from any to any 443 in via vr0
$command add 2200 allow ip from any to any 3389 in via vr0
$command add 2250 allow ip from any to any 4899 in via vr0
$command add 2300 allow ip from any to any 3128 in via vr0
$command add 2350 allow ip from any 3128 to any in via vr0
# ICQ allowed

$command add 3000 allow ip from 192.168.1.2 to any 5190 in via vr0
$command add 3050 allow ip from 192.168.1.3 to any 5190 in via vr0
$command add 3100 allow ip from 192.168.1.4 to any 5190 in via vr0
$command add 3150 allow ip from 192.168.1.5 to any 5190 in via vr0
$command add 3200 allow ip from 192.168.1.6 to any 5190 in via vr0
$command add 3250 allow ip from 192.168.1.7 to any 5190 in via vr0
$command add 3300 allow ip from 192.168.1.8 to any 5190 in via vr0
$command add 3350 allow ip from 192.168.1.9 to any 5190 in via vr0
$command add 3400 allow ip from 192.168.1.10 to any 5190 in via vr0
$command add 3450 allow ip from 192.168.1.12 to any 5190 in via vr0
$command add 3500 allow ip from 192.168.1.13 to any 5190 in via vr0
$command add 3550 allow ip from 192.168.1.14 to any 5190 in via vr0
$command add 3600 allow ip from 192.168.1.15 to any 5190 in via vr0
$command add 3650 allow ip from 192.168.1.16 to any 5190 in via vr0
$command add 3700 allow ip from 192.168.1.21 to any 5190 in via vr0
$command add 3750 allow ip from 192.168.1.31 to any 5190 in via vr0
$command add 3800 allow ip from 192.168.1.41 to any 5190 in via vr0
$command add 3850 allow ip from 192.168.1.42 to any 5190 in via vr0
$command add 3900 allow ip from 192.168.1.61 to any 5190 in via vr0

# Trusted servers zone

$command add 5000 allow ip from $trust1 to $office in via rl0
$command add 5050 allow ip from $office to trust1 out via rl0
$command add 5100 allow ip from $trust2 to $office in via rl0
$command add 5150 allow ip from $office to $trust2 out via rl0
$command add 5200 allow ip from $dns to any in via vr0

# Global Network

$command add 6000 allow ip from $office to any via rl0
$command add 6050 allow ip from any to $office 21 in via rl0
$command add 6100 allow ip from any to $office 22 in via rl0

# Administrators

$command add 7000 allow ip from $admin to any
$command add 7050 allow ip from any to $admin

# Protect

$command add 8000 deny log ip from $lan to 64.12.0.0/16 in via vr0
$command add 8050 deny log ip from $lan to 205.188.0.0/16 in via vr0
$command add 8100 deny log ip from $proxy to 64.127.112.0/32 in via vr0
$command add 8150 deny log ip from $proxy to 195.113.184.0/32 in via vr0
$command add 8200 deny log ip from $lan to any 5190 in via vr0
$command add 8250 deny log ip from $lan to any 80 in via vr0
# Dhcp Network

$command add 9000 pass udp from any 68 to any 67
$command add 9050 pass udp from any 67 to any 68

Использцется natd для проброса натингом таких протоколов как smtp, pop3, ssh, icq, rdp etc.

Для остальных (http, https..) используется прокси, который в свою очеред является доверенным хостом.

При отключении правила 65000 allow ip from any to any все перестает работать.

Задача уйти от использования этого правила и оставить default deny ip from any to any.

Какой набор правил я мог не заметить ... Может быть что-то нужно для Natd... кроме divert.
_________________
\0x86\0x86\ d4rkc00der@gmail.com
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пн Мар 12 2007 12:31    Заголовок сообщения: Ответить с цитатой

Раз никто не отвечает, попробую свою версию.

Много букв, сильно не вникал Smile

Вот правило 50 check-state есть. А откуда берутся эти самые подлежащие проверке динамические правила? Ни одного keep-state нету.

Если только для tcp-сессий (а практически все перечисленное так и работает), то чтобы не городить огород из keep-state + check-state, можно вместо твоего правила 50 прописАть
$command add 50 allow ip from any to any established

Как грится try it.

ЗЫ. Еще у тебя два правила номер 50. чекстэйт и вот это
$command add 50 deny log ip from any to $office 3389 in via rl0
Два правила под одним номером не криминал, работать будет (и работает), правила проверяются в порядке внесения. Но если дернет написать ipfw delete 50, удалятся оба. В данном случае я бы перенумеровал что-нибудь.

ЗЗЫ Еще Smile Добей для проверки ручками правило
ipfw add 64999 deny log logamount 0 ip from any to any
и в, кажется, security.log точно узнаешь, чего тебе не хватает. Посмотришь несколько пакетов, выведешь обобщающее правило, и можно убрать 64999 и всеразрешающее 65000
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...