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

» FreeBSD + ipfw + port mapping

Автор: MUSICFROMWEB
Дата сообщения: 01.10.2006 22:38
нужно замапить порт приходящий на NAT(фря + ipfw + natd ) на мою машину 192.168.2.26

как я понял нужно в /etc/natd.conf
внести
Код: redirect_port tcp 192.168.2.26:37000 37000
Автор: SSV_RA
Дата сообщения: 12.10.2006 22:43
MUSICFROMWEB
Если у тебя по умолчанию весь трафик на внешнем интерфейсе заворачивается на natd, то ничего и делать не нужно. Если нет, то весь входящий трафик с портом получателя 37000 и исходящий трафик с портом отправителя 37000 заворачивать на нат, вот типа такого
divert natd tcp from any to xxx.xxx.xxx.xxx 37000 in via rl0
divert natd tcp from 192.168.2.26 37000 to any in via rl1

rl0 - внешний интерфейс
rl1 - внутренний интерфейс
Автор: 13th_apostle
Дата сообщения: 08.11.2006 16:11
проблема с freebsd+ipfw+natd. подробно и с описанием шагов приведено в
freebsd 5.5, ipfw+natd: port-mapping, в "сухом" остатке:
настройки сети:
freebsd# ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
inet 192.168.0.66 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:02:b3:2e:e3:d7
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 10.0.2.35 netmask 0xfffff000 broadcast 10.0.15.255
ether 00:50:8b:5e:70:5a
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000

fxp0 - внутр., fxp1 - внешний интерфейсы.
настройка ipfw:
freebsd# ipfw list
00010 divert 8668 tcp from any to 10.0.2.35 dst-port 20-21 in via fxp1
00015 divert 8668 tcp from 192.168.0.11 20-21 to any in via fxp0
00030 allow ip from any to any
00100 allow ip from me to 192.168.0.0/24
00101 allow ip from 192.168.0.0/24 to me
65535 deny ip from any to any

настройки natd:
freebsd# cat /etc/natd.conf
same_ports yes
use_sockets yes
log yes
redirect_port tcp 192.168.0.11:20-21 20-21


в рез-те все же не могу подключиться с компа из внешней сети к ftp.
Автор: SSV_RA
Дата сообщения: 09.11.2006 08:41
Попробуй для начала заменить 10 и 15 правило на
divert natd all from any to any via fxp1
Проверь запущен ли нат.
И точно не помню, но по моему тебе еще нужно прописать в rc.conf
gateway_enable="YES"
А вообще, я обычно просто прописываю в определенных строках (где думаю затык) логирование, и все становится ясно как день.
Автор: 13th_apostle
Дата сообщения: 09.11.2006 10:49

Цитата:
Проверь запущен ли нат.

freebsd# /etc/rc.d/natd status
natd is running as pid 4004.


Цитата:
И точно не помню, но по моему тебе еще нужно прописать в rc.conf
gateway_enable="YES"

freebsd# cat /etc/rc.conf

# -- sysinstall generated deltas -- # Fri Sep 1 19:51:21 2006
# Created: Fri Sep 1 19:51:21 2006
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
gateway_enable="YES"
linux_enable="YES"
moused_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
samba_enable="YES"
firewall_enable="YES"
firewall_logging="YES"
natd_enable="YES"
natd_interface="fxp1"
natd_flags="-f /etc/natd.conf"
quagga_enable="YES"
quagga_flags="-d"
quagga_daemons="zebra ripd ripngd ospfd ospf6d bgpd isisd"

# This file now contains just the overrides from /etc/defaults/rc.conf.
# Please make all changes to this file, not to /etc/defaults/rc.conf.

ifconfig_fxp0="DHCP"
hostname="freebsd.domain.ru"
ntpdate_flags="srv.domain.ru"
ntpdate_enable="YES"

moused_flags=""
moused_port="/dev/psm0"
moused_type="auto"
moused_enable="YES"

ifconfig_fxp1="inet 10.0.2.35 netmask 255.255.240.0"
hostname="freebsd.domain.ru"

ps. адрес по dhcp выдается ч/з резервирование, так что не меняется.

Цитата:
Попробуй для начала заменить 10 и 15 правило на
divert natd all from any to any via fxp1

спасибо, попробую счаз


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

