Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FreeBSD + ipfw rules

Автор: YuroN
Дата сообщения: 08.05.2006 13:39

Цитата:

попробуй так...
ipfw add allow tcp from any to ${SEG_VPN} 80
ipfw add allow tcp from any 80 to ${SEG_VPN}


боюсь не помогло
даже все запреты поуберал всеровно не пашет

раньше все работало с такм правилом
ipfw add divert 8668 all from any to any via ${ETHER0}

как только поменял на это - и тут начались проблемы с HTTP
ipfw add divert 8668 ip from any to ${INET_IP} via ${ETHER0} in
ipfw add divert 8668 ip from ${SEG_VPN} to any via ${ETHER0}

У провайдера несколько каналов, что некоторые сайты работают с одного канала, а сдругого нет
и еще у его походу настроен у его прозрачный прокси сквид
Автор: X_Factor
Дата сообщения: 09.05.2006 03:44
YuroN
добавь правило для ведения записи в LOG-файл...

1. удали эти правила
ipfw add allow tcp from any to ${SEG_VPN} 80
ipfw add allow tcp from any 80 to ${SEG_VPN}

2. добавь эти правила(тут просто стоит опция ведение лога)
ipfw add allow log logamount 10000 tcp from any to ${SEG_VPN} 80
ipfw add allow log logamount 10000 tcp from any 80 to ${SEG_VPN}

3. далее смотри LOG...# tail -Ff /var/log/security
где пакеты на 80 или с 80 порта "затыкаются" и не проходят...

*** logamount 10000 - эта опция даст возможность вносить в LOG-файл больше записей,
чем было указано при компиляции ядра с опцией options IPFIREWALL_VERBOSE_LIMIT=100
Автор: YuroN
Дата сообщения: 09.05.2006 18:10

Цитата:
1. удали эти правила
ipfw add allow tcp from any to ${SEG_VPN} 80
ipfw add allow tcp from any 80 to ${SEG_VPN}

2. добавь эти правила(тут просто стоит опция ведение лога)
ipfw add allow log logamount 10000 tcp from any to ${SEG_VPN} 80
ipfw add allow log logamount 10000 tcp from any 80 to ${SEG_VPN}

3. далее смотри LOG...# tail -Ff /var/log/security
где пакеты на 80 или с 80 порта "затыкаются" и не проходят.


Все сделал, запускаю бароузер ya.ru или что-то еще. и смотрю в логи


Код:
May 9 18:02:18 kckba /kernel: ipfw: 600 Accept TCP 72.232.29.238:80 10.10.10.2:2311 in via tun0
May 9 18:02:18 kckba /kernel: ipfw: 600 Accept TCP 72.232.29.238:80 10.10.10.2:2311 out via ng1
May 9 18:02:32 kckba /kernel: ipfw: 600 Accept TCP 212.42.64.8:80 10.10.10.2:2312 in via tun0
May 9 18:02:32 kckba /kernel: ipfw: 600 Accept TCP 212.42.64.8:80 10.10.10.2:2312 out via ng1
May 9 18:03:22 kckba /kernel: ipfw: 600 Accept TCP 72.232.29.238:80 10.10.10.2:2311 in via tun0
May 9 18:03:22 kckba /kernel: ipfw: 600 Accept TCP 72.232.29.238:80 10.10.10.2:2311 out via ng1
May 9 18:03:36 kckba /kernel: ipfw: 600 Accept TCP 212.42.64.8:80 10.10.10.2:2312 in via tun0
May 9 18:03:36 kckba /kernel: ipfw: 600 Accept TCP 212.42.64.8:80 10.10.10.2:2312 out via ng1
Автор: slech
Дата сообщения: 29.11.2006 13:36
подскажите пожалуйста хватит ли для нормального функционирования DNS этих правил:


echo -n "Starting firewall..."
ipfw="/sbin/ipfw -q"
int_if="xl0"
ext_if="ed0"
int_ip="192.168.0.250"
ext_ip="192.168.1.253"
gate_ip="192.168.1.254"
int_net="192.168.0.0/24"
adm_ip="192.168.0.1,192.168.0.31"
dns_serv="xx.xx.xx.xx"

