FreeBSD
Андрей
Администратор
Бухарест
5.3K 4.8K 2
Отв.40 28 Янв. 11, 18:05
dikiy, значит ядро на компиляцию портов не влияет?
dikiy
Бакалавр
Красноярск
66 9
Отв.41 28 Янв. 11, 20:47
Ну в общем-то нет архитектура точно влияет - некоторые порты поставляются только в бинарном виде (например sun jdk) и есть только под некоторые платформы, некоторые тупо на SPARCах каких-нибудь не работают а только на i386
Андрей
Администратор
Бухарест
5.3K 4.8K 2
Отв.42 31 Янв. 11, 02:53
А если у меня установлены порты, могу я в ядре убрать поддержку ненужного оборудования?
Ну и чтобы соответственно это никак не отразилось на работе системы ...
Ну и чтобы соответственно это никак не отразилось на работе системы ...
SamOvar
Доктор наук
Montreal
606 82
Отв.43 31 Янв. 11, 08:26
Если это никак не должно отразиться на работе системы, то зачем это делать?
Можно выиграть пару секунд при загрузке, но это трудно заметить, а ошибка может дорого стоить, если это рабочая машина.
Особенно необходимость этого под сомнением, если установлена версия RELEASE.
Если же это экспериментальный комп, да еще и с версией STABLE, то нужно отредактировать файл /sys/i386/conf/GENERIC.
Точнее не сам GENERIC, который редактировать не рекомендовано, а его переименованную копию.
# cp /sys/i386/conf/GENERIC /root/MYKERNEL
# ln -s /root/MYKERNEL /sys/i386/conf/MYKERNEL
Эта команда создает symbolic link в директории, гда находится GENERIC. При дальнейшей компилляции ядра ссылка на MYKERNEL обязательна.
Потом редактируется /root/MYKERNEL в любом текстовом редакторе, например ee:
# ee /root/MYKERNEL
Желательно прочитать файл /sys/i386/conf/NOTES - там много полезной информации.
Еще один очень важный файл для чтения: /usr/src/UPDATING - там "последние известия" об изменениях в системе. Перед перекомпилляцией ядра очень
рекомендована перекомпилляция "мира", а иногда это абсолютно необходимо. File UPDATING сообщит об этом.
Порты - это програмное обеспечение (software), типа MS Office на винде (она и без него будет работать), устанавливаемое по мере надобности.
Фряха будет полноценной ОС без единого порта. И ни один порт не требует кастомизации ядра.
ЗЫ. Если стоит процессор Р4 или выше, в конфиг файле можно "забанить" все Ix86 кроме I686.
Можно выиграть пару секунд при загрузке, но это трудно заметить, а ошибка может дорого стоить, если это рабочая машина.
Особенно необходимость этого под сомнением, если установлена версия RELEASE.
Если же это экспериментальный комп, да еще и с версией STABLE, то нужно отредактировать файл /sys/i386/conf/GENERIC.
Точнее не сам GENERIC, который редактировать не рекомендовано, а его переименованную копию.
# cp /sys/i386/conf/GENERIC /root/MYKERNEL
# ln -s /root/MYKERNEL /sys/i386/conf/MYKERNEL
Эта команда создает symbolic link в директории, гда находится GENERIC. При дальнейшей компилляции ядра ссылка на MYKERNEL обязательна.
Потом редактируется /root/MYKERNEL в любом текстовом редакторе, например ee:
# ee /root/MYKERNEL
Желательно прочитать файл /sys/i386/conf/NOTES - там много полезной информации.
Еще один очень важный файл для чтения: /usr/src/UPDATING - там "последние известия" об изменениях в системе. Перед перекомпилляцией ядра очень
рекомендована перекомпилляция "мира", а иногда это абсолютно необходимо. File UPDATING сообщит об этом.
Порты - это просто коллекция программного обеспеченияdikiy, 28 Янв. 11, 12:50Около 23тыс программ. Работа портов и кастомизированное ядро - НИКАК ДРУГ С ДРУГОМ НЕ СВЯЗАНЫ. Ядро - это часть ОС, отвечающая за "железо" (hardware), грубо говоря, набор драйверов для управления железом компьютера + некоторые инструкции по этому управлению.
Порты - это програмное обеспечение (software), типа MS Office на винде (она и без него будет работать), устанавливаемое по мере надобности.
Фряха будет полноценной ОС без единого порта. И ни один порт не требует кастомизации ядра.
ЗЫ. Если стоит процессор Р4 или выше, в конфиг файле можно "забанить" все Ix86 кроме I686.
dikiy
Бакалавр
Красноярск
66 9
Отв.44 31 Янв. 11, 15:17
# cp /sys/i386/conf/GENERIC /root/MYKERNELНАХРЕНА?
# ln -s /root/MYKERNEL /sys/i386/conf/MYKERNEL
SamOvar, 31 Янв. 11, 08:26
Может вы так привыкли, моё же мнение - это плохая практика.
Желательно прочитать файл /sys/i386/conf/NOTES - там много полезной информации.Приплюсую к /sys/i386/conf/NOTES (описание опций, специфичных для i386) еще /sys/conf/NOTES (платформо-независимые опции).
Еще один очень важный файл для чтения: /usr/src/UPDATING - там "последние известия" об изменениях в системе.SamOvar, 31 Янв. 11, 08:26
/usr/ports/UPDATING - рекомендуется ознакамливаться перед обновлением портов, иногда происходят хитрые нетривиальные вещи и инструкции по обновлению лежат здесь.
Андрей, вы можете попробовать перекомпилировать ядро и тому подобное пока осавиваетесь с системой, но когда будете делать боевой сервер - оставьте на нем GENERIC и какую-нибуть номерную версию системы (8.1-RELEASE к примеру), будете меньше времени тратить на обновление (чтобы был понятен масштаб - как полчаса против суток)
Андрей
Администратор
Бухарест
5.3K 4.8K 2
Отв.45 31 Янв. 11, 15:35, через 19 мин
Ладно на счет удаления поддержки железа я думаю с современным железом это всё меньше становится актуальным?
А я вот хочу включить в ядре фаервол.
А я вот хочу включить в ядре фаервол.
dikiy
Бакалавр
Красноярск
66 9
Отв.46 31 Янв. 11, 15:43, через 9 мин
Ну в общем-то да для встраиваемых устройств это сильно критично, а для серверов да раб. станций - удобство важнее. Но вы все равно поиграйтесь чтобы представление иметь и почитайте как это рекомендует делать команда разработчиков в http://www.freebsd.org/...rnelconfig.html
Фаерволов несколько, ipfw и pf. Поразбираться можете с обоими, но pf лучше, у него идеология более правильная и больше шич и всё это удобно конфигурируется. В "man pf.conf" нормально все описывается. Оба фаервола прекрасно живут как модули ядра и подгружаются динамически
PS: кстати, приоритезация трафика с помощью pf и altq - одна из фич которая реально требует пересборку ядра; altq включается только так.
Фаерволов несколько, ipfw и pf. Поразбираться можете с обоими, но pf лучше, у него идеология более правильная и больше шич и всё это удобно конфигурируется. В "man pf.conf" нормально все описывается. Оба фаервола прекрасно живут как модули ядра и подгружаются динамически
PS: кстати, приоритезация трафика с помощью pf и altq - одна из фич которая реально требует пересборку ядра; altq включается только так.
SamOvar
Доктор наук
Montreal
606 82
Отв.47 31 Янв. 11, 19:39
НАХРЕНА?dikiy, 31 Янв. 11, 15:17Чтобы мой конфиг не был переписан на новый GENERIC при следующем обновлении scr.
А вы как делаете?
будете меньше времени тратить на обновление (чтобы был понятен масштаб - как полчаса против суток)dikiy, 31 Янв. 11, 15:17Если это намек на freebsd-update, то не могу согласиться. Имхо путь через обновление мира-ядра и проще, и быстрее.
freebsd-update upgrade подразумевает еще и переустановку всех портов, что действительно может вылиться и в сутки, и в трое.
PS. Пока был на форуме - вот только что обновил систему:
# uname -r
8.2-PRERELEASE
Релиз должен был уже появиться. Если не сегодня после обеда, то на днях появится.
dikiy
Бакалавр
Красноярск
66 9
Отв.48 01 Февр. 11, 19:03
Если мне надо добавить пару строк к GENERIC я делаю в /sys/i386/conf (или какая там архитектура на сервере) новый файл такого плана:
include GENERIC
ident MYKERNEL
options OPTIONS
SamOvar
Доктор наук
Montreal
606 82
Отв.49 02 Февр. 11, 01:16
Спасибо, так тоже можно, но чем это лучше?
И почему моя практика "плохая"?
И почему моя практика "плохая"?
dikiy
Бакалавр
Красноярск
66 9
Отв.50 02 Февр. 11, 06:40
Мне не понравилось то что вы храните конфиг ядра в домашнем каталоге пользователя (пусть даже и рута) и "перекладываете" его в нужное место симлинком (зачем наводить эту паутину без особой надобности?)
Отв.51 02 Февр. 11, 10:04
Согласен. Обычно копируем в той же /usr/src/.../conf
Порядок есть порядок.
Порядок есть порядок.
SamOvar
Доктор наук
Montreal
606 82
Отв.52 02 Февр. 11, 18:54
FreeBSD Handbook:
Tip: Storing your kernel configuration file directly under /usr/src can be a bad idea. If you are experiencing problems it can be tempting to just delete /usr/src and start again. After doing this, it usually only takes a few seconds for you to realize that you have deleted your custom kernel configuration file. Also, do not edit GENERIC directly, as it may get overwritten the next time you update your source tree, and your kernel modifications will be lost.
You might want to keep your kernel configuration file elsewhere, and then create a symbolic link to the file in the i386 directory.
For example:
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
dikiy
Бакалавр
Красноярск
66 9
Отв.53 02 Февр. 11, 19:55
Уел (хотя я остался при своем мнении)
С днем сурка everyone!
С днем сурка everyone!
SamOvar
Доктор наук
Montreal
606 82
Отв.54 02 Февр. 11, 22:04
Ю2:)
У нас сегодня ни один сурок не вылезет: метель, блинн, при -13.
Самый раз гнать по третьему...
ЗЫ. А фильм - классный!
У нас сегодня ни один сурок не вылезет: метель, блинн, при -13.
Самый раз гнать по третьему...
ЗЫ. А фильм - классный!
Андрей
Администратор
Бухарест
5.3K 4.8K 2
Отв.55 04 Февр. 11, 03:51
Правила для IPFW мне показались интуитивно понятнее, чем для PF.
Вот например:
Против этого:
Еще я подумал, а зачем он вообще нужен на сервере?
Ведь фаервол закрывающий порты из вне есть на роутере...
Мне нужно просто сделать так, чтобы при нагрузке выше критической сервер не "завис", а НАТ и прочая маршрутизация средствами сервера не нужна, т.к. за этим сервером больше ничего нет.
Что посоветуете?
Вот например:
#!/bin/sh
cmd="/sbin/ipfw -q"
wan_if="em0"
$cmd flush
$cmd pipe flush
$cmd allow ip from any to any via lo0
$cmd add check-state
$cmd add reset tcp from any to any established
# allow HTTP traffic
$cmd add allow tcp from any to me 80 setup in keep-state
# allow FTP
$cmd add allow tcp from any to me 21 setup in keep-state
$cmd add allow tcp from any to me 20 setup in keep-state
$cmd add allow tcp from me 20 to any setup out keep-state
# allow ping
$cmd add allow icmp from any to me icmptypes 8 in keep-state
# allow traffic to server
$cmd add allow tcp from me to any setup out keep-state
$cmd add allow ip from me to any out keep-state
$cmd add allow tcp from any to me setup in keep-state
$cmd add allow ip from any to me in keep-state
# deny everything else
$cmd add deny tcp from any to any setup
$cmd add deny ip from any to any
Против этого:
wan_if="em0"
priv_nets="{10.0.0.0.8, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/4, 240.0.0.0/5, 127.0.0.0/8, 0.0.0.0}"
tcp_ports="{ 20, 21, 22, 25, 53, 80, 110, 143 }"
udp_ports="{ 53 }"
icmp_types="8"
table <rfc1918> const { 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 }
table <blocklist> persist file "/etc/blocklist.txt"
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 15000, frags 30000 }
set optimization normal
set block-policy drop
set fingerprints "/etc/pf.os"
set loginterface $wan_if
set require-order yes
scrub in on $wan_if all no-df fragment reassemble min-ttl 15 max-mss 1460
scrub in on $wan_if all no-df
scrub on $wan_if all reassemble tcp
block in quick on $ext_if from $priv_nets
pass in all
pass out all
pass quick on lo0 all
block in log all
block out log all
block in quick on $wan_if from <blocklist> to any
block in quick on $wan_if from <rfc1918> to any
pass in on $wan_if proto tcp from any to $wan_if port $tcp_ports flags S/SA synproxy state
pass in on $wan_if proto udp from any to $wan_if port $udp_ports keep state
pass in on $wan_if inet proto icmp all icmp-type $icmp_types keep state
pass in inet proto icmp icmp-type 8 code 0 keep state
pass in quick on $wan_if proto tcp from any to any port > 49151 keep state
pass out on $wan_if proto tcp all modulate state flags S/SA
pass out on $wan_if proto { udp, icmp } all keep state
Еще я подумал, а зачем он вообще нужен на сервере?
Ведь фаервол закрывающий порты из вне есть на роутере...
Мне нужно просто сделать так, чтобы при нагрузке выше критической сервер не "завис", а НАТ и прочая маршрутизация средствами сервера не нужна, т.к. за этим сервером больше ничего нет.
Что посоветуете?
Отв.56 04 Февр. 11, 10:39
Для атакующего сервер - тысячи и одна неизвестность.
Вопросы, которые хотел бы решить потенциальный хакер:
1. На базе какой ос работает серв?
2. Какие сервисы поддерживаются?
3. Какие порты открыты?
4. Что находится за сервером?
ну и много прочих
Задача админа не дать взломщику ответов на эти и другие вопросы. Я не призываю к тотальной паранойе, администрирование - поиск разумного равновесия. А фв - способ перестраховаться от банальных неприятностей. Доморощенный хакер, перепробовав примитивный доступный инструментарий потеряет интерес на третьи сутки, бацилла будет долбить, пока включен инфицированный комп. Для профи твой ресурс не интересен.
Вопросы, которые хотел бы решить потенциальный хакер:
1. На базе какой ос работает серв?
2. Какие сервисы поддерживаются?
3. Какие порты открыты?
4. Что находится за сервером?
ну и много прочих
Задача админа не дать взломщику ответов на эти и другие вопросы. Я не призываю к тотальной паранойе, администрирование - поиск разумного равновесия. А фв - способ перестраховаться от банальных неприятностей. Доморощенный хакер, перепробовав примитивный доступный инструментарий потеряет интерес на третьи сутки, бацилла будет долбить, пока включен инфицированный комп. Для профи твой ресурс не интересен.
Андрей
Администратор
Бухарест
5.3K 4.8K 2
Отв.57 04 Февр. 11, 14:07
Настало утро
и теперь я могу точнее сформулировать свой вопрос нужна защита от ДДОС.
Вот у Лисяры прочитал про mod_evasive
http://www.lissyara.su/articles/freebsd/www/mod_evasive/
Там есть дополнение.
Это уже готовое решение? Нужно только это записать в конфиг и готово?
и теперь я могу точнее сформулировать свой вопрос нужна защита от ДДОС.
Вот у Лисяры прочитал про mod_evasive
http://www.lissyara.su/articles/freebsd/www/mod_evasive/
Там есть дополнение.
Это уже готовое решение? Нужно только это записать в конфиг и готово?
SamOvar
Доктор наук
Montreal
606 82
Отв.58 04 Февр. 11, 15:47
Хороший ресурс по OpenBSD (известна наивысшей безопасностью) здесь (англ).
Отв.59 04 Февр. 11, 18:13
у Лисяры прочитал про mod_evasiveАндрей, 04 Февр. 11, 14:07Отличное решение. И, поскольку, имхо, 1-й апач малоактуален (скорее всего там баг взаимопонимания либо устойчивости самого 1-го), прикрути, попробуй.
Я это не пробовал, пока не нужно (ттт).
Интересно, будет ли это работать с virtual domains и нужно ли прописывать модуль в каждый virtual?