Вот появилась проблема , на сервере FreeBSD 7.0 ( шлюз ) получение реального ИП адреса происходит через DHCP.
Проблема в том что natd в таком случаи не отрабатывает у меня ...
Все с локалки запрещено ... получается !
Как мне правильно настроить нат в таком случаи .... !
Привожу конфиги :
rc.firewall
Код: Выделить всё
#!/bin/sh
ipfw -q -f flush
eip="Реальный ИП который получает сервер через ДШСП" # External ip
ilan="x.x.x.x/24" # Internal lan
cmd="ipfw -q add"
skip="skipto 65000"
skip2="skipto 65500"
#################################
vip="x.x.x.x"
av="x.x.x.x"
#################################
#######################
citrix="x.x.x.x"
#######################
############
eif="rl1"
iif="rl2"
############
#########################################################
$cmd 50 allow gre from any to me in via $eif keep-state
#########################################################
##############################################################################
##############################################################################
#$cmd 80 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 via $iif
#$cmd 90 fwd 192.168.0.21,2121 tcp from 192.168.0.0/24 to any 21 via $iif
##############################################################################
##########################################################
$cmd 100 count ip from any to any via $eif
$cmd 300 allow ip from any to any via lo0
$cmd 310 allow ip from any to any via $iif antispoof
##########################################################
#########################################################################
$cmd 1000 divert natd ip from any to any in via $eif
#citrix
#$cmd 1010 divert natd tcp from $citrix to any src-port 1494 out via $eif
#$cmd 1011 allow tcp from any to $citrix dst-port 1494 in via $eif
#$cmd 1012 allow tcp from me to any src-port 1494 out via $eif
#skipe
$cmd 1020 divert natd tcp from $ilan to any src-port 2604 out via $eif
$cmd 1021 allow tcp from any to any dst-port 65530
$cmd 1022 allow udp from any to any dst-port 65530
$cmd 1023 allow udp from $ilan to any src-port 2604 out via $eif
$cmd 1050 check-state
##########################################################################
##############################################OPEN################################################
#mail
$cmd 1110 $skip tcp from $ilan to any dst-port 110 out via $eif setup keep-state
$cmd 1111 $skip tcp from $ilan to any dst-port 25 out via $eif setup keep-state
$cmd 1112 $skip tcp from $ilan to any dst-port 143 out via $eif setup keep-state
############################################END-OPEN###############################################
#########################################Full-access###############################################
$cmd 1210 $skip tcp from $av to any out via $eif setup keep-state
$cmd 1220 $skip udp from $av to any out via $eif keep-state
$cmd 1230 $skip icmp from $av to any out via $eif keep-state
$cmd 1340 $skip ip from $ilan to any out via $iif keep-state
########################################END_Full-access############################################
######################################################################################
#Deny ip inbound traffic from non-roureble reserver address spaces
$cmd 1900 deny ip from 192.168.0.0/16 to any in via $eif #RFC 1918 private IP
$cmd 1901 deny ip from 172.16.0.0/12 to any in via $eif #RFC 1918 private IP
$cmd 1902 deny ip from 10.0.0.0/8 to any in via $eif #RFC 1918 private IP
$cmd 1903 deny ip from 127.0.0.0/8 to any in via $eif #loopback
$cmd 1904 deny ip from 0.0.0.0/8 to any in via $eif #loopback
$cmd 1905 deny ip from 169.254.0.0/16 to any in via $eif #DHCP auto-config
$cmd 1906 deny ip from 192.0.2.0/24 to any in via $eif #reserved for docs
$cmd 1907 deny ip from 204.152.64.0/23 to any in via $eif #Sun cluster
$cmd 1908 deny ip from 224.0.0/3 to any in via $eif #Class D & E multicast
$cmd 1909 deny ip from any to any 3128 in via $eif
######################################################################################
#Deny any late arriving packets
$cmd 2000 deny ip from any to any frag in via $eif
#Deny ACK packets that did not match the dynamic rule table
$cmd 2010 deny ip from any to any established in via $eif
#########outbound connection
$cmd 4000 allow tcp from me to any out via $eif setup keep-state
$cmd 4010 allow udp from me to any out via $eif keep-state
$cmd 4030 allow icmp from me to any out via $eif keep-state
#########inbound connection
$cmd 6000 allow tcp from any to me dst-port 25 in via $eif setup keep-state
$cmd 6010 allow tcp from any to any dst-port 110 in via $eif setup keep-state
#Reject & Log all unauthorized incoming connection from the public Internet
$cmd 64900 deny log logamount 10000 all from any to any in via $eif
#Reject & Log all unauthorized out going connections to the public Internet
$cmd 64910 deny log logamount 10000 all from any to any out via $eif
$cmd 65000 divert natd ip from any to any out via $eif
$cmd 65500 allow ip from any to any
Код: Выделить всё
interface rl1
use_sockets yes
dynamic yes
same_ports yes
Код: Выделить всё
###################################
ntpd_enable="YES"
ntpd_flags="-p /var/run/ntpd.pid"
###################################