Страница 1 из 1

ipfw и fwd

Добавлено: 2008-02-11 17:14:14
diversunt
Добрый день, вечер, ночь!
Лазил по опеннету наткнулся на статью как сделать прозрачный прокси.
squid у меня squid-2.5.14_2 поэтому сделал так:
Затем правка собственно squid.conf :

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

 http_port 192.168.0.1:8080
   httpd_accel_host virtual
   httpd_accel_port 80
   httpd_accel_with_proxy on
   httpd_accel_uses_host_header on
ибо наскока мне известно с версии 2.6 уже можно делать http_port 192.168.0.1:8080 transparent.
Так вот сделал так соответственно скомпилил ядро

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

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
options IPFIREWALL_FORWARD
после чего прописал правило
ipfw add fwd 192.168.0.1,8080 tcp from any to any 80
по этому правилу пакеты вроде заворачиваются но не все поэтому в firefox тоже не чего не кажет.
решил проверить проходит forward вообще или нет
прописал правило ipfw add fwd 192.168.0.5,80 tcp from any to 192.168.0.1 8088
в напрямую до 192.168.0.5 ходит, а через роутер по правилу не загибает.
Момогите пожалуйста гляньте мож че я фаере не то намудрил, что не работает...

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

00010    104      9690 allow ip from any to any via lo0
00020  38816   7173749 divert 8668 ip from any to any via vr0
00030   5202    524495 allow tcp from any to 192.168.0.5 dst-port 9999 in recv vr0
00030   5202    524495 allow tcp from any to 192.168.0.5 dst-port 9999 out via em0
00031   6287    975603 allow tcp from any to 192.168.0.6 dst-port 7777 in recv vr0
00031   6287    975603 allow tcp from any to 192.168.0.6 dst-port 7777 out via em0
00032      0         0 allow tcp from any to 192.168.0.6 dst-port 7779 in recv vr0
00032      0         0 allow tcp from any to 192.168.0.6 dst-port 7779 out via em0
00040    810     33041 allow tcp from any to 192.168.0.5 dst-port 9990 in recv vr0
00040    810     33041 allow tcp from any to 192.168.0.5 dst-port 9990 out via em0
00041      0         0 allow tcp from any to 192.168.0.6 dst-port 7770 in recv vr0
00041      0         0 allow tcp from any to 192.168.0.6 dst-port 7770 out via em0
00048      0         0 allow tcp from any to 192.168.0.3 dst-port 8880 in recv vr0
00048      0         0 allow tcp from any to 192.168.0.3 dst-port 8880 out via em0
00060      0         0 allow tcp from any to 192.168.0.5 dst-port 80 in recv vr0
00060      0         0 allow tcp from any to 192.168.0.5 dst-port 80 out via em0
00070      0         0 deny ip from any to 127.0.0.0/8
00070      0         0 deny ip from 127.0.0.0/8 to any
00075      0         0 deny ip from 192.168.0.0/24 to any via vr0
00075      0         0 deny ip from xxx.xxx.xxx.xxx-2/30 to any via em0
00080     11       720 allow icmp from any to any in via vr0 icmptypes 0,3,8,11
00080     36      2932 allow icmp from any to any out via vr0
00080     16       944 allow icmp from any to any via em0
00090      0         0 deny ip from any to 0.0.0.0/8 via vr0
00090      0         0 deny ip from any to 169.254.0.0/16 via vr0
00090      0         0 deny ip from any to 224.0.0.0/4 via vr0
00090      0         0 deny ip from any to 240.0.0.0/4 via vr0
00090      0         0 deny ip from 0.0.0.0/8 to any via vr0
00090      0         0 deny ip from 169.254.0.0/16 to any via vr0
00090      0         0 deny ip from 224.0.0.0/4 to any via vr0
00090      0         0 deny ip from 240.0.0.0/4 to any via vr0
00100   4906    998269 allow tcp from 192.168.0.0/24 to 192.168.0.1 dst-port 8080 via em0
00105   7601    551716 allow tcp from any to any dst-port 41275 via em0
00110   1884     98992 allow ip from xxx.xxx.xxx.xxx to any out via vr0 setup
00111 150961 100172326 allow tcp from any to any established
00112      0         0 allow tcp from any to any frag
00120    121     32095 allow udp from dns.dns.dns.dns 53 to xxx.xxx.xxx.xxx in via vr0
00120    122      7976 allow udp from xxx.xxx.xxx.xxx to dns.dns.dns.dns dst-port 53 keep-state
00130     64     10327 deny udp from any to any dst-port 137,138 via vr0
00130     16       640 deny tcp from any to any dst-port 135,139 via vr0
00140      0         0 allow udp from any to 192.168.0.1 dst-port 67 via em0 keep-state
00150      0         0 allow tcp from any to xxx.xxx.xxx.xxx dst-port 41275,25,110,80 via vr0 setup
00160      0         0 reset tcp from any to xxx.xxx.xxx.xxx dst-port 113 via vr0
00170      7       336 allow tcp from 192.168.0.0/24 to 192.168.0.1 dst-port 445 via em0 setup
00170      0         0 allow tcp from 192.168.0.7 to 192.168.0.1 dst-port 139 via em0
00180      0         0 allow tcp from 192.168.0.1 to 192.168.0.5 dst-port 3306 via em0
00190      0         0 allow tcp from any to zzz.zzz.zzz.zzz dst-port 7044 via em0
00390      6       288 fwd 192.168.0.5,80 tcp from any to 192.168.0.1 dst-port 8088
00790      6       288 fwd 192.168.0.1,8080 tcp from any to any dst-port 80
00890   3071    147445 deny log logamount 1000 ip from any to any
65535    752     37208 deny ip from any to any

