ipfw+DMZ

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
GRUV
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-03-05 9:03:30

ipfw+DMZ

Непрочитанное сообщение GRUV » 2007-03-05 9:47:13

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

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

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

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-05 9:49:02

показывай чё сделал, гри чё не получается...
Убей их всех! Бог потом рассортирует...

GRUV
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-03-05 9:03:30

Непрочитанное сообщение GRUV » 2007-03-05 10:15:54

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

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-05 11:21:50

Может поможет:
http://www.lissyara.su/?id=1305

И вообще, организовывать DMZ не понимая как работает Firewall не остроумно.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

GRUV
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-03-05 9:03:30

Непрочитанное сообщение GRUV » 2007-03-05 11:29:23

2dikens3
Обязательно поднимать мост?
Статью читал, спс. Ipfw man все еще курю... не все сразу, знал бы как, тут не спрашивал.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-05 11:39:45

GRUV писал(а):2dikens3
Обязательно поднимать мост?
Статью читал, спс. Ipfw man все еще курю... не все сразу, знал бы как, тут не спрашивал.
Внешних IP сколько? один?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-05 11:41:13

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

Тут вот я пытался научить понимать файрвол опытным путём.
http://forum.lissyara.su/viewtopic.php?t=2432
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

GRUV
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-03-05 9:03:30

Непрочитанное сообщение GRUV » 2007-03-05 12:45:25

Внешних IP много больше.. до 128

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-03-05 13:18:59

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-Адресами передачи данных не будет.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

GRUV
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-03-05 9:03:30

Непрочитанное сообщение GRUV » 2007-03-05 13:48:20

2dikens3
так и есть, на такой запрос ответ не получен...
Я думал на счет моста, но некоторые Внешние IP планируется раздавать сторонним организациям, т.е. нужно настраивать роутинг.[/list][/code][/quote]