Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - [решено] Динамическое подключение IPFW & NAT

Ответить
Настройки темы
FreeBSD - [решено] Динамическое подключение IPFW & NAT

Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Есть желание использовать ядро GENERIC и в связи с этим возник вопрос:
Как лучше подключить фаер с натом?
Для ipfw понял что так:
# echo 'ipfw_load="YES"' >> /boot/loader.conf
Ну и стандартные строки в rc.conf естественно...
Как подключить НАТ? причем хотелось бы использовать kernel NAT вместо natd.

-------
IT house


Отправлено: 10:09, 08-08-2008

 

Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата:
Есть желание использовать ядро GENERIC
То есть FORWARD и DIVERT - использовать не планируете?

Цитата:
хотелось бы использовать kernel NAT вместо natd.
kernel NAT - это что?

Последний раз редактировалось Dm1try, 08-08-2008 в 17:14.


Отправлено: 17:01, 08-08-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Цитата Dm1try:
То есть FORWARD и DIVERT - использовать не планируете? »
как раз планирую и ищу способы альтернативной реализации
Цитата Dm1try:
kernel NAT - это что? »
Вот тут обсуждали: http://www.opennet.ru/openforum/vslu...ID3/40608.html

А это я нашел в мане по ipfw:
Код: Выделить весь код
NAT, REDIRECT AND LSNAT
     First redirect all the traffic to nat instance 123:

	   ipfw add nat 123 all from any to any

     Then to configure nat instance 123 to alias all the outgoing traffic with
     ip 192.168.0.123, blocking all incoming connections, trying to keep same
     ports on both sides, clearing aliasing table on address change and keep-
     ing a log of traffic/link statistics:

	   ipfw nat 123 config ip 192.168.0.123 log deny_in reset same_ports

     Or to change address of instance 123, aliasing table will be cleared (see
     reset option):

	   ipfw nat 123 config ip 10.0.0.1

     To see configuration of nat instance 123:

	   ipfw nat 123 show config

     To show logs of all the instances in range 111-999:

	   ipfw nat 111-999 show

     To see configurations of all instances:

	   ipfw nat show config

     Or a redirect rule with mixed modes could looks like:

	   ipfw nat 123 config redirect_addr 10.0.0.1 10.0.0.66
			   redirect_port tcp 192.168.0.1:80 500
			   redirect_proto udp 192.168.1.43 192.168.1.1
			   redirect_addr 192.168.0.10,192.168.0.11
				   10.0.0.100 # LSNAT
			   redirect_port tcp 192.168.0.1:80,192.168.0.10:22
				   500	      # LSNAT

     or it could be splitted in:

	   ipfw nat 1 config redirect_addr 10.0.0.1 10.0.0.66
	   ipfw nat 2 config redirect_port tcp 192.168.0.1:80 500
	   ipfw nat 3 config redirect_proto udp 192.168.1.43 192.168.1.1
	   ipfw nat 4 config redirect_addr
	   192.168.0.10,192.168.0.11,192.168.0.12
					10.0.0.100
	   ipfw nat 5 config redirect_port tcp
			  192.168.0.1:80,192.168.0.10:22,192.168.0.20:25 500

-------
IT house


Отправлено: 00:26, 09-08-2008 | #3


Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


ТО есть, NAT работающий в kernel space.
Я знаю что в 7.x ipfw научился делать NAT без natd, но мне честно, лень, искать что нужно для этого.
Очевидно одно - пересборка ядра потребуется.

Попробуйте загрузить модулем pf, он и NAT умеет, и много чего еще.

Отправлено: 09:37, 10-08-2008 | #4


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Поднял тестовую машину, дописал в rc.conf стандартные вещи:
firewall_enable="YES"
firewall_script="/etc/rules"
natd_enable="YES"
natd_interface="rl0"
в /boot/loader.conf:
ipfw_load="YES"'
- все пашет без пересборки ядра. Нат работает по стандартным правилам natd...

-------
IT house


Отправлено: 14:23, 10-08-2008 | #5


Аватара для Dm1try

Старожил


Сообщения: 215
Благодарности: 33

Профиль | Отправить PM | Цитировать


Очевидно Вы используете user space nat
Почему это так:
Код: Выделить весь код
root@mail# more /etc/rc.d/natd 
#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/natd,v 1.5 2006/12/31 10:37:18 yar Exp $
#

# PROVIDE: natd
# KEYWORD: nostart nojail

. /etc/rc.subr
. /etc/network.subr

name="natd"
rcvar=`set_rcvar`
command="/sbin/${name}"
pidfile="/var/run/${name}.pid"
start_precmd="natd_precmd"
required_modules="ipdivert"

natd_precmd()
{
        if [ -n "${natd_interface}" ]; then
                dhcp_list="`list_net_interfaces dhcp`"
                for ifn in ${dhcp_list}; do
                        case "${natd_interface}" in
                        ${ifn})
                                rc_flags="$rc_flags -dynamic"
                                ;;
                        esac
                done

                if echo "${natd_interface}" | \
                    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
                        rc_flags="$rc_flags -a ${natd_interface}"
                else
                        rc_flags="$rc_flags -n ${natd_interface}"
                fi
        fi

        return 0
}

load_rc_config $name
run_rc_command "$1"
Таким образом используется как не сложно догадаться: /sbin/natd.

Далее, обращаем внимание на вывод данной команды:
Код: Выделить весь код
# ls -la /boot/kernel|grep nat
-r-xr-xr-x  1 root  wheel     14016 Jun 30 20:28 ipfw_nat.ko
-r-xr-xr-x  1 root  wheel     91520 Jun 30 20:28 ipfw_nat.ko.symbols
ИМХО, то есть для того чтобы использовать NAT in kernel space без пересборки ядра нужно:
Код: Выделить весь код
kldload ipfw_nat
По зависимотям к данному модулю тянется:
Код: Выделить весь код
# kldstat
Id Refs Address            Size     Name
 1    4 0xffffffff80100000 8fd0f8   kernel
 2    1 0xffffffffd9886000 128c     ipfw_nat.ko
 3    1 0xffffffffd9888000 5d93     libalias.ko
О чем собственно свидетельствует и надпись в dmesg моего ядра:
ipfw2 initialized, divert enabled, nat loadable, rule-based forwarding enabled, default to accept, logging limited to 1000 packets/entry by default

А все же желательно пересобрать ядро:
Код: Выделить весь код
options         IPFIREWALL_NAT
options         LIBALIAS
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:47, 11-08-2008 | #6


Аватара для Аlchemist

Старожил


Сообщения: 437
Благодарности: 46

Профиль | Отправить PM | Цитировать


Dm1try, спасибо, все так и получается

-------
IT house


Отправлено: 12:16, 11-08-2008 | #7



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - [решено] Динамическое подключение IPFW & NAT

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - Задача с IPFW+NAT zlx Общий по FreeBSD 3 10-01-2010 00:25
FreeBSD - [решено] IPFW+NAT+MPD mss_sarvarbek Общий по FreeBSD 14 27-02-2009 21:11
FreeBSD - IPFW через какие правила прошел пакет / debuging ipfw lcat Общий по FreeBSD 2 03-02-2009 10:24
2008 - [решено] Подключение по VPN к Windows Server 2008 расположенному за NAT Wile Windows Server 2008/2008 R2 2 24-12-2008 04:48
squid & nat Multya Программное обеспечение Linux и FreeBSD 12 12-04-2004 10:42




 
Переход