Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

За 2003-09-22

Чтиво: установка сервера часть 014

Я хочу еще немного упростить себе работу - мне лень иногда выполнять
одни и теже действия и при этом писать одни и теже команды. Чтобы
уменьшить ввод с клавиатуры, я создам алиасы или синонимы команд.
Описываются алиасы в файлике ~/.bashrc. Откроем его в mcedit.
$ mcedit ~/.bashrc

И после строчки "# User specific aliases and functions" добавим
# User specific aliases and functions
alias mcd='mount /mnt/cdrom'
alias cdrom='cd /mnt/cdrom'
Cохраним файл.

Теперь, если в командной строке, набрать "mcd", то смонтируется
CD-диск, а командочкой "cdrom", можно будет быстро переходить в каталог
со смонтированным диском.

Но эти алиасы будут действовать только для пользователя, в чьем
каталоге находится файлик ".bashrc", т.е. для каждого пользователя
будут свои алиасы. А если надо сделать общие для всех? Тогда их нужно
прописать в файлике /etc/bashrc. Расположить их там можно, например,
после "# System wide functions and aliases".

C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

   Kolotov Alexandr 2003-09-22 18:24:44 (#3234)

Чтиво: установка сервера часть 013

Что ж, "вернемся к нашим баранам".

Нужно сохранить получившуюся новую версию ядра, заархивировав его:
$ su
$ cd /usr/src/
$ ls -l
$ tar cvjf linux-2.4.22.tar.bz2 linux-2.4.22
Некторое время будет создаваться архив, при этом выводится на экран что
в этот архив добавляется.
$ ls -l

Скопируем в каталог исходников еще несколько новых исходников:
$ cp /home/koal/files/patch-o-matic-20030107.tar.bz2 ./
$ cp /home/koal/files/iptables-1.2.8.tar.bz2 ./
Разархивириуем их
$ tar xvjf iptables-1.2.8.tar.bz2
$ tar xvjf patch-o-matic-20030107.tar.bz2

Для удобства работы с каталогом ядра создадим символьную ссылку на
основной каталог linux-2.4.22:
$ ln -s ./linux-2.4.22 linux
Зачем мне все это надо? Пакет "patch-o-matic" содержит в себе множество
патчей, которые позволяют гибче настраивать работу с сетями при
использовании iptables, которая в свою очередь обеспечивает возможность
создания правил для сетевой маршрутизации, фильтрации, что необходимо
для создания шлюзов, мостов, файерволов. Вообщем, мне это надо. А еще c
ASPLinux9 предоставляется уже устаревшая версия iptables - 1.2.7a, а
текущая 1.2.8. Итак, сначала рабираюсь с patch-o-matic:
$ cd patch-o-matic-20030107
Сначала приложим стандартные заплатки.
$ KERNEL_DIR=/usr/src/linux/ ./runme pending
Затем, - заплатки из дополнительного набора, некоторые из них еще в
стадии разработки, а некоторые конфликтуют друг с другом и другими
возможностями, заложенными в ядре - т.е. я устанавливаю их на свой
страх и риск.
$ KERNEL_DIR=/usr/src/linux/ ./runme extra
В результате, я выбрал следующее (функциональные возможности я сейчас
описывать не буду, это, наверное, случится когда я буду их пробовать на
практике, пока я их просто перечислю):
base/iplimit
base/mport
base/time
extra/condition

Теперь скомпилируем новые iptables:
$ cd ../
$ cd iptables-1.2.8
$ make KERNEL_DIR=/usr/src/linux/
/usr/include/linux/autoconf.h:1:2: #error Invalid kernel header included in userspace
make: *** [extensions/libipt_ah_sh.o] Ошибка 1
Ага, фигушки. Ошибка. Если сейчас вывести содержимое файла
/usr/include/linux/autoconf.h командой:
$ cat /usr/include/linux/autoconf.h
то можно увидеть следующее
#error Invalid kernel header included in userspace
ИМХО, это не соответсвует синтаксису языка С. Я долго бился над этой
проблемой, пока не прочитал на одном форуме, что нужно создать пустой
файл autoconf.h в исходниках ядра. Итак
$ touch ../linux/include/linux/autoconf.h

$ make KERNEL_DIR=/usr/src/linux/
Ах черт, опять ошибка.
extensions/libipt_condition.c: In function `parse':
extensions/libipt_condition.c:49: `CONDITION_NAME_LEN' undeclared (first use
in this function)
extensions/libipt_condition.c:49: (Each undeclared identifier is reported only
once
extensions/libipt_condition.c:49: for each function it appears in.)
make: *** [extensions/libipt_condition_sh.o] Ошибка 1
смотрим файл extensions/libipt_condition.c в 49 строку:
$ cat extensions/libipt_condition.c | head -n 49 | tail -n 1
if (strlen(argv[optind - 1]) < CONDITION_NAME_LEN)
тогда обратим внимание на секцию заголовков:
$ cat extensions/libipt_condition.c | head -n 15
нас интересует строка
#include<linux/netfilter_ipv4/ipt_condition.h>
потому что именно она отвечает за подключение файла заголовоков. Сейчас
смотрим этот файл:
$ cat ../linux/include/linux/netfilter_ipv4/ipt_condition.h
ага, ну конечно. Вместо определения CONDITION_NAME_LEN определяется
"#define VARIABLE_NAME_LEN 32", это объясняется тем, что дата выхода
patch-o-matic более ранняя, чем iptables. Значит, с помощью mcedit
поправим файл extensions/libipt_condition.c
$ mcedit extensions/libipt_condition.c
вместо CONDITION ставим VARIABLE и сохраняемся.

