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



Ответ
Опции темы
Старый 04-01-2005, 15:39 Ссылка на пост    #16
Macmep
Гость

Нет голосов

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

Глава 4. 3proxy - джентльменский набор сервисов.

Итак, внимательно изучив содержание предыдущих глав, мы научились создавать chroot-окружение и запускать в нем процессы и овладели механизмом авторизации клиентских сертификатов в openssl. Stunnel позиционируется самими разработчиками, как универсальный ssl-wrapper и теперь я хочу остановиться на некоторых аспектах его применения. Как я уже упоминал ранее, заняться этой тулзой меня подтолкнула необходимость найти красивое решение и помочь очень хорошему человеку проскочить через прокси. Имея в руках уже отлаженный ssl-wrapper с настроенной авторизацией и пропатченным виндовым клиентом, я занялся поиском необходимых мне сервисов. Верней не совсем так. :) Сперва я быстренько собрал пресловутый squid в другом chroot-окружении и прибиндил его к локалхосту на той же машине, где уже был поднят сервер stunnel. Таким образом, мой приятель, проскакивая через свой прокси туннелем, выныривал из него уже на мой прокс, естественно не содержащий никаких рестриктов, и благополучно пользовался ресурсами, заткнутыми на его локальной проксе. Но мне хотелось большего =)) Поэтому я занялся поиском socks-сервера. Бесплатных соксов немало в портах FreeBSD, оставалось только на каком-либо из них остановиться. И тут, все в тех же портах, я наткнулся на просто великолепный, с моей точки зрения, набор программ, которому решил выделить, пусть маленькую, но целую главу в этом туторе. :))
В портах это чудо живет здесь: /usr/ports/net/3proxy. Вот комментарий к порту:

COMMENT= Proxy servers set (support HTTP(S), FTP, SOCKS, POP3, TCP & UDP)

Догадались? :o)) Так-то! Далее – вот линк на страницу разработчика: http://www.security.nnov.ru/soft/3proxy/ . Товарищ 3APA3A, написавший это чудо природы, заслуживает массу респектов и всяческих других знаков признания и уважения. :)) Сам автор позиционирует свое творение в первую очередь, как законченный продукт 3proxy, включающий в себя систему авторизации, ведения подробных логов и сервисы PROXY, SOCKS и POP3proxy (подробности настроек здесь http://www.security.nnov.ru/soft/3proxy/howtor.asp ). Но лично меня привлекли отдельные бинарники каждой службы. Пусть я не кодер, но в первом приближении – это качественно написанные и оптимизированные продукты, которые прекрасно себя зарекомендовали в процессе эксплуатации. Достоинства:
1. Чрезвычайно легкая компиляция, как на никсе, так и на винде
2. Простота настройки и запуска
3. Великолепная функциональность (ни одна из программ, желающих, то SOCKS4, то SOCKS4.5, то SOCKS5, ни разу не ругнулась)
4. Простота запуска в chroot-окружении.
5. Универсальность комплекта.
Я не собираюсь в рамках данной статьи подробно останавливаться на настройках этих программ, запуске их в chroot и т.д. Изложенного материала более чем достаточно для самостоятельного решения этих задач. Заинтересовавшиеся могут сами все это проделать и поделиться опытом с остальными в разделе. =))

Ниже приведу список испытанных лично мной сервисов с кратким описанием достоинств решений:
1. stunnel --> squid (полноценный удаленный прокси-сервер с ssl-авторизацией и шифрованием трафика меджу сервером и клиентом)
2. stunnel --> socks (сокс-сервер со всеми достоинствами предыдущего)
3. mysql-client --> stunnel --> mysql-server (удаленное управление сервером MySQL , здесь туннель обеспечивает дополнительный уровень авторизации и закрывает аккаунт юзера MySQL от возможного утягивания шнифером)
4. stunnel --> tcppm --> MS SQL Server (удаленное администрирование MS SQL Server, расположенного в локальной сети, в которой в качестве рутера работает FreeBSD (router, NAT, firewall), через туннель и TCP портмаппер)
5. stunnel --> pSyBNC --> stunnel --> IRC Server (SSL) (полностью шифрованный канал между клиентом и IRC-сервером через IRC-баунсер)
6. stunnel --> tcppm --> MS Terminal Server (аналогично MS SQL Server, как дополнительное средство защиты удаленных клиентов и самого терминал-сервера)
7. stunnel --> httpd (авторизация пользователей веб-ресурса под управлением apache)

Полагаю, что список можно будет продолжить и расширить, все зависит от поставленной задачи. Например, без проблем можно таким макаром настроить почтовые сервисы. :o))

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

Материалы, использованные в процессе подготовки статьи:

1. manual pages :))
2. http://www.securitylab.ru/?ID=39981
3. http://www.securitylab.ru/?ID=38966
4. http://www.jestrix.net/tuts/sslsocks.html
5. www.stunnel.org
6. http://www.webscript.ru/stories/04/05/29/2604693
7. http://www.security.nnov.ru/soft/3proxy
8, 9, 10… голова, руки, напильник, паяльник, etc…

Благодарности:

Всеразличные гритсы, прянички и леденцы в пакетиках получают:

Во-первых, мой друг 0x90 за беззаветную помощь в процессе борьбы с виндовозом и исходниками на С.
Во-вторых, администрация форума W&PBBS, предоставившая специальный раздел для публикации такого рода материалов.
В-третьих, Государственная Дума РФ и лично Президент РФ, давшие мне в начале года то количество свободного времени, которое потребовалось на написание этой статьи.

Еще раз Всех с Наступившим Новым Годом!!! :)))

Искренне Ваш, Macmep

Редактировалось Macmep
05-01-2005 14:18.
  Вставить выделенное      Ответить с цитированием
Старый 11-01-2005, 10:06 Ссылка на пост    #17
KillerLoo
W&P Team
Имею пределы
 
KillerLoo

На форуме с: 29.10.02
Провел: 1мес. 2нед. 4д. 18ч. 46мин.

Это же надо ... Все таки клево что есть время собрать плоды работы продолжительностью в целый год и описать. Гранд респект мессир :о))
KillerLoo вне форума   Вставить выделенное      Ответить с цитированием
Старый 12-01-2005, 01:45 Ссылка на пост    #18
cmapuk
Кибермозг Силиконович Штунц
 
cmapuk


Сообщений: 687
На форуме с: 29.04.03
Провел: 2д. 12ч. 7мин.

хороший даджест.
Надо прилепить, чтобы народ чюда отсылать, когда одни и те же faq-овые вопросы задают
cmapuk вне форума   Вставить выделенное Отправить сообщение для  cmapuk с помощью ICQ      Ответить с цитированием
Старый 23-01-2005, 22:49 Ссылка на пост    #19
0x90
Парсер интернета
 
0x90


Сообщений: 157
На форуме с: 02.06.04
Провел: 1д. 2ч. 45мин.

Ну вот решил я собственно с подачи Мастера написать незатейливую статеку по мэйканию соответствующей модернизации такой программы как stunnel, а точнее его виндовой версии. Сразу скажу возможны ошибки и неточности, но у автора все сработало, так что вот так.. 8). Итак приступим.
Что нам нужно:
- stunnel версии 4.05 - последняя на данный момент.
- OpenSSL в принципе любой версии.
Автор не нашел неподходящий версии.
- Патч для пооддержи CONNECT Proxy с оффсайта стуннела.
- Компилятор ANSI C. Варианты: MinGW, Visual C, CYGWIN.
Я рекомендую вынужден был юзать VC. Но об этом ниже..
- Перл интерпретатор. Например Active Perl.
- MASM32 версия восемь подойдет.
- MSYS для утилиты patch. Ну и вообще. Никсовый шелл никогда
не помешает.

1. Мэйкаем OpenSSL.
Сразу скажу о ньюансах. Эта часть не столь обязательна.
Ибо в нете можно найти и биннарный версии дллок OpenSSL,
которые еще поставляются и в инсталяторе!! Посмотрев, на
это безобразие, я все же решил, что собрать самому приятние.
Хотя если у вас нет времени или желания, то вперед за
биннарниками. Мы же продолжим. Я слил с www.openssl.org
версию 0.9.7.е - последняя версия естественно с исправлеными
багами.. Распаковал я его на диск C:\, почитал ридмис
(INSTALL.W32) и понял,что ОпенССЛ можно мэйкать оффициально
c помощью вот этого:
- Visual C++
- Borland C
- GNU C (Cygwin or MinGW).
Я выбрал MinGW, как пресдставителя GCC под винды.. Cygwin
отброшен был сразу из-за того что пришлось бы таскать его
библиотеки. А длл юзпющаю еще одну длл к меня в памяти не
помещается. 8) Борланд Си - морально устарел и был препровожден
в дом для престарелых компиляторов вместе с его соседом
Фортраном77. Визуал Си - имеет баги (автор убедился лично),
и был отправлен в желтый дом на последующее имправление.
Оставшийся же целым MinGW был усажен на винт для последующих
разгоров в коммандной обстановке, забудьте о графическом
интерфейсе здесь он не понадобится.. Так вот почитал я ман по
мэйканию ОпенССЛ с помощью MinGW. Хрен получилось - виснет...
Ладно пойдем стандарным методом
Код:
./Configure mingw
make depend
make
Опять таки на этапе конфигурации виснет.. 8(
Вообщем в кратце в течении нескольких часов опытов у меня получилось
смэйкать неоптимизированную и безасмовую версиию OpenSSL...
Нам этого мало. Мы будем мэйкать полноценную версию, но
к сожалению лишь в Visual C.. Как говорится пржняя версия была
лучше в плане сборки.
Итак у меня стоит VC 6.0 - вам желаю примерно того же.
МАСМ у меня тоже стоит. Теперь народ напомню насчет PATH.
МАСМ ДОЛЖЕН БЫТЬ ПРОПИСАН В PATH!! Чтобы его можно было найти.
Вот мой PATH:
Код:
C:\documents and Settings\Администратор>echo %PATH%
c:\masm32\bin;c:\msys\1.0\bin;c:\mingw\bin;C:\Perl\bin\;C:\WINNT\system32;C:\WIN
NT;C:\WINNT\System32\Wbem;C:\PROGRA~1\Borland\Delphi6\Bin;C:\PROGRA~1\Borland\De
lphi6\Projects\Bpl;c:\masm32\bin;c:\msys\1.0\bin;c:\mingw\bin;C:\Program Files\M
icrosoft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Stud
io\Common\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\P
rogram Files\Microsoft Visual Studio\VC98\bin
Теперь приступим к сборке. У меня OpenSSL валяется на c:\openssl
Код:
cd \openssl

//Конфигурируем.
perl Configure VC-WIN32

//Ассемблируем модули.
ms\do_masm.bat

//Собираем все вместе.
nmake -f ms\ntdll.mak

//Переходим в папку с результатами.
cd out32dll

//Проводим тесты.
..\ms\test

Если тесты у вас прошли успешно, то переходим на следущую стадию.
Иначе у вас есть два варианта: копаться самому или скачать бинарники
библиотек. А нам вперед и вниз. Не забудьте скинуть динамические
библиотеки в %windir%\system32, а статические в директорию к прочим
либам вашего компилятора. При этом переименуйте библиотеки вида
ssleay32.lib в libssl32.a и libeay32.lib -> libeay32.a
Это надо для формата MinGW библиотек.


2. Патчим stunnel.
Как обычно все на самом деле не так просто: стуннел хоть и вещь
классная, но работу с CONNECT proxy не поддерживает. Так что придется
править. На данный момент на сайте валялось 2 патча, которые
добавляли столь нужную нам опцию. Вы спросите какой я взял -
конечно же оба - все равно МАСТЕРу тестить недолго 8).
Патчи:
connect-proxy.mwald.patch
connect-proxy_dunbar.patch
Патчи как известно ставятся коммандой patch 8).
Чтобы не мучатся я распаковал стуннел в две разные папки на диске c:\
Код:
C:\>dir stu*
 Том в устройстве C не имеет метки.
 Серийный номер тома: 18DF-2BE5

 Содержимое папки C:\

