пятница, 28 марта 2008 г.

Уязвимость во FreeBSD 6, 7 и NetBSD 4

Во FreeBSD 7.0/6.x и в NetBSD 4 обнаружена уязвимость, связанная с возможностью целочисленного переполнения в libc функции strfmon(). Уязвимость может привести к выполнению кода злоумышленника при передаче в функцию strfmon() непроверенных аргументов посредством сторонних программ, использующих данную функцию.

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

Источник: www.opennet.ru

среда, 26 марта 2008 г.

Встроенный в консоль mysql справочник

Честно говоря немного удивился, когда увидел :)
Входим в консоль mysql и набираем

help contents
В ответ на экран выводятся общие категории справки. Далее уже смотрим справку по категориям, к примеру
help Functions and Modifiers for Use with GROUP BY
Можно также получить справку по SQL командам
help SQL-COMMAND

«Пчелы против кого?»

«...В 2007 г. при участии Международной организации BSA (Business Software Alliance) российские компании потратили на "урегулирование отношений с правообладателями ПО" около $2,6 млн. В отношении их руководителей и ИТ-сотрудников было вынесено 85 обвинительных приговоров.»

В этом году наверно будет еще больше :(

Источник: www.rambler.ru

понедельник, 17 марта 2008 г.

Файлообменник от Яндекса - достойная замена Rapidshare

Яндекс запустил бета-версию собственного файлообменного сервиса Народ.Диск. Возможности сервиса впечатляют: для его использования не нужно ничего платить, достаточно просто иметь аккаунт на Яндексе. Общий объем файлов и количество файлов не ограничены, максимальный размер одного файла – 750 Мб. За один раз можно загрузить сразу несколько файлов, но их суммарный объем не должен превышать 750 Мб.

Файлы хранятся на сервере три месяца, и срок хранения автоматически продлевается после каждого обращения. Более того, срок хранения файла можно продлить вручную, даже если к нему никто не обращается. За три дня, а затем за день до удаления автору файла приходит письмо с уведомлением, и при желании можно щелкнуть по ссылке в нем, чтобы продлить срок его хранения.

Народ.Диск поддерживает докачку и загрузку при помощи менеджеров закачки. Качать можно только в один поток, но зато до 16 файлов с одного IP одновременно.

Источник: http://narod.yandex.ru/disk/

воскресенье, 16 марта 2008 г.

OOXML: первая доза бесплатно

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

Software Freedom Law Center (SFLC) предупреждает, что активно продавливаемый корпорацией-монополистом Майкрософт OOXML стандарт может представлять патентную угрозу для ПО лицензированного под GPL.

Так называемая Microsoft Open Specification Promise (OSP) не обеспечивает адекватную гарантию того, что программные реализации OOXML, имеющие лицензию GPL будут и в будущем свободны от патентных претензий.

Майкрософт в общих выражениях подтверждает, что не будет преследовать разработчиков софта по спецификациям OOXML, а так же приложений совместимых с двоичными форматами MS Office. Т.е. не нужно платить или договариваться о лицензиях на интеллектуальную собственность фирмы Microsoft.

Однако SFLC указывает на некоторые вещи, которые могут стать проблемой в будущем.

Во-первых, это то, что Microsoft Open Specification Promise (OSP) относится только к текущим версиям указанных стандартов.
Это означает, что Microsoft может отказаться от подобных гарантий в будущих версиях. Это создает большую двусмысленность о долгосрочной перспективе GPL реализаций OOXML, в любой момент Майкрософт сможет отказаться от своих “свободных” инициатив.

Проблема номер два: обещания Майкрософт не относятся к областям не описанным в спецификации.

“GPL разработчики не могут доверять OSP, не потому что ее условия находятся в противоречии с GPL, но потому что это не обеспечивает свободу, которую требует GPL. Доверять OSP опасно, потому что новые версии спецификаций могут быть исключены из OSP и еще потому, что разработанный код не может использоваться вне очень ограниченной области использования, определенной в Microsoft” - предупреждает Software Freedom Law Center (SFLC).

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

Источник: http://sysadminonline.ru

vsftpd и пользователи из базы LDAP.

Предполагается, что сервер каталогов openldap уже установлен и настроен.
Устанавливаем nss_ldap

# cd /usr/ports/net/nss_ldap
# make install
Отредактируем файл конфигурации /usr/local/etc/nss_ldap.conf
host small.server
base dc=small,dc=server
# Пользователь, которому разрешен просмотр каталога
binddn uid=proxy,dc=small,dc=server
# Пароль пользователя proxy
# Пароль не надо хешировать!
bindpw proxy-password
scope sub
bind_timelimit 3
bind_policy soft
nss_paged_results yes
pagesize 1000
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_password exop
nss_base_passwd ou=People,dc=small,dc=server?one
nss_base_shadow ou=People,dc=small,dc=server?one
nss_base_group ou=Group,dc=small,dc=server?one
Изменим следующие строки в /etc/nsswitch.conf
group: files ldap
passwd: files ldap
Проверяем работу nss_ldap
# id user-from-ldap
Должно выйти что-то похожее на
uid=10000(user-from-ldap) gid=10000(Group-from-LDAP) groups=10000(Group-from-LDAP)
Устанавливаем pam_ldap
#cd /usr/ports/security/pam_ldap
# make install
Отредактируем файл конфигурации pam_ldap: /usr/local/etc/ldap.conf
host small.server
base dc=small,dc=server
binddn uid=proxy,dc=small,dc=server
# Пароль не надо хешировать!
bindpw proxy-password
scope one
bind_timelimit 3
bind_policy soft
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_password exop
nss_base_passwd ou=People,dc=small,dc=server?one
nss_base_shadow ou=People,dc=small,dc=server?one
nss_base_group ou=Group,dc=small,dc=server?one
Установка самого сервера FTP
# cd /usr/ports/ftp/vsftpd
make config
В появившемся диалоге ставим галочку около опции RC_NG и далее
# make install
Ниже приведен файл конфигурации vsftpd: /usr/local/etc/vsftpd.conf
#Запрещаем анонимусов
anonymous_enable=NO
listen=YES
background=YES
# Указываем какую именно конфигурацию PAM использовать
pam_service_name=vsftpd
check_shell=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
# Скрываем какой именно сервер FTP у нас стоит
ftpd_banner=Welcome to FTP service.
# Помещаем пользователей в изолированное окружение
chroot_local_user=YES
pasv_min_port=49152
# Скрываем uid и gid файлов при просмотре директорий.
hide_ids=YES
local_umask=022
anon_umask=022
secure_chroot_dir=/usr/local/share/vsftpd/empty
Создаем файл конфигурации PAM: /usr/local/etc/pam.d/vsftpd
auth            required        /usr/local/lib/pam_ldap.so
account required /usr/local/lib/pam_ldap.so
# Если вы хотите разграничить доступ к ftp по группам
# можете дополнительно установить модуль pam_require
# и добавить приведенную ниже строку. Подробности тут
account required /usr/local/lib/pam_require.so no_case @Ftp:Users
# Строка для модуля pam_mkhomedir,
# избавляющего от необходимости ручного
# создания домашней директории для нового пользователя
session required /usr/local/lib/pam_mkhomedir.so mode=0700
Добавим следующую строку в /etc/rc.conf
vsftpd_enable="YES"
Запускаем сервер FTP и проверяем его работу :)
# /usr/local/etc/rc.d/vsftpd start