##### DNS
${ipfw} add 500 allow udp from ${ext_ip} to ${dns_serv} 53 out via ${ext_if} keep-state
${ipfw} add 510 allow udp from ${dns_serv} to ${ext_ip} 53 in via ${ext_if}

без keep-state не работает.

кто подскажет почему ? это только для UDP соединений ?
Автор: slech
Дата сообщения: 30.11.2006 10:20
ксати подскажите как происходит вступление в силу изменений ?
т.е. я изменил файл конф фаервола и он уже по ним смотрит ?
Автор: squid
Дата сообщения: 01.12.2006 08:51
slech
нет, только изменить не достаточно
надо запустить этот файлык где прописаны правила
Автор: slech
Дата сообщения: 01.12.2006 15:48
squid
понял спасибо.
Автор: slech
Дата сообщения: 05.12.2006 17:37
народ помогите

блин есть сететь и микротик смотрящий в инет

Mikrotik
ext xx.xx.xx.xx
int 192.168.0.254/24 192.168.1.254/30

FreeBSD
ext 192.168.1.253/30
int 192.168.0.250
щас все с микротика получают нет, и фрюха то же с него, и все друг друга видят.

на фре поставил NeTAMS
пытаюсь настроить фаервол:
уже неделю парюсь и нивкакую

echo -n "Starting firewall..."
ipfw="/sbin/ipfw -q"
int_if="xl0"
ext_if="ed0"
int_ip="192.168.0.250"
ext_ip="192.168.1.253"
gate_ip="192.168.1.254"
int_net="192.168.0.0/24"
int_pref="192.168.0."
adm_ip="192.168.0.1,192.168.0.31"
dns_serv="217.26.150.5,217.26.150.4"

######################################################################
${ipfw} -f flush
${ipfw} add 100 allow all from any to any via lo0
${ipfw} add 200 deny all from any to 127.0.0.0/8

${ipfw} add 900 divert natd all from ${int_net} to any out via ${ext_if}
${ipfw} add 910 divert natd all from any to ${ext_ip} in via ${ext_if}
${ipfw} add 1000 allow all from any to any
${ipfw} add 1100 allow udp from any to any

Блин уже неделю парюсь. Рещил идти от простого.
Пытаюсь собрать минимально закрытую но работоспособную конфигу.
Домены не резолвятся. Почему ?


[s]Добавлено:
или DNS не перебрасывается и для того что бы работало надо поднять DNS на фре ?
Автор: slech
Дата сообщения: 06.12.2006 17:48
родскажите пожалуйста
в каком порадке распологать правила ?
тут написано что:

Тут есть одно и очень простое правило: располагать правила для

IPFW в следующем порядке:

сначала идут инструкции deny и reject (если есть)
потом divert
потом allow на внутреннюю сетку(и)
потом allow все остальное
потом deny все, что осталось.


И как быть с дивертами ?
2-а или один ?

01900 8 456 divert 8668 ip from 192.168.0.0/24 to any out via ed0
01910 2 168 divert 8668 ip from any to 192.168.1.253 in via ed0

пинги не ходят с фрюхи наружу. резолвятся, но не ходят.
наружу пускает, т.е на порты цепляюсь, а пингов нету.
Если ставлю ipfw add 1899 allow icmp from any to any - то работает, как только переношу за divert отключается.

Если ставлю между 2-мя дивертами, то у фри пинг есть, у машин настроенных на неё нету.
Если удаляю второй диверт то у фри есть у машин нету.
Автор: Cacka
Дата сообщения: 03.02.2007 23:11
Имеется правило ограничения трафика:

add allow tcp from any to me 80 limit src-addr 10 -- ограничение максимального кол-ва коннектов на 80 порт с 1 IP.
pipe 1 config bw 8192Kbits queue 100 -- создание пайпа с ограничением ширины канала в 8Мбит.
pipe 2 config bw 0Kbits -- создание пайпа без ограничений.
...далее идут правила по подсетям - каким подсетям использовать 1й пайп, а каким - 2й.

Всё это используется для раздачи файлов различных размеров (от 10 кбайт до 1 гигабайта).

Подскажите пожалуйста, какое значение у queue будет оптимальным? Мануалы по ipfw читал, но не совсем понял, зачем оно нужно...
Автор: AlexeiUttinov
Дата сообщения: 27.02.2007 14:02
Ребята большая просьба о помощи.

