Компиляция ядра FreeBSD

Обсуждаем OS FreeBSD и сервисы на ней.

Компиляция ядра FreeBSD

Сообщение slb51 » 13 авг 2009, 07:48

У меня вот какой вопрос. Почему ядро не компилируется с опциями DUMMYNET, HZ=dummynet, TCP_DROP_SYNFIN, ICMP_BANDLIM и BRIDGE? Без них жить можно, но почему не компилируется? Может они завязаны на другие опции, которые я выкинул по незнанию? Фря версии 8.0 Beta2, но и на 7.2 та же история. Из ядра я выбросил по максимуму всё не нужное, на мой взгляд, для фойервола. Включил в ядро IPFIREWALL, IPFIREWALL_VERBOSE, IPFIREWALL_VERBOSE_LIMIT=10, IPDIVERT, IPFIREWALL_FORWARD, IPFILTER. Команды компиляции даю: "make buildkernel KERNCONF=NEWKERNEL", затем "make installkernel KERNCONF=NEWKERNEL". До второй команды, правда, дело не доходит. Если убираю означенные опции, всё проходит нормально.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Компиляция ядра FreeBSD

Сообщение root » 13 авг 2009, 08:40

slb51 писал(а):Да я и делал несколькими способами. Но в основном: "make buildkernel KERNCONF=NEWKERNEL" из директории "/usr/src/sys/i386/conf/".

а так пробовал ?
Код: Выделить всё
cd /usr/src/sys/i386/conf


имя ядра, например SUBNETS

Код: Выделить всё
config SUBNETS


должен ответить:
Kernel build directory is ../compile/SUBNETS
Don't forget to do ``make cleandepend && make depend''


если ответил, то делаем:
Код: Выделить всё
cd ../compile/SUBNETS


Код: Выделить всё
make cleandepend && make depend


если ошибок нет, то:
Код: Выделить всё
make && make install

Код: Выделить всё
reboot
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1894
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: Компиляция ядра FreeBSD

Сообщение slb51 » 13 авг 2009, 09:00

И так делал. Только по-отдельности, сначала depend, потом clean. Depend не находит нужных связей.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: Компиляция ядра FreeBSD

Сообщение root » 13 авг 2009, 09:14

slb51 писал(а):Depend не находит нужных связей.

каких ещё связей :)
короч, показывай последний кусок выводимой инфы на экран, вместе с ошибкой
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1894
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: Компиляция ядра FreeBSD

Сообщение slb51 » 13 авг 2009, 11:12

Вот фрагмент конфигурации ядра:
Код: Выделить всё
# $FreeBSD: src/sys/i386/conf/MyProxy,v 1.519 2009/07/11 15:02:45 rpaulo Exp $
cpu   I686_CPU
Ident   MyProxy
maxusers   256
#hints   "GENERIC.hints"        # Default places to look for devices.
#env      "MyProxy.env"
makeoptions   DEBUG=-g   #  Build kernel with gdb(l) debug symbols
#---Mу options----------------------------------------------------------------
options   IPFIREWALL
options   IPFIREWALL_VERBOSE
options   IPFIREWALL_VERBOSE_LIMIT=100
options   IPDIVERT
options   IPFIREWALL_FORWARD
options   DUMMYNET
options   HZ=100
оptiоns   TCP_DROP_SYNFIN
options   ICMP_BANDLIM
options   BRIDGE
options   ACCEPT_FILTER_DATA
options   TCP_RESTRICT_RST
#---End my options------------------------------------------------------------

После этого:
Код: Выделить всё
#config MyProxy

Код: Выделить всё
Proxy# config MyProxy

MyProxy: unknown option "TCP_RESTRICT_RST"

Убираем "TCP_RESTRICT_RST"
Код: Выделить всё
Proxy# config MyProxy

MyProxy: unknown option "BRIDGE"

Ну и так далее:
MyProxy: unknown option "ICMP_BANDLIM" (BANDLIMIT тоже пробовал)
MyProxy: unknown option "TCP_DROP_SYNFIN"

Потом "#cd ../../compile/MyProxy" и "#make deped" - всё удачно.
Делаем "make clean"- тоже без проблем. "make", "make install". Ну тоесть дальше вопросов не возникает.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: Компиляция ядра FreeBSD

Сообщение lehisnoe » 13 авг 2009, 16:48

Рискну предположить, что:
slb51 писал(а):оptiоns TCP_DROP_SYNFIN

"переехало" в sysctl
Код: Выделить всё
net.inet.tcp.drop_synfin

slb51 писал(а):options ICMP_BANDLIM

"переехало" в sysctl
Код: Выделить всё
net.inet.icmp.icmplim

slb51 писал(а):options BRIDGE

переименовалось в device if_bridge
slb51 писал(а):options TCP_RESTRICT_RST

"переехало" в sysctl
Код: Выделить всё
net.inet.tcp.insecure_rst


P.S. Для задания начальных значений sysctl при буте машины служит файл /etc/sysctl.conf

P.P.S. Я привел аналогию для 7.2-STABLE. В 8-ке это м.б. и по-другому...
No users
No troubles
No money
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
lehisnoe
Site Admin
 
Сообщения: 539
Зарегистрирован: 11 июн 2008, 14:09
Откуда: Moscow

Re: Компиляция ядра FreeBSD

Сообщение slb51 » 13 авг 2009, 18:03

Спасибо, теперь всё катит. Только одно "но". То, что перехало в sysctl я запустил командой типа "sysctl net.inet.tcp.drop_synfin=1". В файле sysctl.conf у меня ничего нет кроме коментариев, что и как туда писать я не знаю. Сохранятся ли значения этих переменны после перезагрузки или надо всё-таки что-то написать в sysctl.conf?
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: Компиляция ядра FreeBSD

Сообщение makky » 13 авг 2009, 18:16

так и пишешь
Код: Выделить всё
net.inet.tcp.drop_synfin=1
...

Наверное стоит все-таки открыть курсы по поиску...
А что ты сделал ради эксперимента?
Аватара пользователя
makky
посетитель
 
Сообщения: 119
Зарегистрирован: 19 окт 2008, 20:42
Откуда: msk

Re: Компиляция ядра FreeBSD

Сообщение lehisnoe » 13 авг 2009, 20:12

slb51 писал(а):В файле sysctl.conf у меня ничего нет кроме коментариев

Так там в комментах (в 4-ой строке) написано:
/etc/sysctl.conf писал(а):``man 5 sysctl.conf'' for details.

если последовать этому совету, то можно прочитать:

man 5 sysctl.conf писал(а):The /etc/sysctl.conf is in
the format of the sysctl(8) command, i.e.

sysctl_mib=value
...
EXAMPLES
# Configure logging.
kern.logsigexit=0
No users
No troubles
No money
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
lehisnoe
Site Admin
 
Сообщения: 539
Зарегистрирован: 11 июн 2008, 14:09
Откуда: Moscow

Re: Компиляция ядра FreeBSD

Сообщение slb51 » 14 авг 2009, 09:27

Прошу прощения за глупые, порой, вопросы. Я ещё очень слабо шарю в UNIX-подобных системах. Многое делаю просто из интереса. В принципе мне нужно ядро, которое будет осуществлять очень ограниченную функцию. У меня есть локалка в виде домена Windows 2003, есть выход в корпоративную сеть через шлюз и в интернет через корпоративную сеть. Всё что мне нужно - это ограничить подключение пользователей. Надо дать разрешение группе пользователей только к имеющемуся списку сайтов, другой группе - только к одному сайту и третей группе - полный доступ, всем остальным запретить всё. Думаю, кроме ipfw для этого ничего больше не нужно. NAT- это просто для пробы. Может быть полезным окажется и proxy. Попутно можно защититься от внешних поползновений. Решил сделать это через FreeBSD, с которой до этого дела не имел. Отсюда и глупые вопросы. За помощь большое спасибо. Советы ясные, вразумительные и действенные.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

След.

Вернуться в FreeBSD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

cron