подскажите пожалуйста IPFW+NAT

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-02 21:11:06

Добрый день уважаемые.
Прошу у вас совета по настройке IPFW+NAT, перечитал кучу статей, но к единому прийти не могу.
Есть некая сеть и роутер на FreeBSD 8 с ядерным IPFW и натом и dhcp. Задача роутера пока просто раздавать интернет в сеть, попутно блокируя лишнее по возможности.
Накатал конфиг, прошу вас оценить и подсказать правильно ли расположен divert и может чего не учёл?

по умолчанию фаерволл открытый

sis0 - внешний интерфейс

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

#!/bin/sh

cmd="/sbin/ipfw"
wanip="1.1.1.2"
local="172.16.10.0/24"
unprev="123"


/sbin/ipfw -f flush


##############
## Loopback IF
##############
$cmd add 20 allow ip from any to any via lo0
$cmd add 20 deny ip from 127.0.0.1/8 to any
$cmd add 20 deny ip from any to 127.0.0.1/8
$cmd add 21 deny ip from any to me 23


##############
### SSH Access
##############
$cmd add 150 deny tcp from any to me 22
$cmd add 150 allow tcp from me 22 to any

##########
#правила запрещающие сайты и закрывающие порты, я их не стал тут описывать
########

#############
## Nat Divert
#############
$cmd add 6000 divert natd ip from any to any via sis0

rc.conf

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

gateway_enable="YES"
hostname="server.server"
defaultrouter="1.1.1.1"
ifconfig_sis0="inet 1.1.1.2 netmask 255.255.255.252"
ifconfig_rl0_="inet 172.16.10.1 netmask 255.255.255.0"
inetd_enable="YES"
keymap="ru.koi8-r"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
sshd_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
natd_enable="YES"
natd_interface="sis0"
dhcpd_enable="YES"
dhcpd_conf="/etc/dhcpd.conf"
dhcpd_ifaces="rl0"
Последний раз редактировалось f_andrey 2012-08-02 21:17:31, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания 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/

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение FreeBSP » 2012-08-03 0:36:59

чем ядерный нат не устраивает? зачем по пять правил на один номер?
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-03 4:43:44

FreeBSP писал(а):чем ядерный нат не устраивает? зачем по пять правил на один номер?
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/
а чем плохо несколько правил на одном номере?

divert natd это не ядерный нат, а отдельный модуль?

Другой гость
проходил мимо

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение Другой гость » 2012-08-03 10:48:50

impetigo писал(а): divert natd это не ядерный нат, а отдельный модуль?
natd это отдельный модуль, а не ядерный нат.
Чтобы работал ядерный нат надо почитать воот эту статью

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-03 11:08:54

переделываю по этой статье

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-03 14:08:28

возникла проблема, видимо в синтаксисе

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

[root@server ~]# /etc/rc.d/ipfw restart
net.inet.ip.fw.enable: 1 -> 0
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
add: not found
nat: not found
add: not found
add: not found
Firewall rules loaded.

/etc/rc.firewall

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

add 100 allow ip from any to any via lo0
add 110 deny ip from any to 127.0.0.0/8
add 120 deny ip from 127.0.0.0/8 to any

add 150 allow tcp from any to me 30009 via sis0
add 170 allow tcp from me 22 to any via sis0

add 200 allow ip from any to any via rl1

add 210 deny ip from 224.0.0.0/4 to any via sis0
add 220 deny ip from any to 224.0.0.0/4 via sis0

add 230 deny icmp from any to 255.255.255.255 in via sis0
add 240 deny icmp from any to 255.255.255.255 out via sis0

nat 1 config log if sis0 reset same_ports

add 6000 nat 1 ip from any to any via sis0

add 65534 deny log all from any to any

шёл_мимо
проходил мимо

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение шёл_мимо » 2012-08-03 15:09:25

add 100 allow ip from any to any via lo0
ipfw add 100 allow ip from any to any via lo0

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-03 19:30:34

шёл_мимо писал(а):ipfw add 100 allow ip from any to any via lo0
тоже самое, add: not found

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-03 20:24:32

решил, приведя к такому виду
cat /etc/ipfw

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

#!/bin/sh

cmd="/sbin/ipfw"
/sbin/ipfw -f flush

$cmd add 100 allow ip from any to any via lo0
$cmd add 110 deny ip from any to 127.0.0.0/8
$cmd add 120 deny ip from 127.0.0.0/8 to any


Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение FreeBSP » 2012-08-03 21:02:37

читаем первый пример в статье и оригинальный /etc/rc.firewall:

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

534 *)
535         if [ -r "${firewall_type}" ]; then
536                 ${fwcmd} ${firewall_flags} ${firewall_type}
537         fi
538         ;;
конфиг вида add ... читается из ${firewall_type}
а в firewall_script находится обычный sh скрипт, вызываемый из /etc/rc.d/ipfw

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

 45         if [ -r "${firewall_script}" ]; then
 46                 /bin/sh "${firewall_script}" "${_firewall_type}"
и вообще в статье неплохие примеры, в частности первый пример - минимальный набор ната, должен вам подходить
и оригинальный /etc/rc.firewall стоит полностью прочитать
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

impetigo
рядовой
Сообщения: 11
Зарегистрирован: 2011-08-21 4:44:08

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение impetigo » 2012-08-04 9:35:29

FreeBSP писал(а):и вообще в статье неплохие примеры, в частности первый пример - минимальный набор ната, должен вам подходить
и оригинальный /etc/rc.firewall стоит полностью прочитать
я и сделал по первому примеру, только вот так и не понял с синкасисом почему была проблема. сейчас все работает.

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: подскажите пожалуйста IPFW+NAT

Непрочитанное сообщение FreeBSP » 2012-08-04 11:36:53

FreeBSP писал(а): конфиг вида add ... читается из ${firewall_type}
а в firewall_script находится обычный sh скрипт, вызываемый из /etc/rc.d/ipfw
impetigo писал(а): rc.conf

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

firewall_script="/etc/rc.firewall"
/etc/rc.firewall

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

add 100 allow ip from any to any via lo0
В статье:
/etc/rc.conf

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

firewall_type="/etc/firewall"
/etc/firewall

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

add 1040 allow ip from any to any via fxp0
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!