Тока сильно не ругайте! итак голова пухнет :?:

Re: ipfw и fwd

Добавлено: 2008-02-11 22:53:28
dikens3
Голова должна думать, а это есть хорошо.

Существует действие лог в ipfw, ознакомься и проставь где пожелаешь и смотри в /var/log/security. (особенно где fwd)

Re: ipfw и fwd

Добавлено: 2008-02-12 0:09:53
dh05
fwd 192.168.0.5,80 tcp from any to 192.168.0.1 dst-port 8088
fwd 192.168.0.1,8080 tcp from any to any dst-port 80
Должны быть до диверта.
На этом сайте посмотри Заметки об IPFW

Re: ipfw и fwd

Добавлено: 2008-02-12 1:24:04
Alex Keda
и кнопачку!
кнопачку

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

 юзай! =)

Re: ipfw и fwd

Добавлено: 2008-02-13 20:59:03
diversunt
За советы спасибо почитаю и зафтра потренируюсь...
P.S. 2 -> lissyara ты это про какие кнопычки говарил? Не было у меня еще уроков сленга ;)

Re: ipfw и fwd

Добавлено: 2008-02-13 21:49:52
Morty
не хочешь OOPS попробовать ?
я вот какараз сегодня попытался описать как сделать прозрачный прокси
http://forum.lissyara.su/viewtopic.php?f=14&t=7124
если нужен простой прозрачный прокси + какието фичи ,
OOPS очень даже ничего

Re: ipfw и fwd

Добавлено: 2008-02-15 12:21:49
diversunt
oops конечно попробую, но пака что меня интересует функция fwd.
Чет она всеравно не пашет :?
сделал так (на тестовой машине, ядро скопиленно точно так же как и на рабочей)

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

00101      24   1152         fwd 192.168.0.5,80 log logamount 1000 tcp from any to 192.168.0.7 dst-port 80
00500   3783 625490       divert 8668 ip from any to any via rl0
00600   4503 683690       allow ip from any to any
65535      0      0             deny ip from any to any
все лишнее убрал дабы не мешало
при попытке обратиться к 192.168.0.7:80 в лог пишется следущее:

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

Feb 15 16:13:26 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:3974 192.168.0.7:80 in via rl0
Feb 15 16:13:26 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:3974 192.168.0.7:80 out via lo0
Feb 15 16:13:29 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:3974 192.168.0.7:80 in via rl0
Feb 15 16:13:29 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:3974 192.168.0.7:80 out via lo0
получается что он получает пакет на внешнем интерфейсе и запихивает их во внутреннюю петлю :?:
дык а если надо сделать так чтоб так же с rl0 выходили али вообще в другу подсеть на соответственно перекидывать данные на другой интерфейс???

Re: ipfw и fwd

Добавлено: 2008-02-15 12:33:52
diversunt
еще сейчас добавил правило

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

ipfw add 50 allow ip from any to any via lo0
получилось это

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

00050   43    2064 allow ip from any to any via lo0
00101   67    3216 fwd 192.168.0.5,80 log logamount 1000 tcp from any to 192.168.0.7 dst-port 80
00500 9253 1430646 divert 8668 ip from any to any via rl0
00600 9973 1488846 allow ip from any to any
65535    0       0 deny ip from any to any
теперь лог говорит

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

Feb 15 16:35:18 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1511 192.168.0.7:80 in via rl0
Feb 15 16:35:20 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1519 192.168.0.7:80 in via rl0
Feb 15 16:35:23 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1519 192.168.0.7:80 in via rl0
Feb 15 16:35:24 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1511 192.168.0.7:80 in via rl0
Feb 15 16:35:29 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1519 192.168.0.7:80 in via rl0
Feb 15 16:35:46 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1553 192.168.0.7:80 in via rl0
Feb 15 16:35:55 router2 last message repeated 2 times
Feb 15 16:36:07 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1578 192.168.0.7:80 in via rl0
Feb 15 16:36:16 router2 last message repeated 2 times
Feb 15 16:36:33 router2 kernel: ipfw: 101 Forward to 192.168.0.5:80 TCP 192.168.0.2:1612 192.168.0.7:80 in via rl0
Feb 15 16:36:42 router2 last message repeated 2 times
дык самое главное то не работает это ни фига...

Re: ipfw и fwd

Добавлено: 2008-02-16 20:04:23
diversunt
Ну что не кто подскажет, неделю уж бьюсь... маны зачитал до дыр :twisted: (

Re: ipfw и fwd

Добавлено: 2008-02-16 20:24:20
dikens3

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

allow ip from any to any via lo0
divert 8668 ip from any to any via rl0
fwd 192.168.0.1,8080 tcp from МОЯ_СЕТЬ to any dst-port 80 in via em0
allow ip from any to any