Снова компилируем:
$ make KERNEL_DIR=/usr/src/linux/
Все. Скомпилировалось. Если сейчас сделать "ls -l", то можно увидеть,
что скомпилировалась еще и версия iptables для протокола IPv6
("ip6tables"). Я не хочу пока работать с этим протоколом, поэтому хочу
чтобы этого бинарника не было. Для этого, с помощью mcedit, я поправлю
файл Makefile, но предварительно удалим, то что мы скомпилировали:
$ make clean
$ mcedit Makefile
Раскоментируем строку 5: (показано как теперь стало)
DO_IPV6 =0
и закоментируем строчки с 30 по 32
#ifeq ($(shell [ -f /usr/include/netinet/ip6.h ] && echo YES), YES)
#DO_IPV6:=1
#endif
Снова компилируем:
$ make KERNEL_DIR=/usr/src/linux/
теперь файлика "ip6tables" не наблюдается.
ОК. Теперь остановим текущий сервис iptables.
$ /sbin/service iptables stop
Сохраним файл управления сервисом iptables.
$ cp /etc/init.d/iptables ../
Деинсталируем действующий rpm пакет iptables
$ rpm -e iptables
И завершим инсталяцию нового пакета
$ make install KERNEL_DIR=/usr/src/linux/
Все. Исполняемы файлы пакета теперь лежат /usr/local/sbin. Копируем
файл управления сервисом обратно в /etc/init.d
$ cp ../iptables /etc/init.d/
Для дальнейшего удобства создаем символьные ссылки на бинарные
файлы в /sbin/
$ ln -s /usr/local/sbin/iptables /sbin/iptables
$ ln -s /usr/local/sbin/iptables-save /sbin/iptables-save
$ ln -s /usr/local/sbin/iptables-restore /sbin/iptables-restore
Проверяем
$ ls -l /sbin/ipt*
Должна вывестись информация о символьных ссылках, вида
lrwxrwxrwx 1 root root 24 Сен 22 15:25 /sbin/iptables -> /usr/local/sbin/iptables
lrwxrwxrwx 1 root root 32 Сен 22 15:26 /sbin/iptables-restore
-> /usr/local/sbin/iptables-restore
lrwxrwxrwx 1 root root 29 Сен 22 15:25 /sbin/iptables-save ->
/usr/local/sbin/iptables-save
В заключение, необходимо настроить запуск сервиса на соответствующих
уровнях операционной системы:
$ /sbin/chkconfig --level 2345 iptables on
$ /sbin/chkconfig --level 016 iptables off
$ /sbin/chkconfig --list iptables
Попробуем запустить сервис:
$ /sbin/service iptables start
У меня данная операция прошла без ошибок.

C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

   Kolotov Alexandr 2003-09-22 15:48:40 (#3225)

Чтиво: установка сервера часть 012

После установки у ASPLinux 9 есть 2 тормоза, проявляющихся при
загрузке, и которые мне не нраватся. Я от них избавляюсь так.

Тормоз первый:
LInux LOader (LILO) ждет когда пользователь выберет нужный способ
загрузки целых 30 секунд. Я могу гораздо быстрее осуществлять свой
выбор, тем более что ОС пока у меня одна и ядро тоже одно. А еще, мне
не нравится, что в выборе стоит "linux-2.4.20", хочу чтобы было просто
"linux". Для этого с помощью mcedit нужно отредактировать
конфигурационный файл LILO - /etc/lilo.conf.

$ su
$ mcedit /etc/lilo.conf

во-первых, в строчке "timeout=300" - указывается время ожидания выбора.
"300" - 30 секунд, а мне нужно 3 секунды, следовательно поставим
"timeout=30".
во-вторых, имя "выбора" задается с помощью описателя "label=", в данном
случае "label=linux-2.4.20". Изменим на "label=linux". К тому же
необходимо изменить строчку "default=linux-2.4.20" - в ней задается
выбор по умолчанию, который будет грузиться через время timeout.
Заменяем на "default=linux".
в-третьих я обычно убираю не нужную мне загрузку ramdiska "initrd=...".
Все, можно сохранятся. Что бы изменения вступили в силу, необходимо
запустить командочку lilo.
$ /sbin/lilo

Тормоз второй:
При загрузке, старт сервиса sendmail зависает минуты на три, это мне не
нравится. Решается это добавлением в файлик /etc/hosts имени нашего
хоста в строку соответсвия для ip-адреса 127.0.0.1

$ mcedit /etc/hosts

Получается строка
127.0.0.1 localhost.localdomain localhost netgate
Теперь тормоза должны исчезнуть.

C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

   Kolotov Alexandr 2003-09-22 12:01:16 (#3188)

Чтиво: установка сервера часть 011

Помните, я говорил про список текущих установленных пакетов на для
"пользовательского" выбора пакетов при установке системы? Так вот,
существует уже готовый список в /var/log/rpmpkgs - можно смело его
копировать на дискету.

И еще дискета не обязательно может быть отформатированиа под ext2
файловую систему - ее можно так и оставить в "привычном" формате FAT ;)

C уважением, Kolotov Alexandr (aka mr. Эбола)
отвечать: myscri***@e*****.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.kirovlug-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.kirovlug&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

   Kolotov Alexandr 2003-09-22 11:03:55 (#3180)