Имеем FreeBsd 6.2 2 сетевухи, одна к провайдеру другая в локалку.

Задача сделать шлюз с нат, и выпускать через него пользователей локальной сети в инет + поставить фаервол, дабы из внешней сети не повадно было делать все что хочешь.

Дописал в конфиге ядра

options DUMMYNET

options TCP_DROP_SYNFIN

options SC_DISABLE_REBOOT

options IPFIREWALL

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT=100

options IPFIREWALL_FORWARD

options IPDIVERT

options BRIDGE

и скомпилил с новыми параметрами. Здесь все ок.

в rc.conf дописал:

firewall_enable="YES"

firewall_script="/etc/rc.firewall"

firewall_type="open"

firewall_quiet="YES"

firewall_logging="YES"

natd_enable="YES"

natd_interface="xl1"

natd_flags=""

tcp_drop_synfin="YES"

clear_tmp_enable="YES"

inetd_enable="NO"

если выбираю правило open, то инет работает у всех и все ок. У клиентов ip адреса раздаются по dhcp, также dhcp прописывает днс локального доменного сервака и шлюз к вряхе.

если выбираю правило simple в скрипте rc.firewall, то инет перестает работать.

[Ss][Ii][Mm][Pp][Ll][Ee])
############
# This is a prototype setup for a simple firewall. Configure this
# machine as a DNS and NTP server, and point all the machines
# on the inside at this machine for those services.
############

# set these to your outside interface network and netmask and ip
oif="xl1"
onet="10.28.2.0"
omask="255.255.255.0"
oip="10.28.2.126"

# set these to your inside interface network and netmask and ip
iif="xl0"
inet="192.168.10.0"
imask="255.255.255.0"
iip="192.168.10.250"

setup_loopback