14.02.2004  05:26              341x191 stunnel-4.05.tar.gz
23.01.2005  21:23       <DIR>          stunnel.dunbar.patch
23.01.2005  21:22       <DIR>          stunnel.mwald.patch
               1 файлов        341x191 байт
               2 папок   1x132x142x592 байт свободно
И раскидал сответствующие патчи по папкам в подпапку src.
Передем собственно к патчингу
Патч нумер 1.
Код:
C:\>cd stunnel.dunbar.patch

C:\stunnel.dunbar.patch>cd src

C:\stunnel.dunbar.patch\src>dir *.patch
 Том в устройстве C не имеет метки.
 Серийный номер тома: 18DF-2BE5

 Содержимое папки C:\stunnel.dunbar.patch\src

21.04.2004  09:46               13x973 connect-proxy_dunbar.patch
               1 файлов         13x973 байт
               0 папок   1x132x142x592 байт свободно

C:\stunnel.dunbar.patch\src>patch < connect-proxy_dunbar.patch
patching file `client.c'
patching file `options.c'
Hunk #1 succeeded at 746 (offset -24 lines).
patching file `prototypes.h'
Hunk #1 succeeded at 158 (offset -3 lines).

Патч удался - идем дальше
Код:
C:\stunnel.dunbar.patch\src>cd \

C:\>cd stunnel.mwald.patch

C:\stunnel.mwald.patch>cd src

C:\stunnel.mwald.patch\src>dir *.patch
 Том в устройстве C не имеет метки.
 Серийный номер тома: 18DF-2BE5

 Содержимое папки C:\stunnel.mwald.patch\src

24.04.2004  02:36               18x788 connect-proxy.mwald.patch
               1 файлов         18x788 байт
               0 папок   1x132x077x056 байт свободно

C:\stunnel.mwald.patch\src>patch < connect-proxy.mwald.patch
patching file `Makefile.w32'
patching file `client.c'
patching file `options.c'
patching file `prototypes.h'
Ну вот теперь у нас есть две готовые для экспериментов версии.
Приступим к сборке.

3. Сборка и разбор полетов.
Перед тем как начать сборку нам надо подправить конфигурацию
stunnel. А именно нам надо прописать путь к OpenSSL в Makefile.w32,
который лежит в папочке src. Что мы и сделаем - поправим.
Вот кусок из конфига.
Код:
SSLDIR=/c/openssl/include
DEFINES=-DUSE_WIN32 -DHAVE_OPENSSL

# CC=gcc
CFLAGS=-g -O2 -Wall $(DEFINES) -I$(SSLDIR)
LDFLAGS=-s

# LIBS=-L$(SSLDIR)/out -lssl -lcrypto -lwsock32 -lgdi32

LIBS=-L$(SSLDIR)/out -leay32 -lssl32 -lwsock32 -lgdi32
Теперь собственно и будем собирать.
Код:
C:\stunnel.dunbar.patch\src>make
gcc -s -o stunnel.exe stunnel.o ssl.o client.o protocol.o sthreads.o log.o optio
ns.o sselect.o gui.o resources.o -L/c/openssl/include/out -leay32 -lssl32 -lwsoc
k32 -lgdi32 -mwindows

C:\stunnel.dunbar.patch\src>
Если у вас линкер раугается, что нет библиотек - дайте их ему.
Других ошиьок быть не должно. Запускаем stunnel.exe - запускается,
иначе у вас не лежат нужные дллки в system32, а именно
libeay32.dll //Это то, во что что мы смэйкали
ssleay32.dll //Openssl.

Со вторым патчем поступим аналогично.
Код:
C:\stunnel.dunbar.patch\src>cp Makefile.w32 ..\..\stunnel.mwald.patch\src

C:\stunnel.dunbar.patch\src>cd ..\..\stunnel.mwald.patch\src

C:\stunnel.mwald.patch\src>make -f Makefile.w32
Тестируем - опять все работает. Вот в принципе и все.
Пойду отдам завтра МАСТЕРу на тестирование.

Линки на все 8):
1) MinGW и MSYS www.mingw.org
2) OpenSSL www.openssl.org
3) MASM32 www.wasm.ru РЕКЛАМА 8)
4) stunnel и патчиwww.stunnel.org
5) Active Perl www.activestate.com

Если что бинарная версия OpenSSL есть на оффсайте, не ленитесь
посмотреть.

За сим прощаюсь, искренне ваш
Код:
0x90

Редактировалось Macmep
24-01-2005 08:14.
0x90 вне форума   Вставить выделенное Отправить сообщение для  0x90 с помощью ICQ      Ответить с цитированием
Старый 13-06-2005, 21:10 Ссылка на пост    #20
Macmep
Гость

Нет голосов

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

Полезные решения на платформе FreeBSD. Часть II.

Для начала предлагаю посмотреть, что изменилось в процессе развития системы FreeBSD за прошедшие пол года с момента написания мной первого цикла статей. Ветка 4 закончила свое развитие в стадии 4.11 и сообщество разработчиков официально объявило о прекращении разработок в этом направлении. Это означает, что поддержка будет осуществляться только в виде патчей к последнему релизу. На данный момент мы имеем стабильную версию 5.4 новой, пятой ветви развития системы и не за горами появление первых стабильных релизов шестой, которая сейчас находится в стадии CURRENT. Уже официально заявлено, что 5.X-STABLE получится короткой и своего рода переходной, но на текущий период имеет прямой резон ей заниматься, осваивая новые фичи. На этой мажорной ноте вступление заканчиваю и перехожу к изложению задумок на второй цикл статей.
Итак, что хочется изложить. Программа минимум рассмотреть идеологию jail, обсудить некоторые примеры построения jail-окружения, выделить явные различия технологий для 4 и 5 ветвей FreeBSD, чтобы облегчить немного жизнь тем, кто планирует переходить на “пятерку” фри с низших ветвей системы. Туторы планируется делать менее подробными, но при этом всячески поощрять изложение материала другими участниками регаты :))
Сразу оговорюсь, что попытки ремотных апдейтов с 4.X на 5.X обречена на неудачу! Поэтому машины, к которым нет консольного доступа, имеет прямой резон оставлять под управлением старой системы. Те же, которые “под рукой”, лучше не адейтить, а поднять систему “с нуля” и развернуть на ней все требуемые сервисы. Сбэкапить конфиги живых приложений не составит труда.
Оглянувшись на предыдущий цикл статей, считаю необходимым довести до сведения общественности, что технологии chroot и chrootuid прекрасно функционируют и на 5.X версиях, но их настройка связана с определенными сложностями. Основные подводные камни я опишу. Во-первых, вместо огромного набора устройств, подключаемых в дефолтной конфигурации и обновляемых при необходимости скриптом MKDEV, в пятерке появилась файловая система devfs, радикально отличающаяся от предыдущей концепции. Теперь большая часть устройств подключается “по требованию”, что само по себе неплохо, но вот создание chroot-систем, использующих “неосновные” устройства, заметно усложняется. Если обратиться к моим предыдущим выкладкам, тот там мы создаем ноды, например, всегда жизненно необходимого устройства null. :)) С этим проблем не возникает и на “пятерке”. Впервые я наступил на эти грабли, когда определял в chroot два жизненно необходимых мне сервиса одного разработчика, которые весьма опасны постоянным раскапыванием в них новых и новых дыр. Для тех, кто не догадался, скажу, что это named и dhcpd. У первого, для корректной работы rndc, задействуется /dev/random, у второго /dev/bpf, без которого он вообще не жилец в системе. :)) Все собирается и работает на ура до первого рибута системы. Вот тут то и наступают чудеса. :o))) После рибута фря заново инициализирует устройства на devfs и вполне реально попасть в ситуацию, когда номер основного устройства в /dev и его ноды в chroot-окружении будут различными. Аллес капут – сервис в chroot’e не стартует! Можно ли с этим бороться? Очевидно, что да, но с оговоркой. Решение вроде как лежит на поверхности – в стартовом скрипте, положенном в usr/local/etc/rc.d, перед стартом сервиса, удалять старую ноду из chroot-окружения и создавать новую. Осталось решить задачу определения номера новой ноды. С помощью чего это сделать для меня было очевидно – “пятерка” изначально собирается с последней версией perl, который в ней весьма активно используется, а вот написать регулярное выражение мне помог Paul (респект, дружище!), потративший на него не больше минуты:
Код:
ls -l /dev/bpf0 | perl -pe 's/[\w\-]+\s+\d+\s+\w+\s+\w+\s+(\d+),\s+(\d+).*/\1 \2/'

Как это работает можете посмотреть сами :)) Возможно, что существует более красивое решение, но я его не знаю =) Я полностью удовлетворен результатом.

Какие еще засады поджидают усталых путников в пятой ветви FreeBSD на пути к нирване chroot-систем? С появлением devfs превратилась в аттавизм procfs, которая теперь по дефолту в системе не монтируется. А без нее не работает горячо любимая мной утилита truss – лучший помощник настройщика роялей ) Так что, перед отладкой сервиса смонтируйте ее ручками и не пугайтесь того, что один фик она работает кривенько (процесс, запущенный из нее не форкается). Информативность ее, как и ранее, трудно переоценить и я предлагаю вам самим в очередной раз в этом убедиться.
На сегодня у меня все. Продолжение последует по мере появления свободного времени у автора цикла =))

FreeBSD – это готично! © Sp/\wN
  Вставить выделенное      Ответить с цитированием
Старый 26-06-2005, 12:37 Ссылка на пост    #21
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

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

Управление приложениями в FreeBSD

Хочется немного поговорить на эту тему. Комментарии и критика только приветствуются.

Часть I.
Обновление пакетов FreeBSD с помощью Portupgrade без использования CVSup
Перевод http://taosecurity.blogspot.com/200...093091499914264

Насколько я люблю систему портов FreeBSD, настолько же мне не нравравится поддерживать дерево портов в актуальном состоянии используя CVSup. Мне не удалось еще попробовать утилиту portsnap Colin'а Percival'а, которая использует HTTP протокол для распространения сжатых и криптографически подписанных снимков дерева портов. Это хорошая альтернатива, но я стараюсь по возможности избегать процесса компиляции из исходных текстов, т.к. использую не совсем современные и очень медленные системы. В этом случае наиболее подходящим способом является установка и обновление программного обеспечения (ПО) используя заранее скомпилированные пакеты.

Portupgrade - наиболее подходящая утилита для обновления ПО под FreeBSD. Она обладает мощным потенциалом, т.к. способна разрешать зависимости во время массового обновления ПО. Не имеет значения каким образом были установлены приложения: используя порты или заранее скомпилированные пакеты, т.к. с сомента установки FreeBSD расценивает их как пакеты используя в работе с ними такие утилиты как например pkg_info. Использование в качестве аргумента для portupgrade ключа -PP позволит провести обновление ПО используя исключительно заранее скомпилированные пакеты. Это позволит избежать процесса компиляции перед непосредственно установкой.

Большинство людей до сих пор уверены, что дерево портов должно быть актуальным, дабы позволить portupgrade распознавать доступны ли более свежие версии портов. Таким образом в том числе и для обновления используя пакеты требуется CVSup дерева портов либо аналогичный процесс. Так ли это?

Я часто думал над альтернативными методами обновления дерева портов целиком. По этому поводу в рассылке freebsd-ports проходит множество дискуссий. Они обьявляют удаление файлов INDEX и INDEX-5 из CVS хранилища. Эти файлы (INDEX для ветви 4.х и INDEX-5 для ветви 5.х) содержат информацию о ПО, например для nmap:

nmap-3.75|/usr/ports/security/nmap|/usr/local|Port scanning utility for large
networks|/usr/ports/security/nmap/pkg-descr|eik@FreeBSD.org|security ipv6|openssl-
0.9.7e_1 pcre-5.0|openssl-0.9.7e_1 pcre-5.0|http://www.insecure.org/nmap/|||

Эта запись описывает порт nmap, его майнтайнера, зависимости, и прочее: НО вы не найдете ни одного INDEX файла в CVS, например на cvsweb.freebsd.org (см. запись в CHANGES, в которой говорится об удалении INDEX). Майнтайнеры считают что INDEX файлы в CVS сильно устарели и необходимость в их хранении отпала. Но все же INDEX файлы все еще доступны, их можно сформировать запустив 'make index' находясь в /usr/ports или скачать их. Последний способ
наиболее подходит, т.к. формирование с использование традиционных методов занимает большое количество времени.
Это позволит полностью исключить CVSup и обновление дерева портов если вы желаете работать только с заранее скомпилированными пакетами. Дальнейшее повествование описывает как это сделать на FreeBSD 5.3 RELEASE с несколькими приложениями установленными с помощью заранее скомпилированных пакетов.

Вначале у меня под рукой был только файл INDEX-5, который идет стандартной поставке коллекции портов устанавливаемой с FreeBSD 5.3 RELEASE:

janney:/root# ls -al /usr/ports/IND*
-rw-r--r-- 1 root wheel 5798559 Nov 4 18:27 /usr/ports/INDEX-5


Сперва я установил portupgrade:

janney:/root# pkg_add -vr portupgrade
looking up ftp.freebsd.org
connecting to ftp.freebsd.org:21
setting passive mode
opening data connection
initiating transfer
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/p...3-release/Lates
t/portupgrade.tbz...x +CONTENTS
x +COMMENT
x +DESC
x +MTREE_DIRS
x man/man1/pkg_deinstall.1.gz
...truncated...

После того как portupgrade был установлен я запустил portversion чтобы понаблюдать обнаружит ли portupgrade уже установленные пакеты. Во время запуска portversion происходит создание базы данных пакетов, расположенной в /var/db/pkg/pkgdb.db.

janney:/root# portversion -v
[Updating the pkgdb in /var/db/pkg ... - 48 packages found (
-0 +1) . done]
[Updating the portsdb in /usr/ports ... - 11735 port entries
found .........1000.........2000.........3000.........4000.........5000........
.6000.........7000.........8000.........9000.........10000.........11000.......
..... done]
bash-3.0_5 = up-to-date with port
bitstream-vera-1.10 = up-to-date with port
boxtools-0.65.0 = up-to-date with port
cdrtools-2.0.3_4 = up-to-date with port
cmdwatch-0.2.0 = up-to-date with port
...truncated...

После окончания процесса в /usr/ports создается новый файл INDEX.db наравне с оригинальным INDEX-5:

janney:/root# ls -al /usr/ports/IND*
-rw-r--r-- 1 root wheel 5798559 Nov 4 18:27 /usr/ports/INDEX-5
-rw-r--r-- 1 root wheel 11915264 Nov 19 23:16 /usr/ports/INDEX.db


Теперь мне потребуется обновить оригинальный фал INDEX-5. Судя выводу portupgrade, все мои пакеты находятся в актуальном состоянии. На самом деле это не так. Например,взглянув на ftp://ftp.freebsd.org/pub/FreeBSD/p...kages-5-stable/ можно увидеть что доступен пакет /shells/bash-3.0.15.tbz. Я же использую bash-3.0_5, таким образом для обновления доступен более свежий прекомпилированный пакет.

Данный процесс проходит в два шага. Во-первых, требуется получить новый INDEX-5, например скачав его следующим способом:

janney:/usr/ports# make fetchindex
INDEX-5 0% of 5877 kB 0 Bps

После завершения работы 'make fetchindex' получаем обновленный файл INDEX-5:

janney:/usr/ports# ls -al IND*
-rw-r--r-- 1 root wheel 6018417 Nov 19 23:05 INDEX-5
-rw-r--r-- 1 root wheel 11915264 Nov 19 23:16 INDEX.db

Во-вторых, потребуется обновить файл INDEX.db:

janney:/usr/ports# portsdb -uf
[Updating the portsdb in /usr/ports ... - 11972 port entries
found .........1000.........2000.........3000.........4000.........5000........
.6000.........7000.........8000.........9000.........10000.........11000........
. ..... done]

Теперь посмотрим на файл INDEX.db:

janney:/usr/ports# ls -al IND*
-rw-r--r-- 1 root wheel 6018417 Nov 19 23:05 INDEX-5
-rw-r--r-- 1 root wheel 12334080 Nov 19 23:54 INDEX.db


Повторный запуск portversion показал что некоторые порты требуют обновления. Например bash:

janney:/usr/ports# portversion -v
bash-3.0_5 < needs updating (port has 3.0.16_1)
bitstream-vera-1.10 = up-to-date with port
boxtools-0.65.0 = up-to-date with port
cdrtools-2.0.3_4 = up-to-date with port
...truncated...


Теперь файл INDEX-5 содержит информацию о том, что доступная версия bash в дереве портов 3.0.16_1, но ведь прекомпилированый пакет имеет версию 3.0.15. На самом деле это допустимо (если не учитывать аспект безопасности), и позволит произвести обновление bash с 3.0_5 до 3.0.15. Следующим шагом нужно сообщить portupgrade где искать заранее скомпилированные пакеты:

janney:/usr/ports# setenv PACKAGESITE ftp://ftp2.freebsd.org/pub/FreeBSD/...s-5-stable/All/

Теперь мы готовы к обновлению пакетов с помощью portupgrade:

janney:/usr/ports# portupgrade -varRPP
---> Session started at: Fri, 19 Nov 2004 23:55:03 -0500
** No need to upgrade 'python-2.3.4_2' (>= python-2.3.4_2). (specify -f to force)
...edited...
---> Checking for the latest package of 'shells/bash'
---> Fetching the package(s) for 'bash-3.0.16' (shells/bash)
---> Fetching bash-3.0.16
++ Will try the following sites in the order named:
ftp://ftp2.freebsd.org/pub/FreeBSD/...kages-5-stable/
---> Invoking a command: /usr/bin/fetch -o '/var/tmp/bash-3.0.16.tbz' 'ftp://ft
p2.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/All/bash-3.0.16.tbz'
fetch: ftp://ftp2.freebsd.org/pub/FreeBSD/...ash-3.0.16.tbz: File unavailable (e.g., file not found, no access)
** The command returned a non-zero exit status: 1
** Failed to fetch ftp://ftp2.freebsd.org/pub/FreeBSD/...bash-3.0.16.tbz
---> Invoking a command: /usr/bin/fetch -o '/var/tmp/bash-3.0.16.tgz' 'ftp://ftp2.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/All/bash-3.0.16.tgz'
fetch: ftp://ftp2.freebsd.org/pub/FreeBSD/...ash-3.0.16.tgz: File unavailable (e.g., file not found, no access)
** The command returned a non-zero exit status: 1
** Failed to fetch ftp://ftp2.freebsd.org/pub/FreeBSD/...packages-5-stab
le/All/bash-3.0.16.tgz
** Failed to fetch bash-3.0.16
---> Listing the results (+:done / -:ignored / *:skipped / !:failed)
! bash-3.0.16 (fetch error)
---> Packages processed: 0 done, 0 ignored, 0 skipped and 1 failed
---> Fetching the latest package(s) for 'bash' (shells/bash)
---> Fetching bash
++ Will try the following sites in the order named:
ftp://ftp2.freebsd.org/pub/FreeBSD/...kages-5-stable/
---> Invoking a command: /usr/bin/fetch -o '/var/tmp/bash.tbz' 'ftp://ftp2.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/bash.tbz'
/var/tmp/bash.tbz 0% of 532 kB
---> Downloaded as bash.tbz
---> Identifying the package /var/tmp/bash.tbz
---> Saved as /usr/ports/packages/All/bash-3.0.15.tbz
---> Skipping libiconv-1.9.2_1 (already installed)
---> Skipping gettext-0.13.1_1 (already installed)
---> Listing the results (+:done / -:ignored / *:skipped / !:failed)
+ bash@
- libiconv-1.9.2_1
- gettext-0.13.1_1
---> Packages processed: 1 done, 2 ignored, 0 skipped and 0 failed
---> Found a package of 'shells/bash': bash-3.0.15.tbz (bash-3.0.15)
---> Located a package version 3.0.15 (bash-3.0.15.tbz)
---> Using it anyway although it is not the latest version (3.0.16), since -PP/
--use-packages-only is specified
---> Upgrade of shells/bash started at: Sat, 20 Nov 2004 00:00:52 -0500
---> Upgrading 'bash-3.0_5' to 'bash-3.0.15' (shells/bash) using a package
---> Updating dependency info
---> Uninstallation of bash-3.0_5 started at: Sat, 20 Nov 2004 00:00:53 -0500
---> Fixing up dependencies before creating a package
---> Backing up the old version
---> Uninstalling the old version
---> Deinstalling 'bash-3.0_5'
[Updating the pkgdb in /var/db/pkg ... - 47 packages found (
-1 +0) (...) done]
---> Uninstallation of bash-3.0_5 ended at: Sat, 20 Nov 2004 00:01:01 -0500 (consumed 00:00:07)
pkg_info: can't find package 'bash-3.0.15.tbz' installed or in a file!
---> Installation of bash-3.0.15 started at: Sat, 20 Nov 2004 00:01:01
-0500
---> Installing the new version via the package
---> Removing temporary backup files
---> Installation of bash-3.0.15 ended at: Sat, 20 Nov 2004 00:01:06 -0500 (consumed 00:00:04)
---> Cleaning out obsolete shared libraries
[Updating the pkgdb in /var/db/pkg ... - 48 packages found (-0 +1) . done]
---> Upgrade of shells/bash ended at: Sat, 20 Nov 2004 00:01:08 -0500 (consumed 00:00:15)
** No need to upgrade 'xorg-fonts-miscbitmaps-6.7.0' (>=xorg-fonts-miscbitmaps-6.7.0). (specify -f to force)
...truncated...

Приведенный выше листинг показывает что происходит когда portupgrade не может обнаружить требуемую версию пакета bash-3.0.16 на ftp://ftp2.freebsd.org/pub/FreeBSD/...es-5-stable/All.
Происходит поиск bash.tbz на ftp://ftp2.freebsd.org/pub/FreeBSD/...5-stable/Latest. На самом деле это символическая ссылка на доступный пакет:

lrwxr-xr-x 1 110 0 22 Nov 15 08:09 bash.tbz -> ../All/bash-3.0.15.tbz

На будущее, я определю переменную PACKAGESITE таким образом:

janney:/usr/ports# setenv PACKAGESITE ftp://ftp2.freebsd.org/pub/FreeBSD/...s-5-stable/All/

В итоге все порты, которые могли быть обновлены с помощью прекомпилированых пакетов, были действительно обновлены. Например, bash:

janney:/root# portversion -v bash
bash-3.0.15 < needs updating (port has 3.0.16_1)

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

Я также намереваюсь проследить за новой утилитой Мэтью Симана portindex.Portindex Matthew позволяет намного быстрее сгенерировать INDEX и INDEX-5, а также заменяет медленные процессы 'make index' и 'portsb -uU'. Использование системы портов в комбинации с portindex и portsnap позволит раскрыть облее мощный потенциал данного способа установки ПО. Описаный же выше способ должен понравиться людям, использующим медленные системы или обновляющих ПО с помощью пакетов.
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 24-07-2005, 13:52 Ссылка на пост    #22
Macmep
Гость

Нет голосов

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

Блин, ларчик просто открывался :) В "пятерке" про mknod можно смело забыть, монтировать devfs в каждое из chroot-окружений и будет нам счастье :)) man mount_devfs + в качестве шпаргалки vi /etc/rc.d/named. При таком подходе сокет для лога следует создавать в /patch_to_chroot_dir/var/run/log].
  Вставить выделенное      Ответить с цитированием
Старый 29-07-2005, 17:54 Ссылка на пост    #23
cyberb
Продвинутый серфер
Продвинутый серфер


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

Просто монстр это лучшее, что видел по теме поддержки портов в актуале
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 30-07-2005, 16:48 Ссылка на пост    #24
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

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

cyberb : засмущал совсем
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 04-08-2005, 15:52 Ссылка на пост    #25
cyberb
Продвинутый серфер
Продвинутый серфер


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

Хотя все-таки косячок есть сервы все-таки лучше указывать среди российских мирроров тут и скорость повыше и трафик подешевле.
даже без трейса скажу, что все так. В setenv нада пофиксить ftp на

ftp1.ru.freebsd.org
ftp2.ru.freebsd.org
ftp3.ru.freebsd.org

Я предпочитаю 3, т.к. он наименее загружен из всех, хотя имхо у вас все может быть иначе

Во еще вспомнил на своес примере, а если у вас не релиз, ну или скажем frozen - не последний релиз.... то тут уже нада систему обновлять
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 04-08-2005, 16:14 Ссылка на пост    #26
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

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

выше приведенная статья - перевод, о чем сказано вначале. таким образом косячков в переводе (не считая орфографию и корявость самого перевода ) нет, а вот как комментарий-дополнение твои доводы действительно правильны, зеркала нужно выбирать ближайшие по пингу и трейсроуту... =)
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 04-08-2005, 16:44 Ссылка на пост    #27
cyberb
Продвинутый серфер
Продвинутый серфер


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

Ну при переводе все-таки специфику учитывать стоит
cyberb вне форума   Вставить выделенное      Ответить с цитированием
Старый 15-03-2006, 15:21 Ссылка на пост    #28
aspen
Почетный дракон
semi-retired someone
 
aspen


Сообщений: 1,653
На форуме с: 18.11.02
Провел: 1нед. 1д. 9ч. 10мин.

О, а можно я разбавлю высокотехничные идеи более приземленными и близкими к народу вещами?

Например, система управления проектами, файловая свалка и иже. Можно конечно пойти по пути IIS+SharePoint+ProjectServer, заплатив за это несколько десятков тысяч президентов (случаи использования вареза рассматривать не будет). А можно воспользоваться офигительными и не менее функциональными вещами, такими как dotprpject и opensharepoint - работают офигительно. Возможно, нет того богатства функционала, но, к счастью, все нужные вещи есть.

Ну, такие вещи как NАGIOS всем известны. Особо останавливаться не буду.

Система для обмена файлом с внешними юзверями -- мы начали использовать Efisto и очень довольны.

Управляем Cisco -- я пока присматриваюсь к Cisco Hammer и нахожу его полезным для управления кучуей роутеров.

Собственно, листая freshmeat я нахожу, что очень много всего полезного, не только для ИТшников, но и для тупых юзверей может быть организовано на базе FreeBSD.
aspen вне форума   Вставить выделенное      Ответить с цитированием
Старый 15-03-2006, 15:50 Ссылка на пост    #29
s1lv3r
Почетный дракон
Дракон с душой киллера
 
s1lv3r

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

aspen ты хочешь поговорить об этом?
Я не прочь сделать примерно такой же обзор по установке настройке и эксплуатации (хе-хе... термин как то не приклеивается уже теряется смысловая нагрузка ) чего либо при условии что данное достижение IT сферы надлежащим образом документировано и имеет место быть в современных системах... =)
Но как правило все интересующие продукты уже максимально подробно отражены в повествованиях на том же www.opennet.ru...
s1lv3r вне форума   Вставить выделенное Отправить сообщение для  s1lv3r с помощью ICQ      Ответить с цитированием
Старый 16-03-2006, 08:59 Ссылка на пост    #30
aspen
Почетный дракон
semi-retired someone
 
aspen


Сообщений: 1,653
На форуме с: 18.11.02
Провел: 1нед. 1д. 9ч. 10мин.

Проблема, как обычно, -- во времени. Хотя, по некоторым продуктам и писать особо нечего -- например Efisto -- скомплилили Jakrata-Tomcat, поставили Apache Ant, скомпилили jar'ы да поправили xml немного. Все по документации -- очень понятно. Расписывать как-то и нечего. Другое дело, что большинство проектов проходят стороной, и народ о них просто не знает. Вот в чем проблема. А OpenNet -- опять же, не на пользователей он расчитан.

Полезные решения, насколько я это понимаю, это решения приносящие пользу нашим пользователям, повышающие эффективность работы этих самых "тупорылых юзверей", которые, в принципе и являются генераторами прибыли наших контор (говорю не за ИТ конторы).
aspen вне форума   Вставить выделенное      Ответить с цитированием
Ответ


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

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

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

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





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


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