Monthly Archive for September, 2006

DNS: installing DJB DNS (tinydns) on fresh CentOS

Setup tinydns on CentOS or Debian

As a user of vpsland.com I’ve got a VPS with CentOS (which have packaging structure very simular to Debian) with bind installed.
This is not the best solution - because bind in both insecure and uses too much memory.

Here it is a small script to install tinyDNS to the VPS server.

Cut it here, paste into some file on your server, make that file executable (chmod 755 filename) and run it.

#!/bin/sh
#Create the following directories:
mkdir -p /usr/local/djb/build
mkdir -p /usr/local/djb/patches

# Download and extract the three patches:
# //get the patches:
cd /usr/local/djb/patches
#//Download the following (small download, still … be kind to his bandwidth .. :) ):
wget http://www.thedjbway.org/patches/djb_errno_patches.tgz
#//Extract:
tar -xzvf djb*.tgz
#//Several .patch files should output

#Download and extract the three packages:

#//Change directories and download the main packages:
cd /usr/local/djb/build
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz

#Extract and patch each of the three packages:
#(you should still be in the /usr/local/djb/build directory for all three of the following)

#Extract and Patch ucspi:

cd /usr/local/djb/build

#//ucspi
gunzip ucspi-tcp-0.88.tar
tar -xf ucspi-tcp-0.88.tar
cd ucspi-tcp-0.88
patch -p1 < ../../patches/ucspi-tcp-0.88.errno.patch
#//[output from patch...]
patch -p1 < ../../patches/ucspi-tcp-0.88.a_record.patch
#//[output from patch...]
patch -p1 < ../../patches/ucspi-tcp-0.88.nobase.patch
#//[output from patch...]
make setup check
./install
./instcheck

#Extract and Patch daemontools:

cd /usr/local/djb/build

#//daemontools
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm daemontools-0.76.tar
cd admin/daemontools-0.76
patch -p1 < ../../../patches/daemontools-0.76.errno.patch
#//[output from patch...]
package/install

# Extract and Patch djbdns:

cd /usr/local/djb/build

#//djbdns
gunzip djbdns-1.05.tar
tar -xf djbdns-1.05.tar
cd djbdns-1.05
patch -p1 < ../../patches/djbdns-1.05.errno.patch
#//[output from patch...]
make
make setup check
./install
./instcheck

#Next, you’ll add the necessary user accounts and use the tinydns-conf script to create an installation based on the IP of your box:
#xx.xx.xx.xx represents the IP address represented with the output of “ifconfig” on your box.

echo “Input your ip address, (ifconfig output follows)”
ifconfig
read IP

#//create the group and users — modify if needed
groupadd -g 91 dns
useradd -g 91 -u 91 -d /nonexistent -c “tinydns” -s /sbin/nologin Gtinydns
useradd -g 91 -u 92 -d /nonexistent -c “tinydns” -s /sbin/nolodin Gdnslog

#//here the tinydns-conf script copies files and creates the useable IP-based installation
cd /usr/local/bin
tinydns-conf Gtinydns Gdnslog /etc/tinydns $IP

#Once that’s done, you’ll set a symbolic link to the svcscan application to keep tinydns running if crashed:

#//create the symbolic link of djbdns under the symbolic link of the svcscan application
cd /
mkdir /service
ln -s /etc/tinydns /service
#//force us to be patient and wait for the service to start
sleep 5
#//check to make sure the service is running
svstat /service/tinydns
#//should return something like “/service/tinydns: up (pid 24957) 4870 seconds”

These instructions were taken from http://www.interworx.com/forums/archive/index.php/t-967.html forum.

Keywords: dns, djb dns, cent os, tinydns, daemontools, svstat, setting up dns, system administration
Author: Gaspar Chilingarov

DNS: инсталляция DJB DNS (tinydns) на CentOS

VPS (Virtual Private Server) от vpsland идет по умолчанию с установленным bind. A bind, как известно, это не только проблемы с безопастностью, это и безбожно отжираемая память, которой на VPS хостинге и так мало. Поэтому пришлось снести bind и поставить djbdns (tinydns).

Для уставноки скопируйте этот скрипт к себе на сервер, сделайте файл со скриптом выполняемым (chmod 755 имя_файла), и запустите его.

#!/bin/sh
#Create the following directories:
mkdir -p /usr/local/djb/build
mkdir -p /usr/local/djb/patches

