URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 73255
[ Назад ]

Исходное сообщение
"ipfw + nat - помогите с конфигом!"

Отправлено OSBoy , 01-Апр-07 19:59 
В-общем запутался, инета у тестовых юзеров никак нет!
Вот мой конфиг, гляньте пожалуйста, товарищи камрады, какие тут косяки?

Код
#!/bin/sh
#
#Переменные:
ipfw="/sbin/ipfw -q"
iif="rl0" #Внутренний интерфейс
oif="rl1" #Внешний интерфейс
oip="10.0.0.3" #Внешний IP
iip="192.168.1.1" #Внутренний IP
ournet="192.168.0.0/16" #Внутренняя локальная сеть
loopback="lo0" #Локальный интерфейс
uprefix="192.168"
#
#Очистка правил, проверка динамических правил:
${ipfw} -f flush
${ipfw} -f pipe flush
${ipfw} -f queue flush
${ipfw} add 100 check-state
#
#Dummynet:
${ipfw} add 200 pipe 1 ip from not ${ournet} to ${uprefix}.2.2
${ipfw} pipe 1 config bw 64Kbit/s
${ipfw} add 210 pipe 2 ip from ${uprefix}.2.2 to not ${ournet}
${ipfw} pipe 2 config bw 64Kbit/s
${ipfw} add 220 pipe 3 ip from not ${ournet} to ${uprefix}.3.3
${ipfw} pipe 3 config bw 64Kbit/s
${ipfw} add 230 pipe 4 ip from ${uprefix}.3.3 to not ${ournet}
${ipfw} pipe 4 config bw 64Kbit/s
#
#Запрет нетбиос через внешний интерфейс:
${ipfw} add 300 reject log tcp from any to any 445,139 via ${oif}
${ipfw} add 310 reject log udp from any to any 137,138 via ${oif}
${ipfw} add 320 reject log tcp from any 445,139 to any via ${oif}
${ipfw} add 330 reject log udp from any 137,138 to any via ${oif}
#
#Антисканнер/антихакер:
${ipfw} add 400 deny log icmp from any to any frag
${ipfw} add 410 deny log icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 420 reject log ip from ${ournet} to any in via ${oif}
${ipfw} add 430 reject log tcp from any to any tcpflags fin,syn,rst,psh,ack,urg
${ipfw} add 440 reject log tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg
${ipfw} add 450 reject log tcp from any to any not established tcpflags fin
${ipfw} add 460 reject log ip from any to any not verrevpath in
#
#Пропустить мимо NAT'а запросы на мой сервак:
${ipfw} add 500 skipto 820 tcp from any to me 21,22,80,65530-65535
#
#Повернуть всё входящее извне на NAT:
${ipfw} add 600 divert natd ip from any to ${oip} in via ${oif}
#Повернуть всё, что из локалки в мир на NAT:
${ipfw} add 610 divert natd ip from ${ournet} to any out via ${oif}
#
#Направить DNS-запросы юзеров на мой роутер (юзеры прописывают в DNS меня - 192.168.1.1):
${ipfw} add 700 fwd 10.0.0.1,domain udp from ${ournet} to me domain in via ${iif}
#Разрешить DNS-запросы от меня куда угодно:
${ipfw} add 710 allow udp from me to any domain keep-state
#
#Правила для сервера:
${ipfw} add 800 allow ip from any to any via ${loopback}
${ipfw} add 810 allow tcp from me to any keep-state
${ipfw} add 820 allow tcp from any to me 21,80,65530-65535
${ipfw} add 830 allow tcp from 10.0.0.2 to me ssh in via ${oif}
${ipfw} add 840 allow icmp from any to any
#
#Разрешения для юзеров:
${ipfw} add 10002 allow ip from ${uprefix}.2.2 to not ${ournet}
${ipfw} add 10002 allow ip from not ${ournet} to ${uprefix}.2.2
${ipfw} add 10003 allow ip from ${uprefix}.3.3 to not ${ournet}
${ipfw} add 10003 allow ip from not ${ournet} to ${uprefix}.3.3
${ipfw} add 65535 deny log ip from any to any


Содержание

Сообщения в этом обсуждении
"ipfw + nat - помогите с конфигом!"
Отправлено seller , 02-Апр-07 13:52 
>В-общем запутался, инета у тестовых юзеров никак нет!
>Вот мой конфиг, гляньте пожалуйста, товарищи камрады, какие тут косяки?

Раз запутались, начните с малого.
Сначала заверните всех на нат, проверьте наличие инета, а затем кусками добавляйте правила и смотрите что получилось.
Гляньте на ipfw list, чтоб убедиться, что скрипт сработал (на всяк случай),
а потом поглядывайте на счетчики ipfw show, чтоб посмотреть на каком правиле все рубится, если вдруг перестанет работать...


"ipfw + nat - помогите с конфигом!"
Отправлено OSBoy , 02-Апр-07 17:51 
И ещё сразу такой вопрос: каким образом правильно настраивать клиентов? В частности из других подсетей! Скажем, мой сервер в подсети 192.168.1.1-255 а как настроить клиентов, например из 192.168.2.1-255?