Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   помогите со шлюзом. (http://forum.oszone.net/showthread.php?t=80930)

Tosha_l 14-03-2007 15:18 561518

помогите со шлюзом.
 
Вообщем настроит интернет у себя на freeBSD. Все прекрасно работает. ВОзникла необходимость в том чтобы раздовать его локалке. Прописал локалку, видеть сеть, инет работает но не раздает...

может быть я не превильно настроил pf.conf???
Я хочу открыть хотя бы полный доступ на инет. И потом ограничивать его через squid. Но до него пока долеко, потому что не получается без него.

в rc.conf вроде тоже все прописал. Поднял нат.
как же мне его раздать? В локалке все машины на Win XP. днс, шлюз все прописываю, но все равно не выходит. помогите мне пожайлуста.

Wasilij 14-03-2007 16:58 561589

у меня например в rc.conf написано следующее:

firewall_enable="YES" # Set to YES to enable firewall functionality
firewall_type="OPEN" # Firewall type (see /etc/rc.firewall)

То есть firewall надо сделать открытого типа

правда потом надо настроить правила
правда я в этом не силен, сервер мне достался в наследство:)

Orfan 15-03-2007 10:27 561934

Tosha_l
С какими опциями собрал ядро?
Что с Firewall' ом?
Давай конкретней!

Tosha_l 15-03-2007 11:22 561965

options pf
options pflog вот это я дабавил в ядро.

Как мне открыть теперь инет на сеть?

Orfan 15-03-2007 11:54 561977

Tosha_l
Ядро должно быть собрано со следующими опциями:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT= N
options IPDIVERT

У тебя эти опции есть?



Tosha_l 15-03-2007 14:02 562038

нет. Этих опций у меня нету. Я добал две опции которые написал, и как я понимаю с помощью них можно использовать pf.conf для настройки, а не rc.firewall
никак не могу с этим разобраться

Orfan 15-03-2007 15:55 562098

Tosha_l
С pf не сталкивался. А почему через firewall не хочешь?
Пингуется ли шлюз с локальных компов?
Есть ли в rc.conf строка natd_interface? И какая сетевуха там указана?

Tosha_l 16-03-2007 08:13 562382

Да все пингует. Да все прописано

gf100 16-03-2007 16:49 562650

Tosha_l
Сколько сетевых интерфейсов в системе?
В rc.conf есть gateway_enable="YES"?
Цитата:

Пингуется ли шлюз с локальных компов?
Пингуются оба интерфейса?
Можно открыть какой-нибудь сайт по адресу? (не по имени)

Посмотри тему http://forum.oszone.net/thread-71884.html

Tosha_l 16-03-2007 16:57 562654

У меня работает так:

<rc.conf>

gateway_enable="YES"
firewall_enable="YES"
firewall_type="open" # для начала, потом можно написать и вписать сюда свою конфигурацию - кого куда пускать и зачем
ifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_xl0="inet 10.1.0.1 netmask 255.255.0.0"

<в конфиге ядра>

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDED
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT # для NAT

gf100 это ваша цитата, скажите этого достаточно для раздачи, а что вы пишете в rc.firewall или pf.conf????

gf100 16-03-2007 18:14 562697

Tosha_l
Это для работы с rc.firewall. При варианте "open" все должно запуститься без дополнительных ковыряний rc.firewall.

Tosha_l 19-03-2007 08:19 563573

А можно ведь просто скажем все открыть твоим способом, а потом закрывать уже проксёй?

Добавил я в ядро новые модули, и вот что он теперь мне пишет при загрузке:
starting divert daemons: natdnatd: unknown interface name xl0

gf100 19-03-2007 12:43 563683

Tosha_l
Цитата:

starting divert daemons: natdnatd: unknown interface name xl0
В rc.conf должны присутствовать такие строки:
natd_enable="YES"
natd_interface="rl1" # это куда будут заворачиваться все пакеты - внешний интерфейс (надо писать реальный от сетевой карты)
natd_flags="-u -s -m" # ключи - смотри по ситуации

т.е. xl0 - в системе такого нет.
Цитата:

все открыть твоим способом, а потом закрывать уже проксёй?
Не-е-е. Так нельзя. Прокся рулит web, иногда ftp-трафиком, а ipfw может закрывать/ открывать/ пробрасывать и другие порты.

Но, по-хорошему, NAT крайне желательно поднимать на железе - модеме, маршрутизаторе и т.п.

Tosha_l 19-03-2007 14:11 563721

а вот флаги на нат обязательно вешать?
Можно ли нат настраивать на ADSL модеме? он сейчас настроен под роутер, может быть там уже нат и стоит тогда, просто настраивал нея, как мне быть в такой ситуации?

Да так и есть, я зашел через браузер по ip адрессу в модем, и увидел что там настроен нат. Как мне завернуть интернет в таком случае?

gf100 20-03-2007 10:27 564124

Tosha_l
Цитата:

Можно ли нат настраивать на ADSL модеме?
Разумеется. Как правило, все современные ADSL-модемы поддерживают эту функцию. Конкретнее: озвучь марку модема и ifconfig -a.
Цитата:

Как мне завернуть интернет в таком случае?
Прописываешь
defaultrouter="ххх.ххх.ххх.ххх" - адрес модема, смотрящий во внутреннюю сетку
gateway_enable="YES"
#natd_enable="YES" - закомментарить! - двойной NAT это некоторый перебор, хотя работает.

Если планируешь раздавать интернет со своей машины, а тем более ставить прокси, озадачься подъемом DNS-сервера.

Tosha_l 21-03-2007 14:51 564772

ничего у меня не получется, нат настроен на модеме. вот выкладываю свои конфиги:
rc.conf:
# -- sysinstall generated deltas -- # Fri Feb 9 14:44:33 2007
# Created: Fri Feb 9 14:44:33 2007
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="10.0.0.1"
#font8x14="cp866-8x14"
font8x16="cp866-8x16"
#font8x8="cp866-8x8"
hostname="BSD.moris.ru"
ifconfig_xl0="inet 10.0.0.2 netmask 255.255.255.0"
ifconfig_sis0="inet 192.168.0.1 netmask 255.255.255.0"
GATEWAY_enable="YES"
#ipv6_enable="YES"
keymap="ru.koi8-r"
mousechar_start="3"
moused_enable="YES"
scrnmap="koi8-r2cp866"
usbd_enable="YES"
nmbd_enable="YES"
smbd_enable="YES"

pf_enable="YES"
pflog_enable="YES"
#firewall_enable="YES"
#firewall_type="OPEN"
#firewall_script="/etc/firewall.sh"
#natd_enable="YES"
#natd_interface="xl0"
#natd_flags=""
sendmail_enable="NONE"
#trafd_enable="YES"
#trafd_ifaces="xl0 sis0"
#trafd_flags=""
#trafd_log="/usr/local/var/trafd.log"
inetd_enable="YES"
#squid_enable="YES"

pf. conf:
# $FreeBSD: src/etc/pf.conf,v 1.2.2.1 2006/04/04 20:31:20 mlaier Exp $
# $OpenBSD: pf.conf,v 1.21 2003/09/02 20:38:44 david Exp $
#
# See pf.conf(5) and /usr/share/examples/pf for syntax and examples.
# Required order: options, normalization, queueing, translation, filtering.
# Macros and tables may be defined and used anywhere.
# Note that translation rules are first match while filter rules are last match.

# Macros: define common values, so they can be referenced and changed easily.
ext_if="xl0" # replace with actual external interface name i.e., dc0
int_if="sis0" # replace with actual internal interface name i.e., dc1
int_net="192.168.0.0/24"
ext_addr="10.0.0.2"

# Tables: similar to macros, but more flexible for many addresses.
#table <foo> { 10.0.0.0/8, !10.1.0.0/16, 192.168.0.0/24, 192.168.1.18 }