# Download and extract the three patches:
# //get the patches:
cd /usr/local/djb/patches
#//Download the following (small download, still … be kind to his bandwidth .. :) ):
wget http://www.thedjbway.org/patches/djb_errno_patches.tgz
#//Extract:
tar -xzvf djb*.tgz
#//Several .patch files should output

#Download and extract the three packages:

#//Change directories and download the main packages:
cd /usr/local/djb/build
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz

#Extract and patch each of the three packages:
#(you should still be in the /usr/local/djb/build directory for all three of the following)

#Extract and Patch ucspi:

cd /usr/local/djb/build

#//ucspi
gunzip ucspi-tcp-0.88.tar
tar -xf ucspi-tcp-0.88.tar
cd ucspi-tcp-0.88
patch -p1 < ../../patches/ucspi-tcp-0.88.errno.patch
#//[output from patch...]
patch -p1 < ../../patches/ucspi-tcp-0.88.a_record.patch
#//[output from patch...]
patch -p1 < ../../patches/ucspi-tcp-0.88.nobase.patch
#//[output from patch...]
make setup check
./install
./instcheck

#Extract and Patch daemontools:

cd /usr/local/djb/build

#//daemontools
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm daemontools-0.76.tar
cd admin/daemontools-0.76
patch -p1 < ../../../patches/daemontools-0.76.errno.patch
#//[output from patch...]
package/install

# Extract and Patch djbdns:

cd /usr/local/djb/build

#//djbdns
gunzip djbdns-1.05.tar
tar -xf djbdns-1.05.tar
cd djbdns-1.05
patch -p1 < ../../patches/djbdns-1.05.errno.patch
#//[output from patch...]
make
make setup check
./install
./instcheck

#Next, you’ll add the necessary user accounts and use the tinydns-conf script to create an installation based on the IP of your box:
#xx.xx.xx.xx represents the IP address represented with the output of “ifconfig” on your box.

echo “Input your ip address, (ifconfig output follows)”
ifconfig
read IP

#//create the group and users — modify if needed
groupadd -g 91 dns
useradd -g 91 -u 91 -d /nonexistent -c “tinydns” -s /sbin/nologin Gtinydns
useradd -g 91 -u 92 -d /nonexistent -c “tinydns” -s /sbin/nolodin Gdnslog

#//here the tinydns-conf script copies files and creates the useable IP-based installation
cd /usr/local/bin
tinydns-conf Gtinydns Gdnslog /etc/tinydns $IP

#Once that’s done, you’ll set a symbolic link to the svcscan application to keep tinydns running if crashed:

#//create the symbolic link of djbdns under the symbolic link of the svcscan application
cd /
mkdir /service
ln -s /etc/tinydns /service
#//force us to be patient and wait for the service to start
sleep 5
#//check to make sure the service is running
svstat /service/tinydns
#//should return something like “/service/tinydns: up (pid 24957) 4870 seconds”

Ключевые слова: dns, djb dns, tinydns, системное администрирование, исталляция, unix, CentOS, Debian
Автор: Гаспар Чилингаров (Gaspar Chilingarov)

Инструкция по установке поддержки армянского языка в X Window System

 

Инструкция по установке поддержки армянского языка в X Window System

Инструкция по настройке FreeBSD системы для отображения и ввода армянских текстов

Отображение армянских текстов:

Если у Вас система дистибутив X Windows — XFree86 версии 4.0 и выше, то как у Вас есть как минимум несколько UNICODE .BDF фонтов (из семейства -misc-fixed-*), которые содержат в себе символы армянского алфавита. Если у Вас система X Windows — Xorg, то в ней тоже есть фонты поддерживающие армянский. Вам просто нужно выбрать их в текстовом редакторе или браузере для отображения армянского текста.

Набор армянских текстов:

1. Необходимо открыть терминал (с системой X Windows распространяется терминал xterm).
2. Необходимо получить привелегии суперпользователя — root.
Для этого нужно набрать в терминале

##
su -
##
В ответ на запрос команды su введите пароль суперпользователя. Если команда su сразу пишет “su: Sorry”, это значит, что вы не входите в группу wheel и не имеете право получать привелегии суперпользователя. Тогда вам придется войти в систему пользователем root.

3. Необходимо проверить, что в системе присутствуют файлы
##
/usr/X11R6/lib/X11/xkb/symbols/am
/usr/X11R6/lib/X11/xkb/symbols/pc/am
##

