2007/02/22

Печать средствами CUPS в Solaris 10

Установить CUPS с blastwave.org
pkg-get -i cups

Остановить старые сервисы

svcadm disable application/print/ipp-listener
svcadm disable application/print/server
svcadm disable application/print/rfc1179

Заменить утилиты печати версией от CUPS

mv /usr/bin/lp /usr/bin/lp.solaris
ln -s /opt/csw/bin/lp /usr/bin/lp
mv /usr/bin/lpstat /usr/bin/lpstat.solaris
ln -s /opt/csw/bin/lpstat /usr/bin/lpstat
mv /usr/sbin/lpadmin /usr/sbin/lpadmin.solaris
ln -s /opt/csw/sbin/lpadmin /usr/sbin/ldadmin

Запустить cups-сервис

svcadm enable svc:/application/print/cswcups:default

После успешного запуска cups-службы по адресу http://localhost:631 можно добавить необходимые принтера (потребуется доступ root-пользователя). Сетевой принтер, имеющий свой собственный ip-адрес наверняка будет находиться по адресу socket://ip:9100. PPD-файл для Samsung 2551ML доступен здесь.

2007/02/21

Обновление портов в FreeBSD

Прежде чем что-либо делать с портами в FreeBSD их необходимо обновить:
# cat >> /etc/make.conf
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS=-g -L 2
SUPHOST=cvsup.uk.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
Ctrl + C
# cd /usr/ports
# make update

Найти в портах (/usr/ports) порт portupgrade (/usr/ports/ports-mgmt/portupgrade), установить его

cd /usr/ports/ports-mgmt/portupgrade
make && make install

После этого можно с помощью утилиты portupgrade уже возможно обновлять установленные порты (ключ -R говорит о том, что нужно обновить не только порт, но и все его зависимости)

portupgrade -R имя_порта

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

pkg_version -v

Для наведения порядка (удаление неиспользуемых портов, дубликатов версий) в реестре установленных портов (/var/db/pkg) можно воспользоваться командой

pkgdb -F


Ссылки:

  1. "Системный администратор" (2007.01)
  2. Очистка портов во FreeBSD
  3. portupgrade - `обновлялка` установленных портов

2007/02/09

Evince pdf-viewer for Solaris

По непонятным причинам GNOME Pdf Viewer при просмотре документов, содержащих национальные символы (проверялось с русскими и литовскими документами), вместо таких символов выводит либо квадратики, либо ничего не выводит. Попробовав добавить в систему ttf-шрифты, я понял, что это не меняет его поведения. Тогда попробовал найти замену и посмотреть, как будет себя вести другой pdf-reader.

На сайте Blastwave.org есть собрана достаточно хорошая база пакетов для Solaris 10, а в качестве замены gpdf - там лежит Evince. На момент написания этих строк версия данной программы - 0.6.1,REV=2006.11.28.

Установка проще некуда, если уже имеется утилита pkg-get (на сайте Blastwave.org описан процесс ее установки):

/opt/csw/bin/pkg-get -i evince

После этого необходимо "научить" GNOME использовать только что установленную апликацию. Чтобы добавить пункт "Evince PDF Document Viewer" в стартовое меню:

# cd /usr/share/applications
# cat > evince.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Evince PDF Document Viewer
Exec=/opt/csw/bin/evince
Icon=/opt/csw/share/icons/hicolor/48x48/apps/evince.png
Terminal=false
Type=Application
Categories=GNOME;Application;Graphics;VectorGraphics;Viewer;
StartupNotify=true
Ctrl + C

Чтобы у всех пользователей в меню "open with" появился evince, необходимо внести поправки в файл /usr/share/mime-info/gnome-vfs.keys. Если хочется вовсе забыть о существовании gpdf (о чем я советую), необходимо в этом файле удалить всякое упоминание о gpdf. Если всё-таки оставить gpdf, то мне не удалось понять каким образом устроена иерархия между указанными апликациями.

...
short_list_application_ids_for_novice_user_level=acroread,evince,xpdf,gv
short_list_application_ids_for_intermediate_user_level=acroread,evince,xpdf,gv
short_list_application_ids_for_advanced_user_level=acroread,evince,xpdf,gv
...

И создать запить об evince в реестре программ

cd /usr/share/application-registry
cp gpdf.applications evince.applications
vi evince.applications
evince
command=/opt/csw/bin/evince
name=PDF Viewer
can_open_multiple_files=true
startup_notify=true
expects_uris=false
requires_terminal=false
mime_types=application/pdf

