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

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

Fet 05-03-2009 14:29 1055681

feebsd вопросы
 
Я новичёк в бсд и у меня есть несколько вопросов:
1) Как увидеть какие порты действуют и открыты?
2) Где брать и как устанавливать обновления?
3) Как настроить IPF что бы безопасно работали: браузер, icq, irc, torrent клиент, skype?

Igor_I 05-03-2009 22:19 1056066

netstat
http://www.freebsd.org/doc/ru_RU.KOI.../portsnap.html
http://www.freebsd.org/doc/ru_RU.KOI...walls-ipf.html

Fet 05-03-2009 23:46 1056114

во 2 вопросе я имел ввиду системные обновленя, а в 3 вопросе я знаю, как настраивать фаервол, но не понимаю суть настройки фаевола (т.е. что блокировать, что пропускать)

Igor_I 06-03-2009 01:01 1056152

http://www.freebsd.org/doc/ru_RU.KOI...ook/cvsup.html
releng указывать обязательно - http://www.freebsd.org/releng/ по аналогии с http://www.freebsd.org/doc/ru_RU.KOI.../cvs-tags.html
То есть на данный момент RELENG_7_1
Цитата:

Цитата Fet
(т.е. что блокировать, что пропускать) »

Фиг его знает :)
браузер - 80 порт, хотя может и 8080, и 443, и 53
в остальных смотри порты по умолчанию.

leonty 06-03-2009 10:10 1056301

Цитата:

Цитата Igor_I
браузер - 80 порт, хотя может и 8080, и 443, и 53 »

53 порт используется для связи с ДНС (udp)
443 порт это секурный хттпс
на 80 порту обычно висит апач, ну или какой либо другой веб сервер.
8080 обычно используется прокси сервером.

Цитата:

Цитата Fet
Как настроить IPF что бы безопасно работали: браузер, icq, irc, torrent клиент, skype? »

делаешь по умолчанию правило " запретить все". Далее разрешаешь только исходящие соединения со своего интерфейсаю. Например для браузера
разрешить исходящие соединения с моего интерфейса любого потра по протоколу tcp на любой ИП адрес порт 80
Примерно так.

Fet 06-03-2009 15:59 1056571

по совету leonty IPF настроил для начала так:
block in log all
block out log all
pass out proto tcp/udp
но браузер не работает...как быть?

Igor_I 06-03-2009 17:03 1056603

block in log all
block out log all

Вот и смотри лог.
Хотя по ipf не советчик.

leonty 06-03-2009 21:29 1056778

так-с, давай разбиремся
block in log all #заблокировал все входящие соединения с протоколированием
block out log all #заблокировал все исходящие соединения с протоколированием
pass out proto tcp/udp #разрешил исходящие соединения по протоколам tcp/udp

На синтаксис сейчас не буду обращать внимания, разберем логику работы.

1. Необходимо уточнить в документации к IPF, где задается правило по умолчанию. Например в PF это самое перове, потом идут исключения, в IPFW вроде как наоборот, правило по умолчнаию задается последним.

2. Третьим правилом ты разрешил все исходящие соединения, так? а ответ как придет?

3. Как уже сказал Igor_I, смотри лог. Еще не забываем про tcpdump/

Igor_I 06-03-2009 23:16 1056883

Цитата:

Цитата leonty
в IPFW вроде как наоборот, правило по умолчнаию задается последним »

Так и есть.
Сначало пропускаешь что-то, потом запрещаешь что-то, а в конце используется правило по умолчанию для того что осталось.

Fet 07-03-2009 01:46 1056987

Цитата:

Цитата leonty
1. Необходимо уточнить в документации к IPF, где задается правило по умолчанию

->
Цитата:

Цитата Handbook
Система динамически загрузит модуль IPF, если в rc.conf указана переменная ipfilter_enable="YES". Модуль создается с включенным протоколированием и правилом по умолчанию block all (пропускать все). Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты.

