Страница 1 из 1

ipfw+DMZ

Добавлено: 2007-03-05 9:47:13
GRUV
1. Задача заключается в организации ДМЗ, вынос туда серверов www, mail, dns, game и т.п. сервисов.
з.ы. До этого все стояло на одной машинке, решили организовать Home Ethernet и началось...
2. Чего то до меня не доходит с правилами ipfw (опыта работы с фрюхой - три месяца).

на фаере - стоит три сетевые:
- локалка
- на дмз
- мир

из локалки все ходят (но пока ДНС-прова)
фаер не пропускает запросы в дмз на ДНС-сервер...((

Если что то нада, выложу, или лучше в аську..437-705-386

Добавлено: 2007-03-05 9:49:02
Alex Keda
показывай чё сделал, гри чё не получается...

Добавлено: 2007-03-05 10:15:54
GRUV
rc.conf:

defaultrouter="10.0.0.1"


gateway_enable="YES"
hostname="gw.domen.kz"
linux_enable="YES"
syslogd_enable="YES"
syslogd_flags="-ss"
racoon_enable="YES"
mrtg_daemon_enable="YES"

ifconfig_fxp0="inet 10.0.0.2 netmask 255.255.255.128"
ifconfig_fxp1="inet 10.0.0.3 netmask 255.255.255.128"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.192.0"

natd_enable="YES"
natd_flags="-f /etc/natd.conf"

firewall_enable="YES"
firewall_script="/etc/rc.fw"

portmap_enable="NO"
inetd_enable="NO"
kern_securelevel_enable="NO"
nfs_reserved_port_only="YES"
sendmail_enable="NONE"
sshd_enable="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
clear_tmp_enable="YES"
icmp_bmcastecho="NO"
tcp_drop_synfin="YES"
log_in_vain="YES"
update_motd="NO"


natd.conf:

#interface for NATD
interface fxp0
same_ports
use_sockets
unregistered_only

собствено сами правила (айпишники, ес-но вымышленные):


fwcmd="/sbin/ipfw -q"

${fwcmd} -f flush

# set these to your outside interface network and netmask and ip
oif="fxp0"
onet0="10.0.0.0"
omask0="255.255.255.128"
oip0="10.0.0.2"
oipcs0="10.0.0.1"
oip1="10.0.0.3"

# DNS
dns_ip1="10.0.0.4" (мастер)
dns_ip2="10.0.0.5" (славе еще не запустил)

# set these to your inside interface network and netmask and ip
iif="rl0"
inet="192.168.0.0"
imask="255.255.192.0"
iip="192.168.0.1"

setup_loopback

${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny all from 127.0.0.0/8 to any

# Stop spoofing
${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
${fwcmd} add deny all from ${onet0}:${omask0} to any in via ${iif}

# Stop RFC1918 nets on the outside interface
${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}

# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
# on the outside interface
${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}


# Network Address Translation. This rule is placed here deliberately
# so that it does not interfere with the surrounding address-checking
# rules. If for example one of your internal LAN machines had its IP
# address set to 192.0.2.1 then an incoming packet for it after being
# translated by natd(8) would match the `deny' rule above. Similarly
# an outgoing packet originated from it before being translated would
# match the `deny' rule below.

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

# Stop RFC1918 nets on the outside interface
${fwcmd} add deny all from 10.0.0.0/8 to any via ${oif}
${fwcmd} add deny all from 172.16.0.0/12 to any via ${oif}
${fwcmd} add deny all from 192.168.0.0/16 to any via ${oif}

# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
# on the outside interface
${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}
${fwcmd} add deny all from 169.254.0.0/16 to any via ${oif}
${fwcmd} add deny all from 192.0.2.0/24 to any via ${oif}
${fwcmd} add deny all from 224.0.0.0/4 to any via ${oif}
${fwcmd} add deny all from 240.0.0.0/4 to any via ${oif}


# Local network
${fwcmd} add allow ip from ${inet}:${imask} to any
${fwcmd} add allow ip from any to ${inet}:${imask}

${fwcmd} add pass all from ${onet0}:${omask0} to any via ${oif}
${fwcmd} add pass all from ${oip1} to ${dns_ip}
${fwcmd} add pass all from ${dns_ip} to ${oip1}

# Corporate network
${fwcmd} add pass all from ${inet}:${imask} to ${inet}:${imask} via iif
${fwcmd} add pass all from ${inet}:${imask} to ${inet}:${imask}

# Allow anything outbond from this net
${fwcmd} add allow from ${onet0}:${omask0} to any out via ${oif}

# Allow TCP through if setup succeeded
${fwcmd} add pass tcp from any to any established
${fwcmd} add pass ip from ${oip0} to any out xmit ${oif}

# Allow IP fragments to pass through
${fwcmd} add pass all from any to any frag

# ICMP, 0 - echo reply, 3 - destination unreachable, 4 -
# source quench, 8 - echo request, 11 - ttl exceeded
${fwcmd} add pass icmp from any to any icmptype 0,3,4,8,11


# Allow setup of incoming email

# Allow setup of SSH
${fwcmd} add allow tcp from any to ${oip0} 22,25,53,110 setup in via ${oif}
${fwcmd} add pass tcp from ${oip0} 22,25,53,110 to any

# Allow access to our DNS

${fwcmd} add pass udp from any 53 to any keep-state
${fwcmd} add allow udp from any 53 to any
${fwcmd} add allow udp from any to any 53

# Allow access to our WWW
${fwcmd} add pass tcp from any to ${oip0} 80 setup

# Reject&Log all setup of incoming connections from the outside
${fwcmd} add deny log tcp from any to any in via ${oif} setup

# Allow setup of any other TCP connection
${fwcmd} add pass tcp from any to any setup

# Allow DNS queries out in the world
${fwcmd} add allow udp from any to any 53 keep-state

# Allow NTP queries out in the world
${fwcmd} add pass udp from ${oip0} to any 123 keep-state

# Broadcasts are denied and not logged.
${fwcmd} add deny all from any to 255.255.255.255

# Evrething else is denied and logged.
${fwcmd} add deny log all from any to any



sysctl.conf:

kern.ipc.somaxconn=1024
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim=150
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
net.inet.tcp.sack.enable=1
net.inet.ip.redirect=0
net.inet.icmp.drop_redirect=1
net.inet.icmp.bmcastecho=0
net.inet.tcp.mls=7500

Добавлено: 2007-03-05 11:21:50
dikens3
Может поможет:
http://www.lissyara.su/?id=1305

И вообще, организовывать DMZ не понимая как работает Firewall не остроумно.

Добавлено: 2007-03-05 11:29:23
GRUV
2dikens3
Обязательно поднимать мост?
Статью читал, спс. Ipfw man все еще курю... не все сразу, знал бы как, тут не спрашивал.

Добавлено: 2007-03-05 11:39:45
dikens3
GRUV писал(а):2dikens3
Обязательно поднимать мост?
Статью читал, спс. Ipfw man все еще курю... не все сразу, знал бы как, тут не спрашивал.
Внешних IP сколько? один?

Добавлено: 2007-03-05 11:41:13
dikens3
GRUV писал(а):2dikens3
Обязательно поднимать мост?
Статью читал, спс. Ipfw man все еще курю... не все сразу, знал бы как, тут не спрашивал.
Внешних IP сколько? один?

Тут вот я пытался научить понимать файрвол опытным путём.
http://forum.lissyara.su/viewtopic.php?t=2432

Добавлено: 2007-03-05 12:45:25
GRUV
Внешних IP много больше.. до 128

Добавлено: 2007-03-05 13:18:59
dikens3
GRUV писал(а):Внешних IP много больше.. до 128
Тогда для DMZ делай отдельную сеть и пусть пров настроит роутинг. (или ты настраиваешь мост)
Почему так?
К примеру:

Код: Выделить всё

fxp0 - 10.10.10.10/30 (lan 10.10.10.8  + Шлюз  10.10.10.9 + IP-Адрес 10.10.10.10 + broadcast 10.10.10.11)

fxp1 - 10.10.10.13/30 (Единственным IP будет 10.10.10.14)

DMZ (соединён с fxp1) IP-Адрес 10.10.10.14 + шлюз 10.10.10.13
Предположим придёт arp запрос к сетевой карте fxp0 (в инет смотрит)

Код: Выделить всё

13:10:06.598349 arp who-has 10.10.10.10 tell 10.10.10.9
Нормально всё прокатит и будет получен ответ:

Код: Выделить всё

13:16:38.073308 arp reply 10.10.10.10 is-at 00:10:5a:0f:90:3e
А на такой arp запрос ответ получен не будет:

Код: Выделить всё

13:10:06.598349 arp who-has 10.10.10.14 tell 10.10.10.9
Вот за этим и нужен мост или IP-Роутинг.

Т.к. данные передаются между MAC-Адресами передачи данных не будет.

Добавлено: 2007-03-05 13:48:20
GRUV
2dikens3
так и есть, на такой запрос ответ не получен...
Я думал на счет моста, но некоторые Внешние IP планируется раздавать сторонним организациям, т.е. нужно настраивать роутинг.[/list][/code][/quote]