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

Исходное сообщение
"Объясните начинающему про ipfw"

Отправлено САА , 22-Мрт-04 15:48 
В скрипте rc.firewall есть строка, которая разрешает "всем ходить в интернет" через NATD:

${fwcmd} add divert natd all from any to any via ${natd_interface}

Интуиция подсказывает, что "ANY to ANY" - не есть хорошо.
Подскажите, пожалуйста, как ограничить доступ из внутренней сети несколькими "привилегированными" IP?

Спасибо.


Содержание

Сообщения в этом обсуждении
"Объясните начинающему про ipfw"
Отправлено Nikolaev D. , 22-Мрт-04 16:48 
>В скрипте rc.firewall есть строка, которая разрешает "всем ходить в интернет" через
>NATD:
>
>${fwcmd} add divert natd all from any to any via ${natd_interface}
>
>Интуиция подсказывает, что "ANY to ANY" - не есть хорошо.
>Подскажите, пожалуйста, как ограничить доступ из внутренней сети несколькими "привилегированными" IP?
>
>Спасибо.


1. ${fwcmd} add divert natd all from привилегированными" IP to any via ${natd_interface}
2. ipfw add deny ip from any to any


"Объясните начинающему про ipfw"
Отправлено САА , 22-Мрт-04 16:57 
>>В скрипте rc.firewall есть строка, которая разрешает "всем ходить в интернет" через
>>NATD:
>>
>>${fwcmd} add divert natd all from any to any via ${natd_interface}
>>
>>Интуиция подсказывает, что "ANY to ANY" - не есть хорошо.
>>Подскажите, пожалуйста, как ограничить доступ из внутренней сети несколькими "привилегированными" IP?
>>
>>Спасибо.
>
>
>1. ${fwcmd} add divert natd all from привилегированными" IP to any via
>${natd_interface}
>2. ipfw add deny ip from any to any

А второе зачем, в скрипте есть дальше такое:

${fwcmd} add deny log tcp from any to any in via ${oif} setup


"Объясните начинающему про ipfw"
Отправлено САА , 23-Мрт-04 14:28 
>>>В скрипте rc.firewall есть строка, которая разрешает "всем ходить в интернет" через
>>>NATD:
>>>
>>>${fwcmd} add divert natd all from any to any via ${natd_interface}
>>>
>>>Интуиция подсказывает, что "ANY to ANY" - не есть хорошо.
>>>Подскажите, пожалуйста, как ограничить доступ из внутренней сети несколькими "привилегированными" IP?
>>>
>>>Спасибо.
>>
>>
>>1. ${fwcmd} add divert natd all from привилегированными" IP to any via
>>${natd_interface}
>>2. ipfw add deny ip from any to any

Не получается. Всё ходить перестаёт. Вообще всё, даже пинг.
Помогите арзобраться и я отстану.


"Объясните начинающему про ipfw"
Отправлено Nikolaev D. , 23-Мрт-04 14:59 
>Не получается. Всё ходить перестаёт. Вообще всё, даже пинг.
>Помогите арзобраться и я отстану.

Вот пример рабочего конфига.
Обратить внимание на строку
$ipfw add 10000  divert natd ip from $localnet_192 to any out xmit rl0
где rl0 - внешний интерфейс GW

Если очень хочется пускать только отдельных клиентов, то можно на каждый IP написать свое правило:
$ipfw add 10000  divert natd ip from GOOD_IP_1 to any out xmit rl0
$ipfw add 10001  divert natd ip from GOOD_IP_2 to any out xmit rl0
....
$ipfw add 10002  divert natd ip from GOOD_IP_N to any out xmit rl0

Все остальные будут автомтически запрещены.

-------------------------------------------------------------------
#!/bin/sh
###

ipfw="/sbin/ipfw"
localnet="212.4.1.32/28"
localnet_192="192.168.200.0/24"
gw="212.4.1.45"
akm="212.4.1.0/24"
ns="212.4.1.152"
ns1="212.4.1.130"
ns2="212.4.1.131"
nsakm="212.4.1.247"

########################################################
$ipfw -f flush

# loopback
$ipfw add 100 allow ip from any to any via lo0
$ipfw add 130 deny ip from any to 127.0.0.0/8
$ipfw add 160 deny ip from 127.0.0.0/8 to any


# RFC
$ipfw add 1100 deny ip from any to 192.168.0.0/16 in via rl0
$ipfw add 1150 deny ip from 192.168.0.0/16 to any in via rl0
$ipfw add 1200 deny ip from any to 10.0.0.0/8 via rl0
$ipfw add 1250 deny ip from 10.0.0.0/8 to any via rl0  
$ipfw add 1300 deny ip from any to not $localnet in via rl0

################################################################

# NATD natd = 8668
$ipfw add 10000  divert natd ip from $localnet_192 to any out xmit rl0
$ipfw add 11000  divert natd ip from any to $gw

###################################################################

# ADMIN
$ipfw add 20050 allow tcp from any to $gw  established
# $ipfw add 20100 allow tcp from any to $gw 22
$ipfw add 20200 allow tcp from any to $gw 22
$ipfw add 20300 allow tcp from $gw to any

# NS
#$ipfw add 20400 allow udp from $localnet to $ns
$ipfw add 20500 allow udp from $nsakm to $localnet
#$ipfw add 20600 allow udp from $localnet to $ns1
$ipfw add 20700 allow udp from $ns1 to $localnet
#$ipfw add 20800 allow udp from $localnet to $ns2
$ipfw add 20900 allow udp from $ns2 to $localnet

# main configa
$ipfw add 40000 allow tcp from any to $localnet established
$ipfw add 40100 allow ip from $localnet to any

# icmp
$ipfw add 50000 allow icmp from any to $localnet icmptype 0
$ipfw add 50100 allow icmp from $localnet to any icmptype 8

####################################################################
# NEW network
$ipfw add 60000 allow ip from $localnet_192 to any
$ipfw add 60100 allow tcp from any to $localnet_192 established

#ICMP
$ipfw add 60200 allow icmp from any to $localnet_192 icmptype 0
$ipfw add 60300 allow icmp from $localnet_192 to any icmptype 8

# DNS
$ipfw add 60400 allow udp from $ns to $localnet_192
$ipfw add 60500 allow udp from $ns1 to $localnet_192
$ipfw add 60600 allow udp from $ns2 to $localnet_192


####################################################################

# DENY ALL
$ipfw add 65000 deny ip from any to any