IPFW

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: IPFW

Непрочитанное сообщение reLax » 2009-10-17 14:37:16

Fakir писал(а):Хорошо, я пробую открыть 22 порт ssh, но опять же не работает.cp
В лог пишется что соеденение на этот порт заблокировано.

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

Oct 17 15:24:25 server kernel: ipfw: 65534 Deny TCP 10.83.14.3:22 188.40.74.9:46512 out via rl1

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

ipfw add 1 allow tcp from any to me 22
ipfw add 2 allow tcp from me 22 to any

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Fakir
рядовой
Сообщения: 10
Зарегистрирован: 2009-02-16 15:35:59

Re: IPFW

Непрочитанное сообщение Fakir » 2009-10-17 15:12:28

Спасибо за помощь, правило ipfw add 2 allow tcp from me 22 to any работает.
Но вот чет я со всем запутался

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

ipfw add 2 allow tcp from me 22 to any
РАзве это правило не должно читаться как: Разрешен TCP трафик от моего компа с 22 порта к к любому адресу??
Но выполняется по чему то на оборот, то есть разрешает весь входящий траф на 22 порт моего компа.

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: IPFW

Непрочитанное сообщение reLax » 2009-10-17 15:15:20

Fakir писал(а):Спасибо за помощь, правило ipfw add 2 allow tcp from me 22 to any работает.
Но вот чет я со всем запутался

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

ipfw add 2 allow tcp from me 22 to any
РАзве это правило не должно читаться как: Разрешен TCP трафик от моего компа с 22 порта к к любому адресу??
Но выполняется по чему то на оборот, то есть разрешает весь входящий траф на 22 порт моего компа.
Ты обращаешься к 22-му порту и он тебе отвечает. Не так ли ?

Fakir
рядовой
Сообщения: 10
Зарегистрирован: 2009-02-16 15:35:59

Re: IPFW

Непрочитанное сообщение Fakir » 2009-10-17 15:38:44

reLax писал(а): Ты обращаешься к 22-му порту и он тебе отвечает. Не так ли ?
Да, именно так.
Я попутал Источник и Результат.
я думал что

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

from источник (от моего компа) to результат 
, а оказалось наоборот

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: IPFW

Непрочитанное сообщение reLax » 2009-10-17 16:21:52

Fakir писал(а):
reLax писал(а): Ты обращаешься к 22-му порту и он тебе отвечает. Не так ли ?
Да, именно так.
Я попутал Источник и Результат.
я думал что

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

from источник (от моего компа) to результат 
, а оказалось наоборот
Советую на 22-м порту использовать ssh-keygen с паролем
P.S. Результат у тебя будет, когда ты с внутреннего или внешнего интерфейса укажешь правило ipfw keep-state :)

Fakir
рядовой
Сообщения: 10
Зарегистрирован: 2009-02-16 15:35:59

Re: IPFW

Непрочитанное сообщение Fakir » 2009-10-17 17:12:40

И еще вопрос

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

$fw -f flush
$cmd 1 check-state
$fw nat 123 config ip $WAN log
$fw nat 123 config if rl1 same_ports unreg_only redirect_port tcp 192.168.100.1:28575 28575
$cmd nat 123 ip from $LAN to any keep-state
$cmd nat 123 ip from any to $WAN
$cmd allow tcp from me 21 to any
$cmd allow tcp from me 28577 to any
$cmd allow log ip from $WAN to any out xmit $WIF keep-state
$cmd allow ip from any to any via $LIF
$cmd deny log all from any to any
Решил дать серверу выход в инет, создал правило

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