а никаких для логирования опций ядра дополнительных не надо?
Автор: SSV_RA
Дата сообщения: 09.11.2006 11:49
см Handbook 26.6.2 Kernel Options
It is not a mandatory requirement that you enable IPFW by compiling the following options into the FreeBSD kernel unless you need NAT function. It is presented here as background information.
options IPFIREWALL

This option enables IPFW as part of the kernel
options IPFIREWALL_VERBOSE

Enables logging of packets that pass through IPFW and have the 'log' keyword specified in the rule set.

options IPFIREWALL_VERBOSE_LIMIT=5
Limits the number of packets logged through syslogd(8) on a per entry basis. You may wish to use this option in hostile environments which you want to log firewall activity. This will close a possible denial of service attack via syslog flooding.

options IPDIVERT
This enables the use of NAT functionality.
Автор: 13th_apostle
Дата сообщения: 09.11.2006 12:27
SSV_RA
включил правило nat'ить все, выставил заносить применение всех правил в лог.
ядро:
freebsd# cat /usr/src/sys/i386/conf/CUBXL | grep options | more
# An exhaustive list of options and more detailed explanations of the
options SCHED_4BSD # 4BSD scheduler
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options SCSI_DELAY=15000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extension
s
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPDIVERT

options ATA_STATIC_ID # Static device numbering
#device dpt # DPT Smartcache III, IV - See NOTES for options
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# Power management support (see NOTES for more options)


лог firewall'а
/var/log/security
...
Nov 9 13:06:04 freebsd kernel: ipfw: 10 Divert 8668 TCP 10.0.2.32:13227 10.0.2.35:25 in via fxp1
...

и никаких записей с 10.0.2.35:25 или 192.168.0.11:25 (куда на данный момент я маплю входящие пакеты на 25ый порт) более.
где можно посмотреть логи самого natd? в мануалах грится про /var/log/alias.log, но его структура непонятна:
freebsd# cat /var/log/alias.log | more
PacketAlias/InitPacketAliasLog: Packet alias logging enabled.
icmp=0, udp=0, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=1 (sock=0)
icmp=0, udp=1, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2 (sock=0)
icmp=0, udp=2, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3 (sock=0)
icmp=0, udp=3, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=4 (sock=0)
icmp=0, udp=4, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=5 (sock=0)
icmp=0, udp=5, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=6 (sock=0)
icmp=0, udp=6, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=7 (sock=0)
icmp=0, udp=7, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=8 (sock=0)
icmp=0, udp=8, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=9 (sock=0)
icmp=0, udp=9, tcp=1, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=10 (sock=0)
Автор: SSV_RA
Дата сообщения: 09.11.2006 16:40
Поставь в каждое правило лог, и смотри что напишет.
А откуда зайти пытаешся? С внешнего мира? Через ADSL модем?
И добавь правило например 1000 deny log all from any to any
Потому что, если не ошибаюсь, правило 65535 не получится протоколировать.
Как выглядит правило где заворачиваешь все на нат?
Автор: 13th_apostle
Дата сообщения: 10.11.2006 09:58
freebsd# ipfw show
00050 88671 10068625 divert 8668 log ip from any to any
00070 88268 10310680 allow log ip from any to any
00100 796 97554 allow log ip from me to 192.168.0.0/24
00101 850 85316 allow log ip from 192.168.0.0/24 to me
65535 4535 609687 deny ip from any to any

с таким набором правил все работает.
лог:

Код: freebsd# cat nated7
20108    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20109    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20110    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20111    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20112    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20113    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20114    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20115    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20116    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20117    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20118    Nov    10    10:52:24    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20119    Nov    10    10:52:24    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20134    Nov    10    10:52:25    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20135    Nov    10    10:52:25    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20136    Nov    10    10:52:25    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20137    Nov    10    10:52:25    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20142    Nov    10    10:52:25    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20143    Nov    10    10:52:25    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20144    Nov    10    10:52:25    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20145    Nov    10    10:52:25    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20148    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20149    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20150    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20151    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20154    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20155    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20156    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20157    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20158    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20159    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20160    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20161    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20162    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20163    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20164    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20165    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20166    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20167    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20168    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20169    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20174    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20175    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20176    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20177    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20178    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20179    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20180    Nov    10    10:52:26    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20181    Nov    10    10:52:26    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20182    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20183    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20184    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20185    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20186    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20187    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20188    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20189    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20190    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20191    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20192    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20193    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20194    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20195    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20196    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20197    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
20198    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20199    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20200    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20201    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20202    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 10.0.2.35:25 in via fxp1
20203    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.32:39354 195.201.25.11:25 in via fxp1
20204    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 10.0.2.32:39354 195.201.25.11:25 out via fxp0
20205    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:39354 195.201.25.11:25 out via fxp0
20206    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.35:39354 in via fxp0
20207    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 195.201.25.11:25 10.0.2.32:39354 in via fxp0
20208    Nov    10    10:52:27    freebsd    kernel:    ipfw:    50    Divert 8668 TCP 195.201.25.11:25 10.0.2.32:39354 out via fxp1
20209    Nov    10    10:52:27    freebsd    kernel:    ipfw:    70    Accept TCP 10.0.2.35:25 10.0.2.32:39354 out via fxp1
Автор: SSV_RA
Дата сообщения: 10.11.2006 12:04
Чето не понял, у тебя заработало или нет?
Автор: 13th_apostle
Дата сообщения: 10.11.2006 12:41
SSV_RA
да, заработало =) спасибо за помощь. вот в таком виде:

