Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: FeeBSD - раздача интернета.  (Прочитано 35521 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« : 20-05-2011 19:27 » 

Доброго времени суток! У меня тривиальный может быть вопрос.

ОС: FreeBSD 8.2

На ОС работает PPPoE подключение к интернету. Провайдер фильтрует трафик по IP и MAC (ну пароли и логин естественно). На FreeBSD  один физический сетевой интерфейс.

Задача - наладить раздачу интернета на внутреннюю подсеть.

Действия: На сетевой карте ОС (192.168.0.171 255.255.252.0) создан алиас (192.169.1.1\24) адрес сервера провайдера 192.168.0.8 255.255.252.0, в rc.conf добавлены записи:
                                                                      defoultrouter="192.168.0.8"
                                                                      gateway_enable="YES"
Результат: Хосты подсети сервера и ОС из внутренней подсети (для которой алиас) пингуются, хост с ОС установлен на компьютерах домашней подсети (для которой алиас на ОС) как маршрут по умолчанию. ИНТЕРНЕТ не идет. Хосты дома WINDOWS XP.




ВОПРОСЫ:1) Т.К. провайдер фильтрует по IP может дело в том что необходим NAT
                  2) В компьетерах Windows как DNS указывать такой же как и на ОС Free?
                  3) Поделитесь опытом пожалуйста!
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 20-05-2011 20:52 » 

1. Без него никак!
2. Да.
3. После п.1 и 2 пропиши маршрут по умолчанию на XP-хостах на этот самодельный роутер. Больше ничего не треба.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 21-05-2011 06:59 » 

Спасибо, буду natd настраивать.
А почему так необходим нат?
Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-05-2011 09:17 » 

Внешние сети ничего не знают о существовании твоей локальной сети с локальными же адресами.
Хочешь знать больше - читай теорию.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 21-05-2011 16:04 » 

можно и без ната обойтись.
Установить прокси
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #5 : 21-05-2011 18:41 » 

Sla, не всякий трафик проксируется.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 21-05-2011 18:45 » 

McZim, назови траф ДОМАШНЕЙ машины, который не проксируется, и необходимость этого трафа?

Если это не комп сисадмина... Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #7 : 21-05-2011 19:20 » 

Sla, VPN до работы.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 22-05-2011 08:48 » 

Торренты Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 22-05-2011 14:44 » 

Да чувство йумара есть )))
Решил прокси не ставить (пока) Обошелся NAT'ом. СПАСИБО всем!

Добавлено через 11 дней, 18 часов, 26 минут и 20 секунд:
Возникли трудности.
Так я создал раздачу:
     ifconfig alc0 192.168.0.178 255.255.252.0
     ifconfig alc0 alias 192.169.1.1/24
     route add default 192.168.0.8
     ppp -ddial -nat xxxxxxx
При правиле в IPFW все работает
      /sbin/ipfw add allow ip from any to any
Но я хочу закрыть все кроме потока интернета в сеть.
Вот конфиги:
defaultrouter="192.168.0.8"
hostname="workble"

ifconfig_alc0="inet 192.168.0.178  netmask 255.255.252.0"
ifconfig_alc0="ether 00:13:77:34:a9:52"
ifconfig_alc0_alias="192.169.1.1/24"

#-----------------IPFW
firewall_enable="YES"
firewall_script="/etc/fw_rules"

#--------NAT&net
gateway_enable="YES"
natd_enable="YES"
natd_interface="192.168.0.178"


00100 allow ip from any to aыny

00200 allow ip from any to any via lo0
00300 allow tcp from me to any
00400 allow tcp from any to me established
00500 allow tcp from any 80 to me

00600 allow ip from me to 192.169.1.0/24
00700 allow ip from 192.169.1.0/24 to any

00800 allow ip from any to any via tun*
00900 allow ip from 192.168.0.178 to 10.128.1.73
01000 allow ip from 10.128.1.73 to 192.168.0.178
01100 deny ip from any to any


alc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500   
   options=c3198<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MCAST,WOL_MAGIC,VLAN_HWTSO,LINKSTATE>
   ether 00:13:77:34:a9:52
   inet 192.168.0.178 netmask 0xffffff00 broadcast 255.255.252.0   
   inet 192.169.1.1 netmask 0xffffff00 broadcast 192.169.1.255   
   media: Ethernet autoselect (100baseTX <full-duplex>)   
   status: active
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
   options=3<RXCSUM,TXCSUM>
   inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
   options=80000<LINKSTATE>
   inet 10.128.1.73 --> 10.128.0.0 netmask 0xffffffff    
   Opened by PID 1141