Тут все не так как на практике. :shot: Например:
Цитата:

Цитата Handbook
block all (пропускать все)

Путем проб и ошибок я понял что нужно правило по умолчанию распологать в начале, а затем идут исключения.
Цитата:

Цитата leonty
2. Третьим правилом ты разрешил все исходящие соединения, так? а ответ как придет?

Ты же сам сказал:
Цитата:

Цитата leonty
Далее разрешаешь только исходящие соединения со своего интерфейсаю

ЗЫ: Когда смотрел netstat у браузера постоянно менялся порт, да еще и не один!
вопрос: как его заставить работать под одним портом?

leonty 07-03-2009 02:18 1057000

Цитата:

Цитата Fet
Ты же сам сказал: »

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

Цитата:

Цитата Fet
Когда смотрел netstat у браузера постоянно менялся порт, да еще и не один! »

Правильно. Так и должно быть. Когда мы открываем браузер и открываем первую страничку, то браузер обращается к OC, чтобы та выделила свободный порт. Порт выбирается произвольно, но, обычно, по порядку. Если никто из сетевых приложений не работает, то система выделит для этого окна порт 1024. Этот номер уникально идентифицирует конкретное приложение и конкретное окно в приложении. Когда открываем другое окно , то приложение снова обращается за портом. Система выделяет первый свободный порт. Можно предположить, что это будет порт 1025. Но, браузер никогда не обратится к вебсерверу на порт, отличный от 80-го. Ибо это чтото вроде стандарта, что все веб серверы во всем мире обрабатывают клиентские запорсы на 80-ом порту.
Этим я хотел сказать, что тебе не надо заставлять браузер работать на каком то определенном порту.

leonty 07-03-2009 02:35 1057005

да, и еще, Вам не показалось слишком странным следующее утверждение?
Цитата:

и правилом по умолчанию block all (пропускать все).
я вот как то засомневался сразу. Посмотрел хэндбук. Действительно, там так написано. Тогда я глянул в англоязычный вариант. И чтоже
Цитата:

