Советы по Slackware Linux 1

Советы по Slackware Linux

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

Эта информация была тщательно собрана мной из разных источников в один документ для того, чтобы помочь мне (и, быть может, другим) настроить систему после установки с нуля.
Также эти заметки укажут вам путь к источникам информации, позволяющим максимально обезопасить вашу систему в соответствии с Center for Internet Security.
Разумеется, осуществить вещи, описанные ниже, можно разными способами, но я предлагаю вам ознакомиться с моим подходом.
Несколько слов об аппаратных устройствах. Мой компьютер с Slackware служит для firewall/ NAT/IDS с двумя сетевыми устройствами. Одно из них — кабельный модем, другое — обычная Ethernet-карта, ведущая к хабу. Хаб соединяет сервер с моей рабочей станцией, на которой установлены Slackware и Windows 98SE.
Я загружаюсь под Windows, когда разрабатываю Windows-приложения, также мне необходима контролируемая безопасная среда, отсюда — Slackware Linux сервер.
Этот документ предназначен для пользователя Slackware начального уровня.

Инсталляция Slackware
Единственное, что я советую при инсталляции Slackware, — отключите компьютер от сети до того момента, когда вы будете уверены в безопасности вашей системы. Хотя, если вам нравится иметь возможность скачивать Slackware из Интернета и инсталлировать систему с жесткого диска, то можете этого не делать;).

Постинсталляционные заметки
Итак, вы только что инсталлировали Slackware и зашли в систему как root. Что теперь? Вашей системе требуется небольшой тюнинг. В частности, укрепление защиты от взлома, настройка периферийного оборудования и, быть может, настройка системы под конкретного пользователя, т.е. под вас. Итак, приступим.

Чтение почты пользователя root
Итак, вероятно, вы желаете прочитать письмо Патрика Волкердинга, посланное на аккаунт администратора при установке, т.к. оно содержит полезную информацию о настройке. В таком случае выполните команду mail (или иную программу). Первое сообщение будет о регистрации в http://counter.li.org/ (счетчик пользователей Linux).
Нас же пока интересует второе письмо, т.к. связи с Интернетом у нас пока нет, и даже если бы она у нас была, доступ в Интернет под root'ом — не самая лучшая идея.
Если вы желаете последовать советам Патрика, можете оставить его письмо открытым на консоли и заняться другими вещами на остальных терминалах. Slackware инициализирует 6 виртуальных консолей, доступных нажатием комбинации клавиш Alt+F1(...F6).
Первоначально, находясь на первой консоли (F1), перейдите на вторую консоль нажатием Alt+F2, войдите в систему и выполняйте любые действия, по мере надобности переключаясь между терминалами. Когда вы прочтете письмо Патрика и выйдете из почтовой программы, письмо будет сохранено в /root/mbox (в случае использования программы mail и некоторых других). Вы можете просмотреть его (равно как и любой другой файл) процедурой less mbox.
Для начала убедитесь, что находитесь в директории /root (если вы только что вошли в систему, так и будет) с помощью команды cd. Затем введите less mbox и нажмите Enter.
Для передвижения вверх/вниз по документу служат клавиши курсора, для выхода нажмите q.
Теперь, когда вы знаете, где найти информацию, пойдем дальше.

Иные источники информации
Несмотря на то, что я не советую вам подключаться к Интернету, пока безопасность вашей системы не находится на должном уровне, ниже приведены ссылки на дополнительные источники информации, которые можно использовать при настройке Slackware.
Сначала попробуйте найти ответ на интересующий вас вопрос сами, т.к. более чем вероятно, что подобный вопрос задавался ранее не раз, и ответ на него можно найти через легкодоступные источники информации, к примеру, man, info, /usr/doc/... либо с помощью поисковой системы Google (как сказал один мой друг: "Гугл в помощь!":) — прим. X-Stranger'a).
Если вы не можете найти ответ или не можете толком понять предложенные ответы, и вам требуется разъяснение, то вне зависимости от того, где вы хотите задать ваш вопрос, взгляните сначала на то, как следует задавать вопросы.
При правильной постановке вопроса шансы получить ответ возрастают.
Мало что может сравниться с чувством удовлетворенности от того, что вы нашли ответ сами... Итак, перечислим источники:

Сайты Slackware (кроме http://www.slackware.com/):
ЧаВо группы новостей Slackware;
Alt.os.linux.slackware FAQ;
общая информация;
http://userlocal.com/;
информация о скачивании;
Wild Wizards Slackware Mirrors;
группы новостей;
Alt.os.linux.slackware;
Alt.linux.slackware.

Linux:
The Linux Documentation Project;
linuxnewbie.org;
alt.linux* (linux news groups);
alt.os.linux* (linux news groups);
comp.os.linux* (linux news groups);
comp.windows.x.kde, etc...

Создание логов
Лог (журнал) всех изменений системы может прийтись очень кстати в случае фатального сбоя системы (поломка жесткого диска, к примеру), а также когда вы просто хотите просмотреть все внесенные изменения после инсталляции. Рекомендуется регулярно сохранять лог на внешнем носителе (дискете, CD-RW-диске, файле в сети и т.д.).
С помощью любого текстового редактора (я использую mcedit из пакета Midnight Commander в slackware/ap) создайте файл в директории /root под названием install.log. Я предпочитаю создавать файл dolog в директории /usr/local/sbin следующим образом:

"mcedit /usr/local/sbin/dolog"
#!/bin/bash
mcedit /root/install.log

После того, как вы сохраните файл, сделайте его запускаемым командой "chmod +x /usr/local/sbin/dolog". Теперь у вас есть возможность вызывать dolog в любое время под root'ом.

Настройка среды пользователя
Под этим я понимаю внесение изменений в интерфейс командной строки.
Также в случае, если Slackware в будущем внесет изменения в эти настройки, изменяя файл /etc/profile, я не хочу делать эту работу заново. Поэтому сначала я создаю файл mystuff.sh в /etc/profile.d. Файл /etc/profile выполнит все исполняемые файлы в данной директории, которые содержат расширение, свидетельствующее о том, что используется оболочка (shell).
Например, если оболочка /bin/bash или /bin/sh, все файлы с расширением .sh будут исполнены. Находясь в системе как root, выполните:

"mcedit /etc/mystuff.sh"
#!/bin/bash
# My stuff
# Following variable used in PS1
export TTYNR='tty'
export TTYNR=${TTYNR:8}
# Use mcedit to modify files, vice "vi"
export VISUAL=/usr/bin/mcedit
if [ 'id -u' = "0" ]; then
# root — display current time, machine network name, terminal logged in on, and prompt in red
PS1="\[\033[1;31m\[\t \h$TTYNR:\w \$\[\033[0m\]"
else
# Not root — display current time, machine network name terminal logged in on, and prompt in yellow
PS1="\[\033[1;32m\[\t \h$TTYNR:\w\$\[\033[0m\]"
fi
export PS1
# get rid of annoying beep:
setterm -bfreq 0
# Setup my alias's
alias dir="ls -l"
alias li="dir|less"
alias cls="clear"
alias see="links"
alias startx="startx — -dpi 100"
alias df="df -h"
alias ckmd5="md5sum -c CHECKSUMS.md5 | grep -v OK"
alias gpgd="gpg --decrypt"
alias ping="ping -c 1"

После того, как вы сохраните файл, сделайте его запускаемым командой "chmod +x /etc/profile.d/mystuff.sh". Теперь он будет запущен при каждом входе в систему.
Для получения общих сведений о файловых системах прочтите System Overview и System Startup.

Обеспечение безопасности Slackware
Безопасность. Какое понятие! Безопасность основана на доверии.
В случае с компьютерами она основана на вашем доверии к людям, использующим вашу систему или ее сервисы, и доверии к программному обеспечению, установленному на ней.
Является ли компьютер без запущенных на нем сервисов безопасной системой? Теперь у вас есть доступ в Интернет. Вы только что нашли лазейку в вашей системе безопасности. Плохо ли это? Я не знаю. Только что вы доверились интернет-браузеру, который используете. Вы доверяете вашему провайдеру. Вы доверились firewall'у. Вы доверяете веб-сайту, который посещаете. Улавливаете, к чему я клоню?

Основные аксиомы безопасности:
• ничего не предполагайте, никаких допущений;
• не доверяйте никому, не верьте ничему;
• ничто не безопасно;
• безопасность — это компромисс с удобством использования;
• паранойя — ваш друг.

Для того, чтобы система выполняла ваши задачи, вам требуется немного доверия. Вам решать.
Итак, вы хотите обезопасить свою систему. Заметьте, что это зависит, в основном, от ваших предпочтений и от тех сервисов, которые ваша система будет выполнять.
Этот раздел описывает настройку безопасности изолированной системы, имеющей доступ в Интернет и предоставляющей физический доступ только тем, кому вы доверяете. Собственно говоря, я не буду останавливаться на физической безопасности системы. Оставлю это вам.
Информация этого раздела предоставляется как есть. Следуя этим инструкциям, вы не получите абсолютно безопасную систему. Вы получите систему, более безопасную, нежели система сразу после установки Slackware.
Если вы последуете советам Джеффри Дентона по укреплению безопасности системы, у вас будет довольно надежная система.
Если вас интересуют добавочные источники по настройке безопасности, посетите Linuxsecurity.com.

Изменения/модификации/добавления, которые следует учесть при построении безопасной системы
Выполнять команды at и cron должен иметь возможность только root:

rm /etc/at.deny
echo root > /etc/cron.allow
echo root > /etc/at.allow
Внизу приведена модифицированная версия инструкции по укреплению безопасности системы.
Скопируйте эти строки и вставьте их в /root/chmod.dat:

chmod 750 /bin/mt-st
chmod 600 /etc/at.allow
chmod 600 /etc/cron*
chmod 600 /etc/ftpusers
chmod 600 /etc/hosts.allow
chmod 600 /etc/hosts.deny
chmod 600 /etc/inetd.conf
chmod 600 /etc/inittab
chmod 600 /etc/lilo.conf
chmod 600 /etc/login.defs
chmod 600 /etc/securetty
chmod 600 /etc/suauth
chmod 440 /etc/sudoers
chmod 600 /etc/syslog.conf
chmod 750 /sbin/badblocks
chmod 750 /sbin/debugfs
chmod 750 /sbin/depmod
chmod 750 /sbin/dumpe2fs
chmod 750 /sbin/explodepkg
chmod 750 /sbin/fdisk
chmod 750 /sbin/fsck
chmod 750 /sbin/fsck.ext2
chmod 750 /sbin/fsck.minix
chmod 750 /sbin/ftl_check
chmod 750 /sbin/ftl_format
chmod 750 /sbin/halt
chmod 750 /sbin/hwclock
chmod 750 /sbin/ifconfig
chmod 750 /sbin/ifport
chmod 750 /sbin/ifuser
chmod 750 /sbin/init
chmod 750 /sbin/insmod
chmod 750 /sbin/installpkg
chmod 750 /sbin/isapnp
chmod 750 /sbin/killall5
chmod 750 /sbin/lilo
chmod 750 /sbin/makepkg
chmod 750 /sbin/mke2fs
chmod 750 /sbin/mkfs
chmod 750 /sbin/mkfs.minix
chmod 750 /sbin/mkdosfs
chmod 750 /sbin/mkraid
chmod 750 /sbin/mkswap
chmod 750 /sbin/modinfo
chmod 750 /sbin/pkgtool
chmod 750 /sbin/pnpdump
chmod 750 /sbin/removepkg
chmod 750 /sbin/rpc.portmap
chmod 750 /sbin/quotaon
chmod 750 /sbin/rdev
chmod 750 /sbin/runlevel
chmod 750 /sbin/setserial
chmod 750 /sbin/swapon
chmod 750 /sbin/tune2fs
chmod 750 /sbin/upgradepkg
chmod 750 /sbin/uugetty
chmod 750 /usr/bin/eject
chmod 4750 /usr/bin/gpasswd
chmod 750 /usr/bin/lpq
chmod 750 /usr/bin/lprm
chmod 4750 /usr/bin/lpr
chmod 750 /usr/bin/minicom
chmod 700 /usr/bin/nohup
chmod 700 /usr/bin/script
chmod 500 /usr/lib/news/bin/inndstart
chmod 500 /usr/lib/news/bin/startinnfeed
chmod 750 /usr/sbin/atd
chmod 750 /usr/sbin/atrun
chmod 750 /usr/sbin/crond
chmod 750 /usr/sbin/ctrlaltdel
chmod 750 /usr/sbin/dhcpd
chmod 750 /usr/sbin/dhcrelay
chmod 750 /usr/sbin/edquota
chmod 750 /usr/sbin/groupadd
chmod 750 /usr/sbin/groupdel
chmod 750 /usr/sbin/groupmod
chmod 750 /usr/sbin/grpck
chmod 750 /usr/sbin/grpconv
chmod 750 /usr/sbin/grpunconv
chmod 750 /usr/sbin/hdparm
chmod 750 /usr/sbin/imapd
chmod 750 /usr/sbin/in.comsat
chmod 755 /usr/sbin/in.fingerd
chmod 755 /usr/sbin/in.identd
chmod 750 /usr/sbin/in.talkd
chmod 000 /usr/sbin/in.rexecd
chmod 000 /usr/sbin/in.rlogind
chmod 000 /usr/sbin/in.rshd
chmod 750 /usr/sbin/in.telnetd
chmod 000 /usr/sbin/in.tftpd
chmod 750 /usr/sbin/in.timed
chmod 750 /usr/sbin/inetd
chmod 750 /usr/sbin/ipop3d
chmod 750 /usr/sbin/klogd
chmod 2750 /usr/sbin/lpc
chmod 740 /usr/sbin/lpd
chmod 550 /usr/sbin/makemap
chmod 750 /usr/sbin/mouseconfig
chmod 750 /usr/sbin/named
chmod 750 /usr/sbin/newusers
chmod 750 /usr/sbin/nmbd
chmod 750 /usr/sbin/ntpdate
chmod 750 /usr/sbin/ntpq
chmod 750 /usr/sbin/ntptime
chmod 750 /usr/sbin/ntptrace
chmod 750 /usr/sbin/pppd
chmod 750 /usr/sbin/pwck
chmod 750 /usr/sbin/pwconv
chmod 750 /usr/sbin/pwunconv
chmod 550 /usr/sbin/quotastats
chmod 750 /usr/sbin/rpc.bootparamd
chmod 750 /usr/sbin/rpc.mountd
chmod 750 /usr/sbin/rpc.nfsd
chmod 750 /usr/sbin/rpc.rusersd
chmod 750 /usr/sbin/rpc.rwalld
chmod 750 /usr/sbin/rpc.yppasswdd
chmod 750 /usr/sbin/rpc.ypxfrd
chmod 750 /usr/sbin/rpcinfo
chmod 750 /usr/sbin/showmount
chmod 750 /usr/sbin/smbd
chmod 750 /usr/sbin/syslogd
chmod 750 /usr/sbin/tcpd
chmod 750 /usr/sbin/tcpdchk
chmod 750 /usr/sbin/tcpdmatch
chmod 750 /usr/sbin/tcpdump
chmod 750 /usr/sbin/timeconfig
chmod 750 /usr/sbin/useradd
chmod 750 /usr/sbin/userdel
chmod 750 /usr/sbin/usermod
chmod 750 /usr/sbin/vipw

Теперь запустите его:

/bin/bash < chmod.dat

Поставьте защиту от записи на данные файлы:

/root/chattr.dat
chattr +i /etc/at.allow
chattr +i /etc/cron.allow
chattr +i /etc/exports
chattr +i /etc/hosts.equiv
chattr +i /etc/hosts.lpd
chattr +i /etc/inetd.conf
chattr +i /etc/lilo.conf
chattr +i /etc/login.access
chattr +i /etc/login.defs
chattr +i /etc/porttime
chattr +i /etc/protocols
chattr +i /etc/securetty
chattr +i /etc/services
chattr +i /etc/suauth
/bin/bash < /root/chattr.dat

Следующая модификация будет посылать все в /var/log/messages, чтобы иметь возможность просматривать записи в журнале одним анализатором (logcheck):

/etc/syslog.conf:
# /etc/syslog.conf
# Для справки о формате данного файла, "man syslog.conf"
# и /usr/doc/sysklogd/README.linux.
# Раскомментируйте эту строчку, чтобы видеть сообщения ядра на консоли
#kern.* /dev/console
# Записывать 'info' или выше, но ниже, чем 'warn'.
# Кроме authpriv, cron, mail и news. Они записываются в другом месте.
*.info;*.!warn;\
auth.none;authpriv.none;cron.none;mail.none;news.none /var/log/messages
# Записывать 'warn' или выше.
# Кроме authpriv, cron, mail и news. Они записываются в другом месте.
*.warn;\
auth.none;authpriv.none;cron.none;mail.none;news.none /var/log/messages
# Информация об отладке хранится здесь.
*.=debug /var/log/messages
# Запись сообщений частной аутентификации
authpriv.*;auth.* /var/log/messages
# Записи, связанные с Cron
cron.* /var/log/cron
# Записи, связанные с почтой
mail.* /var/log/maillog
# Сообщения об авариях посылать каждому пользователю.
*.emerg *
# Записи ошибок news и uucp.
uucp,news.crit /var/log/spooler
# Раскромментируйте эти строки, если вы хотите хранить все логи INN
# Если INN ( InterNet News daemon) не используется, они вам не нужны
#news.=crit /var/log/news/news.crit
#news.=err /var/log/news/news.err
#news.notice /var/log/news/news. notice
/etc/issue and /etc/issue.net
Welcome to \n.\o. \t with \U (\l).

Продолжение следует.

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



Компьютерная газета. Статья была опубликована в номере 17 за 2003 год в рубрике soft :: linux

©1997-2024 Компьютерная газета