Вот главны вопрос как мне все в IPFW перекрыть все , оставив возможность пользователей ходить в инет, был бы рад если бы
мне кто-нибудь объяснил как вообще трафик идет, и почему если в IPFW (ipfw  add divert from any to any via alc0 )  пишу это абсолютно бесполезно.
« Последнее редактирование: 03-06-2011 09:10 от Денисrf » Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 03-06-2011 10:09 » 

ipfw  add divert from any to any via alc0

Это правило разве работает?
#man ipfw

divert port
             Divert packets that match this rule to the divert(4) socket bound
             to port port.  The search terminates.


С какими опциями скомилировано ядро
options    IPFIREWALL
;для nat
options    IPDIVERT
; обратить внимание!!!
options    IPFIREWALL_VERBOSE
options    IPFIREWALL_DEFAULT_TO_ACCEPT ; тогда не нужно последнего правила deny -будет подставлено автоматически

И читай документацию...



В студию

#ifconfig

#ipfw show


« Последнее редактирование: 03-06-2011 10:16 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 03-06-2011 17:14 » 

Когда я дома настраивал FreeBSD в качестве шлюза, сначала я некоторое время промучался с ipfw, потом забил и настроил правила для ipf. Логика ipf мне почему-то показалась ближе.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Денисrf
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 06-06-2011 13:56 » 

Ядро скомпилино по честноку, однако

 
Цитата
; обратить внимание!!!
options    IPFIREWALL_VERBOSE
options    IPFIREWALL_DEFAULT_TO_ACCEPT ; тогда не нужно последнего правила deny -будет подставлено автоматически
options    IPFIREWALL_DEFAULT_TO_ACCEPT - это по поему добавит не dent, а allow.

А вот про ipfw show  я что-то забыл, спасибо что напомнили.

Добавлено через 21 день, 18 часов, 21 минуту и 52 секунды:
Да PF оказался более прозрачным для понимания.
« Последнее редактирование: 28-06-2011 08:17 от Денисrf » Записан

Your password is personal - do not share it with anyone and make sure it is not easy to crack.
Maksir
Постоялец

ru
Offline Offline

« Ответ #13 : 07-10-2011 20:44 » new

Мне вот делать нечего было, решил написать тут вам про настройки NAT - Network Address Translating (ну как-то так) + прозрачный прокси Squid
FreeBSD 8.2

Сначала я настраивал через маршрутизацию IPNAT, но потом он у меня каким-то странным образом слетел - то есть, перестал собираться с ядром. Поставил через NATD (на работе поставил). Но у NATD есть один недостаток, - он пробрасывает маршрут только в одном направлении (то есть слушает только один интерфейс)

Но я напишу про IPNAT (дома сейчас под рукой)

ядро собрал с опциями;

options IPFIREWALL                                               # сам IPFW
options IPFIREWALL_FORFARD                               # форвартинг (если потребуется)
options IPFIREWALL_VERBOSE                               # лог
options IPFIREWALL_VERBOSE_LIMIT=100            # лимит
options IPDIVERT                                                    # NAT трансляция
options DUMMYNET                                                 # ограничения по скорости (а ну малоли))
options IPFIREWALL_DEFAULT_TO_ACCEPT           # последнее правило IPFW будет разрешающим (не обязательно)

(попутно можно в этом конфиге найти INET6 и вырубить/закоментировать, если требуется =) что бы обезопасить себя от ненужного гимороя с IPv6)

rc.conf

# IPFW
firewall_enable="YES"
firewall_type="/etc/firewall.conf"
# IPNAT
ipnat_enable="YES"
ipnat_program="/sbin/ipnat"
ipnat_flags=" -CF"
ipnat_rules="/etc/ipnat.rules"

Это перенаправление на проксю, простое правило, оно одно)
firewall.conf
-f flush
add fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via rl1

( rl1 = 10.1.103.78 - внешняя сетка, на которую осуществляется перенаправление)
ipnat.rules
map rl1 192.168.48.0/24 -> 10.1.103.78/32

=================

 ( rl0 = 192.168.48.0/24 - это моя сеть )

Вот и всё. Остаётся только поднять и настроить squid на порту 3128

Это самые обыкновенные настройки, думаю, что помогут любому при желании.

Единственное, что мне кажется странным, это в правиле файрвола указано;
  add fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via rl1
Без разницы - можно написать и так;
  add fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via rl0
Всё равно будет работать как задуманно изначально - перенаправление работает как надо. =) (без интерфейса не работает, хотя в нём никакой логики. но он обязателно должен быть указан)
Или поправьте меня, если здесь есть какой-то нюанс =)
« Последнее редактирование: 07-10-2011 21:15 от Maksir » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 08-10-2011 05:26 » 

