soft :: linux

Советы по Slackware Linux 4

Советы по Slackware Linux

Сегодня мы продолжаем рассматривать советы по Slackware Linux, которые были собраны Джеком С. Лэем и призваны помочь вам в работе. Итак, слово снова предоставляется Джеку С. Лэю.

Изучаем уровни начальной загрузки
Первостепенное значение для нас имеет конфигурационный файл /etc/inittab. inittab выполнит скрипты в зависимости от того, какой уровень загрузки (run level) вы собираетесь выполнить. Например, при уровне, установленном по умолчанию 3, inittab выполнит /etc/rc.d/rc.S (который вызовет /etc/rc.d/rc.modules и rc.serial), затем /etc/rc.d/rc.M, который вызовет... Просто следите за тем, что происходит по мере выполнения файла inittab, и все будет в порядке.

Коллективный доступ в Интернет
Включаем Dial-on-Demand
Dial-on-Demand позволяет всем компьютерам, находящимся в одной сети, получать доступ в Интернет через одно модемное соединение. Для этого вставьте следующие строки в /etc/rc.d/rc.inet2 (сразу после IPV forward). В этом случае остальные компьютеры сети будут использовать ваш компьютер как шлюз:
# Инициализируем Dial-on-demand
# PPPD_AUTO: 0 = выкл, 1 = вкл. Элементарно, Ватсон;)
PPPD_AUTO=0
if [ "$PPPD_AUTO" = "1" ]; then
echo "Activating Dial-on-Demand."
# Замените на nameserver или IP-адрес вашего провайдера)
pppd :1.2.3.4
route add -host 255.255.255.255 dev eth0
fi

Отключаем связь с Интернетом
#!/bin/bash
# killmodem — автор Jack S. Lai
#
# Этот скрипт корректно завершит модемное соединение. Он был написан
# для завершения dial-on-demand PPPD интерфейса до пятиминутного тайм-аута при # #запуске
#
MDMPID=`cat /var/run/ ppp0.pid`
kill -HUP $MDMPID

Кабельный модем
Серверные настройки
После инициализации кабельного модема скриптом netconfig (в процессе его выполнения вам может понадобиться ввести имя вашего хоста) у вас есть кабельное соединение.
Я привык настраивать только кэширующий сервер имен, т.к. сервер моего провайдера имеет обыкновение ненадолго "падать" по ночам (это довольно неудобно, когда застает врасплох). После настройки кэширующего сервера имен приостановки в работе более не возникали. Для получения более подробной информации см. djbns.
Далее я настроил dhcpd (этот демон стартует из /etc/ rc.d/rc.local), чтобы он передавал необходимую информацию для обеспечения доступа к Интернету моему Linux/ Windows-компьютеру в любое время.
#
# Конфигурационный файл для ISC dhcpd (см. 'man dhcpd.conf')
#
ddns-update-style interim;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.3;
default-lease-time 86400;
max-lease-time 86400;
option routers 192.168.1.1;
option ip-forwarding off;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option domain-name "syskahuna.org";
option netbios-name-servers 192.168.1.1;
option netbios-dd-server 192.168.1.1;
option netbios-node-type 8;
option netbios-scope "";
}
Так как IP-адреса компьютеров во внутренней сети всегда остаются неизменными, я добавил следующие строки в файл /etc/hosts для облегчения вызовов ping, ssh, scp и т.д.
# hosts
# This file describes a number of hostname-to-address mappings for the TCP/IP subsystem. It is mostly used at boot time, when no name servers are running. On small systems, this file can be used instead of a "named" name server. Just add the names, addresses and any aliases to this file...
#
# By the way, Arnt Gul-brandsen <agulbra@nvg.unit. no> says that 127.0.0.1 should NEVER be named with the name of the machine. It causes problems for some (stupid) programs, irc and reputedly talk. :^)
#
# For loopbacking.
127.0.0.1 localhost
192.168.1.1 oahu.syska- huna.org oahu
192.168.1.2 kauai.syska-huna.org Kauai
Отредактируйте файл /etc/ rc.d/rc.inet1 для задания IP-адреса второй сетевой карте.
Также можете изменить файл /etc/modules.conf, чтобы разделить две сетевые карты. В моем случае я намеренно поместил в сервер два разных сетевых адаптера, чтобы не перепутать их.
/etc/modules.conf:
alias eth0 sundance
alias eth1 8139too

Настройки клиента
Настройте клиент так, чтобы он использовал dhcp для разрешения адресов. Это настроит большинство параметров, необходимых для доступа в Интернет.

Повторный старт IDS при изменении IP-адреса с помощью dhcpd
Когда для получения IP-адреса используется dhcpd, для изменения этого адреса порой необходимо также изменить адреса, которые отслеживают запущенные программы IDS. Эта процедура позволит dhcpd запускать скрипты обновления, когда адрес меняется.
Чтобы осуществить данное изменение, я написал rc-скрипты для запуска, остановки и перезапуска portsentry, snort и iptables. Однако демону portsentry также требуется скрипт doport, а snort — скрипт dosnort. Вышеперечисленные функции можно добавить к этим скриптам, но я пошел другим путем. Я изменил файл /etc/rc.d/rc.inet2 для запуска этих скриптов вместо того, чтобы запускать эти программы вызовами напрямую.

Начало модификации /etc/ rc.d/rc.inet2:
# If there is a firewall script, run it before enabling packet forwarding. See the HOWTOs on http:// www.netfilter.org/ for documentation on setting up a firewall or NAT on Linux.
if [ -x /etc/rc.d/rc.firewall ]; then
/etc/rc.d/rc.firewall start
fi
# Запускаем portsentry
if [ -x /etc/rc.d/rc.portsentry ]; then
/etc/rc.d/rc.portsentry start
fi
# Запускаем snort
if [ -x /etc/rc.d/rc.snort ]; then
/etc/rc.d/rc.snort start
fi
# Запускаем icmpinfo
echo "Starting icmpinfo"
/usr/sbin/icmpinfo -v -n -s -l
# Запускаем iplog
echo "Starting iplog"
/usr/local/sbin/iplog
# Запускаем клиент MyNetWatchman.
if [ -x /etc/rc.d/rc. mnwclient ]; then
/etc/rc.d/rc.mnwclient start
fi
Конец модификации

Начало скрипта /etc/rc.d/ rc.portsentry
#!/bin/bash
# Запускаем или перезапускаем Portsentry
dostart() {
echo "Starting Portsentry..."
/usr/local/psionic/portsentry2/doports
/usr/local/psionic/portsentry2/portsentry
}
dostop() {
mypid=$(pidof -x portsentry)
if [ $mypid ]; then
# Running — kill it
echo "Stopping Portsen-try: $mypid"
kill $mypid
else
echo "Portsentry is not running! Can't stop."
fi
}
case "$1" in
'start')
dostart
;;
'stop')
dostop
;;
'restart')
dostop
sleep 2
dostart
;;
*)
# Default to start
dostart
esac
Конец скрипта

Начало скрипта /etc/rc.d/ rc.snort
#!/bin/bash
# Запускаем или перезапускаем Snort
# Параметры Snort:
# -c использовать конфигурационный файл
# -q выход
# -D запускать в режиме демона
dostart() {
echo "Starting Snort"
/etc/snort/dosnort
/usr/bin/snort -q -c /etc/snort/snort.conf -D &
}
dostop() {
mypid=$(pidof -x snort)
if [ $mypid ]; then
# Running — kill it
echo "Stopping Snort: $mypid"
kill $mypid
else
echo "Snort is not running! Can't stop."
fi
}
case "$1" in
'start')
dostart
;;
'stop')
dostop
;;
'restart')
dostop
sleep 2
dostart
;;
*)
# Default to start
dostart
esac
Конец скрипта

У вас уже должен быть свой скрипт /etc/rc.d/rc.firewall, запускающий, останавливающий или перезапускающий ваш firewall. Теперь изменим /etc/dhcpc/dhcpcd-eth0.exe следующим образом:
#!/bin/sh
ipup() {
echo "(dhcpcd) IP address not changed: $1" | logger -p user.info
echo "ipup"
}
ipdown() {
echo "(dhcpcd) IP interface down!: $1" | logger -p user.info
echo "ipdown"
}
ipnew() {
echo "(dhcpcd) IP address changed to $1" | logger -p user.info
echo "ipnew"
# Restart firewall and IDS programs:
if [ -x /etc/rc.d/rc. firewall ]; then
/etc/rc.d/rc.firewall restart
fi
# sleep 2
if [ -x /etc/rc.d/rc. portsentry ]; then
/etc/rc.d/rc.portsentry restart
fi
if [ -x /etc/rc.d/rc. snort ]; then
/etc/rc.d/rc.snort restart
fi
}
case "$2" in
'up')
ipup
;;
'new')
ipnew
;;
'down')
ipdown
;;
*)
# Default to up
up
esac
Конец скрипта

Затем создаем ссылку Now we need to create a link: "ln -s /etc/dhcpc/dhcpcd-eth0.exe /etc/dhcpc/dhcpcd.exe"
Итак, теперь каждый раз, когда IP-адрес вашего сервера меняется, ваши firewall и IDS-программы будут перезапущены.
Примечание: Этот скрипт допускает, что у вас уже установлено соединение с Интернетом. Если вы запускаете его впервые, дайте возможность вашей системе загрузиться и не перезапускайте firewall и IDS-программы путем выключения скрипта запуска.
chmod -x /etc/dhcpc/ dhcpcd-eth0.exe
После того, как вам присвоен IP-адрес, сделайте этот файл запускаемым снова.

Принудительная проверка файловой системы при запуске
Когда вы просматривали загрузочные скрипты, вы, вероятно, это обнаружили. Все диски, помеченные в файле fstab (см. man fstab) для проверки, будут проверены вызовом из /etc/rc.d/rc.S. Для этого выполните следующую команду:
touch /etc/forcefsck

Включаем поддержку Java в браузерах
Пакет Java 2 Runtime находится в каталоге /extra. Установите его командой installpkg и последуйте совету по настройке ниже. Я скачал Java 2 SDK из http://java.sun.com/j2se/ 1.4.1/download.html как самораспаковывающийся архив и после распаковки переместил его в /usr/lib:
mv j2sdk1.4.1/usr/lib
Затем в директории /etc/profile.d создал файл j2sdk.sh
#!/bin/sh
export MANPATH="$MANPATH:/usr/lib/ j2sdk1.4.1/man"
export PATH="$PATH:/usr/ lib/j2sdk1.4.1/jre/bin"

И, наконец, укажем путь вашему браузеру. В директории плагинов вашего браузера создайте символические ссылки на необходимые Java-библиотеки:
ln -s /usr/lib/j2sdk1. 4.1/jre/plugin/i386/ns610/libjavaplugin_oji.so libjavaplugin_oji.so
На этом все. Удачной вам работы со Slackware!

По материалам Джека С. Лэя Подготовил X-Stranger
Текст распространяется на условиях GPL




© компьютерная газета