Если их нет, но их можно скачать ««здесь»». Первый файл нужно скопировать в /usr/X11R6/lib/X11/xkb/symbols/am, второй в /usr/X11R6/lib/X11/xkb/symbols/pc/am, и выполнить команды
##
chmod 644 /usr/X11R6/lib/X11/xkb/symbols/am
chmod 644 /usr/X11R6/lib/X11/xkb/symbols/pc/am
chown root:wheel /usr/X11R6/lib/X11/xkb/symbols/am
chown root:wheel /usr/X11R6/lib/X11/xkb/symbols/pc/am
##

Если такие файлы уже есть на вашей системе, стоит выполнить команду
##
grep phonetic /usr/X11R6/lib/X11/xkb/symbols/am \
/usr/X11R6/lib/X11/xkb/symbols/pc/am
##

Если у Вас уже есть фонетическая армянская раскладка — то Вы увидете следуещее:
##
/usr/X11R6/lib/X11/xkb/symbols/am:xkb_symbols “phonetic” {
/usr/X11R6/lib/X11/xkb/symbols/pc/am:xkb_symbols “phonetic” {
##

Если команда grep ничего не вывела, то Вам стоит скачать файлы раскладок с этого сайта и скопировать на место существующих у Вас.

В старых файлах армянской раскладки была только typewriter раскладка.

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

Необходимо открыть в любом редакторе файл /etc/X11/XF86Config .

Найдите следующий текст

##
Section “ServerLayout”
Identifier “XFree86 Configured”
Screen 0 “Screen0″ 0 0
InputDevice “Mouse0″ “CorePointer”
InputDevice “Keyboard0″ “CoreKeyboard”
EndSection
##

Выделенный жирным текст — это название Вашей секции описания клавиатуры. Найдите секцию, где Identifier такое-же значение

Она должна выглядеть приблизительно так:
##
Section “InputDevice”
Identifier “Keyboard0″
Driver “keyboard”
Option “XkbModel” “pc105″
Option “AutoRepeat” “250 30″
EndSection
##

Вам необходимо добавить несколько строк, чтоб она выглядела следующим образом:
##
Section “InputDevice”
Identifier “Keyboard0″
Driver “keyboard”
Option “XkbModel” “pc105″
Option “AutoRepeat” “250 30″

Option “XkbLayout” “us,am(phonetic)”
Option “XkbVariant” “winkeys”
Option “XkbOptions” “grp:alt_shift_toggle,grp_led:scroll”
EndSection
##

Строчки XkbLayout описывают что используются 2 раскладки — английская и армянская фонетическая. Если Вы пользуетесь typewriter раскладкой, то Вам нужно убрать (phonetic), что бы получилось
##
Option “XkbLayout” “us,am”
##

XkbVariant указывает,что разрешены дополнительные клавиши (левая/правая Win и Menu).

XkbOptions указывает, что для переключения между раскладками будет использоваться - Alt+Shift. При использовании армянской раскладки на клавиатуре будет гореть индикатор ScrollLock.
Правый Alt+Shift и кнопка Menu будут переключать раскладки по циклу us -> am, а левый Alt+Shift будет переключать в последовательности - am -> us и если у вас X.org, то не будет переключаться с раскладки us на am.

Далее вам необходимо сохранить изменения и перезагрузить X Server.

Инструкция по настройке Linux систем для отображения и ввода армянских текстов

Если вы используете современные системы (скажем, Fedora Core 4), то по умолчанию система уже поддерживает отображение армянского алфавита.
Для настройки ввода армянского текста, если Вы используете оболочку GNOME, достаточно щелкнуть на панели правой кнопкой, выбрать “Add to panel”, выбрать из списка апплетов “Keyboard indicator” и нажать OK. После того, как апплет добавится на панель, необходимо правой кнопкой мыши щелкнуть на нем, выбрать пункт меню “Preferences”, после чего добавить из списка возможных раскладок армянскую раскладку.

Если Linux система не поддерживает добавления новых раскладок через графический интерфейс, то Вам придется выполнить те-же шаги, что и для FreeBSD, с той разницей, что указанные файлы могут ханодится в других местах.

Keywords: armenian unicode layout, x11, freebsd, linux, writing in armenian, armenian font
Author: Gaspar Chilingarov
Copyright 2005