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 |
|
a-m-d
Зарегистрирован: 09.09.2004 Сообщения: 1498 Откуда: SPb
|
Добавлено: Пн Мар 12 2007 12:31 Заголовок сообщения: |
|
|
Раз никто не отвечает, попробую свою версию.
Много букв, сильно не вникал
Вот правило 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, удалятся оба. В данном случае я бы перенумеровал что-нибудь.
ЗЗЫ Еще Добей для проверки ручками правило
ipfw add 64999 deny log logamount 0 ip from any to any
и в, кажется, security.log точно узнаешь, чего тебе не хватает. Посмотришь несколько пакетов, выведешь обобщающее правило, и можно убрать 64999 и всеразрешающее 65000 _________________ Век живи - век учись!.. Дураком помрёшь. |
|