The loadable module was created with logging enabled and the default pass all options. You do not need to compile IPF into the FreeBSD kernel just to change the default to block all, you can do that by just coding a block all rule at the end of your rule set.
Разницу видите? (:

Fet 07-03-2009 12:09 1057130

Цитата:

Цитата leonty
если разрешаешь исходящие пакеты, необходимо позаботиться о том, чтобы не блокироваись ответные

как это сделать в IPF?
Цитата:

Цитата leonty
Этим я хотел сказать, что тебе не надо заставлять браузер работать на каком то определенном порту.

как тогда создавать правила, если порты при каждом запуске разные?
Цитата:

Цитата leonty
да, и еще, Вам не показалось слишком странным следующее утверждение?

Именно!
Цитата:

Цитата leonty
я вот как то засомневался сразу. Посмотрел хэндбук. Действительно, там так написано. Тогда я глянул в англоязычный вариант.

Однажды тоже самое проделал. Если сделать так:
block in log all
block out log all
pass out proto tcp/udp
pass in proto tcp/udp
браузер работает.
А если так:
pass out proto tcp/udp
pass in proto tcp/udp
block in log all
block out log all
не работает. Делайте выводы

leonty 07-03-2009 13:27 1057195

Цитата:

Цитата Fet
как это сделать в IPF? »

использовать опцию keep state. Если в правиле присутсвует опция keep state, первый пакет соответствующий правилу создаёт запись в таблице состояний связывающую источник и получателя пакета. Теперь не только пакеты идущие от источника к получателю, но и обратные пакеты будут соответствовать созданной записи в таблице состояний и не будут подвергаться проверке.

Цитата:

Цитата Fet
как тогда создавать правила, если порты при каждом запуске разные? »

не указывать порт источника исходящего соединения, а только порт назначения.
Связывая все воедино, получаем пример для работы браузера
Код:

pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
Декодируя запись выше в человеческий язык, получаем
Разрешить исходящие соединения без дальнейшей проверки по правилам(quick) на интерфейсе dc0 по протоколу tcp от меня на любой сервер на 80 порт и сохранить состояние (keep state)
Ндеюсь гуру поправят если что.
Цитата:

Цитата Fet
Однажды тоже самое проделал. Если сделать так: »

Расскажи словами, как ты понимаешь данный набор правил.

Fet 07-03-2009 19:45 1057484

Цитата:

Цитата leonty
Расскажи словами, как ты понимаешь данный набор правил.

Блокировать все пакеты и заносить в лог кроме tcp/udp пакетов.
На сколько я понял блокирующее правило по умолчанию это:
block in all
block out all

В ru и en версии Hendbook написано: что правило по умолчанию должно распологаться в конце всех правил т.е. так:
pass out proto tcp/udp
pass in proto tcp/udp
block in all
block out all

Как я уже сказал в таком случае браузер не работает, поэтому можно прийти к выводу что правило по умолчанию должно находиться выше всех правил.
Цитата:

Цитата leonty
Связывая все воедино, получаем пример для работы браузера

Я думаю что интерфейс указывать необязательно учитывая что он у меня один?
Что означает flags S?
От чего может защитить данное правило?
Еще наверное нужно добавить /udp?

leonty 07-03-2009 20:18 1057510

Цитата:

Цитата Fet
Блокировать все пакеты и заносить в лог кроме tcp/udp пакетов. »

эмн, icmp чтоли логировать?
Цитата:

Цитата Fet
поэтому можно прийти к выводу что правило по умолчанию должно находиться выше всех правил. »

т.е. ты хочешь сказать что в хэндбуке написана ересь? (: может просто конфиг не правильно составлен?
Цитата:

Цитата Fet
Я думаю что интерфейс указывать необязательно учитывая что он у меня один? »

ifconfig покажи.
Цитата:

Цитата Fet
Что означает flags S? »

см. man 5 ipf раздел matching parameters
Цитата:

Цитата Fet
От чего может защитить данное правило? »

это правило ни от чего не защищает, оно лишь позволяет браузеру установить соединение с вебсервером.
Цитата:

Цитата Fet
Еще наверное нужно добавить /udp? »

у тебя браузер udp пакеты посылает?

Fet 08-03-2009 13:18 1058011

Цитата:

Цитата leonty
эмн, icmp чтоли логировать?

наверное
Цитата:

Цитата leonty
т.е. ты хочешь сказать что в хэндбуке написана ересь? (: может просто конфиг не правильно составлен?

:)
Цитата:

Цитата leonty
ifconfig покажи.

vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
ether 00:23:7l:g3:s0:re
inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
Цитата:

Цитата leonty
у тебя браузер udp пакеты посылает?

хез
Цитата:

Цитата leonty
это правило ни от чего не защищает, оно лишь позволяет браузеру установить соединение с вебсервером.

если использовать в сочетании с блокировкой по умолчанию это прапвило? Например:
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
block in all
block out all

Правильно хоть?

leonty 08-03-2009 16:05 1058106

1. лог трафика включают либо админы-параноики, либо для тестирования набора правил фаервола. После настройки лучше убрать это, ибо и систему тормозит и место сожрет с "считанные секунды".

2. Из вывода ifconfig... у тебя инет через адсл?

3.
Цитата:

Цитата Fet
Правильно хоть? »

Правильно. Но необходимо помнить про ДНС. Без него браузер покажет разве что Error 404.
В общем если на скорую руку набросать, то у меня получилось следующее
Код:


# разрешаем любой трафик на интерфейсе lo0
pass in quick on lo0 all
pass out quick on lo0 all

#разрешаем прохождение icmp пакетов через интерфейс vr0. Необходим для ping и #traceroute
pass quick on vr0 proto icmp from any to any

#разрешаем связь с днс серверами. Протокол tcp используется только для зонных пересылок #м/ж днс серверами. Клиенты используют только udp
pass out quick on vr0 proto udp from any to any port = 53 keep state

#DHCP
pass out log quick on vr0 proto udp from any to any port = 68 keep state

#http
pass out quick on vr0 proto tcp from any to any port = 80 flags S keep state
# https/ssl
pass out quick on vr0 proto tcp from any to any port = 443 flags S keep state
#ftp
pass out quick on vr0 proto tcp from any to any port = 21 flags S keep state
#mail
pass out quick on vr0 proto tcp from any to any port = 110 flags S keep state
pass out quick on vr0 proto tcp from any to any port = 25 flags S keep state

#default
block on dc0 all

Ну вот. Как то так.

Если будут какие то неточности, прошу прощения. Писал это при температуре 39 ):

Fet 08-03-2009 19:35 1058232

Цитата:

Цитата leonty
2. Из вывода ifconfig... у тебя инет через адсл?

да
А зачем нужны всякие lo0, dc0?
Цитата:

Цитата leonty
39

Зверь :o

leonty 08-03-2009 20:07 1058245

Цитата:

Цитата Fet
А зачем нужны всякие lo0, dc0? »

lo0 это так называемый Loop-back интерфейс. Он имитирует сетевой интерфейс
локально, не выходя за границы нашего компьютера. О нем можно прочитать
здесь
dc0 это вымышленный интерфейс, взят "от балды"

Fet 08-03-2009 20:37 1058259

А как быть с программами которые являются не только клиентом но и сервером например icq?

leonty 08-03-2009 20:49 1058271

Цитата:

Цитата Fet
А как быть с программами которые являются не только клиентом но и сервером например icq? »

у тебя сервер icq поднят?
не совсем я понял что конкретно интересует. Как настроить фаервол для сервера чтоли? Ну видимо открыть порт 5190 для входящих соединений. Хотя еще раз повторюсь, задача не ясна.

Fet 09-03-2009 14:10 1058719

Нет. Как настроить фаервол чтоб ася, skype и др. правильно работали?(для обычного пользователя)

leonty 09-03-2009 14:32 1058732

Цитата:

Цитата Fet
Как настроить фаервол чтоб ася, skype и др. правильно работали?(для обычного пользователя) »

Так а в чем проблема то?

Fet 09-03-2009 14:45 1058741

Цитата:

Цитата leonty
В общем если на скорую руку набросать, то у меня получилось следующее

пишет: syntax error error at "quick", line 6

leonty 09-03-2009 15:15 1058767

кто пишет? когда пишет?

Fet 09-03-2009 15:38 1058784

пишет терминал при команде: ipf -Fa -f /etc/ipf.rules

leonty 09-03-2009 17:34 1058897

хм, прикольно. А если убрать его из конфига, тогда как реагирует?

Fet 09-03-2009 20:14 1059037

ты оказывается забыл указать в строчке №6 направление пакетов.

сделал так:
pass in quick on vr0 proto icmp from any to any
pass out quick on vr0 proto icmp from any to any

теперь так жалуется: syntax error error at "on", line 12(без комментариев)
сделал так:
block in on vr0 all
block out on vr0 all

Теперь вроде все обработалось! :)

leonty 09-03-2009 20:41 1059066

Цитата:

Цитата Fet
направление пакетов. »

Цитата:

Цитата Fet
syntax error error at "on", line 12 »

хм, а у нас в PF работает (: ну и ладно

Fet 09-03-2009 20:51 1059078

Мой XCHAT не коннектиться!
так правильно?
pass out quick on vr0 proto tcp from any to any port = 6667 flags S keep state

leonty 09-03-2009 20:54 1059080

Покажи правило для него.

Fet 09-03-2009 21:03 1059093

обновись
зы: работает


Время: 01:49.

Время: 01:49.
© OSzone.net 2001-