Чтобы избежать неприятных сюрпризов при инсталляции, перед началом
необходимо ближе познакомится с аппаратным обеспечением компьютера. Если
вашей системе Linux предстоит работать в сети, необходимо также уточнить
некоторые параметры настройки у администратора сети.
Несмотря на то, что программа инсталляции способна автоматически
определять многие системные устройства, желательно перед началом
инсталляции иметь четкое представление о всех компонентах компьютера.
Особенно важной является информация о следующих компонентах:
Если ваш компьютер подключен к локальной сети, необходимо заранее
уточнить параметры настройки протокола TCP/IP, такие как:
Приведенные цифры являются лишь примерами, уточните реальные параметры
у администратора сети.
В процессе установки вы столкнетесь с именами дисков, разделов на них и
названиями каталогов файловой системы Linux, которые отличны от тех,
которые используются в DOS и Windows. Поэтому необходимо владеть основной
терминологией. Все физические устройства вашего компьютера отображаются в
каталог /dev файловой системы Linux (об этом - ниже). Диски IDE (в том
числе жесткие диски, дисководы CD ROM, ATAPI floppy) имеют
имена:
/dev/hda - первый на первом канале IDE,Жесткие диски SCSI обозначаются /dev/sdX, где Х - a,b,c,d,e,... в
зависимости от порядкового номера диска на шине SCSI. Раздел диска
обозначается числом после его имени. Например, /dev/hdb4 - четвертый
раздел второго диска на первом канале scsi.
Файловая система Linux, в отличие от файловых систем DOS и Windows(tm),
является единым деревом. Корень этого дерева - каталог, называемый рут
(root), и обозначаемый 7" o Части дерева файловой системы могут физически
располагаться в разных разделах разных дисков или вообще на других
компьютерах, - для пользователя это прозрачно. Процесс присоединения
файловой системы раздела к дереву называется монтированием, удаление -
размонтированием. Например, файловая система CD ROM в Black Cat Linux
монтируется по умолчанию в каталог /mnt/cdrom (путь в Linux обозначается с
использованием /, а не \, как в DOS/Win). Текущий каталог
обозначается"./". Файловая система Black Cat Linux содержит каталоги
первого уровня /bin (командные оболочки (shell), основные утилиты), /boot
(содержит ядро системы), /dev (псевдофайлы устройств, позволяющие работать
с ними напрямую), /etc (файлы конфигурации), /home (личные каталоги
пользователей), /lib (системные библиотеки, модули ядра), /mnt (каталоги
для монтирования файловых систем сменных устройств и внешних файловых
систем), /ргос (файловая система на виртуальном устройстве, ее файлы
содержат информацию о текущем состоянии системы), /root (личный каталог
администратора системы, входящего в нее под именем root), /sbin (системные
утилиты), /usr (программы и библиотеки, доступные пользователю, а также
документация в /usr/doc), /var (рабочие файлы программ, очереди,
протоколы), /tmp (временные файлы).
Настройка интерфейса пользователя
5.1 Настройка поддержки национального языка
(локализация)
Поддержка языка определяется переменной LANG, которая по
умолчанию берется из файла /etc/sysconfig/MSn. Для русского языка ее
значение должно быть ru_RU.KOI8-R, для украинского -uk_UA.KOI8-U. Если
установлена только переменная LANG, все остальные категории локализации
(LC_TIME, LC_MESSAGES и др.) соответствуют ей. Иногда возникает
необходимость иметь возможность иметь поддержку русского языка, но
интерфейс (сообщения программ) сохранить английский. Тогда нужно
дополнительно установить LC_MESSAGES=C. Аналогично, если при установленной
поддержке украинского языка установить LC_MESSAGES=ru_RU.KOI8-R, сообщения
программ будут выводиться на русском языке. Язык отображения даты
определяется значением переменной LCJIME. Все эти переменные могут быть
установлены по умолчанию в файле /etc/sysconfig/i18n.
5.2 Настройка текстовой консоли
5.2.1 Выбор шрифта консоли
Основными элементами текстовой консоли
являются экранный шрифт, раскладка клавиатуры и разрешение экрана
(количество строк/столбцов). Ниже будет рассказано, как настроить
текстовую консоль. Black Cat Linux поддерживает консольные шрифты в
формате UNICODE. В поставке имеется несколько таких шрифтов, содержащих
кириллицу. По умолчанию устанавливается шрифт cyr-sun16. Кроме этого,
имеются шрифты UniCyr_8x16, UniCyr-sans-8x16, UniCyr-lenta-8x16. Загрузить
шрифт можно командой "consoletools -f UniCyr-sans-8x16". Чтобы отобразить
шрифт UNICODE в текущей 8-битной кодировке, необходимо также загрузить
таблицу перекодировки (console map) - например, koi8-r, koi8u, cp866,
cp1251. То есть, чтобы в консоли просмотреть файл с раздела MS-DOS,
достаточно загрузить таблицу перекодировки командой "consolechars -m
cp866", а после этого восстановить старую командой "consolechars -m
koi8-r". При загрузке системы шрифт и таблица перекодировки берутся из
файла настройки /etc/sysconfig/i18n. формат файла /etc/sysconfig/i18n и
назначение всех переменных описаны в файле /usr/doc/initscripts-X.XX, где
Х.ХХ - версия пакета initscripts.
5.2.2 Настройка разрешения текстовой консоли
Как известно,
VGA-совместимый видеоадаптер имеет два режима - текстовый и графический.
По умолчанию он устанавливается в текстовый режим с разрешением 80х25
символов. Для изменения разрешения экрана в текстовом режиме используется
входящая в дистрибутив утилита SVGATextMode. Возможно также перевести
консоль в специальный графический режим, когда текст отображается ядром
Linux программными средствами. Такой режим называется "virtual
framebuffer". Так, чтобы перевести консоль в графический режим VESA
800х600х256 с текстовым разрешением 37х100, при загрузке на "ULO boot:"
необходимо ввести "vga=771". Такой режим позволяет запускать некоторые
игры, и даже смотреть телевизор при помощи программы fbtv (из пакета
xawtv, который можно найти на третьем диске Black Cat Linux). Допустимые
номера режимов VGA перечислены в файле
/usr/src/linux/Documentation/fb/vesafb.txt.
5.2.3 Выбор раскладки клавиатуры для консоли
Для pycf кого языка
мы рекомендуем использовать одну из шести раскладок, которые отличаются
расположением знаков препинания (традиционное или Windows) и способом
переключения рус/лат (Right Control, Right Control-Shift, Righ Alt, Caps
Lock). Перечислим эти раскладки:
ru_alt - традиционная, переключение -
правый Alt
ru_cplk - традиционная, переключение - Caps Lock
ru_ct_sh
- традиционная, переключение - правые Control-Shift
ru_ctrl -
традиционная, переключение - правый Control.
ruwin_alt, ruwin_cplk,
ruwin_ct_sh, ruwin_ctrl - аналогично, расположение
windows.
Разнообразие раскладок позволяет выбрать наиболее привычную.
Ниже будет показано, как настроить аналогичную раскладку и способ
переключения в Х Window.
5.3 Настройка Х Window
5.3.1 Выбор оболочки пользователя
В Black Cat Linux используется три основные оболочки пользователя -
GNOME, KDE и AnotherLevel. Их выбор определяется при установке (Рабочая
станция GNOME или KDE). AnotherLevel устанавливается всегда. Если вы при
установке выбрали рабочую станцию GNOME и потом решили доустано-вить KDE,
необходимо открыть файл RedHat/base/comps инсталляционного компакт-диска,
просмотреть список пакетов, входящих в секцию KDE, и установить их при
помощи команды rpm, как описано выше. Обе эти оболочки хорошо
документированы и переведены, имеют развитую систему подсказок, поэтому их
описание выходит за рамки данного руководства. Что касается AnotherLevel -
это фактически не оболочка, а оконный менеджер с системой меню. Мы
рекомендуем использовать AnotherLevel на серверах, или маломощных рабочих
станциях i486, так как обсчитывание многоцветных, объемных элементов
интерфейса GNOME и KDE требует достаточно много оперативной памяти и
вычислительных ресурсов
Если используется графический вход в систему, оболочку можно выбрать из
меню. Если вы запускаете Х Window из командной строки командой startx,
выбрать оболочку для следующего запуска можно будет программой switchdesk.
Например, после ввода команды "switchdesk KDE" оболочкой по умолчанию
станет kde.
5.3.2 Настройка переключения клавиатуры
В Black Cat Linux для
переключения клавиатуры используется xkb, все необходимые настройки
находятся в секции Keyboard файла /etc/X11/XF86Config. После установки эта
секция выглядит так: XkbLayout "ru"
# Use one of
following:
XkbOptions "grp:ctrl_shift_toggle"
# XkbOptions
"grp:ctrl_toggle"
# XkbOptions "grp:shift_toggle"
# XkbOptions
"grp-.capsJoggle"
# Uncomment if you need windoze-style layout for
Russian keyboard
# XkbVariant "winkeys" XkbModefpc101"
Здесь строка XkbOptions определяет способ переключения (Ctrl-Shift,
Right Ctrl, Right Shift-Left Shift, Caps Lock), если открыть строку
"XkbVariant "winkeys"" - будет выбрано расположение клавиш в стиле
Windows.
После перенастройки Х программой Xconfigurator все эти параметры
сбрасываются на стандартные.
5.4 Установка шрифтов TrueType
Для установки шрифтов TrueType
необходимо скопировать выбранные шрифты в каталог
/usr/share/fonts/default/TrueType и выполнить следующую последовательность
команд: ttmkfdir > fonts.scale
mkfontdir
/etc/rc.d/init.d/xfs
restart
После этого шрифты TrueType будут доступны в приложениях.
Использование шрифтов для русификации StarOffice подробно описано в
руководстве по русификации StarOffice, которое находится на четвертом
диске дистрибутива.
Настройка подсистемы печати
6.1 Установка принтера
Программа установки не предлагает установить принтер, эту процедуру
необходимо проделать на уже установленной системе при помощи утилиты
printtool. Программа printtool - графическое приложение, ее необходимо
запускать в среде Х Window. Для выполнения printtool требуются права
пользователя root. printtool умеет настраивать как локальные принтеры,
подключенные к параллельному порту, так и удаленные, доступные как по
традиционному для UNIX протоколу LPD, так и по протоколам IPX (Netware) и
SMB (Windows). Для поддержки протокола IPX необходимо иметь установленным
пакет ncpfs, для поддержки SMB - пакеты samba-common и samba-client. Для
установки локального принтера необходимо запустить printtool, нажать
кнопку "add", выбрать "Local printer", если портов несколько - выберите
порт, к которому подключен принтер. Затем необходимо выбрать фильтр (в
данном контексте - драйвер принтера). Если вашего принтера нет в списке -
попробуйте подобрать совместимый. Так, многие светодиодные принтеры OKI
имеют режим совместимости с LaserJet III. Опция "Fast text printing"
означает, что документы будут выводиться напрямую на принтер, без
предварительной растеризации в графику. Если в принтере не предусмотрена
поддержка кириллицы в СР866, эту опцию следует отключить (см. ниже). Для
проверки правильности настройки принтера необходимо перезапустить Ipd
(меню "Ipd" -> "restart Ipd") и напечатать тестовые страницы Postscript
и ASCII из меню "Tests". Если при печати теста "ASCII" наблюдается т.н.
"ступенчатая печать", когда начало новой строки находится под окончанием
предыдущей строки - необходимо вернуться к настройке фильтра и
активизировать опцию "Fix stair-stepping text".
6.2 Печать кириллицы в Black Cat Linux
Поскольку основной кодовой таблицей для русского и украинского языков в
Black Cat Linux является KOI8, а большинство русифицированных принтеров
поддерживают только кодировку СР866, в подсистему печати Black Cat Linux
вшита перекодировка из KOI8-U в СР866 при выдаче на принтер текстовых
файлов. Для Postscript-печати в Black Cat Linux используются
модифицированные шрифты URW, к которым была добавлена кириллица. Если
принтер не русифицирован аппаратно, необходимо отключить опцию "Fast text
printing" в настройке фильтра, тогда текст будет растеризован шрифтом
Courier и отпечатан в графическом режиме. Несколько хуже обстоит дело с
печатью из графических приложений. К сожалению, многие программы,
генерирующие Postscript, не могут работать с корректными шрифтами, так как
для печати символов из второй половины кодовой таблицы используют только
таблицу ISO Latin 1. Такой программой является и Netscape Communicator.
Вывод таких программ необходимо преобразовывать специальным фильтром.
Одним из таких фильтров является программа nn- print- patch Евгения
Быр-ганова. К сожалению, мы не смогли включить эту программу в Официальную
версию, так как она вносит изменения в исполняемый файл netscape и
заменяет в нем метрики шрифтов, что является нарушением лицензии. Но,
поскольку эта программа является выходом для тех, кому нужно получить
высокое качество печати русскоязычных Web-страниц, она будет доступна на
ftp://ftp.blackcatlinux.com. Другим вариантом является использование для
печати Web-страниц kfm -менеджера файлов KDE, который одновременно
является браузером. Внимание! Для печати на украинском языке необходимо,
чтобы было установлено LANG=uk_UA. KOI8-U или LANG=ru_UA. KOI8-U. Это
касается всех приложений KDE/QT.
6.3 Как сделать принтер доступным для других машин по сети?
Чтобы сделать свой принтер доступным для других Linux-машин в сети,
достаточно перечислить их в файле /etc/hosts.lpd и перезапустить Ipd. Ваш
Linux может служить также сервером печати в сетях IPX и SMB, для этого
необходимо настроить пакеты mars-nwe и samba-server.
Black Cat Linux - сервер Intranet/Internet
Linux и его конкретная
реализация Black Cat Linux могут служить замечательным решением не только
как рабочая станция, но и как маршрутизатор и сервер сети Internet, в
следующих разделах мы расскажем, как настроить вашу машину так, чтобы она
послужила полнофункциональным сервером доступа вашей локальной сети в
Internet, (далее подразумевается, что настроить ррр соединение с ISP у вас
уже получилось).
8.1 Установка дополнительной сетевой карты
Протокол TCP/IP
ограничивает количество адресов на одном сегменте Ethernet числом 254.
Обойти это ограничение можно, присвоив одной сетевой карте несколько
адресов IP, но даже при меньшем количестве машин возникает опасность
перегрузки сегмента широковещательными запросами и недопустимо
увеличивается число коллизий. Поэтому большие сегменты фрагментиру-ют,
устанавливая в сервере несколько сетевых карт. Установка нескольких
сетевых карт позволяет также эффективно разграничить доступ к информации.
Black Cat Linux ограничивает количество сетевых карт только количеством
слотов в вашем компьютере. Рассмотрим процедуру установки второй карты (не
отличается для третьей, четвертой и т.д.). При этом возможны следующие
варианты:
8.1.1 Добавление однотипной карты
Если дополнительная карта
аналогична уже установленной и имеет шину PCI, дополнительный драйвер не
требуется: все платы будут успешно обнаружены и установлены. Если это
карты ISA, драйверу потребуется "подсказка". Так, для плат NE2000
необходимо перечислить адреса ввода-вывода в файле /ete/conf.modules:
alias ethO ne
options ne io=0x300, 0х320, 0х340
Номера интерфейсов при этом будут присвоены в порядке перечисления
адресов.
8.1.2 Все карты разных моделей
Если все карты разные, файл conf.
modules может выглядеть следующим образом:
alias ethO 3c59x #3Com
3C905B
alias eth1 П18139 #Realtek RTL8139
alias eth2 ne
options
ne io=0x300,0x320 #две платы NE2000-ISA
Все современные сетевые карты ISA имеют два режима - ISA PnP и Legacy
ISA. Для работы в Linux такие карты необходимо перевести в режим Legacy
ISA, используя поставляемую с картой программу конфигурации для DOS.
8.1.3 Настройка TCP/IP
Настроить параметры TCP/IP для вновь установленной карты можно при
помощи программы Linuxconf (Config -> Networking -> Client tasks
-> Basic host information), netcfg или при помощи вашего любимого
текстового редактора, создав в каталоге /etc/sysconfig/network файл
ifcfg-ethX в соответствии с документацией от пакета initscripts.
8.1.4 Разрешение маршрутизации пакетов с одного интерфейса на другой
В Black Cat Linux пересылка (forwarding) пакетов с одного интерфейса
на другой по умолчанию запрещена. Чтобы разрешить ее, нужно в файле
/etc/sysctl.conf изменить значение параметра net,ipv4.ip_forward с "О" на
"1". Если вы планируете использовать известный NАТ(чаще известный как
"маскарад" )\с{} то параметр net.ipv4.ip_always_defrag необходимо
установить в 1.
8.2 Безопасные сервисы для вашего сервера.
В поставку Black Cat
Linux входят средства для организации безопасного доступа к вашему серверу
по протоколам HTTPS,IMAPS,POP3S,TELNETS.
8.2.1 Apache с mod_ssl.
Вы можете сделать ваш собственный Secure Web server. Для этого вам
необходимо поставить пакет mod_ssl, который лежит на третьем диске. (Перед
установкой этого пакета убедитесь что у вас уже установлен пакет openssi).
После его установки вам необходимо сделать для себя сертификат.
Последовательно выполняя нижеперечисленные команды вы получите
работоспособный Secure Web Server, к которому позже вы сможете обратиться
как https://my. host. name/: openssi genrsa -des3 -out server,
key.secure 1024
Изготовление первичного секретного
ключа.
openssi rsa -in server, key.secure -out
server.key
Изготовление беспарольного первичного ключа сервера.
Вам он понадобится для автоматического запуска сервера.
openssi req
-new -key server, key.secure -out server.csr -config
/etc/ssl/openssl.cnf
Изготовление запроса на получение официального
сертификата, ([footnote] Мы показываем как изготовить подписанный вами
самими сертификат. Для серьезного сервера вам придеться купить подписанный
на основе вашего server.csr. О том как это сделать вы можете прочитать в
файле:
/home/httpd/html/ssl-doc/sslJaq.html)
openssi req -new -x509
-days 365 -key server, key.secure -out server.crt -config
/etc/ssl/openssl.cnf
Подписываем сертификат.
cp server.key
/etc/httpd/conf/server.key
Копируем первичный ключ
сервера.
cp server, key.secure
/etc/httpd/conf/server.key.secure
Копируем первичный ключ с
паролем( [footnote] Вы можете его положить как /ete/httpd/conf/ssl.
key/server, key, но вы этом случае при каждом перезапуске машины или
просто apache вам придется вводить пароль для подтверждения что ключ
действительно соответствует содержимому сайга. Это может использоваться
только при пароноидальном подходе к безопасности сервера.).
cp
server.csr /etc/httpd/conf/server.csr
Копируем запрос
сертификата...
cp server.crt /etc/httpd/conf/server.crt
... и
сам сертификат.
chmod 400 /etc/httpd/conf/server*
делаем наши
сертификаты читаемыми только хозяином.
Теперь приступим к конфигурированию самого сервера Apache. Для
активизации модуля вам необходимо раскомментировать строки в файле
/etc/httpd/conf/mod ssl.conf:
LoadModule ssl_module
modules/libssl.so
Addmodule mod_ssl.c
Внимание ! He забывайте что для того чтобы ваш сервер отвечал как по
протоколу http так и https вам необходимо чтобы в фалах конфигурации были
прописаны две директивы Listen 80 (для http) и Listen 443 (для https). В
случае использования mod_charset (Russian Apache) совместно с mod_ssl
рекомендуется выключать CharsetAutoRedirect.
8.2.2 IMAP+SSL,POP3+SSL,TELNET+SSL.
Для организации криптованного доступа вам придется поставить пакет
stunnel (так же требует наличие пакета openssi). После этого вам
необходимо проделать следущие операции:
- Изготовление сертификата cd /etc/ssl/certs
RANDFILE=/dev/urandom
openssi req -new -x509 -nodes -out server, pern \
- keyout stunnel. pern -days 365 -config /etc/ssl/openssl.cnf
- Заведения пользователя под идентификатором которого будет работать
демон stunnel, useradd -с 'SSL wrapper' -d / -g daemon -s /bin/false
stunnel chown stunnel /etc/ssl/certs/server.pem chmod go-rwx
/etc/ssl/certs/server.pem
- Описание сервисов для супердемона inetd в файле /etc/inetd.conf.
Примеры сервисов лежат в файле/usr/doc/stunnel-3.8/example.inetd.conf.
их необходимо перенести в ваш /etc/inetd.conf. После этого вам
достаточно выполнить killall -1 inetd. ([footnote] Авторы дистрибутива
настоятельно рекомендуют пользоватся альтернативным демоном inetd -
xined. Стандартный пример конфигурации SSL сервисов есть в поставке
xinetd в файле /etc/xinetd.conf)
После этого рекомендуем еще закрыть доступ к портам 23,143,110 всем IP
адресам кроме 127.0.0.1
8.3 Настройка фильтра пакетов
8.3.1 Зачем нужен фильтр пакетов ?
Вот два основных ответа на этот вопрос:
- Управление
Когда ваш Linux подключен к различным сетям (и к
интернету в том числе), вы должны иметь возможность управлять любыми
потоками данных, идущих через вашу систему. Например, вы должны быть
уверены, что любой пакет из внутренней сети, которые может содержать
важную информацию, не уйдет на просторы интернет.
- Безопасность
Когда Linux стоит один на один с хаосом интернета,
да еще и служит мостом в интернет для машин внутренней сети, вы должны
быть уверены, кто и куда ходит через мост. Например, вы желаете ходить
по интернет, но не желаете, чтобы ваша машина была сервером (а вы
уверены, что у вас все пользователи имеют пароли и лишние сервисы
закрыты ?). С наличием firewall эти проблемы решаются легко и быстро.
8.3.2 Хорошо, хочу. А есть ли оно у меня на машине ?
Да, есть. В стандартной конфигурации ядро содержит фильтр пакетов.
8.3.3 Как настроить ?
Полное описание вы сможете найти в файле IPCHAINS-HOWTO. Мы приведем
пример с объяснением, как решить эту задачу.
Условия:
* Есть локальная сеть с адресами 10.х.х.х,
подключенная к нашему маршрутизатору через интерфейс ethO (или eth1, если
в машине больше одного сетевого адаптера).
* Соединение с ISP через
интерфейс рррО. Задача:
* для клиентов из сетей 10.х.х.х обеспечить
выход в Internet.
Решение:
Фильтр пакетов в Linux 2.2.х состоит из трех цепочек правил: входной,
выходной и транзитной. Поскольку для реализации описанной выше задачи не
требуется защищать какие-либо сервисы в сети, то цепочки input( входная) и
output( выходная) оставим чистыми.
Цепочка для транзитных пакетов должна:
* пропускать пакеты из
локальных подсетей в локальную без изменения
* из локальной сети в мир
должна подменять адрес источника на наш реальный IP-адрес на устройстве
рррО (маскарадить).
* остальные пакеты (которые в 99 случаях из 100
представляют всевозможные атаки на вашу сеть) мы должны не пропускать.
Первоначальная настройка делается при помощи команды ipchains:
ipchains
-A forward -s 10.0.0.0/8 -d 10.0.0.0/8 -j ACCEPT
ipchains -A forward -s
10.0.0.0/8 -d 0.0.0.0/0 -j MASQ
ipchains -P forward REJECT
После этого необходимо сохранить созданную настройку фильтра в файле
конфигурации: /etc/rc.d/init.d/ipchains save Теперь осталось только при
помощи ntsysv или chkconfig добавить сервис ipchains в автозапуск.
8.3.4 Настроили. А как поменять ?
Изменение настройки фильтра можно делать командой ipchains или при
помощи графической программы gfcc. После того как вы измените настройку
выполните приведенные ниже команды: /ete/rc.d/init.d/ipchains save Для
ручного изменения правил вам необходимо отредактировать файл
/etc/sysconfig/ipchains.
8.3.5 Протоколы ftp/irc/icq и pNAT.
В связи с тем что сложные
протоколы такие как ftp, icq, ire, realaudio и некоторые другие используют
более одного TCP/UDP потока в своей работе, маршрутизатор который
производит фильтрациюпакетов и "маскарад" должен знать как поступать с
дополнительными соединениями. Для этого в Linux 2.2.х используются так
называемые протокольные модули которые отслеживают дополнительные
соединения в соответствии с протоколами и делают их правильную
переадресацию на нужного клиента или на нужный сервер. По-умолчанию
автоматически загружаются модули для протоколов ftp/irc/icq. Для
разрешения других модулей пропишите их в файле /etc/sysconfig/ipchains.
modules.
8.3.3 А как правильно строить фильтры?
На этот вопрос вы сможете ответить только сами внимательно изучив
IPCHAINS-HOWTO и книги по Internet Security и Firewall. В комплекте
поставляется архив с полезной утилитой ipchains-firewall
(/usr/doc/ipchains*/...) которая может послужить неплохим примером при
первоначальном освоении ipchains.
8.4 Управление скоростью трафика пакетов.
В крупных сетях с довольно развитой структурой, где есть выход в
Internet через канал со сравнительно небольшой пропускной способностью
часто возникает необходимость перераспределить полосы пропускания для
отдельных машин в сети или в целом на отдельные подсети. Black Cat Linux
включает в себя средство для управления транзитным графиком. Здесь мы
приведем лишь два примера конфигурация для самых распространенных
случаев:
8.4.1 Пример 1:
* Необходимо ограничить трафик из мира на
определенную машину, а локальный трафик пропускать с максимальной
скоростью. Для этого необходимо создать два файла в директории
/etc/sysconfig/cbq :
cbq-W.out
cbq-S.out
Первый (с большим
приоритетом) описывает правила для случая "локальная машина- локальная
машина". Вот его содержимое:
DEVICE=ethO, 10Mbit,
1Mbit
RATE=10Mbit
WEIGHT= 1Mbit
PRIO=5
RULE=
10.0.0.0/24,10.0.0.2/32
Где DEVICE - описание устройства к которому
подключена машина получатель пакетов, RATE - скорость с которой передавать
пакеты, a RULE это правило описывающее что шейпер действует для пакетов
только с нашей локальной сети на конкретную машину.
Второй файл
содержит описание правил для случая "мир - локальная
машина":
DEVICE=ethO, 10Mbit,
1Mbit
RATE=8Kbit
WEIGHT=800
PRIO=5
RULE=10.0.0.2/32
Здесь
стоит ограничение на 8Kbit (строка RATE) для всех пакетов, не подпавших
под правило первого, более приоритетного шейпера. Как вы можете заметить -
в строке RULE только один адрес. Такая сокращенная запись равносильна
"RULE=0.0.0.0/0,10.0.0.2/32". Если вам понадобится в правиле указать "все
пакеты которые идут от машины 10.0.0.2", то вам необходимо написать
"RULE=10.0.0.3," (Обратите внимание на запятую).
8.4.2 Пример 2:
* Необходимо ограничить исходящий трафик с машины
для всех кроме своих сетей.
Такой вариант может возникнуть если вы
ставите свой сервер в локальной сети Internet провайдера который просит
ограничить исходящий с вашего сервера трафик через внешние каналы.
Вот
вариант решения, (имена файлов для простоты оставлены те
же):
cbq-IO.out:
DEVICE=ethO, 10Mbit,
1Mbit
RATE=10Mbit
WEIGHT=1Mbit
PRIO=5
RULE=209.192.223.78/32,204.165.159.3/32
RULE=209.192.223.78/32,209.192.223.72/28
RULE=209.192.223.78/32,209.113.218.0/24
Пояснение:
все пакеты нашего адреса 209.192.223.78 на вышеперечисленные подсети (да,
строк RULE может быть несколько) пропускать с максимальной скоростью.
cbq-8-out:
DEVICE=ethO, 10Mbit,
1Mbit
RATE=80Kbit
WEIGHT=8000
PRIO=5
RULE=209.192.223.78/32,
Все
остальные пакеты с адреса 209.192.223.78 "зажать" на скорость
80Kbit/s.
Полное описание вы сможете найти в файле
/usr/doc/initscripts-4.16/readme.cbq.rus
8.5 Трансляция адресов. Приоритетная маршрутизация
8.5.1 Трансляция адресов
В сетях со сложной топологией бывают
ситуации когда необходимо присвоить машине стоящей в нескольких переходах
от маршрутизатора (и имеющей локальный IP адрес) реальный IP адрес и
обеспечить проход пакетов как от этой машины в мир так и наоборот.
Описанный выше способ маскарада пакетов не подходит так, как этот метод
односторонне. Ниже приведен вариант решения.
ip rule add from
192.168.68.5 nat 194.44.183.204
ip route add nat 194.44.183.204 via
192.168.68.5
Где 194.44.183.204 - реальный адрес IP под которым из
внешнего мира внутренняя машина 192.168.68.5 должны быть видна.
Более
подробно о возможностях трансляции адресов IP вы можете прочитать в
/usr/doc/iproute2-2.2.4/ps/ip-cref.ps
8.5.2 Приоритетная маршрутизация
Бывают случаи когда необходимо
пакеты от разных источников направить через разные каналы. В этом нам
опять поможет команда ip:
ip rule add from 194.200.0.0/24 table 1
ip
rule add from 194.44.53.0/24 table 2
Для начала ма создали помимо
основной таблицы маршрутизации две добавочных для двух блоков адресов от
двух провайдеров к которому подключен наш маршрутизатор.
ip route add
default via 194.200.0.1 table 1 ip route add default via 194.44.53.254
table 2
А во вторых двух командах мы прописали маршрут по умолчанию на
ррр интерфейсы наших провайдеров соответственно. Более подробную
информацию вы сможете найти там же:
/usr/doc/iproute'Vps/ip-cref.ps
8.6 Ваш собственный прокси-сервер
8.6.1 Что такое прокси-сервер ?
Прокси-сервера предназначены для минимизации обращений клиентов во
внешний мир за одними и теми же страницами по протоколам http (WWW) и за
одними и теми же файлами с серверов ftp. Имея в своей локальной сети
прокси-сервер вы сможете снизить загрузку вашего внешнего канала до
30-40%.
8.6.2 Что нужно для прокси-сервера ?
Для настройки вашего собственного прокси-сервера вам необходимо прежде
всего установить пакет squid (выбрав его при инсталляции или установив
позже при помощи команды rpm). Далее вам понадобится решить сколько вы
хотите отвести дискового пространства для хранения кэшированной
информации. Для сетей небольших предприятий понадобится от 200МЬ до 1Gb.
Помимо этого вам понадобится от 32 Mb до 128 Mb ОЗУ,в связи с тем что вся
служебная информация о запрашиваемых файлах хранится особым образом в
памяти. Вобщем случае стоит расчитывать примерно из таких значений: на
каждых 200МЬ дискового пространства 16Mb ОЗУ. Ну и наконец последнее что
вам понадобится для следующего шага - узнать у вашего провайдера,
обязательно ли его использование
8.6.3 Настройка squid.
Основной файл конфигурации squid.conf расположен в директории
/etc/squid. Ниже приведем жизненно важные опции squid которые желательно
подправить под себя:
http_port3128 icp_port3130
Две данных опции
описывают на каком порту будет отвечать ваш прокси-сервер на запросы
клиентов. (Можно оставить закомментированными).
tcp_incoming_address
0.0.0.0
tcp_outgoing_address 0.0.0.0
udp_incoming_address
0.0.0.0
udp_outgoing_address 0.0.0.0
Эти четыре параметра заставляют принудительно слушать запросы на
определенном адресе и соответственно на кеш высшего уровня (прокси-сервер
вашего ISP если нужен) ходить с *_outgoing адреса. Обычно можно оставить
закомментированными.
cache_peer proxy.my.isp.net type 3128 3130
Эта опция описывает прокси-сервер вашего провайдера (если вы конечно
хотите им воспользоваться). Вместо type может стоять :
* parent - все
запросы отправлять на прокси провайдера.
* sibling - сначала посмотреть
на прокси провайдера, и если там нет, то самим пойти за объектом по
URL
Соответственно выберите для себя необходимое.
cache_mem 16
MB
Описывает сколько памяти (ОЗУ) может использовать squid для хранения
служебной информации в памяти. На практике squid может использовать на
20-30% больше чем разрешено в этой переменной. Будте
аккуратны.
cachejJir ufs /var/spool/squid 100 16 256
Этот параметр
описывает сколько дискового пространства отдать под хранение данных
(второй параметр). По умолчанию 100 Mb. Вам возможно захочется поставить
побольше. Первый, третий и четвертый параметр желательно не трогать если
вы не уверенны что вы делаете.
Ну а теперь самое интересное - кому куда
можно ходить.
8.6.4 Доступ к вашему прокси-серверу.
Squid имеет очень гибкую
систему управлением доступом к нему. Для начала вы можете пропустить все
до строки (до нее лишь стандартные определения правил ):
* INSERT YOUR
OWN RULE(S) HERE TO ALLOW ACCESS .... Дальше рекомендуется удалить
раскомментированные строчки с переменными http_access, icp_access и
miss_access.
Опишем наших локальных клиентов (и наши домены если они
есть):
ad localclients src 10.0.0.0/255.0.0.0
acl localdomain
dstdomain mydomain.com
Доступ (в общем понятии этого слова) своим
клиентам а остальным нет:
http_access allow localhost
http_access
allow localclients
http_access deny all
Доступ к нашему серверу от
дочерних прокси-серверов (если в локальной сети еще кто-то захочет
поставить себе прокси сервер с опцией parent или sibling на
вас):
icp_access allow localclients
icp_access deny all
Доступ к
нашему серверу для запросов во внешнюю сеть. Если http_access разрешен, a
miss_access нет для какого-то клиента, он может получить только те URL
которые лежат у нас в дисковом кэше.
miss_access allow
localclients
miss_access deny all
Еще один нюанс: настройка туда
куда нам ходить самим.
always_direct allow localdomain
always_direct
deny all
never_direct deny localdomain
never_direct allow all
8.6.5 Первый запуск squid.
Перед первым запуском следует выполнить
команду
squid -z
для инициализации дискового кеша.
Потом
/etc/rc.d/init.d/squid start
Теперь с локальной машины вы
можете запустить Netscape Communicator, и (предварительно прописав в его
настройках
Edit->Preferences->Advanced->Proxies->Manual->HTTP Proxy IP
адрес вашего прокси сервера и порт 3128) попробовать сходить на
какой-нибудь WWW-сайт.
Более полную документацию вы сможете найти в
директории /usr/doc/squid.
8.7 Linux как файловый сервер
Файловый сервер на базе Linux может поддерживать как традиционный для
UNIX-систем протокол NFS, так и более привычные для персональных
компьютеров протоколы IPX и 8MB. Самой распространенной клиентской
системой пока еще является Windows 9x, поэтому рассмотрим задачу создания
файлового сервера для клиентов Windows 95 и Windows 98. Несмотря на то,
что существует несколько клиентов NFS для Linux, для системного
администратора намного легче установить на сервере эмулятор родного для
клиентских машин протокола, чем устанавливать и поддерживать инородное
программное обеспечение на клиентских машинах, которое к тому же, как
правило платное. Именно таким пакетом является SAMBA, которая позволяет
эмулировать файловый сервер на базе Windows 9x или Windows NT, и даже
имеет некоторые функции PDC (Primary Domain Controller). B Black Cat Linux
6.2 входит самая последняя версия SAMBA - 2.0.7, которая позволяет
работать с клиентами Windows 2000. Настройка SAMBA подробно описана в
документе SMB-HOWTO, который доступен в том числе и на русском языке.
Отметим только что вместе с пакетом SAMBA в Black Cat Linux
устанавливается утилита графического администрирования через Web - SWAT
(Samba Web Administration Tool). SWAT позволяет изменять любые настройки
SAMBA, администрировать пользователей и ресурсы, просматривать активные
соединения и открытые файлы, Кроме этого, SWAT можно использовать как
прекрасный источник документации по SAMBA - он имеет развитую систему
помощи. Для доступа к SWAT в строке URL в Netscape нужно набрать
"http://localhost:901". По умолчанию доступ к SWAT разрешен только с
локальной машины, другие адреса IP можно дописать в строке "swat:
127.0.0.1" файла /etc/hosts.allow. Необходимо предостеречь, что для
доступа к SWAT требуется пароль root, который будет передаваться по сети в
незашифрованном виде и может быть легко перехвачен злоумышленником. Чтобы
активизировать SWAT, необходимо раскомментировать соответствующую секцию в
файле /etc/xinetd.conf, и перезапустить xinetd командой /etc/rc.d/xinetd
restart.
8.8 Сам себе - ISP
В организациях, где Linux используется в качестве маршрутизатора между
внутренней локальной сетью и Internet, очень часто возникает необходимость
организовать удаленный доступ к офисной локальной сети и к Internet для
сотрудников, находящихся вне офиса - в командировке, дома и т.д. Black Cat
Linux включает все необходимые для этого средства. Для организации сервера
удаленного доступа к сети необходимо установить rpm-пакеты mgetty и
ррр.
8.8.1 Настройка mgetty
Для активизации mgetty необходимо в файле
/etc/inittab добавить строку следующего
вида:
mo1:35:respawn:/sbin/mgetty -n1 -s115200 ttyS1
Здесь -n1 -
отвечать после первого звонка, -s115200 - скорость в порту, ttyS1 - порт
COM2. Чтобы изменения вступили в силу, нужно выполнить команду "killali -1
hit". После этого модем будет проинициализирован и готов к приему входящих
звонков. Теперь необходимо в файле /etc/mgetty+sendfax/login.config
раскомментировать строку, содержащую/AutoPPP/. Если звонящим планируется
выдавать адреса IP, относящиеся к локальному сегменту Ethernet, в
командную строку pppd необходимо добавить опцию ргохуагр. Если нужно,
чтобы в какое-то время модем не отвечал (например, если в дневное время
телефонная линия используется как голосовая) - при помощи утилиты сгоп в
определенное время необходимо создавать и удалять файл нулевой длины
/etc/nologin.ttySX, где Х - номер порта. Если файл существует, модем не
будет отвечать.
8.8.2 Настройка pppd
Для настройки pppd для каждого клиента в файл
/etc/ppp/pap-secrets нужно добавить строку:
username myhost.mydomain ""
192.168.6.2
Здесь username - имя пользователя в Linux, myhost.mydomain
- полное доменное имя,"" означает, что в качестве пароля используется
пароль Linux, 192.168.6.2 - адрес IP, который будет выдан
компьютеру-клиенту. Опционально можно создать файл /etc/ppp/options,
имеющий следующие строки:
ms-dns192.168.1.1
ms-dns
192.168.2.1
Это адреса двух серверов DNS (первичного и вторичного),
которые будут выданы клиенту. Таким образом, для настройки клиентской
системы Windows 9x необходимо всего три параметра - имя пользователя,
пароль и номер телефона, все остальное будет выдано Linux-сервером. При
настройке Windows NT необходимо также активизировать опцию "Enable plain
text passwords". Сбор статистики работы клиентов при этом будет вестись в
системной базе Linux (/var/log/wtmp), просматривать ее можно при помощи
утилиты sac.
Более подробную информацию можно получить в документации
от пакетов mgetty и pppd. 8.8.3 Администрирование удаленных
пользователей
8.8.3.1 Ограничение доступа к командной оболочке (shell)
При добавлении пользователя стандартной командой useradd по умолчанию
ему предоставляется доступ к командной оболочке Linux - bash. Если в этом
нет необходимости (а удаленному пользователю или клиенту ISP, как правило,
доступ к оболочке не предоставляют), для таких пользователей в файле
/etc/passwd необходимо заменить оболочку с /bin/bash на другую программу -
/bin/false. Сделать это можно либо при помощи linuxconf, либо командой
vipw. Если доступ к оболочке не планируется для всех вновь добавляемых
пользователей, необходимо прописать такую "заглушку" в файл
/etc/default/useradd - тогда usradd назначит ее по умолчанию.
8.8.3.2 Ограничение доступа к ftp.
По умолчанию каждый пользователь получает доступ по ftp. При входе по
ftp он попадает в свой домашний каталог, но, "поднявшись " на каталог
выше, он может "путешествовать" по файловой системе. Как правило, в этом
нет необходимости, более того, это может быть даже опасно. ftpd-BSD,
ftp-сервер, используемый в Black Cat Linux по умолчанию, позволяет сделать
это очень просто - достаточно создать файл /etc/ftpchroot и прописать там
(в столбик) всех пользователей, которые не должны выходить из домашнего
каталога. Если же пользователю необходимо совсем запретить доступ по ftp -
добавьте пользователя в /etc/ftpusers. Всем пользователям, перечисленным в
этом файле, доступ по ftp запрещен.
8.8.3.3 Ограничение одновременного доступа к сети
Опыт нашей
работы говорит о том, что нельзя исключать ситуацию, когда пользователь
делится информацией о доступе к сети (имя/пароль и т.д.) с другими. Если
на сервере несколько модемных линий, не исключен одновременный вход под
одним именем более чем с одной линии. Если авторизация производится
описанным выше способом, с назначением адреса IP , при этом появится два
интерфейса ррр с одинаковым адресом IP, и ни один не сможет нормально
работать. Такая ситуация недопустима, поэтому количество одновременных
входов пользователя по ррр необходимо ограничить. Для этого нужно в
/etc/security/limits.conf добавить строку следующего вида:
username -
maxlogins 1
где username - имя пользователя. Для этого в /etc/pam.d/ppp
должна быть строка:
session required pamJimits.so
Информации,
изложенной в этом разделе, достаточно для организации корпоративного
сервера удаленного доступа или небольшого ISP. Если
8.8.3.4 Ограничение времени доступа к сети
Есть несколько способов
разрешить пользователю доступ к сети только в определенное время. Удобнее
всего сделать это с использованием рат. Для этого нужно в /etc/pam.d/ppp
добавить строку /etc/pam.d/ppp добавить строку:
session required
pam_time.so
После этого все необходимые ограничения можно прописать в
файле /etc/security^me.conf. Формат этого файла подробно изложен в
комментариях внутри самого файла.
8.8.3.5 Доступ к электронной почте
Каждый вновь заведенный пользователь получает почтовый ящик. Чтобы
пользователи могли читать свою почту, используя стандартные клиентские
программы (Netscape, Outlook Express), на Unix необходимо установить
поддержку протоколов РОРЗ либо IMAP. Оба эти сервера находятся в пакете
imap-4.7c1-i386.rpm. Установите этот пакет при помощи команды RPM, и
раскомментируйте соответствующие секции в файле /etc/xinetd.conf. После
этого xinetd необходимо перезапустить командой /etc/rc.d/init.d/xinetd
restart.
8.8.4 Безопасность вашей системы
8.8.4.1 Немного о паролях
Практически перед всеми возникает проблема с выбором пароля. Часто для
этих целей люди использую ди своих рождения, паспортные данные, фамилии и
т.д. Это дает возможность хакерам получить доступ к вашей учетной записи.
Для того чтобы усложнить атакующим задачу необходимо чтобы пароли
пользователей были не менее 6 символов и содержали в себе большие и
маленькие буквы одновременно совместно с цифрами и знаками препинания и
желательно чтобы эта последовательность не была осмысленной, но легко
запоминающейся. Для генерирования таких паролей вам может помочь программа
pwgen.
8.8.4.2 Права на основные файлы
В базовой поставке пакет Linuxconf предоставляет не только удобный
интерфейс к файлам конфигурации но и минимальный контроль за целостностью
системы. При каждом старте он проверяет права и владельцев основных
конфигурационных файлов, директорий и програм и при несоответствии
изменяет их на стандартные. Для изменения прав на свои вам необходимо
запустить Linuxconf и в меню Control-> Control Panel -> Control
files and systems -> Configure file permissions and ownership изменить
атрибуты на необходимые вам файлы.
8.8.4.3 Контроль за suid-файлами
В дистрибутив входит пакет sxid который поможет вам контролировать
наличие и изменения в файлах с установленными битами suid или sgid.
Настройки его находятся в файле /etc/sxid.conf
8.8.4.4 Контроль файлов протоколов
В дистрибутив также входит программа контроля файлов протоколов
(logcheck) которая ежечасно будет проверять вашу систему на предмет
нетипичных для нормальной работы сообщений в файлах протоколов
(messages,secure,maillog) и сообщать о них администратору no email
прописанному в /etc/sysconfig/logcheck (по-умолчанию root).
8.8.4.5 Защита от сканирования портов
Многие атаки на системы начинаются со сканирования сервисов запущенных
на машине. Многие из них возможно перехватить и отреагировать
незамедлительно. Для этой цели используйте пакет portsentry. При
правильной настройке он поможет вам избежать многих неприятностей.
8.8.4.6 Пакет bclsecurity
Данный пакет предназначен для дополнительного контроля и ежедневного
изготовления резервных копий файлов конфигурации вашей системы. Все
настройки пакета находятся в файле /etc/sysconfig/bclsecurity
- HOSTNAME='hostname -s' имя машины, используется в заголовке письма.
- SYSADMIN=root адрес системного администратора.
- BACKUPDIR=/var/log/bclsecurity Директория для резервных копий
файлов. (Будьте внимательны с контролем за правами на нее и на файлы
внутри нее)
- RPMSNOVERIFY='"1 Список rpm пакетов которые не нужно проверять при
еженедельной проверке системы.
- MAIL=mail программа для посылки почты.
- CONFIGDIRS=7etc/ /var/named/ /usr/local/etc/" Список директорий для
изготовления резервных копий конфигурации.
- CONFARCDAY=0 день недели в который производить полную архивацию
конфигурационных файлов.