Код: freebsd# ipfw show
00045 33 1937 divert 8668 log tcp from 192.168.0.11 25 to any out via fxp1
00055 28 1156 divert 8668 log tcp from any to 10.0.2.35 dst-port 25 in via fxp1
00065 944 77772 allow log ip from any to any via fxp0
00070 118313 14415642 allow log ip from any to any
00100 796 97554 allow log ip from me to 192.168.0.0/24
00101 850 85316 allow log ip from 192.168.0.0/24 to me
65535 4535 609687 deny ip from any to any
Автор: SSV_RA
Дата сообщения: 10.11.2006 13:06
Ну и хорошо, теперь можешь выкинуть из фаера протоколирование.
А предлагал все заворачивать на нат для того, чтобы проверить вообще работает оно или нет.
Автор: 13th_apostle
Дата сообщения: 10.11.2006 13:16
SSV_RA

Цитата:
А предлагал все заворачивать на нат для того, чтобы проверить вообще работает оно или нет.

да я понимаю =) спасибо за помощь - помогло разобраться, как работает связка ipfw+natd.
Автор: DIMBOSS
Дата сообщения: 14.12.2006 11:14
А в чем принципиальная разница между правилом fwd и divert в ipfw. Мне надо настроить Kerio VPN, порт 4090. Роутер FreeBSD+ipfw+natd: xl0 - внешний (ххх.ххх.ххх.х)
fxp1 - внутренний 192.168.0.1. За freebsd стоят: почтарь МДемон+прокси+биллинг 192.168.0.99 и Kerio VPN сервер 192.168.0.4.
С почтарем и пробросом трафика разобрался просто:
natd.conf>

same_ports yes
use_sockets yes
interface xl0
redirect_port tcp 192.168.0.99:25 25
redirect_address 192.168.0.99 xxx.xxx.xxx.x

причем в правила ipfw ничего, аля divert не добавлял. И все работает. ОСь FreeBSD 6.1
добавил лишь
add allow tcp from any 25 to any
add allow tcp from any to any 25

Сейчас мне надо настроить VPN - для этого нужно настроить портмапинг, чтобы все запросы приходящие извне на порт 4090 перебрасывались вот сюда - 192.168.0.4:4090
Соответственно я вписываю в natd.conf вот такие строки
redirect_port tcp 192.168.0.4:4090 4090
redirect_port udp 192.168.0.4:4090 4090

А в rc.firewall вписываю следующее
add allow tcp from any to 192.168.0.4 4090
add allow tcp from 192.168.0.4 4090 to any
add allow udp from any to 192.168.0.4 4090
add allow udp from 192.168.0.4 4090 to any

В принципе должно работать, но меня терзают смутные сомнения.
Нужно ли вписывать в rc.firewall следующее
add divert 4090 tcp,udp from 192.168.0.4 to any out via xl0
add divert 4090 tcp,udp from any to 192.168.0.4 in via xl0

И можно ли настроить портмапинг с помощью команды fwd. Может есть у кого готовые решения? Знаю то, что, чтобы использовать команду fwd нужно пересобрать ядро с опциями options IPFIREWALL_FORWARD и options IPFIREWALL_FORWARD_EXTENDED - а некогда. И правильно ли делать портмапинг при помощи команды divert? И можно ли вообще обойтись одним ipfw не прикручивая natd.conf???