# Stop spoofing
${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
${fwcmd} add deny all from ${onet}:${omask} 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.
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add divert natd all from any to any via ${natd_interface}
fi
;;
esac

# 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}

# Allow TCP through if setup succeeded
${fwcmd} add pass tcp from any to any established

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

# Allow setup of incoming email
${fwcmd} add pass tcp from any to ${oip} 25 setup

# Allow setup of SSH
${fwcmd} add pass tcp from any to ${oip} 22 setup
${fwcmd} add pass tcp from any to ${iip} 22 setup


# Allow access to our DNS
${fwcmd} add pass tcp from any to ${oip} 53 setup
${fwcmd} add pass udp from any to ${oip} 53
${fwcmd} add pass udp from ${oip} 53 to any

# Allow access to our WWW
${fwcmd} add pass tcp from any to ${oip} 80 setup
${fwcmd} add pass tcp from any to ${iip} 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 pass udp from ${oip} to any 53 keep-state

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

${fwcmd} add pass icmp from any to any icmptypes 0,8,11

# Everything else is denied by default, unless the
# IPFIREWALL_DEFAULT_TO_ACCEPT option is set in your kernel
# config file.
;;

Что можно сделать? Только пожалуйста подробно. Что добавить, а что удалить в правилах. Заранее спасибо
Автор: hosterr
Дата сообщения: 21.06.2007 15:06
У меня стоит FreeBSD 6.1-RELEASE в качестве роутера
Конфиг фаервола:
cmd="/sbin/ipfw"
lan_ip="192.168.100.10" #-IP-шлюза
lan_if="192.168.100.0/24"
our_lan="192.168.0.0/16"
out_ip="66.66.66.66" #-внешний IP-адрес
out_if="rl0" #-внешний интерфейс.

#---------------------------------------------------------------------
$cmd add 15 fwd 127.0.0.1:3128 tcp from $our_lan to any 80 #форвард под прозрачный прокси
#---------------------------------------------------------------------

Нат подбрасываю отдельно, через rc.conf и natd.con
natd_program="/sbin/natd" # path to natd, if you want a different one.
natd_enable="YES" # Enable natd (if firewall_enable == YES).
natd_interface="rl0" # Public interface or IPaddress to use.
natd_flags="-f /etc/natd.conf" # Additional flags for natd.

Трафик я режу такими правилами:
# Config for 192.168.100.120 [XXX]
$cmd add 60107 pipe 60107 all from 192.168.100.120 to any 25,80,110,443 via $out_if
$cmd add 60107 pipe 60107 all from any 25,80,110,443 to 192.168.100.120 via $out_if
$cmd pipe 60107 config bw 32Kbit/s

Так вот у меня проблемка вылезла - трафик не режется на 80 порту, на всех остальных портах отлично...
В принципе можно и SQUIDом резать, через delay_pools, но хочеться разобраться почему...
Автор: savnick
Дата сообщения: 24.09.2007 15:39
Подскажите, плиз!
Есть шлюз на FreeBSD 6.2 с двумя сетевухами. vr0 (192.168.1.1) смотрит в локалку, к rl0 (192.168.0.2) подключен ADSL модем (192.168.0.1) в режиме роутера (nat - SUA only). на шлюзе крутится apache, squid, ftp. Возникла необходимость пускать некоторые компы по http в обход squid...

в ipfw добавляю такое правило:

${fwcmd} add fwd 192.168.0.1 tcp from (ip из локалки) to any http

до него разрешается DNS и локальный www, все работает

после него - разрешение для шлюза посылать пакеты куда угодно и все..

пробую с локального ip зайти по http мимо прокси - не пускает...
Что я еще не указал??
Автор: YuroN
Дата сообщения: 24.09.2007 17:03

Цитата:
Возникла необходимость пускать некоторые компы по http в обход squid...


Цитата:
${fwcmd} add fwd 192.168.0.1 tcp from (ip из локалки) to any http

в этой строке ты пересылаешь запросы 80-х портов на IP модема что врядли будет нормально работать..
как у тебя сделано непонятно - скорее всего у тебя 80 портом локального IP и стоит прокси
и у клиентов он указан в броузере.

вот рабочий конфиг форварда на прокси (прозрачный прокси):
Все что адресует <адрес клиента> на 80 порт то все форвардит на <адрес прокси> на порт 3128


Код: ipfw add 10 fwd <адрес прокси>,3128 tcp from <адрес клиента> to any 80
Автор: savnick
Дата сообщения: 26.09.2007 11:06
Клиенты настроены следующим образом:
адрес по dhcp
в качестве шлюза - машина с freebsd
в инет все ходят через прокси на шлюзе (squid, авторизация из домена), ICQ через прокси тоже без проблем работает

вот rc.conf с шлюза (оставил тока то, что имеет отношение к сети)
defaultrouter="192.168.0.1"
hostname="bla.bla.local"
gateway_enable="YES"

# сетевуха, к которой подключен adsl модем(роутер)
ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"
# сетевуха, смотрящая в локалку
ifconfig_vr0="inet 192.168.1.1 netmask 255.255.255.0"

linux_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

dhcpd_enable="YES"
dhcpd_ifaces="vr0"

named_enable="YES"

winbindd_enable="YES"
winbindd_flags="-d 3"

squid_enable="YES"

apache_enable="YES"

vsftpd_enable="YES"

tcp_extension="NO"
tcp_drop_synfin="YES"

firewall_enable="YES"
firewall_type="bla"


а вот rc.firewall (только начал настраивать, так что еще на все что нужно разрешено)

    oif="rl0"
    onet="192.168.0.0"
    omask="255.255.255.0"
    oip="192.168.0.2"

    iif="vr0"
    inet="192.168.1.0"
    imask="255.255.255.0"
    iip="192.168.1.1"

    ${fwcmd} add pass all from any to any via lo0

    ${fwcmd} add deny icmp from any to any frag

    ${fwcmd} add pass icmp from any to any

    ${fwcmd} add pass udp from any to any 53
    ${fwcmd} add pass udp from any 53 to any

    ${fwcmd} add pass tcp from ${inet}:${imask} to ${iip} 80 via ${iif}
    ${fwcmd} add pass tcp from ${iip} 80 to ${inet}:${imask} via ${iif}
    ${fwcmd} add deny tcp from any to ${oip} 80 in via ${oif}

    ${fwcmd} add pass tcp from ${inet}:${imask} to ${iip} 22 via ${iif}

    ${fwcmd} add forward 192.168.0.1 tcp from 192.168.1.2 to any http

    ${fwcmd} add pass ip from me to any

пинги при таком конфиге ходят отовсюду на ура, dns резолвиться ... вот задачка - как мимо проксика пустить ICQ и веб трафик с некоторых компов... ну еще и smtp и pop3

Автор: Coffeinik
Дата сообщения: 01.10.2007 00:17
Не могли бы вы пояснить, почему без правила

# разрешаем весь исходящий траффик (серверу-то в инет можно? )
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

доступ по ftp отсутствует


${FwCMD} add allow tcp from any to ${IpOut} 21 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}