Maksir, а нет желания расписать подробнее и сделать это статьей?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Maksir
Постоялец

ru
Offline Offline

« Ответ #15 : 08-10-2011 07:51 » 

напишу, пусть будет. я всегда так делаю, что бы потом память освежить, в случае чего)
я думал и эта статья сойдёт). Или конкретики какой-то не хватает? Просто, я хотел избавиться от ненужного слоя бессмысленного текста. Главное же - конфиги, опции. Все конфиги в папке /etc. Ядро пересобирается тоже легко. Или может сам squid интересует? Ну у меня у самого вопросов не меньше. Правда, другое дело, как я поступил. У меня работает прозрачный прокси с фильтрацией, дополнительно прикручен SquidGuard (у него более расширеные возможности работы с фильтацией), и самописная web-морда для управления этими фильтрами, перезагрузкой/выкл., DHCP Правда, эту морду я делал специально для школы, для обычных нужд. Или может это лишнее?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 08-10-2011 08:35 » 

Нет, данный формат изложения на статью не тянет. Статья - это описание цели, способов достижения ее, с изложением и объяснением выбора данного решения. Т.е. как минимум надо очистить текст от разговорных предложений, по которым читающий сразу скажет, что это не качественная статья, а изложение чьих то действий, которые еще не факт что можно повторить, описать подробнее производимые действия и обосновать их. С оформлением помогу.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 08-10-2011 08:46 » 

Тут как бы кое-что непонятно для начинающего, говорим про IPNAT, а компилим ядро с параметрами файрвола IPFW.
А если у файрвола не одно правило?
В каком месте должно быть правило для NATа

IPNAT ставится из портов? Как?

Вот тогда будет похоже... и кому-нибудь пригодится.
И... было бы неплохо, рассказать чем IPNAT лучше/хуже NATD

Добавлено через 4 минуты и 33 секунды:
а правила для прокси...

  add fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via rl1
Без разницы - можно написать и так;
  add fwd 127.0.0.1,3128 tcp from any to any dst-port 80 in via rl0

А у тебя прокси наверное слушает оба интерфейса
« Последнее редактирование: 08-10-2011 08:51 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Maksir
Постоялец

ru
Offline Offline

« Ответ #18 : 08-10-2011 10:53 » 

RXL, понятно. сделаем.
Sla, тут, как бы, разница есть. IPFW, это ещё не Network Address Транслятор, у него совсем другие задачи. Он может только контролировать направления пакетов, то есть - предоставлять, перенаправлять, либо ограничивать доступ - но не транслировать. Unix работает с сокетами на уравне ядра. Этим и обусловленна его безотказная работа при очень мощных нагрузках. В ядро FreeBSD встроенно в поддержку аж 3 файровла. (IPF, IPFW, PF)
http://www.freebsd.org/doc/ru/books/handbook/firewalls-pf.html PF
http://www.freebsd.org/doc/ru/books/handbook/firewalls-ipf.html IPF
http://www.freebsd.org/doc/ru/books/handbook/firewalls-ipfw.html IPFW

2. IPNAT не ставится из портов, он как бы уже стоит в системе;

# whereis ipnat
ipnat: /sbin/ipnat /usr/share/man/en.UTF-8/man8/ipnat.8.gz /usr/src/sbin/ipf/ipnat
(в этом случае был бы показан порт, откуда был установлен ipnat, но его нет. Это стандартная сборка FreeBSD)

Да я и сам до некоторого времени путался, что это за "там-дем" такой. =)
NAT - можно использовать любой, на выбор. У меня какая-то хрень вылетела при пересборке ядра, но это скорее, мой косяк. (мои грабельки)


3. Для прокси вообще пофигу, чо-ето за интерфейс на его порту... =) И направлять поток я могу как угодно на этот порт, и через разные интерфейсы. К тому же Localhost проходит через все мои интерфейсы.

# netstat -r
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use     Netif Expire
default                10.200.2.65      UGS         2   119602       rl1
10.200.2.64/26     link#2             U             0        0            rl1
10.200.2.68          link#2             UHS         0        0            lo0
localhost               link#5             UH            0     8935        lo0
192.168.48.0        link#1             U              3   109156      rl0
192.168.48.1        link#1             UHS          0       21          lo0

----- короче, здесь показан интерфейс lo0 и он присутствует на всех направлениях (интерфейсах)

Вот так это и работает. =)

« Последнее редактирование: 08-10-2011 10:55 от Maksir » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines