The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Помогите ipfw или NAT, !*! MoRo, 20-Дек-05, 22:16  [смотреть все]
Ситуация такая: стоит сервер на FreeBSD 5.21.
На нйм стоит: Squid, SquidGuard, Sendmail, NAT включен через rc.conf .
Так вот нельзя получить почту с внешних серваков, пингануть, ICQ и тд.
Получается так, можно ходить по страницам если прописан прокси у клиенте.
ФТП и аську ходит тоже через прокси.
Так вот вопрос - "Как можно сделать чтобы можно было ходить и через прокси и без него?".
Ядро перекомпилировал, опции по ipfw добавил все. Ну там диверт, вербоз и тд. Прилагаю файл rc.conf и правила rc.firewall.

gateway_enable="YES"
defaultrouter="195.184.221.101"
hostname="mail.mareks.com.ua"
ifconfig_ed0="inet 192.168.0.200  netmask 255.255.255.0"
ifconfig_ed1="inet 195.184.221.102  netmask 255.255.255.252"
tcp_extensions="NO"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
inetd_enable="YES"
linux_enable="YES"
sshd_enable="YES"
network_interfaces="auto"
syslogd_enable="YES"
firewall_enable="YES"
firewall_script="/usr/local/billing/rc.firewall"
firewall_quiet="YES"
natd_enable="YES"
natd_intrefase="ed1"
natd_flags="-m"
sendmail_enable="YES"
sendmail_flags="-bd -q30m"

rc.firewall
#!/bin/sh
ipfw='/sbin/ipfw -q'
ournet='192.168.0.1/24'
uprefix='192.168.0'
ifout='ed1'
ifuser='ed0'
${ipfw} flush
${ipfw} add 100 check-state
${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
${ipfw} add 300 allow ip from any to any via lo
${ipfw} add 310 allow tcp from me to any keep-state via ${ifout}
${ipfw} add 320 allow icmp from any to any
${ipfw} add 330 allow udp from me to any domain keep-state
${ipfw} add 340 allow udp from any to me domain
${ipfw} add 350 allow ip from me to any
${ipfw} add 400 allow tcp from 192.168.0.0/24 to me http,https,ssh,pop3
${ipfw} add 410 allow tcp from not ${ournet} to me smtp
${ipfw} add 500 fwd 127.0.0.1,3128 tcp from ${ournet} to any http out via ${ifout}
${ipfw} add 510 divert natd all from any to any via ed1
${ipfw} add 600 pass tcp from any to any pop3, aol
${ipfw} add 610 pass tcp from any pop3, aol to any
${ipfw} add 650 pass tcp from any 21 to any
${ipfw} add 651 pass tcp from any to any 21
${ipfw} add 652 pass tcp from any 20 to any
${ipfw} add 653 pass tcp from any to any 20
${ipfw} add 1002 allow ip from ${uprefix}.100 to any
${ipfw} add 1002 allow ip from any to ${uprefix}.100
${ipfw} add 65535 deny ip from any to any

Заранее всем спасибо!

  • Помогите ipfw или NAT, !*! Garet, 02:15 , 21-Дек-05 (1)
    >natd_enable="YES"
    >natd_intrefase="ed1"
    >natd_flags="-m"
    Хочу сказать что в рс.конф ну жно только включить саму потдержку нат еще желательно проверить включенна ли потдержка нат в самом ядре
    >rc.firewall
    >#!/bin/sh
    >ipfw='/sbin/ipfw -q'
    >ournet='192.168.0.1/24'
    >uprefix='192.168.0'
    >ifout='ed1'
    >ifuser='ed0'
    >${ipfw} flush
    >${ipfw} add 100 check-state
    >${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
    >
    >${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
    >
    >${ipfw} add 300 allow ip from any to any via lo
    >${ipfw} add 310 allow tcp from me to any keep-state via ${ifout}
    >
    >${ipfw} add 320 allow icmp from any to any
    >${ipfw} add 330 allow udp from me to any domain keep-state
    >${ipfw} add 340 allow udp from any to me domain
    >${ipfw} add 350 allow ip from me to any
    >${ipfw} add 400 allow tcp from 192.168.0.0/24 to me http,https,ssh,pop3
    >${ipfw} add 410 allow tcp from not ${ournet} to me smtp
    >${ipfw} add 500 fwd 127.0.0.1,3128 tcp from ${ournet} to any http out
    >via ${ifout}
    >${ipfw} add 510 divert natd all from any to any via ed1
    >
    >${ipfw} add 600 pass tcp from any to any pop3, aol
    >${ipfw} add 610 pass tcp from any pop3, aol to any
    >${ipfw} add 650 pass tcp from any 21 to any
    >${ipfw} add 651 pass tcp from any to any 21
    >${ipfw} add 652 pass tcp from any 20 to any
    >${ipfw} add 653 pass tcp from any to any 20
    >${ipfw} add 1002 allow ip from ${uprefix}.100 to any
    >${ipfw} add 1002 allow ip from any to ${uprefix}.100
    >${ipfw} add 65535 deny ip from any to any
    Вся проблемма что надо вписывать правила в фаервол. строка 510 у тебя обсолютно верна но тебе надо добавить еще одно правило для твоего случая.
    ipfw add allow ip from any to any
    видешли в чом дело если ты добавиш это правило то вся твоя защита, как ты понимаеш и сам, просто накроеться медным тазом. Поэтому советую пересмотреть и открыть не всем как у тебя указанно в строке 510 а только определенной подсети например
    ${ipfw} add 510 divert natd all from ${ournet} to any via ed1
    ipfw add allow ip from ${ournet} to any
    ipfw add allow ip from any to ${ournet}
    вот это будет работать и все у тебя будет хорошо.
    и еще для более грамотной экономии трафика я бы посоветовал оставить сквид в конце концов там можно и позапрещать те сайты на которые ты не хочеш что бы люди ходили. а нат оставить для приват ip адресов и конечно для себя любимого. И вместо всяких keep-state я бы просто добавил строку:
    ipfw add allow tcp from any to me established
    если тебе это подходит конечно.Строка должна эта стоять после ната если хочеш что бы он работал.
    С наилучшеми пожеланиями
    • Помогите ipfw или NAT, !*! antoshkin, 01:23 , 22-Дек-05 (3)
      в
      >строке 510 а только определенной подсети например
      >${ipfw} add 510 divert natd all from ${ournet} to any via ed1
      >

      С такой ботвой работать не будет.
      Надо еще добавлять обратное правило:
      ${ipfw} add 511 divert natd all from any to ${ournet} via ed1
      Ну а по-хорошему, можно еще направления указать:

      ${ipfw} add 510 divert natd all from ${ournet} to any xmit ed1
      ${ipfw} add 511 divert natd all from any to ${ournet} recv ed1

      • Помогите ipfw или NAT, !*! Garet, 03:39 , 22-Дек-05 (4)

        >>строке 510 а только определенной подсети например
        >>${ipfw} add 510 divert natd all from ${ournet} to any via ed1
        >>
        >
        >С такой ботвой работать не будет.
        >Надо еще добавлять обратное правило:
        >${ipfw} add 511 divert natd all from any to ${ournet} via ed1
        >
        >Ну а по-хорошему, можно еще направления указать:
        >
        >${ipfw} add 510 divert natd all from ${ournet} to any xmit ed1
        >
        >${ipfw} add 511 divert natd all from any to ${ournet} recv ed1
        >
        посмотри внимательно после стоят обратные правила, а вообще нат беспантова реализован в ipfw, в ipfilter это сделано гораздо лучше.
  • Помогите ipfw или NAT, !*! DEC, 10:59 , 21-Дек-05 (2)
    natd_intrefase="ed1"
              
    думаю надо natd_interface
  • Помогите ipfw или NAT, !*! MoRo, 22:07 , 22-Дек-05 (5)
    Спасибо всем!
    С натом разобрался.

    Но теперь такая проблема что весь не локальный трафик всё равно хочет ходить только через squid.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру