Вернуться   W&PBBS > Software > Unix/Linux/BSD > BSD
Имя
Пароль
FAQ Пометить все разделы прочитанными



Ответ
Опции темы
Старый 21-06-2006, 15:19 Ссылка на пост    #31
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

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

++++++++++++++ Cut here +++++++++++++++++++++++

Настало время для суровой критики нашего кибернетического парня вот за это "полезное" решение -*Полезные решения на платформе FreeBSD.*- :) Выглядит все суперкрасиво на первый взгляд (ведь сам орла за это дело ему поставил). :)) На практике дела обстоят несколько иначе... Сейчас я предоставлю всем самим в этом убедиться. :)
Первое, на что следует обратить внимание - это последовательность установки пакетов, перечисленных киберб. Все три перечисленные утилиты используют криптобиблиотеки. Убедиться в этом легко и просто, вспомнив про ldd.
Код:
# ldd /usr/bin/openssl
/usr/bin/openssl:
        libssl.so.4 => /usr/lib/libssl.so.4 (0x280b9000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x280e7000)
        libc.so.6 => /lib/libc.so.6 (0x281d9000)

# ldd /usr/sbin/sshd
/usr/sbin/sshd:
        libssh.so.3 => /usr/lib/libssh.so.3 (0x2809a000)
        libutil.so.5 => /lib/libutil.so.5 (0x280cc000)
        libz.so.3 => /lib/libz.so.3 (0x280d8000)
        libwrap.so.4 => /usr/lib/libwrap.so.4 (0x280e8000)
        libpam.so.3 => /usr/lib/libpam.so.3 (0x280ee000)
        libgssapi.so.8 => /usr/lib/libgssapi.so.8 (0x280f5000)
        libkrb5.so.8 => /usr/lib/libkrb5.so.8 (0x28103000)
        libasn1.so.8 => /usr/lib/libasn1.so.8 (0x28137000)
        libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x28158000)
        libroken.so.8 => /usr/lib/libroken.so.8 (0x2815a000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x28166000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x28258000)
        libc.so.6 => /lib/libc.so.6 (0x28270000)
        libmd.so.3 => /lib/libmd.so.3 (0x28348000)

# ldd /usr/sbin/named
/usr/sbin/named:
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x281b8000)
        libc.so.6 => /lib/libc.so.6 (0x282aa000)

Понимаете куда клоню? :) Правильно. Начинаем с установки пакета openssl из портов. Тут все, как описал киберб.
Код:
# cd /usr/ports/security/openssl/
# make OPENSSL_OVERWRITE_BASE=yes install clean

Собралось? Смотрим, что за зверь получился. :)
Код:
# ldd /usr/local/bin/openssl
/usr/bin/openssl:
        libssl.so.5 => /usr/local/lib/libssl.so.5 (0x280c7000)
        libcrypto.so.5 => /usr/local/lib/libcrypto.so.5 (0x280ff000)
        libpthread.so.2 => /usr/lib/libpthread.so.2 (0x2820e000)
        libc.so.6 => /lib/libc.so.6 (0x28233000)

Правильной дорогой идем, товарищи юниксоиды. :)

Переходим к openssh-portable. Тут все без вопросов, читайте оригинал и не ошибетесь. Процитирую:
Код:
Код:
# cd /usr/ports/security/openssh-portable/
# make OPENSSH_OVERWRITE_BASE=yes install clean

Получилось? Проверим, что мы не фантики. :)
Код:
Код:
# ldd /usr/sbin/sshd
/usr/sbin/sshd:
        libwrap.so.4 => /usr/lib/libwrap.so.4 (0x280b4000)
        libpam.so.3 => /usr/lib/libpam.so.3 (0x280ba000)
        libcrypto.so.5 => /usr/local/lib/libcrypto.so.5 (0x280c1000)
        libutil.so.5 => /lib/libutil.so.5 (0x281d0000)
        libz.so.3 => /lib/libz.so.3 (0x281dc000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x281ec000)
        libgssapi.so.8 => /usr/lib/libgssapi.so.8 (0x28204000)
        libkrb5.so.8 => /usr/lib/libkrb5.so.8 (0x28212000)
        libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x28246000)
        libasn1.so.8 => /usr/lib/libasn1.so.8 (0x28248000)
        libroken.so.8 => /usr/lib/libroken.so.8 (0x28269000)
        libc.so.6 => /lib/libc.so.6 (0x28275000)

Зачет! :) Переходим к намеду. Тут ключики слегка дополним.
Код:
Код:
# cd /usr/ports/dns/bind9/
# make WITH_PORT_REPLACES_BASE_BIND9=yes WITH_OPENSSL_PORT=yes install clean

Проверяем результаты и чувствуем себя уже продвинутыми спецами по настройке FreeBSD! :)
Код:
Код:
# ldd /usr/sbin/named
/usr/sbin/named:
        libcrypto.so.5 => /usr/local/lib/libcrypto.so.5 (0x281b6000)
        libc.so.6 => /lib/libc.so.6 (0x282c5000)

Можно выкурить вкусную сигарету и расслабиться, пытаясь сфокусировать взгляд на звездах в ночном небе, ибо все теперь правильно и грамотно, ключевые сервисы самые свежие и плюс к этому проверяются portaudit'ом. Любимый город может спать спокойно? А вот фига там. :) За чем неусыпно следят настоящие парни, работающие с фрей? Правильно, за секьюрными патчами системы. Получаем анонс о свежей дырке, достаем cvsup'ом патчи, билдим с ними систему, как положено и... Вся проделанная и описаная работа отправляется... да-да, именно туда, куда вы подумали, дорогие мои. :)

По этой причине финалом эпопеи для вас должно стать изменение make.conf
Код:
Код:
# vi /etc/make.conf
NO_OPENSSH=
NO_OPENSSL=
NO_BIND=

Вот теперь уже точно всё. :) Замена на версии, идущие в поставке системы, нам уже не грозит.

Плавно переходим в состояние полной нирваны, мы его заслужили.

P.S. Пример рассмотрен на FreeBSD 6.1-RELEASE-p1. Для 4-ой и 5-ой веток меняются лишь номера либок и синтаксис make.conf

++++++++++++++ Cut here +++++++++++++++++++++++

Редактировалось cyberb
28-01-2007 00:35.
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 21-06-2006, 15:24 Ссылка на пост    #32
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

бредисловие.
както давно мне сказали что win-говно, я почему-то не поверил и оказался прав... просто люди не умеют его готовить =) но ведь здесь есть оборотная сторона - я видал просто горы горе-админов, которые установив се BSD/Linux думают что терь мона сесть и расслабиться, но установить это только половина дела, в эти системы(как впрочем и в винды) вложен огромный
потенциал по тонкому реконфигурированию и ваша цена, как спеца растет пропорционально количеству ответов на вопрос - а что можно еще выжать из это конфигурации... упс, что-то я бредни развел, к делу(все на примере FreeBSD)...

в BSD есть тонкий механизм настройки - sysctl называется. попробуем разобраться что это и откуда оно берется.
Код:
sysctl(8) -- это интерфейс, позволяющий вам вносить изменения в работающую систему FreeBSD. эти изменения касаются многих опций стека TCP/IP и виртуальной памяти; опытный системный администратор может использовать их для существенного увеличения производительности. более пяти тысяч системных переменных могут быть прочитаны и записаны с помощью sysctl(8).
ну кто скажет лучше чем handbook что такое sysctl?... с понятиями разобрались, пора окунуться в практику.
изменение sysctl переменных может происхожить 2 способами - на "лету" или из файлов loader.conf & /etc/sysctl.conf.
на лету смотрим переменные примерно так примерно так:
запрос
Код:
# sysctl net.link.ether.inet.max_age
net.link.ether.inet.max_age: 1200
для просмотра всех доступных для чтения переменных:
Код:
# sysctl -a
... хммм, че-то я совсем вдался в детский сад, дальше man сами посмотрите.
нужные(и не очень) нам значения... поехали разбираться ->(будет немного в перемешку, так как дергаю из разных серверов, параллельно вспоминая, а что это значит)

kern.polling.enable=1
связано с опцией ядра "options DEVICE_POLLING"(там есть траблы с конфигурацией SMP смотрите, поддерживается только такими сетевыми картами dc,em,fxp,nge,rl,sis)
помогает немного скомпенсировать атаки дос, но это завязано с опциями ядра, так что сами(или я как-нить в следующий раз)
если сами то воть - http://silverwraith.com/papers/freebsd-tuning.php
http://info.iet.unipi.it/~luigi/polling/

net.inet.tcp.msl=7500
определяет максимальное время жизни сегмента в милисекундах (Maximum Segment Life - MSL). это максимальное количество времени ожидания ACK в ответ на SYN-ACK или FIN-ACK в миллисекундах. если в течение этого времени компьютер не получает ACK, то он считает, что сегмент потерян и освобождает сетевое подключение.(из опеннета)
экспериментируем и пробуем, ни в коем случае не делаем необдуманных решений и действий, т.к. можем "отрубить" часть своих клиентов. подберитя для ся оптимальное значение.
по RFC 1979 установлено 120 сек, но скока времени прошло, скока злодеев прибавилось. по дефолту 30000. помогает от дос.

net.inet.tcp.blackhole=2
net.inet.tcp.blackhole определяет, что должно происходить, когда система получает TCP пакет на закрытый порт. когда эта переменная установлена в 1, SYN пакеты на закрытый порт будут отклоняться без отсылки отправителю RST пакета. когда она установлена в 2, все пакеты на закрытый порт отбрасываются без отсылки RST. это бережет время цпу, потому что пакеты практически не требуют обработки, а также освобождает исходящий канал, потому ответные пакеты не отсылаются.(из опеннет)
от себя добавлю, тормозит сканирование портов - т.к. сканирующий ждет ответа, а вы типа молчите, немного затрудняет fingerprint OS так как ся ведет "нестандартно" для данной OS.

net.inet.udp.blackhole=1
net.inet.udp.blackhole схоже с net.inet.tcp.blackhole по своей функциональности. так как протокол UDP не устанавливает соединение, как TCP, то при сбросе UDP пакетов есть только одна опция. когда эта переменная установлена в 1, система отбрасывает все UDP пакеты, которые адресованы закрытым портам.(из опеннет)
от себя, как и в прошлый раз.

net.inet.icmp.icmplim=50
название это переменной вводит в заблуждение. она контролирует максимальное количество пакетов ICMP <<недостижимо>>, а также количество отсылок TCP RST пакетов в секунду. она помогает уменьшить урон от атак, при которых генерируется большое количество ответных пакетов.(из опеннет)
ну от себя добавить нечего, скажу только пробуйте и подбирайте параметры.

kern.ipc.somaxconn=32768
kern.ipc.somaxconn ограничивает максимальное количество одновременно открытых сокетов. значение по умолчанию - 128. если атакующий сможет завалить вас достаточно большим количеством SYN пакетов за короткий период времени, то он может задействовать все возможные сетевые соединения, успешно ограничив ваших пользователей в доступе к сервисам.(из опеннета)
ваще злой параметр, показывает(и достаточно очевидно) как просто завалить систему установленную по дефолту(несмотря что грозно называется она FreeBSD). с другой стороны много откроете тоже могут вас "поиметь", так что опять же работайте-тестируйте.

hw.ata.wc=0
во FreeBSD 4.3 кэширование записи на IDE диски было отключено. это понижало производительность IDE дисков в тестах, но было необходимо для лучшей сохранности данных. проблема состоит в том, что IDE диски неправильно указывают время завершения записи на диск. при включенном кэшировании IDE диски могут не только записать данные в неправильном порядке -- при большой нагрузке на диск некоторые блоки могут задержаться до бесконечности. сбой, или отключение питания могут могут стать причиной серьёзных повреждений в файловой системе. поэтому для безопасности системы значение по умолчанию этого параметра было изменено. к сожалению, результатом этого стало столь значительная потеря производительности, что после выхода релиза значение этого параметра было возвращено в первоначальное состояние. вам следует проверить значение переменной sysctl hw.ata.wc на вашей машине. если кэширование выключено -- вы можете включить его, установив значение переменной ядра, равное 1. это должно быть сделано при помощи загрузчика при за
грузке. если вы сделаете это позже -- изменения не будут иметь силы.(man)
могу сказать вот что(ну кроме того что написано) - функция это открывает опережеющую запись. скажем при чтении с диска читаются не только те дрожки которые вы запросили, но и несколько после(в кэш) в надежде того, что они вам еще понадобятся. в записи это значит, что ваши данные ставятся в кэш, а только потом записываются(тоесть без механики все происходит моментально), а данные после записываются на диск(как он освободится), в следствии вы не ждете ответа диска и экономите время программы(термин такой в оптимизации есть), но если у вас прозошел сбой/перезагрузка сами понимаете что данные тю-тю, так что смотрите и соизмеряйте риск/скорость, покупайте UPS и живите спокойно.

vm.swap_idle_enabled=0 (по дефолту)
переменная sysctl vm.swap_idle_enabled полезна в больших многопользовательских системах, где есть много пользователей, входящих и выходящих из системы, и множество ожидающих процессов. такие системы обычно генерируют большое количество запросов на выделение памяти. включение этой переменной и настройка задержки выгрузки (swapout hysteresis, в секундах) установкой переменных vm.swap_idle_threshold1 и vm.swap_idle_threshold2 позволит освобождать страницы памяти, занятые ожидающими процессами, более быстро, чем при нормальном алгоритме выгрузки. это помогает даемону выгрузки страниц. не включайте этот параметр, пока он на самом деле вам не понадобится, поскольку его действие в сущности заключается в более ранней выгрузке страниц из памяти; это повышает нагрузку на подкачку и диск. в малых системах эффект от включения этого параметра предсказуем, но в больших системах нагруженной на подкачкой этот параметр позволяет системе VM проще загружать и выгружать процессы из памяти.(из man)
от себя, в BSD есть "менеджер"(ну не помню как он называется, он часть менеджера памяти) замещения неиспользуемых страниц(он вроде устроен по принципы часов с 2 стрелками - еще посмотрю и отвечу тем кому будет интересно). в сущности(видимо) он преобразует это алгоритм в 1 стрелку(после 1 прохода идет в виртуальные страницы). так что смотрите на загрузку страниц/их замещение/использование swap. в этом может помочь vmstat, как и что я может быть опишу чуточку позже - как с инстом и работой(смешно сказать кем работаю=) ) разберусь. ваще на загруженных системах(ввод-вывод) должно помочь.

vfs.hirunningspace

переменная sysctl vfs.hirunningspace определяет число запросов записи на диск, которые могут быть поставлены в очередь. значение по умолчанию обычно подходит, но на компьютерах с большим количеством дисков вы можете увеличить его до четырех или пяти мегабайт. учтите, что установка слишком большого значения (превышающего размер буфера записи) может привести к очень значительному падению общей производительности. не делайте это значение произвольно большим! большие значения могут привести к задержкам чтения, выполняемого в то же время. есть много других переменных sysctl, относящихся к кэшированию в буфер и страничному кэшированию VM. мы не рекомендуем изменять эти значения. начиная FreeBSD 4.3, система VM делает отличную работу по автоматической самонастройке.(из man)
=) его можно(и иногда даже нужно) менять, но тут нужно проводить тонкую настройку/тестирование. так что если не уверены не трогайте.

vfs.write_behind
переменная sysctl vfs.write_behind по умолчанию установлена в 1 (включено). она указывает системе выполнять запись на носитель по кластерам, что обычно делается для больших файлов. идея в том, чтобы избежать заполнения кэша неполными буферами, когда это не увеличивает производительность. однако, это может заблокировать процессы и в некоторых случаях вам может понадобиться отключить этот параметр.(из man)
не будем вдаваться в подробности работы дисков, могу сказать тока одно - если оперируете большими файлами должно снизить нагрузку на диск.

vfs.vmiodirenable
значением переменной vfs.vmiodirenable может быть установлено в 0 (выключено) или 1 (включено); по умолчанию 1. эта переменная отвечает за метод кэширования каталогов. размер большинства каталогов невелик. они могут поместиться в одном фрагменте (обычно 1K), и могут занимать ещё меньше места (обычно 512 байт) в кэше буфера. при отключении этой переменной (при установке значения 0) буфер прокэширует только заданное число каталогов даже если у вас много памяти. при включении (при установке значения 1) эта переменная sysctl позволит использовать страничное кэширование VM, делая доступным для кэширования каталогов весь объём памяти. однако, минимальный объём памяти, используемой для кэширования каталогов стал равен объёму страницы (обычно 4 K) вместо 512 байт. мы рекомендуем оставлять эту опцию включенной, если ваш компьютер исполняет программы, манипулирующие значительным количеством файлов. примером таких программ могут быть кэширующие прокси-серверы, большие почтовые серверы и серверы новостей. обычно включение этой опции не понижает производительности, однако лучше поэкспериментировать, чтобы узнать оптимальное значение для вашей машины.(из man).
да тут вроде все сказано, от себя добавлю посмотрите на ваши приложени и какими порциями они пишут/читают данные. еще вам может помочь vmstat для анализа загруженности диска.

kern.maxfiles
я флудить небуду - просто почитайте man. немного тока напишу.
значение kern.maxfiles может быть увеличено или уменьшено в зависимости от потребностей вашей системы. эта переменная определяет максимальное число дескрипторов файлов. когда таблица дескрипторов файлов полна, в очереди системных сообщений появится сообщение “file: table is full”. это сообщение может быть прочитано с помощью команды dmesg.
даже есть такая атака - переполнение дескрипторов в /var и система встает =)) с ошибкой(Out of inode =) я уже вставал на днях ), так что читайте.

остально писать не буду - просто почитайте http://www.freebsd.org/doc/ru_RU.KO...nel-limits.html - там есть многое.

вот привожу часть(описанную sysctl), взято со ссылки http://people.freebsd.org/~adrian/sysctl.descriptions
Код:
* kern.ostype: Operating system type
* kern.osrelease: Operating system release
* kern.osrevision: Operating system revision
* kern.version: Kernel version
* kern.maxvnodes: Maximum number of vnodes
* kern.maxproc: Maximum number of processes
* kern.maxfiles: Maximum number of files
* kern.argmax: Maximum bytes of arguement to execve(2)
* kern.securelevel: Current secure level
* kern.hostname: Hostname
* kern.hostid: Host ID
* kern.proc.all: Return entire process table
* kern.file: Return file table
* kern.posix1version: Version of POSIX attempting to comply to
* kern.ngroups: Maximum number of groups a user can belong to
* kern.job_control: Whether job control is avaliable
* kern.saved_ids: Whether saved set-group/user ID is avaliable
* kern.boottime: System boottime
* kern.domainname: Name of the current YP/NIS domain
* kern.osreldate: Operating system release date
* kern.bootfile: Name of kernel file booted
* kern.maxfilesperproc: Maximum files allowed open per process
* kern.maxprocperuid: Maximum processes allowed per userid
* kern.ipc.maxsockbuf: Maximum socket buffer size
* kern.ipc.somaxconn: Maximum pending socket connection queue size
* kern.ipc.nmbclusters: Maximum number of mbuf clusters avaliable for network IO
* kern.ipc.maxsockets: Maximum number of sockets avaliable
kern.dummy: XXX This should be yanked from the source, its the old kern.maxsockbuf, wollman decided to keep the SYSCTL OID valid (but returning nothing, as kern.dummy does.)
* kern.logsigexit: Log processes quitting on abnormal signals to syslog(3)
* kern.module_path: module load search path
* kern.fast_vfork: Enable fast vfork() by using RFMEM to share address space instead of copying it
* kern.sugid_coredump: Enable coredumping set user/group ID processes
* kern.corefile: process corefile name format string
* kern.devstat.all: All devices in the devstat list
* kern.devstat.numdevs: Number of devices in the devstat list
* kern.devstat.generation: Devstat list generation
* kern.devstat.version: Devstat list version number
* vm.vmmeter: System virtual memory statistics
* vm.loadavg: Machine loadaverage history
* vm.stats.sys.v_swtch: Context switches
* vm.stats.sys.v_trap: Traps
* vm.stats.sys.v_syscall: Syscalls
* vm.stats.sys.v_intr: Hardware Interrupts
* vm.stats.sys.v_soft: Software Interrupts
* vm.stats.vm.v_vm_faults: VM faults
* vm.stats.vm.v_cow_faults: COW faults
* vm.stats.vm.v_cow_optim: Optimized COW faults
* vm.stats.vm.v_zfod: Zero fill
* vm.stats.vm.v_ozfod: Optimized zero fill
* vm.stats.vm.v_swapin: Swapin operations
* vm.stats.vm.v_swapout: Swapout operations
* vm.stats.vm.v_swappgsin: Swapin pages
* vm.stats.vm.v_swappgsout: Swapout pages
* vm.stats.vm.v_vnodein: Vnodein operations
* vm.stats.vm.v_vnodeout: Vnodeout operations
* vm.stats.vm.v_vnodepgsin: Vnodein pages
* vm.stats.vm.v_vnodepgsout: Vnodeout pages
* vm.stats.vm.v_intrans: In transit page blocking
* vm.stats.vm.v_reactivated: Reactivated pages
* vm.stats.vm.v_pdwakeups: Pagedaemon wakeups
* vm.stats.vm.v_pdpages: Pagedaemon page scans
net.inet.ip.portrange.lowfirst: First port for 'trusted' socket binds
net.inet.ip.portrange.lowlast: Last port for 'trusted' socket binds
net.inet.ip.portrange.first: First port for normal socket binds
net.inet.ip.portrange.last: Last port for normal socket binds
net.inet.ip.portrange.hifirst: First port for 'high' socket binds ( XXX huh? :)
net.inet.ip.portrange.hilast: Last port for 'high' socket binds
* net.inet.ip.forwarding: Enable IP forwarding between interfaces
* net.inet.ip.redirect: Enable sending IP redirects
* net.inet.ip.ttl: Maximum TTL on IP packets
* net.inet.ip.rtexpire: Default expiry time on dynamically learnt routes
* net.inet.ip.rtminexpire: Minimum time to attempt to hold onto dynamically learnt routes
* net.inet.ip.rtmaxcache: Upper limit on dynamically learnt routes
* net.inet.ip.sourceroute: Enable forwarding source routed IP packets
* net.inet.ip.intr_queue_maxlen: Maximum size of the IP input queue
* net.inet.ip.intr_queue_drops: Number of packets dropped from the IP input queue
* net.inet.ip.stats: IP statistics (struct ipstat, netinet/ip_var.h)
* net.inet.ip.accept_sourceroute: Enable accepting source routed IP packets
* net.inet.ip.fastforwarding: Enable flow-based IP forwarding
* net.inet.ip.mtu: Default MTU
* net.inet.ip.fw.debug: Enable printing of debug ip_fw statements
* net.inet.ip.fw.one_pass: Only do a single pass through ipfw rules when using divert(4)
* net.inet.ip.fw.verbose: Log matches to ipfw rules
* net.inet.ip.fw.verbose_limit: Set upper limit of matches of ipfw rules logged
* net.inet.tcp.rfc1323: Enable rfc1323 (high performance TCP) extensions
* net.inet.tcp.rfc1644: Enable rfc1644 (TTCP) extensions
* net.inet.tcp.mssdflt: Default TCP Maximum Segment Size
* net.inet.tcp.stats: TCP statistics (struct tcpstat, netinet/tcp_var.h)
* net.inet.tcp.rttdflt: Default maximum TCP Round Trip Time
* net.inet.tcp.sendspace: Maximum outgoing TCP datagram size (frag or total pkt?)
* net.inet.tcp.recvspace: Maximum incoming TCP datagram size (frag or total pkt?)
* net.inet.tcp.pcblist: List of active TCP connections
* net.inet.tcp.log_in_vain: Log all incoming TCP connections
* net.inet.tcp.delayed_ack: Delay ACK to try and piggyback it onto a data packet
* net.inet.tcp.pcbcount: Number of active PCBs
* net.inet.tcp.always_keepalive: Assume SO_KEEPALIVE on all TCP connections
* net.inet.udp.stats: UDP statistics (struct udpstat, netinet/udp_var.h)
* net.inet.udp.maxdgram: Maximum outgoing UDP datagram size
* net.inet.udp.recvspace: Maximum incoming UDP datagram size
* net.inet.udp.pcblist: List of active UDP sockets
* net.inet.udp.log_in_vain: Log all incoming UDP packets
* net.inet.raw.maxdgram: Maximum outgoing raw IP datagram size
* net.inet.raw.recvspace: Maximum incoming raw IP datagram size
* net.inet.raw.pcblist: List of active raw IP sockets
* debug.debugger_on_panic: Run debugger on kernel panic
hw.machine: Machine class
hw.model: Machine model
* hw.ncpu: Number of active CPUs
* hw.byteorder: System byte order
hw.physmem: Physical memory in system
hw.usermem: Physical memory avaliable to user processes
* hw.pagesize: System memory page size
hw.floatingpoint: Hardware floating point support present
hw.machine_arch: System architecture
* machdep.do_dump: Do coredump on kernel panic
* user.cs_path: PATH that finds all the standard utilities
* user.bc_base_max: Max ibase/obase values in bc(1)
* user.bc_dim_max: Max array size in bc(1)
* user.bc_scale_max: Max scale value in bc(1)
* user.bc_string_max: Max string length in bc(1)
* user.coll_weights_max: Maximum number of weights assigned to an LC_COLLATE locale entry
* user.line_max: Max length (bytes) of a text-processing utility's input line
* user.re_dup_max: Maximum number of repeats of a regexp permitted when using interval notation
* user.posix2_version: The version of POSIX 1003.2 with which the system attempts to comply
* user.posix2_c_bind: Whether C development supports the C bindings option
* user.posix2_c_dev: Whether system supports the C development utilities option
* user.posix2_fort_dev: Whether system supports FORTRAN development utilities
* user.posix2_fort_run: Whether system supports FORTRAN runtime utilities
* user.posix2_localedef: Whether system supports creation of locales
* user.posix2_sw_dev: Whether system supports software development utilities
* user.posix2_upe: Whether system supports the user portability utilities
* user.stream_max: Min Maximum number of streams a process may have open at one time
* user.tzname_max: Min Maximum number of types supported for timezone names

фух, бля-дописал. это было не просто, надеюсь вам поможет.

пысы вопросы в стиле а у мя не работает - не принимаются, принимаются вопросы в стиле у мя вот это, пробовал то и се результат такой, а хочу вот так.

пысысы как видно все - это всего лишь мануал пропущенный через опыт оптимизации платформы(пускай и не большой, но наработанный синяками и ссадинами), так что набивайте свои и тюнингуйте по-полной

пысысы линка в тему http://www.opennet.ru/tips/info/847.shtml
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 06-07-2006, 23:28 Ссылка на пост    #33
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

Вот решил воспользоваться свободным вечерком и написать данный тутор о несомненно полезной и нужной в хозяйстве вещи - sudo. Это программа часть портов и находится по адресу /usr/ports/security/sudo. Если вы внимательно читали этот тред, то у вас уже должен быть опыт в установке программ из портов, обновлении жизненно важных портов: ssh, named и openssl, а так же
юзании portaudit для целей проверки вашего дерева портов(о кста ща сам проверюсь... проблем не найдено). Все это несомненно
важно и нужно, но не стоит останавливаться на достигнутом и почевать на лаврах - идем дальше. При правильно настройке групп пользователей вы можете забыть пароль администратора и вспоминать его только при обновлении системы или портов(если они у вас не по крону обновляются), сделаем еще один шаг в освоении нужного дела-забытия рутового пасса. Зачем мне все это, спросите вы себя... ответ очень простой - что может сделать враждебный код из под рута, а что из под совершенно бесправного
пользователя? разница налицо? (ой бл* случайно закрыл окно - придется переписывать =/ ) Sudo является своебразным посредником между пользователем и правами root - вы можете разрешить пользователю выполнять любую команду от любого имени в системе, при этом все логгируется и если что, всегда можно вычислить накосячевшего злодея. Вы можете тонко назначить определенные доступные команды для пользователя... блин-отвлккают... причем выполняемые не только от root, но и от любого другого пользоватлея в системе. оК - хватит теории, попробуем продукт на зуб
1) Установка sudo
Даже не смешно =]
2) Настройка(рассматриваем на примере FreeBSD)
в папке /usr/local/etc лежит файл sudoers, который отвечает за разрешенные команды всем пользователям, НИКОГДА не редактируйте его руками, ибо как мона что-то там вписать неправильно и вы потеряете доступ к системе(ессно если у вас нету доступа к su - т.е. вы не в группе wheel) саму структуру sudoers можно посмотреть в
#man sudoers
Для его редактирования используется visudo.
#visudo -c -чекнуть на правильность ваш sudoers, остальные ключи по
#man visudo
У visudo в интерактивном режиме доступны клавиши:
Цитата: >
visudo анализирует sudoers-файл после редактирования и не сохранит изменения если допущены ошибки. Найдя ошибку, visudo напечатает сообщение содержащие номер строки, в которой допущена ошибка и пользователь увилит "What now?"(что дальше?) запрос. В этот момент пользователь может нажать "e" для правки sudoers, "x" для выхода без сохранения или "Q"-опция - выход и сохранение."Q"-опция используемая с особой осторожностью, потому что если допущена ошибка, вы ниполучите доступ к sudo, пока ошибка не будет поправлена(ИМХО, глупо - можно просто иметь запасной акаует из группы wheel чтобы сначала su к нему, а потом su на root и все поправить). Если "e" введено для редактирования sudoers-файла после анализа ошибок курсор установится на строку, в которой была допущена ошибка(если редактор поддерживает эту опцию).
Вот собстна краткий перевод функционала sudoers, кстати редактор берется из $EDITOR, т.е. по умолчанию vi(а вы еще не в курсе, что команды этого
редактора НАДА знать всем). Редактор по умолчанию можно посмотреть так:
#echo $EDITOR
Базовый синтаксис примерно таков
username host=command
username - имя пользователя который может выполнять command(кстати необходимо указывать полный путь до команды ибо как любой смышленный прользователь сможет изменить свой $PATH и выполнять совсем не то, что вы ему прописали с провами даже root) на host Существует абстракция ALL, соответствующая всем пользователям/хостам/командам
wapa ALL=/usr/bin/something
Скажем ваш пользователь wapa на serv1 может выполнять command1 и command2, а на serv2 он имеет полный доступ, а на serv3 от имени пользователя user1 он может запустить command3 и command1(это тажа команда НО НА ДРУГОМ СЕРВЕРЕ) пишем:
wapa serv1=/usr/sbin/command1, /usr/bin/command1
wapa serv2=ALL
wapa serv3=(user1) /usr/local/bin/command3, /usr/sbin/command1
Если ваша строка слишком длинна используйте символ "|"
user serv=/path/command1 |
/path/command2
Помните, что неправильная настройка sudo может открыть дырочку в вашей системе безопастности, в то время как граматная настройка может серьезно поднять шансы вашей системы в противостоянии злоумышленникам. Сделаем себе аккаунт без привелегий, а через visudo сделаем примерно вот что
wapa ALL=ALL
пользователю wapa разрешили делать все на всех машинах. При первом использрвании sudo попросит ввести ВАШ(а не root) пароль, далее в течении 5 мин вы будете работать с sudo без пароля. по истечении 5 мин его придется ввести заново. Введем
Код:
#sudo -l
Password:
User wapa may run the following commands on this host:
     (root) ALL
Наш wapa может выполнять все комманды =] посмотрим, как мы укрепили безопастность
Код:
#su
su: Sorry
sudo su
laptop#
Не буду приводить того, что wapa не в группе wheel
Так же возможны команды
Код:
#sudo -u user1 command1
Выполнять от user1 команду command1
А теперь посмотрим, как контролировать действия пользователей
Код:
#sudo tail -n 10 /var/log/messages
Jul  6 13:42:46 laptop sudo:     wapa : TTY=ttyp2 ; PWD=/usr/home/wapa/.fluxbox ; USER=root ; COMMAND=/usr/local/sbin/portaudit Fda
Jul  6 13:43:00 laptop sudo:     wapa : TTY=ttyp2 ; PWD=/usr/home/wapa/.fluxbox ; USER=root ; COMMAND=/usr/sbin/portsnap fetch update
Jul  6 13:45:14 laptop sudo:     wapa : TTY=ttyp2 ; PWD=/usr/local/bin ; USER=root ; COMMAND=/usr/bin/ldd sudo
Jul  6 14:48:04 laptop su: BAD SU wapa to root on /dev/ttyp1
Jul  6 14:48:17 laptop sudo:     wapa : 3 incorrect password attempts ; TTY=ttyp1 ; PWD=/usr/home/wapa ; USER=root ; COMMAND=/usr/bin/su
Jul  6 14:48:27 laptop sudo:     wapa : TTY=ttyp1 ; PWD=/usr/home/wapa ; USER=root ; COMMAND=/usr/bin/su
Jul  6 15:34:44 laptop sudo:     wapa : TTY=ttyp2 ; PWD=/usr/bin ; USER=root ; COMMAND=list
Jul  6 15:37:32 laptop su: BAD SU wapa to root on /dev/ttyp2
Jul  6 15:37:40 laptop su: BAD SU wapa to root on /dev/ttyp2
Jul  6 15:38:29 laptop sudo:     wapa : TTY=ttyp2 ; PWD=/usr/home/wapa ; USER=root ; COMMAND=/usr/bin/su
Вот и все, мы научились примитивно настраивать sudo и контролировать какая редиска нам испортила что-то. Теперь можно просто забыть пароль root =)
И спокойно жить))
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 07-07-2006, 12:34 Ссылка на пост    #34
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

На форуме с: 22.07.03
Провел: 2мес. 1д. 5ч. 44мин.


флуд не в тему:

по поводу забыть root passwd немного humor

никогда не заходил root'ом
правлю все конфиги в /etc и даже мастер-пассворд из под юзера не пользуясь всякими там su и прочими sudo
также пересобираю и меняю ядро

метод прост
когда система вдруг начинает требовать какой то дурацкий пароль какого то root'а (который я забыл сразу после установки )
- наносишь два мощных удара рукой по системнику сверху - и после паузы - мощный пинок ногой сбоку - система пугается и пускает тебя дальше
очевидно ИИ заложенный втихаря разработчиками понимает что дальше будет хуже...
P.S. ИИ - Искуственный Интеллект для тех кто в танке


Редактировалось Smithson
07-07-2006 14:51.
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 26-09-2006, 22:36 Ссылка на пост    #35
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

Не использовать cvsup - в пень его, на 333 "пне" он компилился со всеми пакетами более 3 часов. В место этого "чуда" используем компоненты в поставке системы

1) Порты
Утилита portsnap. Работает примерон так
1й раз
Код:
#portsnap fetch
#portsnap extract
#portsnap update
Все остальные
Код:
#portsnap fetch update

2) Система
Утилита csup. Сиснтаксис конфига как у cvsup-supfile(если честно я этот же файл и использую), так что смотрите, отдельную тему про обновление системы может напишу позже, ибо как уже грабли съел на этой капусте.

ПыСы
Справедливо для 7-current ветки, тоесть в 6.1 p0 я этого не нашел

Редактировалось cyberb
27-09-2006 17:34.
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 27-09-2006, 11:24 Ссылка на пост    #36
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

На форуме с: 22.07.03
Провел: 2мес. 1д. 5ч. 44мин.

плотно юзаю portsnap уже пару лет, очень удобная вещь...
автор portsnap так же разработал freebsd-update систему бинарного обновления
работающую по тому же принципу... данная тулза равно как и portsnap уже содержится в base system, в ближайшее время попробую начать использовать...
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 27-09-2006, 14:15 Ссылка на пост    #37
Macmep
Гость

Нет голосов

Сообщений: n/a

portsnap в 5.5 и 6.х уже живет в стандартном билде с конфигом /etc/portsnap.conf
По сему с дисков установочных уже давно никакие пакаджи не ставлю. cvsup-without-gui тежеленный из-за ezm. Есть правда старенький cvsup-lite, крохотный, но он скомпилен с либами от 4.х и не стартует. Можно правда compat4х для него прикрутить и тогда все оки-доки :)
  Вставить выделенное      Ответить с цитированием
Старый 09-12-2006, 01:30 Ссылка на пост    #38
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

Эмм, даже не знаю как начать. Как-то на десктопе плотно перешел на BSD и не жалею, а када жалею конекчусь к терминалу w2k3 и ни в чем се не отказываю. И так набор портов, который я юзаю для рутины:

1) Читем chm файлы - книги, etc
Port: xchm-1.9
Path: /usr/ports/deskutils/xchm
Info: windows HTML Help (.chm) viewer for UNIX

2) Читаем pdf - книги, etc
Port: acroread7-7.0.8,1
Path: /usr/ports/print/acroread7
Info: Adobe Reader for view, print, and search PDF documents (ENU)

3) Слушаем mp3 в стиле Winamp
Port: xmms-1.2.10_6
Path: /usr/ports/multimedia/xmms
Info: X Multimedia System --- An audio player with a Winamp GUI

4) Готовим схемы/графики
Port: dia-0.95,1
Path: /usr/ports/graphics/dia
Info: Diagram creation program, similar to Visio
Maint: gnome@FreeBSD.org

5) Смотрим фильмы(и двд тоже)
Port: mplayer-0.99.8_5
Path: /usr/ports/multimedia/mplayer
Info: High performance media player/encoder supporting many formats
Maint: riggs@rrr.de

6) Готовим документы - текстовый процессор(мона использовать и OpenOffice)
Port: abiword-2.4.5_2
Path: /usr/ports/editors/abiword
Info: An open-source, cross-platform WYSIWYG word processor


остальное потом))
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 09-12-2006, 14:26 Ссылка на пост    #39
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

На форуме с: 22.07.03
Провел: 2мес. 1д. 5ч. 44мин.

В дополнение к сказанному...
Любителям десктопов под FreeBSD + KDE посвящается продолжение.

Смотрим мультимедиа файлы (фото видео) в стиле ACDSee
Port: gwenview-1.4.0
Path: /usr/ports/graphics/gwenview
Info: An image viewer and browser for the KDE environment
WWW: http://gwenview.sourceforge.net

Бродим по системе в стиле Total Commander
Port: krusader-1.70.1
Path: /usr/ports/x11-fm/krusader
Info: A two window file-manager for KDE, like midnight or norton commander
WWW: http://krusader.sourceforge.net

Пишем диски в стиле Nero
Port: k3b-0.12.17
Path: /usr/ports/sysutils/k3b
Info: A CD/DVD recording GUI for KDE
WWW: http://www.k3b.org/

Просто аська
Port: sim-im-devel-0.9.5.1538
Path: /usr/ports/net-im/sim-im-devel
Info: Plugin-based instant messenger
WWW: http://sim-im.org/

В качестве офисного пакета все же OpenOffice
Port: openoffice.org-2.2.20061124
Path: /usr/ports/editors/openoffice.org-2-devel
Info: Integrated wordprocessor/dbase/spreadsheet/drawing/chart/browser(developer version)
WWW: http://www.openoffice.org/

Вот пока так
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 21-12-2006, 10:08 Ссылка на пост    #40
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

На форуме с: 22.07.03
Провел: 2мес. 1д. 5ч. 44мин.

А с недавнего времени в качестве десктопа используем 7-CURRENT
[silver@FreeBSD] /usr/home/silver# uname -a
FreeBSD FreeBSD.domain.local 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Tue Dec 19 09:45:38 EET 2006 root@FreeBSD.domain.local:/usr/obj/usr/src/sys/SILVER i386
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 18-01-2007, 01:09 Ссылка на пост    #41
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

С весны на карент))

Есть очень интересный вопросец - управление виндовыми серверами с FreeBSD. Как то Мастер привел это как отмазку тому факту, что у него на Лапте стоит XP, что-то вроде не рулитсо винда, но она-то на самом деле рулитсо rdesktop-ом Была там проблемка - русский шрифт вот НИКАК не врубалсо у меня. Седня в 1.06 ночи встал вопрос подрубления русской раскладки ребром в шею - выполнение ДЗ по дискретной мате, а на винды я садитсо не хочу - там неудобное место и ваще моник голяк. Углубившись в маны нашел таки решение, публикую для широкой общественности
Код:
> cd /usr/ports/net/rdesktop/work/rdesktop-1.5.0/keymaps/
> cp "en-us" /usr/home/user/.rdesktop/keymaps/
> cp ru /usr/home/user/.rdesktop/keymaps
> rdesktop -k ru -k en-us 192.168.1.2

И рулите)))) Би-бииии =))

Переключение у мя работает только када я щелкну внизу и выберу ручками RU, т.к. на данной комбинации в FreeBSD висит переключение

Редактировалось cyberb
18-01-2007 17:33.
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 18-01-2007, 01:19 Ссылка на пост    #42
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

Када я русифицировал свой environment системные шрифты(это менюшки всех программ, скажем XMMS) стали просто микроскопическими. Полечилось вот так:
Код:
> cd /usr/local/share/themes/Default/gtk/
> cat gtkrc.ru
style "gtk-default-ru" {
       fontset = "-*-helvetica-medium-r-normal--14-*-*-*-*-*-koi8-r,\
                  -*-arial-medium-r-normal--14-*-*-*-*-*-koi8-r,\
                  -*-terminus-medium-r-normal-*-12-*-*-*-*-*-koi8-r"
}
class "GtkWidget" style "gtk-default-ru"
include "/usr/local/share/themes/Default/gtk/gtkrc"
> 

Я просто добавил в конец реальный шрифт(terminus), который выбрал с помощью программы xfontsel(в стандартной поставке). Кста, остальные шрифты мона удалить.

Рулите дальше)))
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 25-01-2007, 20:38 Ссылка на пост    #43
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

Никто наш раздел не читает =(( Ну и фиг с ним, если у самого памят отшибнет - будет где посмотреть.

Надоело мне как-то давно ситуация, когда устанавливаешь порт, а он тянет за собой еще тучу всякого барахла и научился я немного этим процессом управлять - часта man-знания.

Итак из того что все известно:
Код:
# make install
# make deinstall
# make clean
Установить, удалить, почистить после сборки(место освобождает удаляя всякий шлак)
А теперь не совсем известные директивы(ну которыми я пользуюсь):
Код:
# make depends
# make missing
# make config
# make rmconfig
# make patch
# make fetch
Собрать зависимости(скомпилировать), вывести порты, которых нехватает для сборки данного порта(я особенно в X смотрю - а то некоторые прикалываются списоками в 2 экрана), сконфигурировать сборку(при установке доступны некоторые манипуляции с тем, каким вы хотите выдеть порт, если вы устанавливали порт и сейчас хотите его переустановить с другими флагами вам это поможет), удалить соотв конциг сборки порта, применить патчи к исходнику, выкачать порт, но не компилить

Вот вроде все чем я пользуюсь в работе с портами.
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 25-01-2007, 22:03 Ссылка на пост    #44
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

На форуме с: 22.07.03
Провел: 2мес. 1д. 5ч. 44мин.

cyberb я читаю...
вот мои 5 копеек на счет портов...
полезные переменные окружения
например MASTER_SITE_OVERRIDE позволяет в первую очередь загружать distfiles с указанного источника, по умолчанию используется содержжимое переменной MASTER_SITES из Makefile порта
для меня ближе ftp2.ru.FreeBSD.org поэтому в профайле шелла есть следующая запись

MASTER_SITE_OVERRIDE=http://ftp2.ru.FreeBSD.org/pub/FreeBSD/ports/distfiles/; export MASTER_SITE_OVERRIDE

а вообще очень много полезного можно подчеркнуть их /usr/ports/Mk
например все список переменных и таргетов для make содержится в bsd.port.mk
IMHO очень полезно для ознакомления
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 25-01-2007, 22:16 Ссылка на пост    #45
cyberb
Продвинутый серфер
Продвинутый серфер


Сообщений: 2,405
На форуме с: 05.07.05
Провел: 3нед. 1д. 11ч. 52мин.

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

раз такая пьянка)) то поехали по make.conf. для начала есть азбука, вызываетсо командой
Код:
hosteg# vi /usr/share/examples/etc/make.conf
там читаетсо нечто умное, вот мой пример:
Код:
hosteg# cat /etc/make.conf
WITHOUT_X11=    yes
CFLAGS=-O2 -pipe

SUP_UPDATE= yes
SUP=            /usr/local/bin/cvsup
SUPFLAGS=       -g -L 2
SUPHOST=        cvsup4.ru.FreeBSD.org
SUPFILE=        /root/cvsup/cvs-supfile
# added by use.perl 2007-01-25 17:46:21
PERL_VER=5.8.8
PERL_VERSION=5.8.8

там еще мона вкрутить вот это:
Код:
#PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile
#DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile

но мне это не нада: порты идут через portsnap, а доки через:
Код:
hosteg# cat /root/cvsup/cvs-supfile 
*default host=cvsup4.FreeBSD.org
*default base=/usr
*default release=cvs tag=RELENG_6_1
*default delete use-rel-suffix

*default compress
src-all
doc-all
hosteg#

пысы бгг, даже не спросили зачем это все делаем - бггг
а вот примерно зачем:
Код:
hosteg# cd /usr/src/
hosteg# make update
--------------------------------------------------------------
>>> Running /usr/local/bin/cvsup
--------------------------------------------------------------
понеслась

удобнее, не правда ли?))

рулим дальше

пысысы
пример сильвера
Код:
# Start by downloading from a Danish mirror
MASTER_SITE_BACKUP?=    \
	ftp://ftp.dk.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

# Make FreeBSD start getting distfiles (source for ports) from local
# freebsd mirror
MASTER_SITE_OVERRIDE?=  ${MASTER_SITE_BACKUP}

# Try mirrors close to Denmark first.
MASTER_SORT?=	.dk sunet.se .se dk.php.net .no .de mirrorservice.org \
	.uk .at heanet.dl.sourceforge.net .nl

это с дневника админа freebsd.org =))

пысысысы ща мастер напишет, что я кругом напортачил)))
и то что написано ниже сильвером, есть выше и подробнее by cyberb feat мастер

Редактировалось cyberb
25-01-2007 22:48.
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

vB коды Вкл.
[IMG] код Вкл.
Быстрый переход





Предупреждение: Никакого детского порно в запросах и ссылках.
Любое упоминание детского порно в контексте будет пресекаться.


Часовой пояс GMT +4, серверное время: 03:46.