allow log ip from $WAN to any out xmit $WIF keep-state
теперь с сервера все пинугуется, но правило еще и все порты наружу открывает(((
В лог это правило пишет: Accept TCP 10.83.14.3:22 188.40.74.10:52907 out via rl1
В чем может быть причина, нада разбиться с keep-state и check-state?

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: IPFW

Непрочитанное сообщение reLax » 2009-10-17 17:39:08

Fakir писал(а):И еще вопрос

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

$fw -f flush
$cmd 1 check-state
$fw nat 123 config ip $WAN log
$fw nat 123 config if rl1 same_ports unreg_only redirect_port tcp 192.168.100.1:28575 28575
$cmd nat 123 ip from $LAN to any keep-state
$cmd nat 123 ip from any to $WAN
$cmd allow tcp from me 21 to any
$cmd allow tcp from me 28577 to any
$cmd allow log ip from $WAN to any out xmit $WIF keep-state
$cmd allow ip from any to any via $LIF
$cmd deny log all from any to any
Решил дать серверу выход в инет, создал правило

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

allow log ip from $WAN to any out xmit $WIF keep-state
теперь с сервера все пинугуется, но правило еще и все порты наружу открывает(((
В лог это правило пишет: Accept TCP 10.83.14.3:22 188.40.74.10:52907 out via rl1
В чем может быть причина, нада разбиться с keep-state и check-state?
Хер знает, я на pf сижу ))

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

 #----- Interfaces -----#
 ExtIf="xl1"
 IntIf="xl0"
 VirtIf="tap0"

#----- Hosts -----#
 Root="172.17.4.2"
 HttpdJail="192.168.0.230"
 MainOffice="194.84.136.134"
 VirtNet="172.17.3.0/24"

#----- States & Queues -----#
 SynState="flags S/SAFR synproxy state"
 TcpState="flags S/SAFR modulate state"
 UdpState="keep state"

#----- Ports -----#
 AllowOutAll="{22, 5000, 80, 443, 21}"
 Icq="{5190}"
 ExtMail="{25, 110, 143}"
 IntIfTcpIn="{5000,22,8080}"
 IntIfTcpOut="{5000,22,8080}"
 SmbUdp="{137, 138, 139}"
 SmbTcp="{137,138,139,445}"


#----- Stateful Tracking Options -----#
 ExtIfSTO  ="(max 9000, source-track rule, max-src-conn 2000, max-src-nodes 254)"
 IntIfSTO  ="(max 250,  source-track rule, max-src-conn 100,  max-src-nodes 254, max-src-conn-rate 75/20)"
 SpamdSTO  ="(max 500,  source-track rule, max-src-conn 10,   max-src-nodes 300, max-src-conn-rate 2/300, tcp.established 10)"
 SshSTO    ="(max 10,   source-track rule, max-src-conn 10,   max-src-nodes 5,   max-src-conn-rate 20/60, overload <OVERLOAD_SSH> flush global)"

#----- Tables -----#
 table <sshguard>     persist
 table <BLACKLIST>    persist file "/etc/pf/blacklist"
 table <SLOWQUEUE>    persist file "/etc/pf/slowqueue"
 table <VELKOMAIL>    persist {194.84.136.134}
 table <NORMALQUEUE>  persist file "/etc/pf/normalqueue"
 table <HTTPOVERNAT>  persist file "/etc/pf/httpovernat"
 table <ICQ>          persist file "/etc/pf/icq"
 table <IPICQ>        persist {64.12.0.0/16, 205.188.0.0/16}
 table <EXTMAIL>      persist file "/etc/pf/extmail"
 table <EXTFTP>       persist file "/etc/pf/extftp"
 table <INTFTP>       persist file "/etc/pf/intftp"
 table <EXTSERVIFACES> persist {192.168.0.100, 192.168.0.150, 192.168.0.155}
 table <NETAMS_INET>  persist
 table <OVERLOAD_SSH> persist

#----- Options -----#
 set debug urgent
 set require-order yes
 set block-policy drop
 set loginterface $ExtIf
 set state-policy if-bound
 set fingerprints "/etc/pf.os"
 set ruleset-optimization none
 set skip on {lo0, tap0}

#----- Timeout Options -----#
 set optimization aggressive
 set timeout { frag 10, tcp.established 3600 }
 set timeout { tcp.first 30, tcp.closing 30, tcp.closed 30, tcp.finwait 30 }
 set timeout { udp.first 30, udp.single 30, udp.multiple 30 }
 set timeout { other.first 30, other.single 30, other.multiple 30 }
 set timeout { adaptive.start 5000, adaptive.end 10000 }

#----- Normalization -----#
 scrub log on $ExtIf all random-id min-ttl 254 max-mss 1452 reassemble tcp fragment reassemble

#----- Queueing -----#
# altq on $IntIf cbq bandwidth 100% queue {root_http, slow_http, normal_http, im, mail}
#   queue root_http       bandwidth 1Mb   priority 1 cbq (default red borrow)
#   queue slow_http       bandwidth 256Kb
#   queue normal_http     bandwidth 368Kb
#   queue im              bandwidth 64Kb
#   queue mail            bandwidth 128Kb


#----- NAT & Redirection -----#

 nat on egress from (self)         to any tag EGRESS -> ($ExtIf:0) port 1024:65535
 nat on $ExtIf from $IntIf:network to any tag EGRESS -> ($ExtIf:0) port 1024:65535
 nat on $ExtIf from $VirtNet to any -> ($ExtIf:0)

 no rdr on lo0 from any to any
 rdr on $ExtIf inet proto tcp from any to any                       port 21                  -> lo0       port 8021
 rdr on $IntIf inet proto tcp from $IntIf:network to !$IntIf        port 80                  -> $IntIf    port 8080
 nat-anchor "ftp-proxy/*"
 rdr-anchor "ftp-proxy/*"
 no rdr

#----- Filtering -----#

 antispoof log quick for { lo0 $IntIf ($ExtIf) }
 pass             log quick on $VirtIf
 block return  in log quick on $IntIf inet proto tcp from <NETAMS_INET> to any port {80, 8080, 443, 21, 20}
 block         in log quick           from no-route to any
 block         in log quick on $ExtIf inet proto tcp from any to <BLACKLIST> port {80, 443}
 block         in log quick on $ExtIf from any to 255.255.255.255
# block return  in log quick on $IntIf from any to <BLACKLIST>
 block         in log quick on $ExtIf from <sshguard> to any label "ssh bruteforce"

 block               quick                inet6

  block        log on $ExtIf
  block return log on $IntIf

 anchor "ftp-proxy/*"

#----- Samba Broadcast Fix
 pass log quick on $IntIf inet proto udp from $IntIf:network to $IntIf:broadcast port $SmbUdp $UdpState $IntIfSTO
 pass log quick on $VirtIf inet proto udp from $VirtIf:network to $VirtIf:broadcast port $SmbUdp

  pass log quick on $IntIf inet proto udp from 172.17.4.0/24 to 172.17.4.255 port $SmbUdp
  pass log quick on $VirtIf inet proto udp from 172.17.3.0/24 to 172.17.3.255 port $SmbUdp

#----- $ExtIf inbound
 pass in log on $ExtIf inet proto icmp from any                                        to ($ExtIf)     icmp-type 8 code 0 $UdpState
 pass in log on $ExtIf inet proto tcp  from any                                        to ($ExtIf)     port ssh    $SynState $SshSTO
 pass in log on $ExtIf inet proto tcp  from any         port 5999                      to ($ExtIf)                 $SynState $SshSTO
 pass in log on $ExtIf inet proto tcp  from any                                        to ($ExtIf)     port 443    $TcpState $ExtIfSTO
 pass in log on $ExtIf inet proto tcp  from $MainOffice port 5000                      to ($ExtIf)

 pass in log on $ExtIf inet proto tcp  from any                                        to ($ExtIf)     port 49152:65535 $TcpState $ExtIfSTO

#----- $IntIf outbound
 pass out log on $IntIf inet proto tcp  from $IntIf to $IntIf:network $TcpState
 pass out log on $IntIf inet proto udp  from $IntIf to $IntIf:network $UdpState
 pass out log on $IntIf inet proto udp  from $IntIf to 172.17.4.255
 pass out log on $IntIf inet proto icmp from $IntIf to $IntIf:network icmp-type 8 code 0 $UdpState

#----- $IntIf inbound
 pass in log on $IntIf                 from $VirtNet       to  any

 pass in log on $IntIf inet proto tcp  from $IntIf:network to  $IntIf   port $IntIfTcpIn             $TcpState $IntIfSTO
 pass in log on $IntIf inet proto tcp  from $Root          to  $IntIf                                $TcpState $IntIfSTO
 pass in log on $IntIf inet proto tcp  from $IntIf:network to  $MainOffice port 5000
 pass in log on $IntIf inet proto tcp  from <HTTPOVERNAT>  to !$IntIf   port $AllowOutAll            $TcpState $ExtIfSTO
 pass in log on $IntIf inet proto udp  from $IntIf:network to <VELKOMAIL>  port 53                   $UdpState $IntIfSTO
 pass in log on $IntIf inet proto tcp  from $IntIf:network to <VELKOMAIL>  port {465, 993}           $TcpState $ExtIfSTO
 pass in log on $IntIf inet proto tcp  from <ICQ>          to <IPICQ>   port $Icq                    $TcpState $ExtIfSTO
 pass in log on $IntIf inet proto tcp  from <EXTMAIL>      to !$IntIf   port $ExtMail                $TcpState $ExtIfSTO

 pass in log on $IntIf inet proto icmp from $IntIf:network to  $IntIf   icmp-type 8 code 0           $UdpState $IntIfSTO
 pass in log on $IntIf inet proto tcp  from <INTFTP>       to  127.0.0.1   port 8021                 $TcpState $ExtIfSTO

#----- $ExtIf outbound
 pass out log on $ExtIf                 from $VirtNet       to any
 pass out log on $ExtIf inet proto tcp  from ($ExtIf)      to any                                port {23, 22, 21, 80, 443} $TcpState $ExtIfSTO
 pass out log on $ExtIf inet proto tcp  from ($ExtIf)      to $MainOffice                        port  5000
 pass out log on $ExtIf inet proto udp  from ($ExtIf)      to any                                port 53            $UdpState $ExtIfSTO
 pass out log on $ExtIf inet proto tcp  from ($ExtIf)      to any                                port  5999         $TcpState $ExtIfSTO

 pass out log on $ExtIf inet proto tcp  from ($ExtIf:0)      to any port 2401          $TcpState $ExtIfSTO
 pass out log on $ExtIf inet proto tcp  from ($ExtIf:0)      to any                    $TcpState $ExtIfSTO tagged EGRESS
 pass out log on $ExtIf inet proto tcp  from ($ExtIf:0)      to any port ssh           $TcpState $ExtIfSTO tagged EGRESS
 pass out log on $ExtIf inet proto udp  from ($ExtIf:0)      to any                    $UdpState $ExtIfSTO tagged EGRESS
 pass out log on $ExtIf inet proto udp  from ($ExtIf:0)      to any port domain        $UdpState $ExtIfSTO tagged EGRESS
 pass out log on $ExtIf inet proto icmp from ($ExtIf:0)      to any                    $UdpState $ExtIfSTO tagged EGRESS

 pass log on $VirtIf from any to any

#----- END

pf рулит :)

rg45
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-11-18 17:31:25

Re: IPFW

Непрочитанное сообщение rg45 » 2009-11-18 17:44:22

Добрый день господа

который день бьюсь с IPFW не могу никак понять как сделать ДНС релэй .

есть домен АД
два ДС с днсками клиенты смотрят на ДНС сервера локальные .
с локальных днс сервров стоит релэй на шлюз
шлюз IPFW + SQUID + ASMS
шлюз сам ДНСы релэит . клиенты через SQUID в инет ходят нормально в скиде указан ДНС прова

задача чтобы локальные ДНСсерва релеили ДНСы либо сразу на провайдора либо на шлюз а шлюз релэил их провайдеру .

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

что имеем в IPFW

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

re0 - внутренний фес 
fxp0 - внешний  
213.177.96.1 - днс прова 

${FW} add allow ip from any to any via lo0
${FW} add allow ip from 192.168.xx.0/24 to 192.168.xx.0/24 via re0

${FW} add divert natd ip from 192.168.xx.0/24 to any out via fxp0
${FW} add divert natd ip from any to any in via fxp0

${FW} add allow tcp from 192.168.хх.0/24 to 192.168.xx.xx 3128 via re0

${FW} add allow tcp from 192.168.xx.0/24 to any 25 via re0
${FW} add allow tcp from 192.168.xx.0/24 to any 110 via re0

${FW} add allow udp from any to 213.177.96.1 53 keep-state
${FW} add allow udp from any to 213.177.97.1 53 keep-state


${FW} add allow tcp from any to any established
${FW} add allow ip from me to any via fxp0
почта ходит нормально ) только потому что IP адреса указанны )


как сделать чтоб локальные ДНС к прову ходили ?

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: IPFW

Непрочитанное сообщение reLax » 2009-11-18 20:37:28

Сделай кеширующий c DC DNS на шлюзе. Используй view { match-clients {}; }; в named. Если на клиентах лень переписывать DNS - сделай на DC каким-то образом редирект UDP 53 на шлюз. Прописав для внутренних клиентов что-то типа

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

 zone "." in {
           type hint;
           file "named.root";
      };
- не будешь зависеть от DNS провайдера. Ну или явно его там укажи для внешних запросов. Сделаешь еще один view {}; в мир - будет тебе свой DNS, доступный извне, но только для внешних адресов. Тут в принципе особо городить с ipfw необязательно.

rg45
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-11-18 17:31:25

Re: IPFW

Непрочитанное сообщение rg45 » 2009-11-22 12:48:24

спасибо собственно тоже об этом думал , так и сделал .

Аватара пользователя
mayor
сержант
Сообщения: 215
Зарегистрирован: 2008-09-06 10:11:49
Контактная информация:

Re: IPFW

Непрочитанное сообщение mayor » 2009-11-22 17:40:35

а кто знает как в IPFW в правиле вида:

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

ipfw add deny from any to any MAC 00:17:31:a9:e9:9b 11:11:11:11:11:11
вместо 11:11:11:11:11:11 написать типа "любой" МАК адрес?

Аватара пользователя
zeus4all
сержант
Сообщения: 261
Зарегистрирован: 2009-10-07 18:48:34
Откуда: Далекий космос

Re: IPFW

Непрочитанное сообщение zeus4all » 2009-12-24 22:22:02

Доброго времени суток. Перекомпилировал ядро, rc. подрапил, фаер взлетел, но вот теперь когда вношу изменения в свой rc.firewall, то после перезагрузки ipfw list
показывает старый конфиг в котором есть даже удаленные правила.
freeBSD 8 re
Историю пишут победители, поэтому в ней не упоминаются проигравшие. (с) Артур Дрекслер
Я знаю только то, что ничего не знаю. (с) Сократ
Если тебе плюют в спину, значит ты впереди. (с) Конфуций

Аватара пользователя
mayor
сержант
Сообщения: 215
Зарегистрирован: 2008-09-06 10:11:49
Контактная информация:

Re: IPFW

Непрочитанное сообщение mayor » 2009-12-26 0:45:44

zeus4all писал(а):Доброго времени суток. Перекомпилировал ядро, rc. подрапил, фаер взлетел, но вот теперь когда вношу изменения в свой rc.firewall, то после перезагрузки ipfw list
показывает старый конфиг в котором есть даже удаленные правила.
freeBSD 8 re
збрось правила
  • ipfw -f flush

valenok
проходил мимо
Сообщения: 1
Зарегистрирован: 2009-12-15 20:01:03

Re: IPFW

Непрочитанное сообщение valenok » 2009-12-28 21:18:50

а я один параноик, или перед правилами NAT-a

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

# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
стоило бы запретить всей внутренней сетке коннект наружу на 25-й порт?
типа

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

${FwCMD} add deny log ip from ${NetIn}/${NetMask} to any 25 via ${LanOut}
а то схватил пользователь трояна на днях. часу не прошло, как IP сервера в бан-листах появился. через 2 часа пров молча запер коннект от нас на любой 25 порт, я пока источник граблей нашел - чуть не вспотел весь.

Аватара пользователя
Hunta
сержант
Сообщения: 164
Зарегистрирован: 2008-12-03 20:47:35
Откуда: Калининград
Контактная информация:

Re: IPFW

Непрочитанное сообщение Hunta » 2010-01-29 11:21:29

Помогите пожалуйста, не могу разрешить подключение к ftp из локалки в инет, не понятно следующие, пакеты уходят с клиента с портов 1024-65535, на 21 порт сервера, а обратно на какие порты приходят?
Дураков нет, есть инакомыслящие...

iye
ст. сержант
Сообщения: 360
Зарегистрирован: 2008-07-29 9:02:04

Re: IPFW

Непрочитанное сообщение iye » 2010-01-29 13:50:23

Пассив мод фтп спасет отца русской демократии )

Аватара пользователя
hizel
дядя поня
Сообщения: 9031
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: IPFW

Непрочитанное сообщение hizel » 2010-01-29 14:22:06

Hunta писал(а):Помогите пожалуйста, не могу разрешить подключение к ftp из локалки в инет, не понятно следующие, пакеты уходят с клиента с портов 1024-65535, на 21 порт сервера, а обратно на какие порты приходят?
в соответствующем RFC все написано, в гугле разжевано, и обнаружены дырищи безопасности http://www.linux.org.ru/view-message.jsp?msgid=4375267
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Hunta
сержант
Сообщения: 164
Зарегистрирован: 2008-12-03 20:47:35
Откуда: Калининград
Контактная информация:

Re: IPFW

Непрочитанное сообщение Hunta » 2010-02-01 10:53:46

Я извиняюсь, а разве не сервер должен поддерживать режимы. Просто задача настроить пропуск обновлений антивируса, открываю 20, 21 порты, связи нет :( как можно это обойти? :oops: может ли сам сервер обновлений не поддерживать пассивный режим?
Дураков нет, есть инакомыслящие...

Аватара пользователя
sav
рядовой
Сообщения: 17
Зарегистрирован: 2008-07-31 15:17:39

Re: IPFW

Непрочитанное сообщение sav » 2010-02-11 22:50:58

Здравствуйте.
Возникла необходимость поднять firewall, а так как с линухом поссорился пару лет назад, сел за IPFW.
К сути.
Прочитал эту статью, но не пойму одного момента.
Во второй конфигурации, описанной в статье есть пара строк:

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

${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup
если неправ, поправьте...
первое: разрешаем пакетам по tcp с внешнего IP куда угодно выходить через внешний интерфейс.
второе: разрешаем пакетам по tcp с любого источника на внешний IP входить через внутренний интерфейс.
первую строку я понимаю, разрешение выхода во внешний мир, но суть второй строки я не пойму.
Разъясните ПЛЗ!!!
Не познав сущности предмета, человек может в совершенстве им овладеть!

Satarum
рядовой
Сообщения: 13
Зарегистрирован: 2010-02-09 23:52:44

Re: IPFW

Непрочитанное сообщение Satarum » 2010-02-12 4:28:40

Покопал - все заработало, не актуально боле.
Последний раз редактировалось Satarum 2010-02-15 0:10:47, всего редактировалось 1 раз.

dreamond
рядовой
Сообщения: 26
Зарегистрирован: 2009-09-04 19:39:13
Контактная информация:

Re: IPFW

Непрочитанное сообщение dreamond » 2010-02-13 17:55:40

подскажите пожалуйста где ошибка?
дано:
тестовые 2 вирт машинки на VMware Workstation настроенные 1 в 1 с реальными на к-х проблема (проблема тоже 1 в 1)
1я ВМ
внешний IP 192.168.40.5 (интеhфейс em0)
маска подсети внешней 255.255.255.0
gate 192.168.40.2
внутренний IP 192.168.150.2
маска подсети внутри 255.255.255.0

2я ВМ
простая XP настроенная на прохождение сетевого трафика через 1ю ВМ

конфиг freeBSD
OS- freeBSD 6.4
kernel:

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE 
options         IPFIREWALL_VERBOSE_LIMIT=5
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         IPFIREWALL_DEFAULT_TO_ACCEPT
rc.conf

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

keymap="ru.koi8-r"
usbd_enable="YES"
ifconfig_em0="inet 192.168.40.5  netmask 255.255.255.0"
ifconfig_em1="inet 192.168.150.2  netmask 255.255.255.0"
defaultrouter="192.168.40.2"
sshd_enable="YES"
hostname="nat"
natd_enable="YES"
natd_interface="em0"
natd_flags="-m -u"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
firewall_logging="YES"
rc.firewall

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

#!/bin/sh

#
#
#

FwCMD="/sbin/ipfw"	#
LanOut="em0"            #
LanIn="em1"			#
IpOut="192.168.40.5" 	#
IpIn="192.168.150.2"   	#
NetMask="24"            #

#
${FwCMD} -f flush

#
${FwCMD} add check-state

#
${FwCMD} add allow ip from any to any via lo0
# 
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# 
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}

#
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}