# разрешаем весь исходящий траффик (серверу-то в инет можно? )
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

(взято из http://www.lissyara.su/?id=1127)
Автор: YuroN
Дата сообщения: 01.10.2007 08:26
savnick
Тебе нужно NAT включить

/etc/rc.conf
natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="192.168.0.2"
natd_flags="-f /etc/natd.conf"

/etc/natd.conf
use_sockets yes
same_ports yes
unregistered_only yes
dynamic yes

скомпилить ядро с параметрами
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET

и уже тогда IPFW рулить натом
# natd -f /etc/natd.conf -n <внешний интерфейс>
# ipfw add divert natd all from any to any via <внешний интерфейс>
Автор: savnick
Дата сообщения: 01.10.2007 10:00

YuroN

Цитата:
Тебе нужно NAT включить

NAT работает на ADSL роутере ZyXEL P-660RU EE (192.168.0.1) ... вот до меня и не доходит как их состыковать .... может вырубить его на роутере и действительно рулить на шлюзе?? или модно какнить подружить??


Цитата:
скомпилить ядро с параметрами
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET


все скомпилено за исключением options IPFIREWALL_DEFAULT_TO_ACCEPT

NAT на роутере настроен по умолчанию...
All ports All ports 0.0.0.0

Автор: YuroN
Дата сообщения: 01.10.2007 10:28
вообщем так можно построить:
Клиент --- NAT маршрутизатор --- NAT маршрутизатор --- internet
Клиент --- маршрутизатор --- NAT маршрутизатор --- internet

тебе выбирать как строить и где рулить. зайди на сайт www.opennet.ru там много инфы на эту тему.

а по поводу твоих настроек IPFW могу только гадать:

Цитата:
${fwcmd} add pass all from any to any via lo0

${fwcmd} add deny icmp from any to any frag

${fwcmd} add pass icmp from any to any

${fwcmd} add pass udp from any to any 53
${fwcmd} add pass udp from any 53 to any

${fwcmd} add pass tcp from ${inet}:${imask} to ${iip} 80 via ${iif}
${fwcmd} add pass tcp from ${iip} 80 to ${inet}:${imask} via ${iif}
${fwcmd} add deny tcp from any to ${oip} 80 in via ${oif}

${fwcmd} add pass tcp from ${inet}:${imask} to ${iip} 22 via ${iif}

${fwcmd} add forward 192.168.0.1 tcp from 192.168.1.2 to any http

${fwcmd} add pass ip from me to any


попробуй поиграться добавляя порты для POP3, SMTP, ICQ....
каждый порт - 4 правила где Xport тот порт кторый ты хочешь форвардить.


${fwcmd} add pass tcp from ${inet}:${imask} to ${iip} Xport via ${iif}
${fwcmd} add pass tcp from ${iip} Xport to ${inet}:${imask} via ${iif}
${fwcmd} add deny tcp from any to ${oip} Xport in via ${oif}
${fwcmd} add forward 192.168.0.1 tcp from 192.168.1.2 to any Xport

Автор: klimusu
Дата сообщения: 28.02.2008 16:23
имеется nat на freebsd, стоит ipfw
2 сетевухи в бридже
net.link.ether.bridge.enable=1
net.link.ether.bridge.ipfw=1
net.link.ether.bridge.config=rl0,xl0

rl0 внутренний
xl0 внешний (на этом интерфейсе демон висит)

правила:
00001 allow all from any to any
01601 divert 8668 ip from 192.168.0.0/24 to any out xmit xl0
01602 divert 8668 ip from any to INETIP

сида по ssh на нате пингую все нужные мне адреса, а вот комп в сети 192.168.0.0/24 не пингует почему то.
что может быть?
Автор: evle
Дата сообщения: 22.08.2008 19:43
klimusu
allow после дивертов надо ставить, а не до. Иначе до ната дело не дойдёт.

savnick
Если шлюзом по-умолчанию назначен ADSL-роутер, умеющий делать NAT своими силами, то, по-идее, можно обойтись без ната на фре. Поскольку defaultrouter="192.168.0.1" уже и так ADSL-роутер, то никакой форвард тут нафиг не нужен, нужно просто пропустить пакет и ответ на него. Как-то так:

${fwcmd} add allow tcp from 192.168.1.2 to any 80 out xmit ${oif} keep-state
Если нужны ещё и udp, придётся городить комплект из двух правил, на выход и на вход пакета.
Если нужно будет много рулить, то лучше действительно поднять нат на фре.




Вопрос по новому ядерному нату из 7-ки. (FreeBSD 7.0-STABLE #2: Wed Jul 9 15:00:07)

Код:
ipfw nat 1 config if rl0 same_ports\
redirect_port tcp a.b.c.10:3389 3387\
redirect_port tcp a.b.c.7:3389 3390\
redirect_port tcp a.b.c.192:3389 3391\
redirect_port tcp a.b.c.188:3389 3398\
redirect_port tcp a.b.c.4:3389 3304\
redirect_port tcp a.b.c.76:3389 3376\
redirect_port tcp a.b.c.191:3389 3395\
redirect_port tcp a.b.c.146:3389 3394\
redirect_port tcp a.b.c.92:3389 3397\
redirect_port tcp a.b.c.188:40300-40303 40300-40303\
redirect_port tcp a.b.c.146:40100-40120 40100-40120\
redirect_port tcp a.b.c.76:40400-40410 40400-40410\
redirect_port tcp a.b.c.92:40200-40210 40200-40210\
redirect_port tcp a.b.c.191:40500-40502 40500-40502\
redirect_port tcp a.b.c.187:40900-40910 40900-40910\
redirect_port tcp a.b.c.176:40604 40604\
redirect_port tcp a.b.c.202:40620 40620\
redirect_port tcp a.b.c.143:40640 40640\
redirect_port tcp a.b.c.80:40660 40660\
redirect_port tcp a.b.c.177:40680 40680
Автор: tankistua
Дата сообщения: 23.08.2008 09:23
в ipfw в 7-ке появился нат ? круто - а я на pf перелез чисто из-за этого :)

а если так ?

ipfw nat 1 config if rl0 same_ports redirect_port tcp a.b.c.10:3389 3387
ipfw nat 2 config if rl0 same_ports redirect_port tcp a.b.c.7:3389 3390

ну и т.д. или как-то так - я еще ман не читал :)

Кстати - natd нонче тоже ядерный.
Автор: evle
Дата сообщения: 23.08.2008 14:01
tankistua

Цитата:
в ipfw в 7-ке появился нат ?

Да, появился, если ядро с его поддержкой перебрать.

Цитата:
а если так ?

Так можно попробовать, и на первый взгляд оно так даже работает при простой разбивке на два экземпляра, но жить с этим будет неудобно, потому как для каждого ната нужно ещё точку входа определять:
${FwCMD} add 240 nat 1 ip from any to ${IpOut} in recv ${LanOut}

Цитата:
Кстати - natd нонче тоже ядерный.

А он об этом знает? :-)
Ну да, он использует libalias, но сам при этом остаётся в пользовательском режиме, со всеми вытекающими: переключение контекстов, необходимость гонять пакеты через divert, который теряет теги и прочие внутренние атрибуты.
Автор: tankistua
Дата сообщения: 23.08.2008 18:44
ну такое дело - говорю ж не читал маны :)

но надо попробовать. в ipfw больше всего меня бесило отсутствие нат-а
Автор: tolyn77
Дата сообщения: 17.09.2008 11:19
здравствуйте

хочу сделать счетчики и по считать по портам сколько человек скачал пишу правила

#общий
count tcp from 10.0.0.31 to any in recv fxp0
count tcp from any to 10.0.0.31 out xmit fxp0
#фтп
count tcp from 10.0.0.31 to any 21 in recv fxp0
count tcp from any 21 to 10.0.0.31 out xmit fxp0
#телнет
count tcp from 10.0.0.31 to any 23 in recv fxp0
count tcp from any 23 to 10.0.0.31 out xmit fxp0
#почта
count tcp from 10.0.0.31 to any 25 in recv fxp0
count tcp from 10.0.0.31 to any 110 out xmit fxp0
#новости
count tcp from 10.0.0.31 to any 119 in recv fxp0
count tcp from any 119 to 10.0.0.31 out xmit fxp0
#прокси
count tcp from 10.0.0.31 to any 3128 in recv fxp0
count tcp from any 3128 to 10.0.0.31 out xmit fxp0
#базы
count tcp from 10.0.0.31 to any 3306 in recv fxp0
count tcp from any 3306 to 10.0.0.31 out xmit fxp0
#апач
count tcp from 10.0.0.31 to any 8101 in recv fxp0
count tcp from any 8101 to 10.0.0.31 out xmit fxp0