# Options: tune the behavior of pf, default values are given.
#set timeout { interval 10, frag 30 }
#set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
#set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
#set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
#set timeout { icmp.first 20, icmp.error 10 }
#set timeout { other.first 60, other.single 30, other.multiple 60 }
#set timeout { adaptive.start 0, adaptive.end 0 }
#set limit { states 10000, frags 5000 }
#set loginterface none
#set optimization normal
#set block-policy drop
#set require-order yes
#set fingerprints "/etc/pf.os"

# Normalization: reassemble fragments and resolve or reduce traffic ambiguities.
scrub in all

# Queueing: rule-based bandwidth control.
#altq on $ext_if bandwidth 2Mb cbq queue { dflt, developers, marketing }
#queue dflt bandwidth 5% cbq(default)
#queue developers bandwidth 80%
#queue marketing bandwidth 15%

# Translation: specify how addresses are to be mapped or redirected.
#nat: packets going out through $ext_if with source address $internal_net will
# get translated as coming from the address of $ext_if, a state is created for
# such packets, and incoming packets will be redirected to the internal address.
#nat on $ext_if from $int_net to any -> ($ext_if)

# rdr: packets coming in on $ext_if with destination $external_addr:1234 will
# be redirected to 10.1.1.1:5678. A state is created for such packets, and
# outgoing packets will be translated as coming from the external address.
#rdr on $ext_if proto tcp from any to $external_addr/32 port 1234 -> 10.1.1.1 port 5678

# rdr outgoing FTP requests to the ftp-proxy
#rdr on $int_if proto tcp from any to any port ftp -> 127.0.0.1 port 8021

# spamd-setup puts addresses to be redirected into table <spamd>.
#table <spamd> persist
#no rdr on { lo0, lo1 } from any to any
#rdr inet proto tcp from <spamd> to any port smtp -> 127.0.0.1 port 8025

# Filtering: the implicit first two rules are
pass in all
pass out all

# block all incoming packets but allow ssh, pass all outgoing tcp and udp
# connections and keep state, logging blocked packets.
#block in log all
#pass in on $ext_if proto tcp from any to $ext_if port 22 keep state
#pass out on $ext_if proto { tcp, udp } all keep state

# pass incoming packets destined to the addresses given in table <foo>.
#pass in on $ext_if proto { tcp, udp } from any to <foo> port 80 keep state

# pass incoming ports for ftp-proxy
#pass in on $ext_if inet proto tcp from any to $ext_if port > 49151 keep state

# Alternate rule to pass incoming ports for ftp-proxy
# NOTE: Please see pf.conf(5) BUGS section before using user/group rules.
#pass in on $ext_if inet proto tcp from any to $ext_if user proxy keep state

# assign packets to a queue.
#pass out on $ext_if from 192.168.0.0/24 to any keep state queue developers
#pass out on $ext_if from 192.168.1.0/24 to any keep state queue marketing



Barracuda 29-03-2007 03:00 567733

Я не силён в pf, но для начала рекомендую поковыряться при помощи ipfw. да и вооружившись tcpdump'ом можно многое понять...
Код:

natd -a 10.1.0.1 -p 8667
ipfw add 30000 divert 8667 ip from 192.168.1.0/24 to any out xmit xl0
ipfw add 31000 divert 8667 ip any to 10.1.0.1 in recv xl0

потом пингуем от имени сетевухи, которая смотрит на внутреннюю сеть
Код:

ping -S 192.168.1.0 89.108.80.231
:)
Да, предварительно отрубите pf (pf и ipfw далеко не одно и то же, а с pf нужно разбираться основательно - ipfw в этом отношении проще).
Если при добавлении правил ipfw ругается, что протокол неизвестен, загружаем его через
Код:

kldload /boot/kernel/ipfw.ko
и не забываем добавлять:
Код:

ipfw add 65530 allow ip from any to any
т.к. по дефолту он закрыт.
Ещё не мешало бы проверить
Код:

sysctl net.inet.ip.forwarding
- если она в нуле, то сделать в единицу :)
Ну и дефолт роут тоже надо бы выставить...
Ну а далее методом ping и tcpdump смотрим, куда уходят наши байтики и от чего имени...


Время: 17:24.

Время: 17:24.
© OSzone.net 2001-