# 
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}

#
${FwCMD} add deny icmp from any to any frag

#
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

#

#
#${FwCMD} add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
# 
#${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}


#
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

# 
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}

#
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}

#
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}

#
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}


#
${FwCMD} add allow tcp from any to any established

#
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

#
${FwCMD} add allow udp from any 53 to any via ${LanOut}

# 
${FwCMD} add allow udp from any to any 53 via ${LanOut}

# 132
${FwCMD} add allow udp from any to any 123 via ${LanOut}


${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 icmp from any to any icmptypes 0,8,11

${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}

${FwCMD} add allow tcp from any to ${IpOut} 22 via ${LanOut}

${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}

${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}

${FwCMD} add allow tcp from any to any via ${LanIn}

${FwCMD} add allow udp from any to any via ${LanIn}

${FwCMD} add allow icmp from any to any via ${LanIn}

${FwCMD} add deny ip from any to any
проблема
с freeBSD ping, nslookup, обновление портов все проходит, putty по ssh конектится как с клиентf так и с физ.машины (т.е как на внешний интерфес так и на внутренний)

ipfw list нормально выдает действующие правила

с XP связь есть не дальше чем freebsd- ни пинг, ничего друго не проходит


у меня сложилось впечатление что не хватает какого правила в rc.firewall
если последним правилом прописать такое

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

${FwCMD} add allow ip from any to any
то клиент все равно не ходит в инет

необходимо
на данный момент необходим простой nat с ipfw для инета (в дальнейшим после уст-ки squid и sams будет гуляние через проксю- для этого я ввел форвардинг на проксю но закаментил эти строки)

MuJLaN
рядовой
Сообщения: 13
Зарегистрирован: 2009-09-25 10:01:28

Re: IPFW

Непрочитанное сообщение MuJLaN » 2010-03-04 11:46:29

У меня вот такая проблема:
FreeBSD 7.2 RELEASE
в rc.conf добавлял

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

firewall_enable="YES"
firewall_type="/etc/firewall.conf" #файл с правилами файрволла
firewall_logging="YES" 


Пробывал пересобрать ядро по статье с этого же сайта http://www.lissyara.su/articles/freebsd ... ke_kernel/
Просто добавил строки в свой новый конфиг ядра

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

options         IPFIREWALL                                  
options         IPFIREWALL_VERBOSE             
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT 
далее компилирую и устанавливаю
Система никаких сбоев или ошибок не давала. Через 15 минут все было готово. Перезагрузился. Но файрвол все равно не появился... :st:
# ipfw list
в ответ все тоже
ipfw: getsockopt(IP_FW_GET): Protocol not available

Что я делаю не так? Подскажите, пожалуйста!

Аватара пользователя
xelplogoog
мл. сержант
Сообщения: 134
Зарегистрирован: 2010-01-02 12:14:56

Re: IPFW

Непрочитанное сообщение xelplogoog » 2010-03-04 20:36:57

в rc.conf включи его
/usr/ports/x11/yakuake-kde4 user

kulakov_mv
проходил мимо
Сообщения: 3
Зарегистрирован: 2010-03-02 17:00:30

Re: IPFW

Непрочитанное сообщение kulakov_mv » 2010-03-04 23:47:30

dreamond писал(а):подскажите пожалуйста где ошибка?

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

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

${FwCMD} add allow ip from any to any
то клиент все равно не ходит в инет
А маршрутизация включена?

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

sysctl -a | grep ip.forwarding
чего дает? Если 0 - то просто выключена маршрутизация...
Для того чтобы включить устанавливаешь эту переменную в 1 в /etc/sysctl.conf
или в rc.conf пишешь:

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

router_enable="YES"

dreamond
рядовой
Сообщения: 26
Зарегистрирован: 2009-09-04 19:39:13
Контактная информация:

Re: IPFW

Непрочитанное сообщение dreamond » 2010-03-06 13:59:57

kulakov_mv писал(а):
dreamond писал(а):подскажите пожалуйста где ошибка?

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

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

${FwCMD} add allow ip from any to any
то клиент все равно не ходит в инет
А маршрутизация включена?

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

sysctl -a | grep ip.forwarding
чего дает? Если 0 - то просто выключена маршрутизация...
Для того чтобы включить устанавливаешь эту переменную в 1 в /etc/sysctl.conf
или в rc.conf пишешь:

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

router_enable="YES"
хм..спасибо что откликнулись ) ларчик просто открывался
ошибка была элементарнейшая, позор на мою голову :oops:
я в rc.conf не вписал строку gateway_enable="YES"