суббота, 15 марта 2008 г.

Украшаем командную строку в csh/tcsh

Вид командной строки в csh/tcsh задается несколькими переменными окружения. Главная из них - prompt. По умолчанию приглашение командной строки имеет вид

%
что нас совершенно не устраивает. Введем команду
set prompt="%m%# "
где %m - имя компьютера, %# - символ > (или первый символ переменной promptchars) для обычных пользователей или символ # (или второй символ переменной promptchars) для суперпользователя.
Увидим, что приглашение изменилось
machine> 
Мы перестаем путаться в в удаленных сессиях. Далее добавим имя текущего пользователя (%n) и полное имя директории, где мы сидим в данный момент (%/)
set prompt="%n@%m [%/]%# "
Вид меняется на
user@machine [/usr/local/etc]> 
Наше приглашение стало более информативной. Но полный путь занимает слишком много места. Меняем %/ на %c, урезающий отображаемый путь до имени текущей директории
set prompt="%n@%m [%c]%# "
и у нас получилось
user@machine [etc]> 
что уже выглядит лаконичнее. Добавим текущее время (счастливые могут пропустить :)
set prompt="%T %n@%m [%c]%# "
и вуаля
23:01 user@machine [etc]> 
По правде говоря, лично меня символ > в конце приглашения раздражает. Для смены символа используем переменную promptchars
set promptchars="$#"
Первый символ подставляется вместо %# если вы обычный пользователь, а второй - если вы суперпользователь.
Теперь записываем полученный результат в ~/.tcshrc или в /etc/csh.cshrc.

Ниже приведен список допустимых подстановок (подробности в man csh):
%/
Текущая рабочая директория.
%~
Текущая рабочая директория, но домашная директория текущего пользователя представлено тильдой ~ и домашние директории остальных пользователей представлены как ~user. Подстановка ~user действует только в случае если оболочка (shell) уже использует ~user в имени пути в текущей сессии.
%c[[0]n], %.[[0]n]
Отслеживает конечный компонент пути к текущей рабочей директории или n конечных компонентов, при заданном n. Если n начинается с 0 количество пропущенных компонентов предваряет конечные в формате /<skipped>trailing. Если установлена переменная оболочки ellipsis, пропущенные компоненты будут представлены как ...trailing. Подстановка ~ действует аналогично %~, но будет игнорироваться при количестве конечных компонентов больше одного.
%C
Аналогично %c, но без подстановок ~.
%h, %!, !
Номер события в текущей истории.
%M
Полное имя машины.
%m
Сокращенное имя машины. Отображается часть до первой точки.
%S (%s)
Включить (отключить) стандартный режим.
%B (%b)
Включить (отключить) режим жирного шрифта.
%U (%u)
Включить (отключить) режим подчеркивания.
%t, %@
Время в 12-часовом (AM/PM) формате.
%T
Аналогично %t, но в 24-часовом формате (зависит от переменной ampm оболочки).
%p
Точное время суток в 12-часовом (AM/PM) формате, с секундами.
%P
Аналогично %p, но в 24-часовом формате (зависит от переменной ampm оболочки).
\c
c будет распознан как код символа.
%%
Символ %.
%n
Имя пользователя.
%j
Количество запущенных в оболочке работ (jobs).
%d
День недели в текстовом формате.
%D
День недели в числовом формате.
%w
Месяц в текстовом формате.
%W
Месяц в числовом формате.
%y
Год в двухзначном формате.
%Y
Год в четырехзначном формате.
%l
tty оболочки.
%L
Очищает от конца приглашения до конца экрана или строки.
%$
Подставляет значение переменной оболочки или окружения с именем, заданным сразу после $ (например %$PATH).
%#
> (или первый символ из переменной оболочки promptchars) для обычных пользователей и # (или второй символ из promptchars).
%{string%}
Включает строку как управляющая escape последовательность. Может использоваться для изменения атрибутов терминала (например для раскраски приглашения) и может не воздействовать на положение курсора. Не может быть последней последовательностью в приглашении.
%?
Возвращает код ошибки команды, запущенной непосредственно перед приглашением.

пятница, 14 марта 2008 г.

FreshPorts.org

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

воскресенье, 9 марта 2008 г.

В интернет из lo0

Если ваши jail-машины висят на интерфейсе lo0, предоставить им доступ в локальную сеть (интернет) можно таким образом:
1. в /etc/rc.conf добавить

# Разрешить маршрутизацию
gateway_enable="YES"
# Включить PF
pf_enable="YES"
# Указываем файл конфигурации PF
pf_rules="/etc/pf-custom.conf"
2. создать или отредактировать файл /etc/pf-custom.conf, добавив следущее
# IP-адрес вашей jail-машины
my_jail="127.0.0.100"

lo="lo0"
if="if0"

nat on $if from $my_jail to !$lo:0:network tag FROM_JAIL -> $if
pass out on $if proto tcp to any tagged FROM_JAIL keep state flags S/SA
3. Запускаем PF из под рута
/etc/rc.d/pf start