Здрасти всем.....есть машина под фрюхой 5.2.1 на ней подняты nat и ipfw, план такой - только одна машина могет вылезать в просторы инета, но при этом 25,110 порты для нее закрыты и еще одна машина которая юзает только 25,110 порты.......
на фрюхе два интерфейса em0(192.168.2.1/255.255.255.0)-внутренний , sk0(yyy.xxx.nnn.mmm/255.255.255.248)-внешний , машина которая имеет доступ в инет 192.168.2.2, машина которая имеет доступ к портам 25,110 192.168.2.3
Скомпелил ядро с опциями
IPFIREWALL
IPFIREWALL_VERBOSE
IPFIREWALL_VERBOSE_LIMIT=500
IPDIVERT
отредактировал /etc/rc.conf:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="UNKNOWN"
natd_enable="YES"
natd_interface="sk0"
и далее идут правила которые прошу вас покритиковать, может я чтото нетак делаю?
1.разрешаю все пакеты по локальному интерфейсу
ipfw add pass all from any to any via em0
2.Natd
ipfw add divert natd ip from 192.168.2.2:255.255.255.0 to any out via sk0
ipfw add divert natd ip from any to yyy.xxx.nnn.mmm in via sk0
3.http
ipfw add pass tcp from any 80 to yyy.xxx.nnn.mmm:255.255.255.248
ipfw add pass tcp from yyy.xxx.nnn.mmm:255.255.255.248 to any 80
4. SMTP,POP3
ipfw add pass tcp from 192.168.2.3:255.255.255.0 to any 25,110
ipfw add pass tcp from any 25,110 to 192.168.2.3:255.255.255.0
5.DNS
ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
FTP меня пока неинтересуют........воть
выскажетесь по этому поводу и подскажите если где неправельно
Заранее благодарю.....
rc.conf:
firewall_type="client"
ipfw add divert natd ip from 192.168.2.2:255.255.255.0 to any out via sk0
ipfw add divert natd ip from any to yyy.xxx.nnn.mmm in via sk0 # mojno srazu:
ipfw add divert natd all from any to any via sk0
# Esli odna machina uzit inet, no 25, 110 doljni bit zakriti, to mojno eshe vot tak:
ipfw add deny tcp from any to 192.168.2.2 25,110
ipfw add deny tcp from 192.168.2.2 to any 25,110# Vopros, squid stoit?
#Za4em?
ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0ipfw add pass tcp from 192.168.2.3:255.255.255.0 to any 25,110
ipfw add pass tcp from any 25,110 to 192.168.2.3:255.255.255.0 # Soglasen!# i kakoe poslednee pravilo deny, ili allow, ato toje vajno!!!
>rc.conf:
>firewall_type="client"
>ipfw add divert natd ip from 192.168.2.2:255.255.255.0 to any out via sk0
>
>ipfw add divert natd ip from any to yyy.xxx.nnn.mmm in via sk0
># mojno srazu:
>ipfw add divert natd all from any to any via sk0
># Esli odna machina uzit inet, no 25, 110 doljni bit zakriti,
>to mojno eshe vot tak:
>ipfw add deny tcp from any to 192.168.2.2 25,110
>ipfw add deny tcp from 192.168.2.2 to any 25,110
>
># Vopros, squid stoit?
>#Za4em?
>ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
>ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
>
>ipfw add pass tcp from 192.168.2.3:255.255.255.0 to any 25,110
>ipfw add pass tcp from any 25,110 to 192.168.2.3:255.255.255.0 # Soglasen!
>
># i kakoe poslednee pravilo deny, ili allow, ato toje vajno!!!последнее правило deny ...извеняюсь я его забыл написать..бывает.....
squid стоит на машине 192.168.2.2-которая форсит в инете.....
а вот это
>ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
>ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
для почты....так в книге описано....или я чтото не так понял?
а почему
>firewall_type="client"
а не как у меня?
# 1)togda, esli 192.168.2.2 zapret na 25 i 110, to pishi v squide!!!
acl Safe_ports port 25
acl Safe_ports port 110
http_access deny Safe_ports
iz vne na eti porti budut stoyat zapreti
# 2)
а вот это
>ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
>ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
>ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
для почты....так в книге описано....или я чтото не так понял?
а почему
ne ver vsemu 4to pishut!!! kanal videlenniy?
u vas mail server stoit?
># 1)togda, esli 192.168.2.2 zapret na 25 i 110, to pishi v
>squide!!!
>acl Safe_ports port 25
>acl Safe_ports port 110
>http_access deny Safe_ports
>iz vne na eti porti budut stoyat zapreti
># 2)
>а вот это
>>ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
>>ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
>>ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
>>ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
>для почты....так в книге описано....или я чтото не так понял?
>а почему
>ne ver vsemu 4to pishut!!! kanal videlenniy?
>u vas mail server stoit?сервер для мыла пока нету...но планируется очень скоро...канал выделеный..
но ведь эти правила
>>ipfw add pass udp from 192.168.2.3:255.255.255.0 to any 53
>>ipfw add pass udp from any 53 to 192.168.2.3:255.255.255.0
>>ipfw add pass udp from 192.168.2.2:255.255.255.0 to any 53
>>ipfw add pass udp from any 53 to 192.168.2.2:255.255.255.0
еще нужны и для www. или нет?
Ponimaesh, esli kanal videlenniy, to provider daet ip dns(a), tak?
zna4it mojno prosto napisat tak:
ipfw add pass all from ip_dns to any
ipfw add pass all from any to ip_dns
U menya tak-vot:
Est ip dns servera, skajem 85.132.30.3
v rc.conf:
firewall_enable="YES"
firewall_type="closed"
...............
...............
natd_enable="YES"
e.t.c
stoit cep:
Opredelenniy dostup.................
....................................
....................................
ipfw add pass all from 85.132.30.3 to any
ipfw add pass all from any to 85.132.30.3
ipfw add deny all from any to any
Prosto za4em gruzitsya, mogut i zaderjki poyavitsya, nu vot predstav, 4to paket idet 4erez tvoi pravila, mojesh daje proverit vremya za kotoroe proydet 1 paket, day komandu:
root# time ping ip_provider, i posmotri!!!
sdelay sh make-localhost na 192.168.2.2 i day forward, vse zarabotart!!!
>Ponimaesh, esli kanal videlenniy, to provider daet ip dns(a), tak?
>zna4it mojno prosto napisat tak:
>ipfw add pass all from ip_dns to any
>ipfw add pass all from any to ip_dns
>U menya tak-vot:
>Est ip dns servera, skajem 85.132.30.3
>v rc.conf:
>firewall_enable="YES"
>firewall_type="closed"
>...............
>...............
>natd_enable="YES"
>e.t.c
>stoit cep:
>Opredelenniy dostup.................
>....................................
>....................................
>ipfw add pass all from 85.132.30.3 to any
>ipfw add pass all from any to 85.132.30.3
>ipfw add deny all from any to any
>Prosto za4em gruzitsya, mogut i zaderjki poyavitsya, nu vot predstav, 4to paket
>idet 4erez tvoi pravila, mojesh daje proverit vremya za kotoroe proydet
>1 paket, day komandu:
>root# time ping ip_provider, i posmotri!!!
>sdelay sh make-localhost na 192.168.2.2 i day forward, vse zarabotart!!!спасиб тебе большое.......
Esli 4e, pishi, a to vse ravno sku4no na rabote bez del sidet!!!
>Esli 4e, pishi, a to vse ravno sku4no na rabote bez del
>sidet!!!
наконец руки добрались и вот подстава...фсе то что написано выше...нефурычит...гы....
4to imenno?
>4to imenno?ни чево..:)...ставлю правила такие
ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
ipfw add divert natd ip from any to yyy.xxx.nnn.mmm in via sk0
фсе фарцает....как только свои правила так сразу глухо.....для начало я хочу чтоб только одна машина имела доступ в инет это 192.168.2.2 и фсе ....значит поидее я должен ей открыть 80 и 53 порты?если так то я делаю следующее:
сначала я должен разрешить прохождение всех пакетов по локальному интерфейсу
ipfw add pass all from any to any via em0
затем сделать диверт
ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
ipfw add divert natd ip from any to 217.xxx.xxx.yyy in via sk0
и самое главное я разрешаю 80 порт только одной машине...после чего должна фарсить в инете только она и никто больше
ipfw add pass tcp from 192.168.2.2 to any 80
ipfw add pass tcp from any 80 to 192.168.2.2 established
ну и конечноже DNS для WWW
ipfw add pass udp from xxx.xxx.yyy.34 53 to 192.168.2.2
ipfw add pass udp from 192.168.2.2 to xxx.xxx.yyy.34 53
и нефорцает....где грабли???
zna4it esli tolko odna mashina 192.168.2.2 i vse!!!!
Zna4it tak , est 2 sposoba 1):
ipfw add divert natd all from any to any via {$natd_interface}
ipfw add pass all from ip_dns_provider to any
ipfw add pass all from any to ip_dns_provider
ipfw add pass all from 192.168.2.2 to any
ipfw add pass all from any to 192.168.2.2
ipfw add deny all from any to any
(nu tam gateway e.t.c, tolko do ipfw add deny all from any to any)
2):
ipfw add divert natd all from any to any via {$natd_interface}
ipfw add pass all from 192.168.2.2 to any
ipfw add pass all from any to 192.168.2.2
ipfw add deny all from 192.168.2.0/24 to any
ipfw add deny all from any to 192.168.2.0/24
ipfw add pass all from any to anyili esli ne xo4esh 4tob ves traffic na 192.168.2.2 shel, to toje samoe, tolko po sootvetstvuyushim portam. Doljno rabotat, u menya rabotaet!!!
>zna4it esli tolko odna mashina 192.168.2.2 i vse!!!!
>Zna4it tak , est 2 sposoba 1):
>ipfw add divert natd all from any to any via {$natd_interface}
>ipfw add pass all from ip_dns_provider to any
>ipfw add pass all from any to ip_dns_provider
>ipfw add pass all from 192.168.2.2 to any
>ipfw add pass all from any to 192.168.2.2
>ipfw add deny all from any to any
>(nu tam gateway e.t.c, tolko do ipfw add deny all from any
>to any)
>2):
>ipfw add divert natd all from any to any via {$natd_interface}
>ipfw add pass all from 192.168.2.2 to any
>ipfw add pass all from any to 192.168.2.2
>ipfw add deny all from 192.168.2.0/24 to any
>ipfw add deny all from any to 192.168.2.0/24
>ipfw add pass all from any to any
>
>ili esli ne xo4esh 4tob ves traffic na 192.168.2.2 shel, to toje
>samoe, tolko po sootvetstvuyushim portam. Doljno rabotat, u menya rabotaet!!!это конечно классно..форцает..но есть одно но......тем самым я открываю фсе порты...и становлюсь одной большой дыркой.....а начинаю по портам ничерта непашит....
ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
zakrivay ix
>ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
>
>zakrivay ix
ок...спасиб ...пошел пробовать
>>ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
>>
>>zakrivay ix
>
>
>ок...спасиб ...пошел пробовать
uda4i
>>>ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
>>>
>>>zakrivay ix
>>
>>
>>ок...спасиб ...пошел пробовать
>uda4i
фсе работать...но я тут начал эксперемнтировать.......те правила что ты мне дал они открывают все порты только для одной машины.....я решил по минимуму открыть порты для машинки..и вот тут косяк..опять нефурычит....
начал с того что эта машина может только форсить инет...значит надо 80,8080,443,53, порты ей открыть...так вот отсюда правила
ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
ipfw add divert natd ip from any to xxx.nnn.mmm.yyy in via sk0
далее я начинаю открывать только инет
ipfw add pass tcp from 192.168.2.2 to any 80,8080,443 via em0 (сетефуха в локальную сеть смотрит)
ipfw add pass tcp from any 80,8080,443 to 192.168.2.2 via em0
ну и конечноже DNS
ipfw add pass udp from 192.168.2.2 to my_dns_server 53 via em0
ipfw add pass udp from my_dns_server 53 to 192.168.2.2 via em0
ну и конечноже режем фсе что непопало под наши правила
ipfw add deny all from any to any
и мой эксперемент неудался.......в чем трабл??
>>>>ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
>>>>
>>>>zakrivay ix
>>>
>>>
>>>ок...спасиб ...пошел пробовать
>>uda4i
>
>
>фсе работать...но я тут начал эксперемнтировать.......те правила что ты мне дал они
>открывают все порты только для одной машины.....я решил по минимуму открыть
>порты для машинки..и вот тут косяк..опять нефурычит....
>начал с того что эта машина может только форсить инет...значит надо 80,8080,443,53,
>порты ей открыть...так вот отсюда правила
>ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
>
>ipfw add divert natd ip from any to xxx.nnn.mmm.yyy in via sk0
>
>далее я начинаю открывать только инет
>ipfw add pass tcp from 192.168.2.2 to any 80,8080,443 via em0 (сетефуха
>в локальную сеть смотрит)
>ipfw add pass tcp from any 80,8080,443 to 192.168.2.2 via em0
>ну и конечноже DNS
>ipfw add pass udp from 192.168.2.2 to my_dns_server 53 via em0
>ipfw add pass udp from my_dns_server 53 to 192.168.2.2 via em0
>ну и конечноже режем фсе что непопало под наши правила
>ipfw add deny all from any to any
>и мой эксперемент неудался.......в чем трабл??#
V svoix pravilax vnutrennix iface(of) poprobuy ubrat via em0!!!
>>>>>ska4ay nmap i posmotri kakie porti pri takix pravilax ostayutsya otkritimi i
>>>>>
>>>>>zakrivay ix
>>>>
>>>>
>>>>ок...спасиб ...пошел пробовать
>>>uda4i
>>
>>
>>фсе работать...но я тут начал эксперемнтировать.......те правила что ты мне дал они
>>открывают все порты только для одной машины.....я решил по минимуму открыть
>>порты для машинки..и вот тут косяк..опять нефурычит....
>>начал с того что эта машина может только форсить инет...значит надо 80,8080,443,53,
>>порты ей открыть...так вот отсюда правила
>>ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
>>
>>ipfw add divert natd ip from any to xxx.nnn.mmm.yyy in via sk0
>>
>>далее я начинаю открывать только инет
>>ipfw add pass tcp from 192.168.2.2 to any 80,8080,443 via em0 (сетефуха
>>в локальную сеть смотрит)
>>ipfw add pass tcp from any 80,8080,443 to 192.168.2.2 via em0
>>ну и конечноже DNS
>>ipfw add pass udp from 192.168.2.2 to my_dns_server 53 via em0
>>ipfw add pass udp from my_dns_server 53 to 192.168.2.2 via em0
>>ну и конечноже режем фсе что непопало под наши правила
>>ipfw add deny all from any to any
>>и мой эксперемент неудался.......в чем трабл??
>
>#
>V svoix pravilax vnutrennix iface(of) poprobuy ubrat via em0!!!
пробовал..непомогло......:(.....непонимаю косяк....вроде фсе бонально..
а может сначала внутренние правила...а потом уж divert?
sdelay:
# ipfw sh
rezultat prishli mne!!!
>sdelay:
># ipfw sh
>rezultat prishli
и так
00100 9 558 divert 8668 ip from 192.168.2.0/24 to any out via sk0
00200 4 548 divert 8668 ip from any to внешний ip in via sk0
00300 0 0 allow tcp from 192.168.2.2 to any 80,8080,443
00400 0 0 allow tcp from any 80,8080,443 to 192.168.2.2
00500 9 558 allow udp from 192.168.2.2 to my_dna_server 53
00600 0 0 allow udp from my_dns_server 53 to 192.168.2.2
65535 418 42833 deny ip from any to any
вот....
a kogda ta mashina pitaetsya viyti v net kakuyu oshibku on daet?
(192.168.2.2)
i eshe, gde tcp 53 port? v konfige tolko udp 53
doma eshe posmotryu zavtra to4no uje skaju
>a kogda ta mashina pitaetsya viyti v net kakuyu oshibku on daet?
>
>(192.168.2.2)
>i eshe, gde tcp 53 port? v konfige tolko udp 53
>doma eshe posmotryu zavtra to4no uje skaju
стандартная.....такая ошибка вылазит когда какойнибудь сайт грахнулся или времено недоступен.....вообщем ошибка с жалобой на dns.
а для чего tcp 53....такого нигде нет...ни в одном описалове...я много на этом сайте рылся....и такого невстричал....udp 53 да есть такое а вот tcp 53 нет......
>>a kogda ta mashina pitaetsya viyti v net kakuyu oshibku on daet?
>>
>>(192.168.2.2)
>>i eshe, gde tcp 53 port? v konfige tolko udp 53
>>doma eshe posmotryu zavtra to4no uje skaju
>
>
>стандартная.....такая ошибка вылазит когда какойнибудь сайт грахнулся или времено недоступен.....вообщем ошибка с
>жалобой на dns.
>а для чего tcp 53....такого нигде нет...ни в одном описалове...я много на
>этом сайте рылся....и такого невстричал....udp 53 да есть такое а вот
>tcp 53 нет......nu dik tcp day, on na dns i rugaetsya!!!
s 192.168.2.2 day nslookup i posmotri!!!!
>>>a kogda ta mashina pitaetsya viyti v net kakuyu oshibku on daet?
>>>
>>>(192.168.2.2)
>>>i eshe, gde tcp 53 port? v konfige tolko udp 53
>>>doma eshe posmotryu zavtra to4no uje skaju
>>
>>
>>стандартная.....такая ошибка вылазит когда какойнибудь сайт грахнулся или времено недоступен.....вообщем ошибка с
>>жалобой на dns.
>>а для чего tcp 53....такого нигде нет...ни в одном описалове...я много на
>>этом сайте рылся....и такого невстричал....udp 53 да есть такое а вот
>>tcp 53 нет......
>
>nu dik tcp day, on na dns i rugaetsya!!!
>s 192.168.2.2 day nslookup i posmotri!!!!тоесть по мимо этих вот строк
ipfw add pass udp from 192.168.2.2 to my_dns_server 53
ipfw add pass udp from my_dns_server 53 to 192.168.2.2
надо добавить эти
ipfw add pass tcp from 192.168.2.2 to my_dns_server 53
ipfw add pass tcp from my_dns_server 53 to 192.168.2.2
так?
ni da!!!
>ni da!!!
ниполучилось
поехали заново значит так
192.168.2.2-это единственная машина которая будит лазить только по 80 порту
192.168.2.1-это и есть ipfw
yyy.yyy.yyy.yyy-это внешний ip
xxx.xxx.xxx.xxx-это ip dns сервера моего провайдера
sk0-внешний интерфейс
em0-внутренний интерфейс
1. Делаю divert
ipfw add divert natd ip from 192.168.2.0/24 to any out via sk0
ipfw add divert natd ip from any to yyy.yyy.yyy.yyy in via sk0
2.далее даю машинке 192.168.2.2 право форсить в инете
ipfw add pass tcp from 192.168.2.2 to any 80
ipfw add pass tcp from any 80 to 192.168.2.2
3.незабыл и про dns
ipfw add pass udp from xxx.xxx.xxx.xxx 53 to 192.168.2.2
ipfw add pass udp from 192.168.2.2 to xxx.xxx.xxx.xxx
4. ну и то что посоветовали TCP 53
ipfw add pass tcp from xxx.xxx.xxx.xxx 53 to 192.168.2.2
ipfw add pass tcp from 192.168.2.2 to xxx.xxx.xxx.xxx
5.все что не попало под действие выше перечисленных правил
ipfw add deny all from any to any
и врезультате получил
00100 14 969 divert natd ip from 192.168.2.0/24 to any out via sk0
00200 7 684 divert natd ip from any to yyy.yyy.yyy.yyy in via sk0
00300 0 0 allow tcp from 192.168.2.2 to any 80
00400 0 0 allow tcp from any 80 to 192.168.2.2
00500 0 0 allow udp from xxx.xxx.xxx.xxx 53 to 192.168.2.2
00600 14 969 allow udp from 192.168.2.2 to xxx.xxx.xxx.xxx 53
00700 0 0 allow tcp from xxx.xxx.xxx.xxx 53 to 192.168.2.2
00800 0 0 allow tcp from 192.168.2.2 to xxx.xxx.xxx.xxx 53
65535 324 23493 deny ip from any to any
вот такая вот батва....мозги раком....
Zna4it tak:
posmotrel i u menya polu4ilos sleduyushee
#ipfw sh
00400 allow tcp from 192.168.2.2 to any dst-port 80,8080,443
00500 allow tcp from any 80,8080,443 to 192.168.2.2
00600 allow tcp from 192.168.0.1 to ip_dns dst-port 53
00700 allow tcp from ip_dns 53 to 192.168.2.2
00800 allow udp from 192.168.2.2 to ip_dns dst-port 53
00900 allow udp from ip_dns 53 to 192.168.2.2
65000 deny ip from any to any
vse rabotaet otli4no, tolko ip_dns u menya na mashine s ipfw.
всмысле > tolko ip_dns u menya na mashine s ipfw
мля.....значит гдето я обдурил сам себя...пойду с чистого листа начну...фсе заново.......
U menya je vse polu4ilos, komp v inet s takimi pravilami vixodit!!!
Jelayu tebe ude4i!!!
>U menya je vse polu4ilos, komp v inet s takimi pravilami vixodit!!!
>
>Jelayu tebe ude4i!!!
Фсе получилось........я наконец собрался с силами.....не очень большое количество пива..и фсе получилось......уря....
спасибо большое тебе за помощь ....
>стандартная.....такая ошибка вылазит когда какойнибудь сайт грахнулся или времено недоступен.....вообщем ошибка с
>жалобой на dns.
>а для чего tcp 53....такого нигде нет...ни в одном описалове...я много на
>этом сайте рылся....и такого невстричал....udp 53 да есть такое а вот
>tcp 53 нет......
tcp 53 это как раз dns и есть#sockstat |grep name
bind named 21511 20 udp4 192.168.100.100:53 *:*
bind named 21511 21 tcp4 192.168.100.100:53 *:*