После этого достаточно перелогиниться и изменения вступят в силу.

Evince прекрасно отображает все национальные симолы и сам по себе более приятен в работе.

Ссылки:

  1. GNOME 2.6 System Administration Guide

2007/02/07

Утилита keytool для управления JAVA-хранилищами сертификатов

Keytool - утилита для управления java-хранилищами сертификатов. Данные хранилища (файлы с расширением jks - "java key storage") используются java-апликациями и, как пример, сервером приложений Tomcat. Поэтому, если необходимо настроить использование SSL-соединений в Tomcat, keytool будет использоваться для подготовки необходимого хранилища сертификатов.

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

Создание (генерация) пары ключей (приватного и публичного)

keytool -genkey -alias my_a -keystore server.jks

Просмотреть содержимое хранилища можно командой

keytool -list -v -keystore server.jks

Добавить сертификаты центров сертификации (CA), входящих в цепочку

keytool -import -trustcacerts -alias ca1 -file ca1.crt -keystore server.jks
keytool -import -trustcacerts -alias ca2 -file ca2.crt -keystore server.jks

Удалить из хранилища объект (сертификат) с псевдонимом ca2

keytool -delete -alias ca2 -keystore server.jks

Сгенерировать csr-запрос на сертификат

keytool -certreq -alias my_a -keystore server.jks

Если истек срок действия сертификата, необходимо сгенерировать новый csr-запрос. Отправить его на обработку в CA. Когда будет получен новый сертификат, обновить истекший сертификат новым

keytool -import -alias my_a -file my_a.crt -keystore server.jks

Ссылки:

  1. keytool - Key and Certificate Management Tool

2007/02/05

Full Firewall Control для Smoothwall Express 2.0

Full Firewall Control - расширение к Smoothwall Express добавляющее web-интерфейс для управления правилами фильтрации. На данный момент самая последняя версия данного расширения - 1.2.1.

Последняя версия доступна на SourceForge, там же лежит README, отвечающий на разные вопросы в том числе и установки. Отдельно существует тема в Smoothwall-форуме.

Если необходимо на внешнем (RED) интерфейсе поднять несколько ip-адресов (алиасов), в файл /etc/rc.d/rc.firewall.up, в конец, добавить описания алиасов по примеру:

ifconfig eth1:106 212.48.64.6 broadcast 212.48.64.255 netmask 255.255.255.0
ifconfig eth1:105 212.48.64.5 broadcast 212.48.64.255 netmask 255.255.255.0

iptables -t nat -I POSTROUTING -o $RED_DEV -s 192.168.1.106 -j SNAT --to-source 212.48.64.6
iptables -t nat -I POSTROUTING -o $RED_DEV -s 192.168.1.105 -j SNAT --to-source 212.48.64.5

Последние две строчки необходимы для построутинга.

После этого с помощью, например, scp загрузить дистрибутив Full Firewall Control на Ваш smoothwall-роутер и выполнить установку

tar zxvf ./Full-Firewall-Control-1.x.x.tgz -C /
sh /tmp/install.sh

После перезагрузки роутера в web-интерфейсе в меня networking появится меню firewall control.

2007/02/02

Bacula - система резервного копирования и восстановления

Перед началом установки сервисов необходимо ознакомиться со структурой и функционированием составных частей системы Bacula. В этом может помочь небольшая статья [1] и исчерпывающая документация (более 700 стр.), доступная на официальном сайте. Установка сервисов - это всего лишь начало, впереди стоят более важные задачи по грамотной конфигурации сервисов и тестированию процессов резервирования и восстановления.

В приведенном описании в качестве Director и Storage сервисов используется FreeBSD 5.4, в качестве клиента (File Daemon) опробованы следующие системы: Debian 3.1 (Bacula 1.36.2), 4.0 (Bacula 1.38.11), FreeBSD 5.4 (Bacula 2.0.1), Slackware 10.1 (Bacula 2.0.2). В качестве рабочей консоли использовался Windows XP SP2 (Bacula 2.0.1).

Установка Director и Storage сервисов

1. Установка производится из портов

# cd /usr/ports/sysutils/bacula-server
# make
[X] MYSQL Use MySQL database instead of SqLite
[X] NLS Native Language Support via gettext utilities
[X] OPENSSL Enable OpenSSL for encrypted communication
...
# make install

2. Для работы Bacula Director необходима база данных для накопления и оперирования всевозможными данными о собранных резервных копиях. Такая база называется Каталог (Catalog). Таких каталогов может быть несколько, в зависимости от потребностей. Перед запуском, необходимо подготовить хотя бы один Каталог:

mysql -u root -ppassword
CREATE DATABASE `bacula_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT USAGE ON *.* TO 'baculauser'@'localhost' IDENTIFIED BY 'baculauser_password';
GRANT ALL PRIVILEGES ON `bacula_db`.* TO 'baculauser'@'localhost';

Для заполнения подготовленной базы необходимыми таблицами есть скрипт /usr/local/share/bacula/make_mysql_tables. Единственное, в нем по умолчанию используется база данных с именем bacula. В данном примере используется имя bacula_db, поэтому перед запуском скрипт необходимо внести соответствующую поправку.

# /usr/local/share/bacula/make_mysql_tables -u baculauser -pbaculauser_password
Creation of Bacula MySQL tables succeeded.

Перед запуском сервисов необходимо создать конфигурационные файлы на основе доступных шаблонов и сконфигурировать их в соответствии с желаемой конфигурацией.

# cd /usr/local/etc
# cp bacula-dir.conf.sample bacula-dir.conf
# cp bacula-sd.conf.sample bacula-sd.conf

Для автоматического запуска Director и Storage сервисов при загрузке сервера в /etc/rc.conf добавить строчки

bacula_dir_enable="YES"
bacula_sd_enable="YES"

Документацию и клиент-сервис (file daemon) можно установить отдельно

# cd /usr/ports/sysutils/bacula-docs
# make && make install
# cd /usr/ports/sysutils/bacula-client
# make && make install
Запуск сервисов
# /usr/local/etc/rc.d/bacula-dir.sh start
# /usr/local/etc/rc.d/bacula-sd.sh start

Установка клиента (File Daemon)

# apt-get install bacula-fd
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
bacula-common
Suggested packages:
bacula-doc bacula-traymonitor
The following NEW packages will be installed
bacula-common bacula-fd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 528kB of archives.
After unpacking 1167kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get: 1 http://ftp.at.debian.org etch/main bacula-common 1.38.11-7 [348kB]
Get: 2 http://ftp.at.debian.org etch/main bacula-fd 1.38.11-7 [180kB]
Fetched 528kB in 2s (264kB/s)
Selecting previously deselected package bacula-common.
(Reading database ... 44221 files and directories currently installed.)
Unpacking bacula-common (from .../bacula-common_1.38.11-7_all.deb) ...
Adding user 'bacula'... Ok.
Selecting previously deselected package bacula-fd.
Unpacking bacula-fd (from .../bacula-fd_1.38.11-7_i386.deb) ...
Setting up bacula-common (1.38.11-7) ...

Setting up bacula-fd (1.38.11-7) ...
Starting Bacula File daemon: bacula-fd.

В конфигурационном файле /etc/bacula/hostname-fd.conf поправить описание Director (имя, адрес, пароль), закомментировать второй Director (с опцией Monitor), в описании Messages поправить имя используемого director'а. Перезапустить fd-сервис с новыми параметрами:

# /etc/init.d/bacula-fd restart
Restarting Bacula File daemon: bacula-fd.

Установка клиента из исходников (sources)

# tar zxf bacula-2.0.x.tar.gz
# cd bacula-2.0.x
./configure --with-mysql --with-openssl --enable-client-only --localstatedir=/var --sysconfdir=/etc \
--with-job-email=roma@mycompany.com --with-dump-email=roma@mycompany.com
# make
# make install

В конфигурационном файле /etc/bacula/bacula-fd.conf поправить описание Director (имя, адрес, пароль), закомментировать второй Director (с опцией Monitor), в описании Messages поправить имя используемого director'а. Скрипт управления bacula-сервисами - /etc/bacula/bacula, его необходимо переложить, в соответствии с Вашей системой, в папку с другими скриптами и проделать необходимые манипуляции для автоматического запуска fd-сервиса в момент загрузки системы. Запустить fd-сервис с новыми параметрами:

# /etc/bacula/bacula start
Starting the Bacula File daemon

Ссылки:

  1. Bacula: Cross-Platform Client-Server Backups
  2. Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows
  3. Перевод документации от Bacula v.1.38 на русский язык (частично)