Показать полную графическую версию : feebsd вопросы
Я новичёк в бсд и у меня есть несколько вопросов:
1) Как увидеть какие порты действуют и открыты?
2) Где брать и как устанавливать обновления?
3) Как настроить IPF что бы безопасно работали: браузер, icq, irc, torrent клиент, skype?
netstat
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/portsnap.html
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/firewalls-ipf.html
во 2 вопросе я имел ввиду системные обновленя, а в 3 вопросе я знаю, как настраивать фаервол, но не понимаю суть настройки фаевола (т.е. что блокировать, что пропускать)
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/cvsup.html
releng указывать обязательно - http://www.freebsd.org/releng/ по аналогии с http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/cvs-tags.html
То есть на данный момент RELENG_7_1
(т.е. что блокировать, что пропускать) »
Фиг его знает :)
браузер - 80 порт, хотя может и 8080, и 443, и 53
в остальных смотри порты по умолчанию.
браузер - 80 порт, хотя может и 8080, и 443, и 53 »
53 порт используется для связи с ДНС (udp)
443 порт это секурный хттпс
на 80 порту обычно висит апач, ну или какой либо другой веб сервер.
8080 обычно используется прокси сервером.
Как настроить IPF что бы безопасно работали: браузер, icq, irc, torrent клиент, skype? »
делаешь по умолчанию правило " запретить все". Далее разрешаешь только исходящие соединения со своего интерфейсаю. Например для браузера
разрешить исходящие соединения с моего интерфейса любого потра по протоколу tcp на любой ИП адрес порт 80
Примерно так.
по совету leonty IPF настроил для начала так:
block in log all
block out log all
pass out proto tcp/udp
но браузер не работает...как быть?
block in log all
block out log all
Вот и смотри лог.
Хотя по ipf не советчик.
так-с, давай разбиремся
block in log all #заблокировал все входящие соединения с протоколированием
block out log all #заблокировал все исходящие соединения с протоколированием
pass out proto tcp/udp #разрешил исходящие соединения по протоколам tcp/udp
На синтаксис сейчас не буду обращать внимания, разберем логику работы.
1. Необходимо уточнить в документации к IPF, где задается правило по умолчанию. Например в PF это самое перове, потом идут исключения, в IPFW вроде как наоборот, правило по умолчнаию задается последним.
2. Третьим правилом ты разрешил все исходящие соединения, так? а ответ как придет?
3. Как уже сказал Igor_I, смотри лог. Еще не забываем про tcpdump/
в IPFW вроде как наоборот, правило по умолчнаию задается последним »
Так и есть.
Сначало пропускаешь что-то, потом запрещаешь что-то, а в конце используется правило по умолчанию для того что осталось.
1. Необходимо уточнить в документации к IPF, где задается правило по умолчанию ->
Система динамически загрузит модуль IPF, если в rc.conf указана переменная ipfilter_enable="YES". Модуль создается с включенным протоколированием и правилом по умолчанию block all (пропускать все). Для изменения правила по умолчанию не обязательно собирать ядро с новыми параметрами. Просто добавьте в конец набора правило, блокирующее все пакеты. Тут все не так как на практике. :shot: Например: block all (пропускать все) Путем проб и ошибок я понял что нужно правило по умолчанию распологать в начале, а затем идут исключения. 2. Третьим правилом ты разрешил все исходящие соединения, так? а ответ как придет? Ты же сам сказал: Далее разрешаешь только исходящие соединения со своего интерфейсаю
ЗЫ: Когда смотрел netstat у браузера постоянно менялся порт, да еще и не один!
вопрос: как его заставить работать под одним портом?
Ты же сам сказал: »
хм, ну ведь логично же предположить, что если разрешаешь исходящие пакеты, необходимо позаботиться о том, чтобы не блокироваись ответные. Просто для меня это как бы очевидно и я даже не подумал что ты на этом споткнешься.
Когда смотрел netstat у браузера постоянно менялся порт, да еще и не один! »
Правильно. Так и должно быть. Когда мы открываем браузер и открываем первую страничку, то браузер обращается к OC, чтобы та выделила свободный порт. Порт выбирается произвольно, но, обычно, по порядку. Если никто из сетевых приложений не работает, то система выделит для этого окна порт 1024. Этот номер уникально идентифицирует конкретное приложение и конкретное окно в приложении. Когда открываем другое окно , то приложение снова обращается за портом. Система выделяет первый свободный порт. Можно предположить, что это будет порт 1025. Но, браузер никогда не обратится к вебсерверу на порт, отличный от 80-го. Ибо это чтото вроде стандарта, что все веб серверы во всем мире обрабатывают клиентские запорсы на 80-ом порту.
Этим я хотел сказать, что тебе не надо заставлять браузер работать на каком то определенном порту.
да, и еще, Вам не показалось слишком странным следующее утверждение?
и правилом по умолчанию 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.
Разницу видите? (:
если разрешаешь исходящие пакеты, необходимо позаботиться о том, чтобы не блокироваись ответные как это сделать в IPF?
Этим я хотел сказать, что тебе не надо заставлять браузер работать на каком то определенном порту. как тогда создавать правила, если порты при каждом запуске разные?
да, и еще, Вам не показалось слишком странным следующее утверждение? Именно!
я вот как то засомневался сразу. Посмотрел хэндбук. Действительно, там так написано. Тогда я глянул в англоязычный вариант. Однажды тоже самое проделал. Если сделать так:
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 не работает. Делайте выводы
как это сделать в IPF? »
использовать опцию keep state. Если в правиле присутсвует опция keep state, первый пакет соответствующий правилу создаёт запись в таблице состояний связывающую источник и получателя пакета. Теперь не только пакеты идущие от источника к получателю, но и обратные пакеты будут соответствовать созданной записи в таблице состояний и не будут подвергаться проверке.
как тогда создавать правила, если порты при каждом запуске разные? »
не указывать порт источника исходящего соединения, а только порт назначения.
Связывая все воедино, получаем пример для работы браузера
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
Декодируя запись выше в человеческий язык, получаем
Разрешить исходящие соединения без дальнейшей проверки по правилам(quick) на интерфейсе dc0 по протоколу tcp от меня на любой сервер на 80 порт и сохранить состояние (keep state)
Ндеюсь гуру поправят если что.
Однажды тоже самое проделал. Если сделать так: »
Расскажи словами, как ты понимаешь данный набор правил.
Расскажи словами, как ты понимаешь данный набор правил. Блокировать все пакеты и заносить в лог кроме 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
Как я уже сказал в таком случае браузер не работает, поэтому можно прийти к выводу что правило по умолчанию должно находиться выше всех правил.
Связывая все воедино, получаем пример для работы браузера Я думаю что интерфейс указывать необязательно учитывая что он у меня один?
Что означает flags S?
От чего может защитить данное правило?
Еще наверное нужно добавить /udp?
Блокировать все пакеты и заносить в лог кроме tcp/udp пакетов. »
эмн, icmp чтоли логировать?
поэтому можно прийти к выводу что правило по умолчанию должно находиться выше всех правил. »
т.е. ты хочешь сказать что в хэндбуке написана ересь? (: может просто конфиг не правильно составлен?
Я думаю что интерфейс указывать необязательно учитывая что он у меня один? »
ifconfig покажи.
Что означает flags S? »
см. man 5 ipf раздел matching parameters
От чего может защитить данное правило? »
это правило ни от чего не защищает, оно лишь позволяет браузеру установить соединение с вебсервером.
Еще наверное нужно добавить /udp? »
у тебя браузер udp пакеты посылает?
эмн, icmp чтоли логировать? наверное
т.е. ты хочешь сказать что в хэндбуке написана ересь? (: может просто конфиг не правильно составлен? :)
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
у тебя браузер udp пакеты посылает? хез
это правило ни от чего не защищает, оно лишь позволяет браузеру установить соединение с вебсервером. если использовать в сочетании с блокировкой по умолчанию это прапвило? Например:
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
block in all
block out all
Правильно хоть?
1. лог трафика включают либо админы-параноики, либо для тестирования набора правил фаервола. После настройки лучше убрать это, ибо и систему тормозит и место сожрет с "считанные секунды".
2. Из вывода ifconfig... у тебя инет через адсл?
3. Правильно хоть? »
Правильно. Но необходимо помнить про ДНС. Без него браузер покажет разве что 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 ):
2. Из вывода ifconfig... у тебя инет через адсл? да
А зачем нужны всякие lo0, dc0?
39 Зверь :o
А зачем нужны всякие lo0, dc0? »
lo0 это так называемый Loop-back интерфейс. Он имитирует сетевой интерфейс
локально, не выходя за границы нашего компьютера. О нем можно прочитать
здесь (http://ru.wikipedia.org/wiki/Localhost)
dc0 это вымышленный интерфейс, взят "от балды"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.