ну что то мне не нравиться как считает, может кто может помочь, в частности почта совсем не такие значения
я хочу замеры от сервера до клиента и обратно.
заранее благодарен
Автор: demon1981
Дата сообщения: 24.09.2008 11:48
народ не подскажете в общих чертах как трафик считать общий?
какой-то конкретный набор правил. чтобы потом логи уже чем-то парсить можно было
Автор: YuroN
Дата сообщения: 17.10.2008 15:51
tolyn77

Цитата:
ну что то мне не нравиться как считает, может кто может помочь, в частности почта совсем не такие значения
я хочу замеры от сервера до клиента и обратно.
заранее благодарен


Цитата:
count tcp from 10.0.0.31 to any 8101 in recv fxp0
count tcp from any 8101 to 10.0.0.31 out xmit fxp0

вот у тебя два значения будет. делаешь скрипт на AWK чтоб оно только выдавало в результате:

57432
345656
proxy

и потом с помощью MRTG рисовать графики указав как тагрет на файл скрипта

это не подсчёт, но уже что-то можно увидеть
Автор: lkrotish
Дата сообщения: 05.11.2008 09:27
Здравствуйте!

Необходима помощь в составлении правил для IPFW.

Схема: 30 машин,
необходимо:
1) Кто-то не имеет доступа к инету, может только принимать и отправлять почту (сервак свой) и свободно пользоваться локалкой.

2) У кого-то инет только через проксю. Скорость ограниченная.

3) У кого-то неограниченный доступ ко всем сетевым сервисам.
Автор: klimusu
Дата сообщения: 05.11.2008 10:06
lkrotish
я бы создал несколько таблиц и добавил в них адреса
ipfw table 1 add 192.168.1.1-10 - адреса пункта 1
ipfw table 2 add 192.168.1.11-20 - адреса пункта 2
ipfw table 3 add 192.168.1.21-30 - адреса пункта 3

а потом уже создавал правила
разрешить только локальную сеть
ipfw add allow tcp from table\(1\) to 192.168.1.x
ipfw add allow tcp from 192.168.1.x to table\(1\)
по поводу почты если порты smtp и pop3, то что-то вроде
ipfw add allow tcp from table\(1\) to mailserver 25,110
ipfw add allow tcp from mailserver 25,110 to table\(1\)
запретить все адресам из таблицы 1
ipfw add deny all from table\(1\) to any

ну и конечно чтобы после перезагрузки все сохранялось либо поправить /etc/rc.firewall, либо написать скрипт.
Автор: NewUse
Дата сообщения: 09.11.2008 01:09
Уважаемые фрумчане, подскажите, пожайлуста!!

Вопрос возник после прочтения мана по ipfw,из мана понял что эти управляющие функции keep-state, setup, established позволяют управлять инициацией соединения, но в каких случая что следует применять так и не разобрался

Какие функции из keep-state, setup, established когда следует использовать?

Для конкретикм:
как правильно прописать правило для разрешения установления соединения от пользователя внутренней сети к внешнней по протоколу http, и разрешение получения ответа именно на этот запрос, а не просто входящие соединения по http. И аналогично по другим распространённым протоколам, таким как ftp, https, smpt, pop3, ssh, и т.д.

Страницы: 1234567891011

Предыдущая тема: Зачем нужна рабочая группа?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.