Добавлено:
Ну что, так никто и не смог найти ответ на мои вопросы и тема убежала на вторую страницу... (((
Автор: podlom
Дата сообщения: 19.12.2007 14:43
Может быть кто-то подскажет мне как сделать такую штуку: входящие пакеты на внешний (инетовский) интерфейс на порт 3389 мэппить (прямой переадрес) на машину в корпоративной сети, на тот же порт.
Вот настройки:
/etc/rc.conf

Код:
...
firewall_enable="YES"
firewall_script="/etc/fw.rules.new"
firewall_quiet="NO"
firewall_logging="YES"

natd_enable="YES"
natd_interface="rl1"
natd_flags="-f /etc/natd.conf"
...
Автор: MrTroll
Дата сообщения: 16.12.2008 11:45
Нужна помощь, я во фряхе полный ноль, только начал изучать, и остановился вот на каком моменте:
собрал ядро вот с такими опциями:

Цитата:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET

есть три правила

Цитата:
10022 allow tcp from 192.168.1.80 to any dst-port 22 in via em0 setup keep-state
13080 allow tcp from 192.168.1.80 to any dst-port 3080 in via em0 setup keep-state
65535 deny ip from any to any

Следуя правилам должны быть открыты всего два порта - 22 и 3080.
Но на деле открыт только 22, по 3080 не могу достучаться по http.
Но еще по телнету могу подключиться на 80 порт.
Помогите разобраться с этой проблемой. Почему телнетится 80 порт - когда он закрыт должен быть, и почему не конектится по 3080.
rc.conf [more]sshd_enable="YES"
usbd_enable="YES"
sendmail_enable="NO"
clear_tmp_enable="YES"
postfix_enable="ON"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
[/more]
rc.ipfw [more]ipfw -q add 10022 allow tcp from 192.168.1.80 to any 22 in via em0 setup keep-state

ipfw -q add 13080 allow tcp from 192.168.1.80 to any 3080 in via em0 setup keep-sta
te
[/more]
Автор: Drron
Дата сообщения: 16.12.2008 16:55
Опиши точнее что, откуда и куда должно проходить.
Автор: MrTroll
Дата сообщения: 17.12.2008 06:57
Drron

Цитата:
Опиши точнее что, откуда и куда должно проходить.

На фряхе надо открыть только 2 порта: 22 и 3080. Разрешить подключения к фряхе только с IP 192.168.1.80
(порт 22 открыт - правило сработало
порт 3080 (центр управления Kaspersky Anti-Spam) - не могу пробиться на него, хотя по sockstat вижу
mailflt3 kas-thttpd 12777 2 tcp4 127.0.0.1:3080 *:* т.е. порт слушается.
freebsd и комп с которого подключаюсь находятся в одной сетке)
Автор: Drron
Дата сообщения: 17.12.2008 11:06
Минимальный набор правил для твоего случая может быть таким


ipfw -q add check-state
ipfw -q add pass all from any to any via lo0
ipfw -q add pass all from me to any keep-state
ipfw -q add pass tcp from 192.168.1.80 to me 22
ipfw -q add pass tcp from 192.168.1.80 to me 3080
ipfw -q add deny all from any to any

Автор: Tavork
Дата сообщения: 28.02.2009 12:00
Никак не получается, чтобы The Bat на компьютерах в локальной сети работал с сервером FreeBSD.
Все настройки перенес со старого сервера FreeBSD 5.4 c изменением адресов (новый провайдер) и названий устройств (новый комп). Со старым сервером the bat работал.
Сейчас у меня
FreeBSD 7.0
Squid 2.6
В файерволле прописано (правила достались от предыдущего админа), xx.xх.хх.хх - внешний адрес:
#!/bin/sh
ipfw -q -f flush
ipfw -q add 00050 allow ip from any to any via lo0
ipfw -q add 00051 deny ip from any to 127.0.0.0/8
ipfw -q add 00052 deny ip from 127.0.0.0/8 to any
ipfw -q add 00101 divert 8668 ip from any to any via em0
ipfw -q add 00107 allow ip from 10.73.200.0/24 to any dst-port 5190
ipfw -q add 00108 allow ip from any 5190 to 10.73.200.0/24
ipfw -q add 00111 allow ip from xx.xx.xx.xx to any out via em0
ipfw -q add 00122 allow ip from 10.73.200.1 to 10.73.200.150
ipfw -q add 00123 allow ip from 10.73.200.1 to 10.73.200.0/24 via em1
ipfw -q add 00124 allow ip from 10.73.200.1 to any out via em1
ipfw -q add 00500 allow tcp from any to any established
ipfw -q add 00555 allow ip from 10.73.200.150 to any
ipfw -q add 00556 allow ip from any to 10.73.200.150
ipfw -q add 01000 allow udp from 10.73.200.0/24 to 10.73.200.1 dst-port 53
ipfw -q add 01001 allow udp from any to xx.xx.xx.xx dst-port 53
ipfw -q add 01002 allow udp from 10.73.200.0/24 53 to 10.73.200.1
ipfw -q add 01003 allow udp from any 53 to xx.xx.xx.xx
ipfw -q add 01004 allow udp from 10.73.200.1 53 to 10.73.200.0/24
ipfw -q add 01005 allow udp from xx.xx.xx.xx 53 to any
ipfw -q add 01006 allow udp from xx.xx.xx.xx to any dst-port 53
ipfw -q add 01007 allow udp from 10.73.200.3 to 10.73.200.1 dst-port 53
ipfw -q add 01008 allow udp from 10.73.200.3 53 to 10.73.200.1
ipfw -q add 01009 allow udp from 10.73.200.1 54 to 10.73.200.3
ipfw -q add 02001 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 3128
ipfw -q add 02002 allow tcp from not 10.73.200.0/24 to xx.xx.xx.xx dst-port 80
ipfw -q add 02003 allow tcp from any 80 to xx.xx.xx.xx in via em0
ipfw -q add 02004 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 8080
ipfw -q add 02005 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 80
ipfw -q add 02101 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 443
ipfw -q add 02102 allow tcp from not 10.73.200.0/24 to xx.xx.xx.xx dst-port 443
ipfw -q add 02103 allow tcp from any 443 to xx.xx.xx.xx
ipfw -q add 02104 allow tcp from 10.73.200.0/24 to any dst-port 443
ipfw -q add 03001 allow tcp from 10.73.200.0/24 to any dst-port 25,110
ipfw -q add 03002 allow tcp from 10.73.200.1 25,110 to any
ipfw -q add 03003 allow tcp from any 25,110 to xx.xx.xx.xx
ipfw -q add 03004 allow tcp from any to xx.xx.xx.xx dst-port 25,110
ipfw -q add 03005 allow tcp from 10.73.200.0/24 to 10.73.200.1 dst-port 25,110
ipfw -q add 65000 deny log logamount 20 ip from any to any

В rc.conf прописано
defaultrouter="83.217.0.65"
gateway_enable="YES"
hostname="moihost.ru"
ifconfig_em0="inet xx.xx.xx.xx netmask 255.255.255.0"
inetd_enable="YES"
moused_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
named_enable="YES"
firewall_enable="YES"
firewall_script="/etc/pravila.ipfw"
firewall_type="simple"
natd_enable="YES"
natd_interface="em0"
#natd_flags="-redirect_port tcp 10.73.1.1:4899 4899"
natd_flags="-f /etc/natd.conf"
squid_enable="YES"
frox_enable="YES"
#saslauthd_enable="YES"
sendmail_enable="NO"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
#saslauthd_enable="YES"
#sasl_saslauthd_flags="-a sasldb"

apache_enable="YES"
#apache_flags="-DSSL"
apache_pidfile="/var/run/httpd.pid"
mysql_enable="YES"
mysqllimits_enable="YES"


ifconfig_em0="xx.xx.xx.xx netmask 255.255.255.192"
ifconfig_em1="10.73.200.1 netmask 255.255.255.0"


На всякий случай в сквиде прописал acl Safe_ports port 25 и acl Safe_ports port 110, но не помогло

В natd.conf у меня прописано
same_ports yes
use_sockets yes
redirect_port tcp 10.73.1.1:4899 4899

Буду рад любому совету.
Надо ли мне в natd прописать какую-то дополнительную строку? Или может правила в ipfw c портами 110 и 25 поднять выше 101 правила с divert или добавить ipfw -q add 00102 divert 8668 ip from any 110 to any??? Самому поэскпериментировать нет возможности, инет нужен всем стабильный
Автор: klimusu
Дата сообщения: 30.08.2009 14:55
nat, две сетевухи - внешняя и внутренняя

внутри сети стоит компьютер с внешним адресом. как на нате разрешить этому компу выход наружу без всяких трансляций?
Автор: roma
Дата сообщения: 30.08.2009 16:12
klimusu
да вобщем-то никак
в том смысле что без трансляций - это чистая маршрутизация. а для чистой маршрутизации в данной ситуации нужно чтобы на внутренней сетевушке висел секондари айпиадрес из той же подсети что и "компьютер с внешним адресом" и даже после этого может ничё не заработать - зависит от того какие внешние адреса используются.
Автор: klimusu
Дата сообщения: 30.08.2009 20:56
roma
Странно на FreeBSD6 было все нормально.

Компьютер:
сетевая одна, на ней конфигурация ip для внутренней сети, шлюз - внутренняя сетевая на нате
+ алиасом весит внешний адрес на этой же сетевой.

Сервер:
сеть1 внутр.
сеть2 внешн.
соединены в мост + форвардинг
далее natd на внешнем интерфейсе и правила ipfw типа
1. разрешить все от всех для внегнего_адреса_компа_внутри_сети
2. разрешить все от внегнего_адреса_компа_внутри_сети для всех
ну два правила для разворота траффика на нат.

Тут с чего-то сдох винт (150 бэдов обноружилось, 3 года работал без вопросов и на те..)
Решил заменить его на FreeBSD7, мало то го что мост пришлось делать через ifconfig bridge create, дак еще и не работает как раньше.
Автор: klimusu
Дата сообщения: 31.08.2009 07:12
Ну и наверно сразу вопрос в догонку, как выпустить внутренний адрес наружу без ната, на определенные подсети.
Автор: maksobus
Дата сообщения: 14.09.2009 16:28
В FreeBSD полный 0. Поэтому если вопрос глупый, далеко не посылайте.

Есть локалка 192.168.1.0/24
Есть прокси 192.168.1.1
Есть машина в локалке 192.168.1.111 с поднятым Апачем
Вопрос: каким образом возможно перенаправление пользователя на эту машину, если он набирает определенный адрес например 89.111.185.118 из локальной сети
Автор: attaattaatta
Дата сообщения: 14.09.2009 16:42
В прямой и обратной зоне локального днс прописываете имя "машина с поднятым апачем" и указываете ip адрес 192.168.1.111, в обратной зоне добавляете указатель (PTR) 89.111.185.118 на имя "машина с поднятым апачем"
Автор: maksobus
Дата сообщения: 14.09.2009 17:35
Спасибо. А не подскажите еще ответ на один тупой вопрос. Локальный днс находится здесь /ect/namedb ?
Автор: attaattaatta
Дата сообщения: 15.09.2009 05:09
Если установлен bind с параметрами по умолчанию, то да. Если ДНС сервер не установлен, то /etc/hosts.
Автор: Jerry Lutor
Дата сообщения: 21.03.2010 01:40
Всем Доброго!

Помогите разобраться с проблемой есть машина на фребсд с внешним айпи (сетевая на машине одна) и есть машина во внутреней сети. Как можна пробросить 3ри порта чтоб их біло видно с наружи, пробовал все варианты ниодин несработывает
ipfw:


00010 27 1080 allow tcp from any 10011 to any
00011 27 1404 allow tcp from any to any dst-port 10011
00012 0 0 allow tcp from any 9987 to any
00013 0 0 allow tcp from any to any dst-port 9987
00050 1536 59904 allow ip from me to 192.168.0.0/24 dst-port 29900
00100 85174 13796336 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65000 22203971 4244806028 allow ip from any to any
65535 0 0 deny ip from any to any
для начала нада пробросить хотяб 2ва порта 10011 и 9987


natd.conf
same_ports yes
use_sockets yes
redirect_port tcp 172.16.1.2:10011 10011
redirect_port tcp 172.16.1.2:9987 9987


Что я делаю нетак?

Зарание спасибо!
Автор: Desmont
Дата сообщения: 21.03.2010 09:31
У меня так было

FwCMD="/sbin/ipfw"
LanOut="fxp0"
.......
.......
.......
${FwCMD} add allow tcp from any to 10.0.1.99 36760 via ${LanOut}

в натд :

interface rl0
same_ports yes
use_sockets yes
dynamic yes

redirect_port tcp 10.0.1.99:36760 36760

Потом перешел на PF и его НАТ , а сейчас вообще поставил pfSense и тащюсь

Страницы: 12

Предыдущая тема: Создание второго "равноправного" контроллера домена


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