Документация по ОС FreeBSD Воскресенье, 19.05.2024, 16:15
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Ports & Packages

Новые интересные порты

Отсечение установленных портов

Для начала, я разобралась c sysutils/pkg_cutleaves, описанном на Richard Bejtlich's weblog. У Ричарда жуткая способность шагать в ногу с тремя моими любимыми предметами: FreeBSD, коллекцией портов и безопасностью.

Если вы используете portupgrade для поддержания ваших портов в актуальном состоянии, рекомендую добавить в ваш набор pkg_cutleaves. Этот интерактивный Perl-скрипт исследует вашу базу данных установленных портов на предмет "листьев", или программ, которые были установлены, как зависимости и уже не нужны. Это даёт вам возможность очищать ваш винчестер от программ, которые вам больше не нужны или от неиспользуемых, в связи с модернизацией, зависимостей.

После того, как вы собрали порт из /usr/ports/sysutils/pkg_cutleaves, потратьте минуту на чтение man pkg_cutleaves. Затем, выполните как superuser:

# pkg_cutleaves
Package 1 of 73:
AbiWord2-2.0.5 - An open-source, cross-platform WYSIWYG word processor
AbiWord2-2.0.5 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort? k
** Keeping AbiWord2-2.0.5.

На этой конкретной системе, у меня есть 250 установленных портов, 73 из которых полностью независимы. pkg_cutleaves покажет каждый из них, делая паузу, чтобы я могла решить - оставить или удалить этот порт. Я решила сохранить AbiWord-2, равно как и 6 следующих портов, связанных с XFree86.

Package 8 of 73:
apache-ant-1.6.1 - Java- and XML-based build tool, \
 conceptually similar to make
apache-ant-1.6.1 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort? d
** Marking apache-ant-1.6.1 for removal.

Тем не менее, я решила удалить apache-ant поскольку он остался как память о давно удаленном приложении, чьей зависимостью он являлся. Я буду продолжать, пока не приму решение по всем 73 портам. Когда я закончу, pkg_delete выполнит удаление выбранных приложений. В этом примере я решила удалить 25 портов:

Package 73 of 73:
zip-2.3_1 - Create/update ZIP files compatible with pkzip
zip-2.3_1 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort? k
** Keeping zip-2.3_1.

Deleting apache-ant-1.6.1 (package 1 of 25).
---> Deinstalling 'apache-ant-1.6.1'
[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 250
packages found (-1 +0) (...) done]

Когда удаление будет завершено, pkg_cutleaves еще раз пройдётся по базе данных установленных портов, чтобы выяснить, не появились ли новые "листья":

Go on with new leaf packages ((y)es/[no])? y

Этот процесс будет продолжаться, пока я не покончу со всеми "листьями". После этого он подведёт итог модификации пакетов:

Didn't find any new leaves, exiting.
** Deinstalled packages:
apache-ant-1.6.1
<snip>
** Number of deinstalled packages: 53

Когда вы запустите pkg_cutleaves в следующий раз, он снова спросит вас о портах, которые вы хотите сохранить. В моём примере это были AbiWord2 и несколько портов XFree86. Если вы знаете, что хотите сохранить, и вас раздражает необходимость подтверждать это каждый раз, создайте файл /usr/local/etc/pkg_leaves.exclude, содержащий имена портов, которые требуется сохранить:

AbiWord2
XFree86

Не забудьте включить ключ x (исключение):

% pkg_cutleaves -x

Эта команда указывает pkg_cutleaves прочитать файл исключений. Для тех случаев, когда вы не хотите использовать файл исключений, просто не используйте этот ключ.

Улучшим Fortunes

Следующий порт для тех, кому нравится юмор в стиле BOFH (Bastard Operator From Hell - Адский Ублюдок Сисадмин - прим. переводчика; незаконнорожденный оператор из древнегерманской преисподней - это круто, прим. редактора:-)). Если шутки в стиле юмора забавляют вас, добавьте к своим fortunes BOFH-стиль, установив /usr/ports/misc/fortune-mod-bofh.

После установки, попробуйте его:

% fortune /usr/local/share/games/fortune/bofh
BOFH excuse #419:

overflow error in /dev/null

Если вы хотите, чтобы эти шутки случайным образом появлялись вместе с другими fortunes, скопируйте их как superuser в системную fortunes-директорию:

% cp /usr/local/share/games/fortune/bofh* /usr/share/games/fortune/

После копирования BOFH файлов, можете попробовать стиль BOFH в fortune набрав:

% fortune bofh

Это намного короче, чем предыдущее заклинание.

Ну и наконец, если вы фанат Futurama, повторите вышеописанное, для порта /usr/ports/misc/fortune-mod-futurama:

% cd /usr/ports/misc/fortune-mod-futurama
% make install clean
% cp /usr/local/share/games/fortune/futurama* /usr/share/games/fortune/
% exit
% fortune futurama
Fry: I want to see the edge of the universe.
Amy: Ooh, that sounds cool.
Zoidberg: It's funny. You live in the universe but you
never do these things 'til someone comes to visit.

Эта забава заставила меня поискать fortunes по Дугласу Адамсу. Быстрый поиск в Google навёл меня на fortune-hitchhiker project. Скачиваем fortune-hitchhiker.tgz, затем:

% tar xzvf fortune-hitchhiker.tgz
% cp fortune-hitchhiker/hitchhiker* /usr/share/games/fortune
% exit
% fortune hitchhiker
"'You know,' said Arthur, 'it's at times like this, when
I'm trapped in a Vogon airlock with a man from Betelgeuse,
and about to die from asphyxiation in deep space that I
really wish I'd listened to what my mother told me when I
was young.'
'Why, what did she tell you?'
'I don't know, I didn't listen.'"

-- Arthur coping with certain death as best as he could.

Возможно, другие фаны "Путеводителя по Галактике..." добавят его в коллекцию портов, что даст мне возможность обнаружить его на FreshPorts.

От переводчика: существует и порт ru-fortunes. Я могу ошибаться, но по-моему там была коллекция анекдотов. Честно говоря, меня этот порт не вдохновил... А вот от перевода fortune-hitchhiker'а я бы не отказался...

Получение подлежащих и согласование глаголов

Следующий порт заинтриговал меня, поскольку был назван как один из любимых литературных героев моего детства:

# cd /usr/ports/textproc/queequeg
# make install clean

Этот порт установит qq - скрипт на Python'е, который может работать с любыми текстовыми, LaTeX, или HTML файлами, примерно так:

% qq filename

Queequeg project все еще на этапе бета-версии. Его цель - помочь автору, для которого английский язык не родной, правильно согласовывать времена, склонять глаголы и т.п. В настоящий момент разработчики всё еще дорабатывают фильтрацию некорректного определения правильных форм, так что результат всё ещё может быть огорчительным для тех, кто не в ладах с английской грамматикой. Что ж, если английская грамматика - ваш конёк и вы располагаете свободным временем, проект ищет экспертов. Когда этот проект перерастёт стадию бета-версии - он будет отличным подспорьем для неанглоязычных разработчиков в нелёгком деле написания man-ов на английском языке.

Укрепляем безопасность системы

Последний порт, который я хотела бы продемонстрировать, я нашла в /usr/ports/security/lockdown. Сначала я отнеслась к нему скептически, поскольку утверждалось, что порт является сценарием, укрепляющим безопасность системы FreeBSD. Я настороженно отношусь к таким утверждениям, поскольку улучшение безопасности системы явно не попадает в категорию один-размер-подходит-всем.

Однако, Daniel Blankensteiner проделал отличную работу по созданию полностью настраиваемого сценария, позволяющего вам использовать различные варианты заказных конфигураций. Администратор может легко создать несколько файлов настроек для каждой из своих систем. Легко использовать не только конфигурационные файлы, так же легко просмотреть полную запись изменений, внесённых в свежеустановленную или обновлённую систему.

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

Затем:

% cp /usr/local/etc/lockdown.conf.sample /usr/local/etc/lockdown.conf

Замечание: Если вы планируете создать конфигурационные файлы для нескольких систем, включите hostname системы в имя копируемого файла конфигурации. Таким образом, вы можете централизованно хранить множество файлов настроек в одном месте. Затем, когда вы будете использовать утилиту lockdown, вы сможете выбрать предпочтительный файл конфигурации, определяя его по имени и используя ключ -f.

Скопируйте файл и откройте его в своём любимом редакторе. вы обнаружите, что он хорошо задокументирован и снабжен множеством примеров, укрепляющих вас в намерении немедленно приступить. К примеру, эта секция ужесточает /etc/fstab для более защищенного монтирования ваших разделов:

####################
# Mounting options #
####################
# If the mount point exists, mount it with the specified options.
# Please remember that /tmp has to be executable to "make world"
# and if you need to jail a process in a partition, don't mount it with
"nodev"

mount /tmp rw,noexec,nosuid,nodev,nosymfollow
mount /var/tmp rw,noexec,nosuid,nodev,nosymfollow
mount /home rw,noexec,nosuid,nodev
mount /usr/home rw,noexec,nosuid,nodev
mount /var rw,nosuid,nodev
mount /var/mail rw,noexec,nodev,nosuid

Если вы впервые сталкиваетесь с этими опциями монтирования, взгляните на раздел секции -o на странице man mount. Также для определения опций, наиболее подходящих для вашей системы, весьма полезным окажется ресурс FreeBSD Security How-To:

Следующий раздел позволяет вам установить опции /etc/rc.conf а также даёт несколько идей - с чего начать. Смотрите man rc.conf для определения каждой опции.

########################
# /etc/rc.conf options #
########################
# This will just add some options to /etc/rc.conf
rc_conf enable_sendmail="NONE"
rc_conf kern_securelevel_enable="YES"
rc_conf portmap_enable="NO"
rc_conf inetd_enable="NO"
rc_conf kern_securelevel="3"
rc_conf clear_tmp_enable="YES"
#rc_conf update_motd="NO"
rc_conf syslogd_flags="-ss" # Comment this if this is a
 # log server (or change it)

Следующий раздел позволит вам создать скрытый сервер:

##################
# Stealth server #
##################
# If this is a log server, firewall or gateway you can put it into
# stealth mode.
# This is NOT recommended for normal server use.
# Note: For a stealthier server you should also block some icmp request
# like:
# Echo, Time and Netmask requests
#rc_conf tcp_drop_synfin="YES"
#sysctl net.inet.tcp.blackhole=2
#sysctl net.inet.udp.blackhole=1
#kern options IPSTEALTH
#kern options TCP_DROP_SYNFIN

Securing FreeBSD освещает эти и многие последующие опции более детально.

Следующий раздел посвящен настройке различных сетевых конфигураций:

######################
# Networking options #
######################
rc_conf icmp_drop_redirect="YES"
rc_conf icmp_log_redirect="YES"
rc_conf log_in_vain="YES"
kern options RANDOM_IP_ID
openssh AllowGroups wheel
openssh Protocol 2

set_warning "
Warning
I blah blah blah blah
and then some"

Последние опции настраивают SSH. Более подробно они описаны в Configuring SSH.

Далее, вы можете настроить по своему вкусу /etc/login.conf:

#######################
# Login Class options #
#######################
login_class default minpasswordlen=8
login_class default mixpasswordcase=true
login_class default uname=077
# Encryption of passwords
auth_conf crypt_default=blf
login_class default passwd_format=blf

Затем, /etc/ttys:

##############
# Root Login #
##############
allow_direct_root_login NO # Set tty* in /etc/ttys to
 # insecure
password_protect_singleuser_mode YES # Set console to insecure
 # in /etc/ttys

Теперь пользовательские настройки:

#####################
# Restrict the user #
#####################
allow_cron NO
allow_at NO
sysctl security.bsd.see_other_uids=0 # Use kern.ps_showallprocs 
 # for 4.X

Как обычно - опции ядра:

##################
# Kernel options #
##################
kern options SC_NO_HISTORY # Don't keep history,
 # so there can't be scrolled
kern options SC_DISABLE_REBOOT # Disable ctrl+alt+del
#kern options SC_DISABLE_DDBKEY # Uncomment if using the
 # kernel debugger

Наконец, целый раздел о разрешениях и флагах файлов:

#################################
# Restrict access to suid files #
#################################
# If you want /somefile to have:
# Permissions 0000
# User root
# Group wheel
# Flags uappnd and schg
# Just write:
# file /somefile p: 0000 u: root g: wheel f: uappnd,schg
file /bin/rcp p: disable
file /sbin/mksnap_ffs p: noWorld file /sbin/ping p: noWorld
<snip long list of files> ################################ # Restrict access to gid files # ################################ file /usr/bin/fstat p: noWorld file /usr/bin/netstat p: noWorld file /usr/bin/vmstat p: noWorld file /usr/bin/wall p: noWorld file /usr/bin/write p: noWorld file /usr/bin/lpq p: noWorld file /usr/bin/lpr p: noWorld file /usr/bin/lprm p: noWorld file /usr/libexec/sendmail/sendmail p: noWorld file /usr/sbin/trpt p: noWorld file /usr/sbin/lpc p: noWorld ######################################## # Restrict access to information files # ######################################## # if you change permissions on files also # listed in /etc/newsyslog.conf, # Lockdown will also adjust /etc/newsyslog.conf accordingly file /sbin/sysctl p: noWorld file /usr/bin/uname p: noWorld file /sbin/kldstat p: noWorld #file /usr/bin/netstat p: noWorld #Uncomment if using 4.X file /sbin/route p: noWorld <snip long list of files>

Меня очень порадовала полнота файла и то, как легко внести свои изменения. Если вы хотите предложить новые секции для добавления в файл, Daniel всегда открыт для предложений. Контактная информация находится на его сайте.

Вывод

Я также открыта для предложений. Пишите мне о том, какие темы вы хотели бы увидеть в будущих статьях этой серии. Если у вас есть идея относительно освещения какого-либо порта или свойства FreeBSD - сообщите мне.

Ну и наконец, если вы живёте в Северной Америке, отметьте 13-16 майские числа в своём календаре и проверьте, сможете ли вы приехать в Оттаву, Онтарио, Канада. Да-да, надвигается BSDCan и на нем будет много докладчиков. Это ваш шанс встретиться с другими пользователями FreeBSD, увидеть лицом к лицу людей, чьи имена вы наверняка видели на сайте и в почтовых рассылках FreeBSD. Я буду заведовать регистрационным столом, и надеюсь увидеть вас там. Мы также попытаемся к тому времени отпечатать BSD Hacks.

Dru Lavigne is an instructor at Marketbridge Technologies in Ottawa and the maintainer of the Open Protocol Resource.
 
автор BSD Hacks
перевод Евгения Чайкина aka StraNNick


Источник: http://www.onlamp.com/pub/a/bsd/2004/03/25/FreeBSD_Basics.html
Категория: Ports & Packages | Добавил: oleg (13.01.2008) | Автор: Dru Lavigne
Просмотров: 1552 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024