Иллюстрированный самоучитель по RedHatLinux

         

Доступ к файлам и принтерам сети Windows из систем Linux


Особенность совместного использования ресурсов для Linux - возможность доступа SMB к разделяемым файлам и принтерам. Такой доступ можно осуществить несколькими способами. Самый простой из них - использование двух программ-клиентов из инсталляционного пакета Samba: smbclient и smbprint.

Этот способ связан с некоторыми ограничениями, особенно для доступа к файлам. Smbclient обеспечивает FTP-подобный доступ к совместно используемым удаленным файлам. Конечно, тогда

для работы с файлами не применяются обычные команды Unix (например, ср и rnv), и доступ к совместным ресурсам из других приложений ограничен (в отличие от работы с NFS-монтированной удаленной файловой системой, которая выглядит как локальная файловая система для приложений Linux). Альтернативой является использование пакета smbf s, позволяющего 8MB монтировать совместно используемые файловые системы в Linux, подобно файловым системам NFS и локальным файловым системам.



Инсталляция Samba


Если вы используете версию Red Hat Linux, прилагаемую к книге, то, скорее всего, пакет Samba будет проинсталлирован при инсталляции Linux. Чтобы убедиться, что Samba проинсталлирован, выполните команды:

$ rpm -q samba

$ rpm -q samba-client

$ rpm -q samba-common

Если Samba не установлен в системе, инсталлируйте его с Red Hat CD-ROM. Как обычно, следует предварительно монтировать CD-ROM (например, в /mnt/cdrom), а затем использовать команду rpm для инсталляции файла samba-2 .0.3-8.1386 .rpm.

#

rpm -i /mnt/odrom/RadHat/RPMS/samba-a.0.7-36.1386.rpm

# rpm -i /mnt/cdrom/RedHat/RPMS/samba-client-2.0.7-36.1386.rpm

# rpm -i /mnt/cdrom/RedHat/RPMS/samba-common-a.0.7-36.1386.rpm

Примечание

Только пакеты samba-client и samba-common включены в состав диска Publisher's Edition CD-ROM, включенного в книгу. Этого достаточно для подключения к разделяемым ресурсам из Microsoft Windows в локальной сети (см. команду smbmount ниже), но недостаточно для предоставления ресурсов вашего Linux-компьютера в совместное использование другим компьютерам, использующим Microsoft Windows в локальной сети.

Инсталляция Samba из Internet

Если необходимо использовать последнюю версию Samba, загрузите ее исходный код или пакет RPM. Следуйте инструкциям на странице узла Samba http: / /www. samba. org, чтобы найти ближайший сайт-зеркало. В США одно из зеркал имеет адрес http:./ /usl. samba. org/samba/ ftp/.

После загрузки файла распакуйте архив и прочтите инструкции по компиляции и инсталляции Samba из исходного кода. Эта процедура меняется от версии к версии, поэтому мы ее не описываем.

Если вы не хотите заниматься компиляцией и не имеете двухдискового инсталляционного набора Red Hat 7.1, то простейший способ инсталляции Samba состоит в загрузке RPM-файлов с узла ftp. redhat. com или www. rpmf ind. net с последующей инсталляцией командой rpm -i.

Что инсталлируется

При установке Samba инсталлируются следующие файлы.

/usr/sbin/smbd:

сервер Samba, который управляет соединениями с клиентами.

/usr/sbin/nmbd:

сервер NetBIOS, который позволяет клиентам определять местонахождение серверов в сети Windows.

/usr/bin/smbclient:

базовый клиент Samba для доступа к серверам SMB.

/etc/smb.conf:

файл конфигурации Samba.



Использование smbclient


Программа smbclient обычно инсталлируется в /usr/bin. Она используется для перемещения файлов,с разделяемых ресурсов SMB-сервера и обратно посредством FTP-подобного интерфейса.

Первый этап использования smbclient - установление соединения с ресурсами SMB-сервера Простейшая форма команды такова:

$ srnbclrient

\\server\resourcename

Конечно, в действительности все сложнее. Если необходимо указать пароль для получения доступа к защищенному ресурсу, то команда становится более громоздкой:

$ smbclient

\\server\resourcename password

Имеется несколько флагов, позволяющих изменить характер соединения программы smbclient с сервером. Основные флаги перечислены в табл. 29.2.

Табл. 29.2.

Основные флаги программы smbclient

Флаг

Действие

-L

host

-I IP_address

-N

-U

usemame

-W

workgroup

-Т tar

options

Флаг выводит на экран список сервисов, доступных на сервере, заданном параметром host; при использовании этого флага нет необходимости указывать ресурс

Флаг полезен, если не может быть найден адрес по имени; smbclient полагает, что компьютер расположен по указанному ГР-адресу

Флаг подавляет приглашение password. Особенно полезен, когда доступ к ресурсу осуществляется без пароля. Если этот флаг не установлен, а пароль не требуется, пользователь все же получает приглашение для ввода и должен нажимать клавишу Enter для ввода пустого пароля Используя этот флаг, можно указать username для установки соединения с ресурсом. Без этого флага сервер использует содержимое переменных среды USER или LOGNAME; и если они пустые, сервер не получает username. Отправить пароль к серверу можно, введя знак процента (%) после username, а затем введя пароль: -U username%pas sword Определяет, какая рабочая группа используется при соединении с сервером

Позволяет перемещать данные в tar-файл локальной системы Linux и обратно. Например, -Тх backup . tar восстанавливает файлы из backup . tar на удаленном ресурсе, в то время как -Тс backup . tar создает tar-файл с именем backup . tar, содержащий все файлы и каталоги удаленного ресурса

<
/p> Команда smbclient с использованием приведенной информации:



$ smbclient \\server\resourcename



-U username%password -W

workgroup

Эта команда пытается установить соединение с удаленным ресурсом resourcename на сервере SMB server, в рабочей группе с именем workgroup, в качестве пользователя username, используя пароль password.



Операции для работы с файловыми ресурсами

Установив соединение с файловыми ресурсами, можно выполнять операции перемещения данных, используя специальные команды. Они перечислены в табл. 29.3.



Табл. 29.3.

Команды операций с файлами



Операция



Описание

cd

directory

Переход в другой каталог 8MB совместно используемого ресурса

del

file

Удаление указанного файла с сервера (также используется команда rm)

dir

Отображение содержимого текущего каталога сервера (также используется команда Is)

get file

Получение указанного файла с удаленного сервера и сохранение его с тем же именем в текущем каталоге локальной системы; можно задать другое имя для файла на локальной системе: get

file localfilename

lcd

directory

Переход в указанный каталог на локальной системе

mget

filemask

Получение всех файлов на удаленном сервере, удовлетворяющих указанной маске файла

mkdir

directory

Создание указанного каталога на удаленном сервере (также используется команда md)

триt

f i1 ema sk

Копирование всех файлов локального каталога, удовлетворяющих указанной маске файла, в текущий каталог удаленного сервера

prompt

Включение/выключение подсказки для операций с несколькими файлами (mput и mget). При задании значения on пользователи получают подсказку при копировании каждого файла

put

file

Копирование указанного файла из текущего локального каталога в текущий каталог на удаленном сервере, имя файла остается прежним. Имя файла на удаленном сервере можно изменить: put

file remote filename

quit

Выход из программы smbclient (также используется команда exit)

recurse

Включает/выключает доступ к подкаталогам для операций с несколькими файлами (mput и mget). Когда задано значение on, команда при копировании файлов осуществляет поиск по всем подкаталогам текущего каталога

rmdir

directory

Удаление каталога с удаленного сервера (также используется команда rd)

<


/p> Рассмотрим некоторые примеры.

Переход из локального каталога в подкаталог f оо осуществляется командой led f оо.

Переход из удаленного каталога в каталог . . / f оо осуществляется командой cd . . / f оо.

• Копирование файла f oo из локального каталога в удаленный каталог под новым именем newf оо происходит по команде put f oo newf oo.

• Получение всех файлов с расширением . txt из удаленного текущего каталога осуществляется по команде mget * . txt.

• Создание нового каталога с именем f оо на удаленном сервере происходит при выполнении команды mkdir f oo.



Операции для работы с ресурсами принтера

Для работы с принтером при помощи программы smbclient для связи с ресурсами печати используются следующие команды:



print file



-

печать указанного файла через текущий ресурс в режиме, определенном параметрами команды printmode;



printmode





option

-установка режима печати, определяемого значением option; доступны следующие значения - graphics или text, причем режим graphics подразумевает любые двоичные данные;



queue

-

отображение текущего состояния очереди на удаленную печать;

quit

(или exit) - выход из программы smbclient.

Конечно, это немного громоздко. Если нужно напечатать текстовый файл, нельзя просто напечатать его из приложения способом, используемым в Unix для установки в очередь на печать. Необходимо установить связь с принтером при помощи программы smbclient и использовать команды printmode text и print filename. Печать файлов в других форматах еще сложнее.

Как происходит печать, если удаленным принтером является принтер PCL и используемое программное обеспечение генерирует файлы только в формате PostScript (что часто происходит в мире Unix)? В этом случае пользователь должен выполнить печать в файл, преобразовать его командой gs в формат PCL, соединиться с принтером посредством программы smbclient, установить режим печати и отправить файл в очередь на печать. Безусловно, это дополнительные затраты времени.

К счастью, smbprint помогает решить эту проблему.


Использование smbfs


Пакет smbfs обеспечивает непосредственное монтирование удаленных ресурсов 8MB в Linux таким же образом, как тома NFS монтируются в Linux. Использовать smbfs после инсталляции крайне просто. Если вы используете Red Hat Linux 7.1, то smbfs должен устанаативаться в ходе инсталляции пакета samba -2 .0.7-36. 1386 .rpm.

Использование

smbmount

Основой пакета smbfs является программа smbmount. Программа smbmount - это инструмент, который используется для монтирования совместно используемых ресурсов 8MB в системе Linux. В наиболее общем виде команда smbmount имеет форму: # smbmount / / servername/resourcename

mountpoint

Как и в команде mount, точка монтирования mountpoint представлена существующим каталогом в локальной системе (который может быть, а вероятно, и должен быть, пустым). Прямые косые черты (/) используются вместо обратных (\) в спецификации разделяемых ресурсов 8MB во избежание проблем, связанных с использованием обратных косых черт в некоторых оболочках.

Предупреждение

Здесь имеется одна тонкость: smbmount не использует NetBIOS для поиска имени сервера. Если имя сервера SMB отличается от имени TCP/IP сервера, команда smbmount работать не будет. В такой ситуации используется хост-имя Unix для сервера.

Полная документация по команде smbmount приведена на странице руководства smbmount (man smbmount).



Использование smbprint


Сценарий smbprint - это инструмент, который делает возможным печать с использованием smbclient через стандартную очередь печати Unix. Он выполняет печать на удаленном принтере SMB.

Сценарий smbprint в большинстве инсталляций Samba находится в /usr /bin/srnbprint.

Чтобы использовать этот сценарий, необходимо создать запись printcap для удаленного принтера и файл конфигурации, в котором указано расположение принтера.

Запись printcap:

gueuename:\

:sd=/var/spool/samba:\

:af=/var/spool/samba/accountingfile:\

:if=/usr/bin/smbprint:\

:mx=0:\

:lp=/dev/null:

Проанализируем приведенную запись.

sd=/var/spool /samba -

указывает каталог спуллинга.

af=/var /spool/ 8eanba/a.ccowntingf

He - указывает файл счетов. Этот файл должен

находиться в том каталоге, что и файл конфигурации, возможно, в каталоге spool.

if =/usr/bin/smbprint

-

задает входной фильтр (smbprint).

lp=/dev/null

-

определяет, что принтер физически не соединен с компьютером, на котором находится файл printcap.

Затем необходимо создать файл конфигурации с именем . conf ig в том же каталоге, что и файл accounting. Этот файл содержит три записи.

sеrvеr=ИмяСервера

password=

"пароль "

После создания записи и файла конфигурации большинство файлов можно будет печатать, используя команду 1рг.

$ 1pr -P

ИмяОчереди ИмяФайла

Поскольку этот способ печати используется в приложениях, подобных Netscape Communicator, данная конфигурация работает для большинства принтеров и приложений.



Конфигурирование Samba


Записи конфигурации Samba находятся в файле /etc/smb. conf. Файл smb. conf состоит из множества записей, которые содержат заголовок и ряд параметров. Например, следующая последовательность позволяет совместно использовать в сети каталог / trap.

[temp]

comment = Temporary file space path = /tmp read only = no public = yes

Заметьте: заголовок помещен в квадратные скобки ([temp]), каждый параметр записан в отдельной строке, имеющей жестко заданную структуру:

параметр

=

значение.

Секция [global]

Большинство файлов smb. conf начинаются с секции [global], в которой указываются некоторые важные параметры, определяющие общее поведение Samba. Обычно секция [global] содержит следующие параметры:

printing

-

указывает на используемый тип системы печати; для последних версий систем Linux - это Iprng.

printcap name

-

указывает местоположение файлаprintcap; обычно это /etc/printcap.

load printers

-

указывает, будут ли совместно использоваться принтеры.

guest account

-

задает, какой пользователь Linux используется для установки гостевых соединений. Большинство администраторов Linux указывают nobody из-за сильного ограничения привилегий.

workgroup

-

указывает, к какой рабочей группе или домену принадлежит сервер Samba.

security

-

предписывает, как аутентифицировать пользователей для доступа к ресурсам системы. Доступны четыре значения: user, server, domain и share.

user

- если для данного параметра установлено значение user, то Samba проводит аутентификацию с использованием файла локальных паролей Unix. Это наиболее часто используемый способ (и самый простой).

server

-

если для параметра установлено значение server, Samba проводит аутентификацию при помощи доменного сервера Windows NT/2000, заданного параметром password server. Другой Samba-сервер может работать в режиме эмуляции доменного сервера Windows NT/2000.

domain

-

требует задания NetBIOS-имени для Samba-сервера доменного контроллера Windows. NetBIOS-имя обычно совпадает с хост-именем, если имеет длину не более 15 символов.




share



-

для установки Linux как части одноранговой сети (peer-to-peer network) на уровне рабочей группы Microsoft Windows.

Рассмотрим следующую секцию [ global ] в файле smb. conf сервера Landegg Academy:

[global]

printing = Iprng

printcap name = /etc/printcap

load printers = yes

guest account = nobody

workgroup = testgroup

security = user

В этой секции определен тип системы печати, для гостевого доступа указан пользователь Linux nobody, сервер объявлен членом рабочей группы Windows testgroup и указано, что Samba использует для аутентификации локальный файл паролей Unix / etc/passwd.



Секция [homes]

Секция [homes] предписывает, как совместно использовать домашние каталоги пользователей в сети Windows. Если такая секция отсутствует, необходимо индивидуально разделять домашние каталоги пользователей, как описано ниже.

Рассмотрим следующую секцию [homes] файла smb. conf.

[homes]

comment = Home Directories browseable = no

read only = no preserve case = yes

short preserve case = yes create mode = 0750

Параметр comment содержит дополнительную информацию о секции, но не влияет на ее выполнение. Параметр browseable используется для определения того, могут ли другие пользователи просматривать каталог; указание по разрешает доступ к каталогу только пользователям с соответствующими правами. Для параметра read only задано значение по, следовательно, пользователи могут и читать, и записывать файлы в свои домашние каталоги. Параметры preserve case и short preserve case гарантируют, что нечувствительные к изменению регистра символов системы Windows не будут изменять буквы в именах файлов, поскольку Linux различает регистр. Завершающий параметр create mode определяет, какие права доступа давать файлам, созданным пользователями, работающими через Samba; 0750 определяет, что файлы доступны для чтения, записи и выполнения для владельца, доступны для чтения и выполнения для файловой группы, для всех остальных пользователей доступ к файлам запрещен.



Для доступа пользователя из системы Windows к домашнему каталогу в качестве имени разделяемого каталога используется пользовательское имя. Например, для пользователя username обращение к домашнему каталогу на smbserv означает обращение к совместно используемому \\smbserv\username.



Секция [printers]

В секции [homes] домашние каталоги предназначены для совместного использования. Аналогично, в секции [printers ] все принтеры Linux предназначены для совместного использования в сети Windows.

В табл. 29.1 описаны типичные параметры секции [printers ].



Табл. 29.1.

Параметры секции [Printers]



Параметр



Описание

comment path

browseable

printable

public

writable

create

mode

Содержит информацию о секции, но не влияет на ее выполнение

Указывает путь спуллинга spool; пользователь может создать свой собственный каталог spool для Samba (например, Red Hat Linux создает

/var/ spool / samba)

Как и для домашних каталогов, значение по гарантирует, что пользоваться принтерами могут только пользователи с правом доступа

Этот параметр должен иметь значение yes, иначе печать не будет работать (как можно печатать на непечатающем принтере?)

Если установлено значение yes, то гостевые подключения смогут пользоваться услугами печати; во многих сетях для этого параметра задают значение по для предотвращения чрезмерной загрузки принтера гостевыми пользователями

Принтеры не допускают запись, поэтому данный параметр должен иметь значение по

Определяет разрешения для файлов spool, созданных при печати; обычно для этого параметра задают значение 0700

Все эти параметры используются для написания типичной секции [printers]. Приведем пример секции [printers ], заданной по умолчанию в Red Hat Linux.

[printers]

comment = All Printers path = /var/spool/samba

browseable = no printable = yes public = no

writable = no create mode = 0700

Доступ к принтерам Linux с рабочих станций Windows осуществляется так же, как и к каталогам. Разделяемое имя - это имя принтера Linux в файле printcap. Например, чтобы получить доступ к принтеру printername на smbserv, пользователи Windows должны обратиться к



\\smbserv\printername.



Совместное использование каталога для общего доступа

Иногда необходимо создать общедоступный каталог, который будет использоваться всеми пользователями только для чтения. Рассмотрим следующую запись.

[public]

path = /public/directory public = yes read only = yes printable = no

Эта запись создает каталог для совместного использования с именем public, который доступен для всех пользователей (public = yes), но только для чтения (read only = yes).

Рассмотрим другой пример: каталог для совместного использования с именем / tmp - общедоступный временный каталог, который используется для чтения и записи всеми пользователями. Такой каталог создается при помощи следующей записи.

[temp]

path = /tmp read only = no public = yes



Совместное использование каталога для персонального доступа

Кроме совместного использования каталогов для общего доступа, иногда необходимо создавать совместно используемые каталоги, доступные для ограниченного количества пользователей.

Рассмотрим случай совместного использования каталога /private/directory как разделяемого ресурса с именем private. Предположим, что этот каталог доступен лишь трем пользователям: user1, user2 и user3. Такой каталог создается следующей записью.

[private]

path = /private/directory valid users = user1 user2 user3

public = no writable = yes printable = no create mask = 0765

Обратите внимание на использование нового параметра: valid users. Этот параметр в качестве значения имеет список пользователей, которым разрешен доступ к ресурсу. Имена пользователей разделены пробелами.

Также обратите внимание на то, что параметр public имеет значение по для предотвращения нежелательного просмотра информации, а параметр writable - значение yes. Следовательно, это ресурс с полноценными возможностями записи.



Полная конфигурация

Разместим все рассмотренные секции в файле smb. conf .При этом необходимо учитывать два момента.

• Пустые строки игнорируются.



• Строки комментариев начинаются точкой с запятой или знаком диеза (#) и продолжаются до конца строки.

Приведем пример такого файла.

; Пример smb. conf

; Общие установки [global]

printing = bsd

printcap name = /etc/printcap

load printers = yes ; Установить гостевого пользователя - nobody

guest account = nobody

workgroup = testgroup

security = user

; Экспортировать все домашние каталоги в сеть [homes]

comment = Home Directories

browseable = no

read only = no

preserve case = yes

short preserve case = yes

create mode = 0750

; Сделать все принтеры доступными для сети [printers]

comment = All Printers

path = /var/spool/samba

browseable = no

printable = yes public = no writable = no create mode = 0700

; Создать общедоступный каталог только для чтения [public]

path = /public/directory

public = yes

read only = yes

printable = no

; Предоставить общедоступный временный каталог [temp]

path = /tmp read only = no public = yes

; Экспортировать личную рабочую область userl, user2 и изегЗ [private]

path = /private/directory

valid users = userl user2 user3

public = no

writable = yes

printable = no

create mask = 0765


Присоединение Linux к сети Novell


Взаимодействие NetWare-Linux гораздо менее устойчиво, чем взаимодействие Windows-Linux. По этой причине мы рассмотрим доступные опции без деталей их реализации.

Примечание

В области свободно распространяемого программного обеспечения существует клиентский пакет Novell NetWare, называющийся ncpf s. Этот пакет реализует ограниченное количество функций. Существует также бета-версия сервера NetWare с именем mars_nwe. Оба продукта работают лишь с определенными версиями NetWare и продуктов, взаимодействующих с NetWare. Оба пакета входят в Red Hat Linux 7.1. Может возникнуть необходимость установки IPX на вашем компьютере. Пакет утилит IPX доступен на диске Red Hat Linux 7.1 CD-ROM, включенном в книгу, в подкаталоге /RedHat/RPMS, в файле ipxutils-2.2.0.18-3.1386. rpm.

Вместе ncpf s и mars_nwe обеспечивают полное бесплатное решение для взаимодействия Linux-NetWare. Пакет ncpfs можно загрузить с узла ftp.gwdg.de/pub/linux/misc/ncpfs, а пакет mars_nwe - с узла http: / /www. compu-art. de/download/mars_nwe.html. Большая часть документации, в особенности для mars_nwe, составлена на немецком языке, но неплохие руководства доступны в IPX-HOWTO по адресу http: / /www. linuxdoc. org/ HOWTO/ IPX-HOWTO.html.

Однако оба пЯкета имеют ограничения.

• Пакеты совместимы только с NetWare 3.x.

• Ncpfs не поддерживает обратную совместимость с серверами NetWare 2.x.

• Ncpfs не работает с некоторыми NetWare-совместимыми серверами, такими как Windows NT 3.51.



Работа Linux Red Hat 7.1 в сетях Windows и Novell


Совместное использование файлов и принтеров Linux сетями Windows

Доступ к файлам и принтерам сети Windows из систем Linux

Подключение Linux к сети Novell

В этой главе рассмотрены возможности Linux, благодаря которым эта операционная система стала привлекательным обеспечением для многих существующих сетей Intranet.

Если в организации развернута стандартная сеть Windows, то Linux может усовершенствовать эту сеть и выполнить в ней роль эффективного, квалифицированного и мощного файл-сервера и сервера печати. С более низко» ценой, чем у Windows NT/2000, и устойчивостью работы, превосходящей Windows 95/98/Me, Linux может стать идеальным файл-сервером и сервером печати для организаций с ограниченным бюджетом, в которых необходимо организовать совместное использование файлов рабочими станциями.

Также Linux может получать доступ к файлам, хранящимся на файл-сервере Windows, как будто они находятся на локальном жестком диске системы Linux. Эту возможность можно использовать в самых различных целях. Например, если на вашем компьютере работает Web-сервер Linux, но разработки для Web выполняются в системе Windows. В таком случае, Linux Web-сервер может автоматически устанавливать связь с предопределенным каталогом в системе разработки Windows и копировать новые файлы на Web-сервер. Тогда ручное обновление содержимого Web-сервера становится ненужным. -

Мы рассмотрим возможность интеграции системы в сеть Novell. Хотя инструментальные средства для интеграции системы Linux в сети Novell не так хорошо развиты и устойчивы, как

источники информации по этому вопросу.



Совместное использование файлов и принтеров Linux сетями Windows


Типичным способом объединения сети Linux-Windows является настройка системы Linux для работы в качестве файл-сервера и сервера печати для клиентов Windows в сети. Такой тип интеграции осуществляется при помощи Samba. Samba - это набор программного обеспечения, поддерживающего протокол 8MB (Server Message Block - Блок сообщений сервера) в Linux. Протокол SMB является основой совместного использования файлов и печати в сети Windows. Клиентами для SMB-сервера под управлением Linux могут быть LAN Manager, Windows 95/98/Me, Windows NT/2000, OS/2 и различные системы Linux.



Выполнение Samba


Если сеть работает с TCP/IP, то конфигурирование сети завершено и можно запускать Samba. Но при работе в сети NetBIOS необходимо дополнительно проверить, имеются ли в файле /etc/services следующие строки (если этих строк в файле нет, добавьте их).

netbios-ns 137/tcp # NETBIOS Name Service

netbios-ns 137/udp

netbios-dgm 138/tcp # NETBIOS Datagram Service

netbios-dgm 138/udp

netbios-ssn 139/tcp # NETBIOS session service

netbios-ssn 139/udp

Теперь конфигурирование Samba полностью завершено и можно запустить программное обеспечение. По умолчанию версия Samba для Red Hat Linux запускается при начальной загрузке, поэтому доступ к Samba есть всегда. Кроме того, для запуска и останова Samba вручную можно использовать системный сценарий /etc/re.d/init.d/ smb.

Например, следующая команда запускает Samba,

#

/etc/re.d/init.d/smb start

а следующая - останавливает:

#

/etc/re, d/init.-d/smb stop

Для одновременного останова и запуска smbd и nrabd используйте команду

#

/etc/re.d/init.d/smb restart

Следующими двумя командами пользователь root системы запускает Samba вручную.

/usr/sbin/smbd -D

/usr/sbin/nmbd -D



Конфигурирование DOSEmu


Существует ряд конфигураций, используемых для выполнения DOSEmu в Linux. Перечислим их.

Загрузка DOS с дискеты.

Загрузка DOS с образа диска.

Загрузка DOS из отдельного раздела.

Чтобы упростить задачу и пояснить работу программного обеспечения, в главе рассмотрена только загрузка DOS с образа диска. Более сложные конфигурации, включая загрузку с других носителей, хорошо описаны в документации, которая после установки DOSEmu находится в каталоге /usr/doc/dosemu/.

Примечание

Подробная информация и документация для DOSEmu находится в http: / /www. dosemu. org. Полезные сведения включены в файлы HOWTO на сайте

http://www.dosemu.org/docs/

HOWTO/. С этого сайта можно загрузить последнюю версию DOSEmu с полными инструкциями по инсталляции!

Чтобы запустить DOS, необходимо иметь файл конфигурации /etc/dosemu.conf. Это очень сложный файл, который имеет обширную документацию.

Пакет DOSEmu облегчает эту задачу, поскольку имеется предварительно сконфигурированный файл образа диска и файл dosemu. conf для загрузки с образа диска. Сам образ диска находится в /var/lib/dosemu/hdimage. Он содержит бесплатный вариант DOS FreeDOS и множество полезных команд и утилит, среди которых fdisk, format, unix2dos и Iredir (утилита переадресации каталогов Linux в символы дисков DOS).

Чтобы пояснить, что понимается- под конфигурированием среды DOSEmu, приведем содержимое включенного по умолчанию в Red Hat Linux 7.1 файла dosemu. conf:

#####################################################

# Это файл /etc/dosemu.conf, содержащийся в /var/lib/dosemu/global.conf #

# Конфигурация Linux DOSEMU для версий >= 3 (dosemu-0.97.1) #

# ./doc/README.txt (раздел 2.) содержит описание синтаксиса и

# использования dosemu.conf. #

#

# Права доступа определены в #

# /etc/dosemu. users

#

#################################################

# Примечания для редактирования этого раздела :

#- .

# В $ ххх = (n) n - это числовая или двоичная величина

# =

# В $ zzz = "s" s - это строка

#

# Пожалуйста, редактируйте только между скобками и кавычками,

# остальное сохраняйте нетронутым.

|

$_debug = "-а" # тот же формат, что в опциях команды -D

# (но без -D впереди)

$_features= " # список временных установок, смотрите примечания

# в файле ChangeLog. Например", "0:1 2:0",

# который означает:

# установить feature 0 в 1 и feature 2 в 0.

$_timint = (on) # эмуляция типа прерывания таймера INT08

$_matheo = (on) # или отключение

$ сри = (80386) # эмулятора CPU, допустимые значения: 80 [345] 86

$ rdtsc = (off) # если возможно использовать в Pentium

# счетчик цикла

$_cpuspeed = (0) # 0 = калиброванный dosemu, иначе указать

# (например, 166.666)

$_pci = (off)

$_xms = (1024) # Кбайт

$_ems = (1024) # Кбайт

$_ems_frame = (0xe000)

$_dpmi = (off) # Кбайт

$_dosmem = (640) # Кбайт, < 640

$_hardware_ram = " # список значений сегмента /диапазонов, как

# "0xc8000 диапазон 0xcc000.0xcffff"

$_securc ="hgd" # безопасность для: п (обычные пользователи) ,

# g (гости) , d (dexe)

# пустая строка: зависит от 'restricted'

# "0": всегда опасный (не рекомендуется)

$_odd_hosts = " # черный 'список, как "lucifer.hell.com billy, the. cat"

$_diskless_hosts=" ' # черный список, как "hackerl newbee gatewayl"

$_emusys = " # пустой или 3 симв., config.sys -> config.XXX

$_emubat = " # пустой или 3 симв., autoexec.bat -> autoexec. XXX

$_emuini = " # пустой или 3 симв., system.ini -> system. XXX

$_hogthreshold = (1) # 0 — вся мощность CPU для DOSEMU

$_irqpassing = " # список номеров IRQ (2-15) , переданных DOS,

# например "3 8 10"

$_speaker = " # или "native", или "emulated"

<
/p>
$_term_char_set = " # Глобальная кодовая страница и выбор

# набора символов.

# "" — автоматическая, или: ibm, latin,

# latinl, Iatin2

t *

$_term_color = (on) # терминал с поддержкой цвета

$_term_updfreq = (4) # время между обновлениями

# (единицы: 20 == 1 секунда)

$_escchar = (30) # 30 == Ctrl-", приставка спец. последовательности

$_rawkeyboard = (0) # обход нормального ввода с клавиатуры -

'# возможна опасность

$_layout = "auto" t одно из: f innish (-latinl) , de(-iatinl) , be', it, us

# uk, dk(-latinl) ,. keyb-no, no-latinl, dvorak, po

# sg (-latinl), fr (-latinl) , sf (-latinl) , es( -latinl)

Я # sw, hu(-latin2), hu-cwi, keyb-user

tt hr-cp852, hr-latin2

# или 'auto' ( для генерации таблицы из текущих

# параметров консоли Linux)

$_keybint = (on) # эмуляция прерывания клавиатуры ПК

$_X_updfreq - (5) # Время между обновлениями (единицы: 20 =»= 1 секунда)

$_X_title = "DOS in а ЮХ" # Надпись в строке заголовка окна

$_X_icon_name = "xdos" # Текст для значка, когда минимизировано

$_X_keycode = (auto) # on == перевод клавиатуры через таблицу

# символов dosemu

$_X_blinlcrate = (9) # скорость мерцания курсора

$_X_font = "" # basename из /usr/XHRG/lib/X11/fonts/misc/*

# (без расширения) например, "vga"

$_X_mitsbm = (on) # Использовать разделяемые расширения памяти

$_X_sharecmap = (off) # Разделять карту цветов с другими приложениями

$_X_fixed_aspect = (on) # Установить фиксированный размер для

# графического окна

$_X_aspect_43 = (on) # Всегда использовать отношение 4:3 для графики

$_X_lin_filt = (off) # Использовать линейный фильтр для интерполяции >15 Ьрр

$_X_bilin_filt° = (off) # Использовать билинейный фильтр для

# интерполяции >15 Ьрр-

$_X_model3fact = (2) # Фактор начального размера для видеорежима 0x13

# (320x200)

$_X_winsize = " # "х,у" начального размера окна

# (по умолчанию с плавающей точкой)

$_X_gamma = (1.0) # гамма-коррекция

$_X_vgaemu_memsize = (1024) # размер (в Кбайтах) буфера фреймов

# для эмуляции vga

$_X_lfb = (on) # использовать линейный буфер фрэймов в режиме VESA

$_X_pm_interface = (on) # использовать защищенный режим интерфейса

# для режима VESA

$_X_mgrab_key = " # имя KeySym для активации захвата мыши,

# пусто == off

$_X_vesamode = " # "xres , yres ' . . . xres , yres"

# список vesamodes для добавления. Список содержит

# пары, разделяемые пробелами: "xres, yres"

<


/p>
$_video = "vga"

# одно из: plainvga, vga, ega, mda'," mga, cga

$_console = (0)

# использовать видео 'console'

$_graphics = (0)

# использовать BIOS карты для установки графики

$_videoportaccess = (1)

# позволить доступ к видеопорту,

# когда доступно 'graphics'

$_vbios_seg = '(0xc000)

# установка адреса VBIOS (например, ОхеООО)

$_vbios_size = (0x10000)

# установка размера BIOS (например, 0x8000)

$_vmemsize = (1024)

# размер буфера регенерации

$_chipset =

# одно из: plainvga, trident, et4000, diamond, avance

# cirrus, matrox, wdvga, paradise, ati, s3, sis

$_dualmon = (0)

# если имеется один vga. и один hgc (2 монитора)

$_vbootf loppy = ""

# если необходимо загружаться с виртуального дисковода:

# имя "файла образа диска под /var/lib/dosemu

# например, "f loppyimage" отключает $ hdimage

# "floppyimage +hd" не отключает $ hdimage

$_floppy_a ="threeinch"

# или "fiveinch", или "atapi", или пусто,

# если не существует.

# Устройство может быть добавлено как

# J'threeinch:/dev/fd0"

$_floppy_b = ""

# dito для В:

$_hdimage = "hdimage . first'

# список hdimages под /var/lib/dosemu

# назначенный в порядке, подобном

# "hdiraage_c hdimage_d hdimage_e"

# Если имя начинается с Vdev/', то используется

# раздел доступа вместо виртуального hdimage.

# например, "/dev/hdal" или "/dev/hdal:ro"

# только для чтения.

# Текущие монтированные устройства и swap

# отменяются.

# Hdimages и устройства могут быть смешаны,

# например, "hdimage_c /dev/hdal /dev/hda3 :ro"

# Заметим, wholedisk' не поддерживается.

$_hdimage_r = $_hdimage

# hdimages для ограниченного доступа (если иначе)

$_aspi = ""

# список общих устройств SCSI доступных для

# встроенного драйвера aspl

# (формат записи 'устройство: тип: цель', например,

# "sg2:WORM sg3 : Sequential-Access: 6 sg4: CD-ROM" или

# "sg2:4 sg3:l:6 sg4:5" (что одинаково))

$_coml = "

# например, "/dev/mouse" или "/dev/cuaO"

$_com2 = " "

# например, "/dev/modem" или "/dev/cual"

$_com3 = "

# dito "/dev/cua2"

$_com4 = ""

# dito "/dev/cua3"

$_ttylocks = "

# Каталог Lock (например "/var/lock")

# по умолчанию ("") /usr/spool/uucp

$_mouse = "

# одно из: microsoft, mousesystems, logitech,

* mmseries

<


/p>
# mbuseman, hitachi, busmouse, ps2

$_mouse_dev =

# одно из: com1, com2, com3, com4 или /dev /mouse

$_mouse_flags = "

# список пустой или один или более:

# "emulateSbuttons cleardtr"

$_mouse_baud = (0)

# скорость в бодах, 0 == не установлено

$_pr inter = "Ip"

# список (/etc/printcap) имен принтеров, в виде

# LPT1, LPT2, LPT3 (не все необходим, пусто - если нет)

$_printer_timeout = (20)

# время задержки в секундах перед спуллингом

$_ports = ""

# список номеров портов, например, "Oxlce Oxlcf 0x238"

# или "0xlce диапазон 0x280, Ox29f 310"

# или "диапазон 0xla0, (OxlaO+15)"

$_ipxsupport = (off)

# или on

$_novell_hack = (off)

$_vnet = (off)

# 'on' для многопакетного (используется для dosnet)

$_sound = (off)

# звуковая поддержка on/off

$_sb_base = (0x220)

$_sb_irq = (5)

$_sb_dma = (1)

$_sb_dsp = "/dev/dsp"

$_sb_jnixer = "/dev/mixer"

$_ropu_base = "0x330"

К счастью, в глубоком реконфигурировании нет необходимости. Работая с текущей версией DOSEmu (I.O.I), вы должны будете установить образ диска и загрузочный каталог и затем скопировать ряд стандартных загрузочных MS-DOS файлов в этот каталог.

Для установки образа диска (hdimage. first) и загрузочного каталога (/var/ lib/dosemu/ bootdir. first) можно воспользоваться следующими командами, расположенными в каталоге

/var/lib/dosemu/:



$ /var/lib/dosemu/setup-hdimage



$ /var/lib/dosemu/setup-bootdir

К сожалению, FreeDOS не поддерживает управление Linux-файлами и каталогами из эмулятора DOS. Для реализации такого управления вам потребуются три базовых файла конфигурации DOS. Например, если вы располагаете любым загрузочным диском MS-DOS или PC-DOS, скопируйте файлы COMMAND.COM, IO.SYS и MSDOS.SYS в созданный каталог /var/lib/dosemu /bootdir.first.



Допустим, что эти файлы расположены на несмонтированном гибком диске, который находится в накопителе /dev/ f d0 (аналог DOS-устройства А:). Поскольку Linux учитывает регистр, необходимо использовать следующие команды, чтобы заменить FreeDOS-версии этих файлов:



$ mcopy a:io.sys /var/lib/dosemu/bootdir.first/io.sys





$ mcopy a:command.com /var/lib/doseim/bootdir.first/cofflmand.com



Примечание

Упомянутые системные файлы можно скопировать с любой системной дискеты MS-DOS версии 4.0.1 или более свежей. Этот метод применим даже для некоторых других версий DOS, равно как и для загрузочных дисков Windows 95/98.

В завершение создайте или отредактируйте конфигурационный файл . dosemurc в своем каталоге. В этом файле должна быть одна строка, указывающая системе Linux расположение соответствующих конфигурационных файлов DOS:

$_hdiraage = "bootdir.first"



Запуск DOS

Простейший способ запуска DOSEmu состоит в использовании команды dos в консоли или окне xterm. По команде



$

dos



загружается и запускается DOSEmu с устройства начальной загрузки, определенного в /etc/dpsemu. conf. По умолчанию в Red Hat Linux 7.1 это означает загрузку с указанного файла образа диска. На рис. 30.1 показано приглашение DOS в окне xterm после использования команды dos.

Вопреки выданному сообщению, запущен эмулятор версии 1.0.1. После запуска DOS можно использовать стандартные команды и синтаксис DOS для запуска программ с дискет или запуска приложений, находящихся в переадресованных каталогах.



Рис. 30.1.



Выполнение DOS в окне xterm



Загрузка DOS в отдельном окне X

DOS можно запускать как в текущем окне, так и в своем собственном окне при выполнении X Windows. Для запуска DOS в собственном окне X Windows используется команда



$ xdos



Фактически, эта команда является ссылкой на основной двоичный файл dos. Выполнение программы через ссылку xdos имеет тот же эффект, что и команда



$ dos -X



Выполнение DOS в ее собственном Х-окне показано на рис. 30.2.





Рис. 30.2.



Выполнение DOS

в

ее собственном Х-окне



Полезные команды DOSEmu

Образ диска, распространяемый с DOSEmu, содержит несколько полезных команд и утилит (некоторые из них приведены в табл. 30.1). Эти и многие другие команды находятся в каталогах с: \bin и с: \dosemu. Для этого запустите DOSEmu, используя образ диска, заданный по умолчанию.



Табл. 30.1.

Некоторые команды DOSEmu



Команда



Описание

eject . com

emumouse . com

exitemu . com

lredir.com

unix . com

Выдвигает дисковод CD-ROM

Настраивает драйвер мыши DOSEmu

Выход из DOSEmu

Переадресует каталог Unix в символ диска DOS

Выполняет команду Linux из DOSEmu


Linux Red Hat 7.1 и DOS/Windows


Выполнение приложений DOS в Linux

VMware

Почему не Wine?

Один из главных аргументов против использования Linux в качестве ежедневной операционной системы для работы с текстовыми документами - недостаточное количество приложений для Linux. Добавьте к этому невозможность выполнения приложений Windows, и Linux превратится всего лишь в прихоть, еще один пример великой технологии и плохого маркетинга.

В действительности, Linux

может

выполнять большинство приложений DOS и многие приложения Windows, и в будущем предполагается еще большая совместимость с Windows. Существует два коммерческих продукта, позволяющих реализовать такие предположения: VMware и Win4Lin. Оба они дают возможность запускать Microsoft Windows в Linux. Возможности Win4Lin ограничены Microsoft Windows 95/98, но VMware способен выполнять все версии Microsoft Windows в Linux. Для VMware существует программный продукт, позволяющий также запускать все версии Linux в Microsoft Windows NT/2000. В этой главе мы рассмотрим базовую инсталляцию VMware Workstation для Linux.

Сегодня Linux поддерживает DOS, а ряд популярных приложений DOS может выполняться под Linux с минимальными усилиями.

Кроме того, предпринимаются попытки обеспечить полную совместимость Windows с Linux. Вероятно, лидером в этой области можно назвать Wine. Полностью следуя основной парадигме Linux, команда разработчиков Linux реализовала Wine как свободно-распространяемый, а не коммерческий Windows-совместимый продукт. С помощью заинтересованных коммерческих разработчиков Wine был включен в набор продуктов, опираясь на который фирмы, распространяющие программное обеспечение, могут быстро переносить свои приложения из среды Microsoft Windows в среду Linux.



Монтирование каталогов с lredir


Чтобы DOSEmu была полезной, она должна работать не только с образами дисков или дискетами. Необходим доступ к частям файлового дерева Linux, как к дискам DOS. Эта возможность позволит среде DOS осуществлять доступ к данным и приложениям, сохраненным в любом существующем разделе DOS, Linux или жестком диске системы.

Работа с DOSEmu начинается еще до ее загрузки: необходимо убедиться, что разделы, к которым будет осуществляться доступ, монтированы в структуру каталога Linux. Например, если имеется раздел DOS, можно монтировать его в /dos.

После того, как организован доступ к нужным каталогам и разделам, запустите среду DOS командой .

$ dos

или *

$ xdos

После запуска DOS используется команда Iredir для переадресации каталогов Linux в символы дисков DOS. Синтаксис команды Iredir следующий:

$ Iredir символ диска:

\fs/каталог linuх

Команда Iredir делает нужный каталог Linux доступным в DOS с использованием указанною символа диска. Например, чтобы сделать раздел DOS, монтированный в Linux как /dos, доступным в среде DOSEmu как диск D:, используйте команду

$ Iredir D: linux\fs/dos

Примечание

При работе с образом диска, заданным по умолчанию в Red Hat, команда Iredir находится в каталоге с: \dosemu. Если этот каталог в пути отсутствует, то следует использовать полный путь для команды (с: \dosemu\lredir) или сделать с: \dosemu текущим каталогом.

Другим полезным приложением команды Iredir является поддержка доступа пользователей к их домашним каталогам на указанном символе диска DOS. Для этого используется следующая вариация команды Iredir:

$ Iredir E: linux\fs\${HOME}

В этой команде информация о домашнем каталоге пользователя извлекается из переменной НОМЕ среды Linux, в которой Red Hat сохраняет домашний каталог текущего пользователя.

Если начальная загрузка происходит с образа диска, но всю загрузку желательно выполнить с использованием файла conf ig. sys, находящегося в другом месте (например, в монтированном разделе DOS), то выполняется два действия.

Следует отредактировать файл conf ig. sys на начальном образе диска (в приведенном ниже примере он расположен в каталоге /var/lib/dosemu/bootdir. first), который используется для загрузки средой DOSEmu. Первая строка файла (предполагаем, что раздел DOS монтирован под Linux в / dos) должна быть следующей.

install=c:\dosemu\lredir.exe с: linux\fs/dos

Следует убедиться, что файлы conf ig. sys на образе диска и в разделе DOS идентичны. Т.е. строка из шага 1 должна быть включена в файл conf ig. sys раздела DOS.

Перед выполнением остальных команд из conf ig. sys и autoexec. bat образ диска будет размонтирован, а раздел DOS - перенаправлен на С: в среду DOS.



Почему не Wine?


Пакет Wine совершенно отличается от VMware по двум причинам: он не является коммерческим продуктом и его цель - обеспечить в системах Linux полностью бесплатную среду, в которой выполняются приложения Windows.

Последнее особенно важно. Пока разрабатываемые версии Wine ориентированы на инсталляцию некоторых системных файлов Windows, цель проекта - достичь альтернативы: если на системе Linux инсталлирован Wine, то для выполнения Windows-приложений нет необходимости инсталлировать сам Windows.

Как и многие приложения Linux, Wine находится в постоянной разработке и изменении, и рассматривается как предварительная версия программного обеспечения. В документации по Wine указано, что данное программное обеспечение не должно рассматриваться как окончательный готовый код и должно использоваться с осторожностью. Домашняя страница Wine - http : / / www. winehq. com/; новые версии Wine выпускаются часто и с этого сайта всегда можно загрузить последнюю версию пакета.

Компиляция, конфигурирование и инсталляция Wine отражают фазу раннего развития продукта. Но даже в этом случае возможна надежная поддержка приложений Windows, включая Word 6 (25 процентов этой книги были написаны именно так).



Получение VMware


VMware отнрсится к категории коммерческого программного обеспечения и не подчиняется лицензии GNU General Public License. Но вы можете попробовать стандартную версию VMware в течение 30 дней без нарушения лицензионного соглашения. Загрузить VMware можно с корпоративного сайта http: / /www. vmware. com.

На момент написания книги были доступны две версии VMware. VMware Workstation позволяет запускать любую из перечисленных выше операционных систем на виртуальной машине. VMware Express позволяет запускать только Windows 95/98 под Linux. В зависимости от выбранной вами версии VMware для настольного компьютера, лицензия для коммерческого использования обойдется вам от 59 $ до 329 $. В этой главе мы рассматриваем загрузку и установку версии VMware Workstation 2.0.4 (build 1142) для Linux. Для других версий VMware процедура может несколько отличаться.



Успех Wine


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

Corel - фирма, поддерживающая комплект офисных программ WordPerfect, - начала работать с Wine в 1998 году В этой фирме разработан собственный вариант инструментария Wine для поддержки версий WordPerfect для Linux, начиная с версии 7, включая все последующие вплоть до последней -WordPerfect Office 2000 для Linux. Фирма Corel также перенесла комплект CorelDraw Graphics, используя Wine.

Хотя фирма Corel разработала инструментарий Wine независимо от группы разработчиков проекта Wine, они позже объединили усилия в соответствии с лицензией GNU General Public License.

Фирма Deneba - один из лидеров в области графики и САПР - предприняла усилия по переносу своих высокоэффективных приложений Canvas в среду Linux. Поставленная задача переноса была решена средствами Wine в течение шести месяцев. Фактически, большая часть работы (пре-бета) была завершена с минимальными доработками библиотек Wine за два месяца.

Указанные приложения работают сами по себе. Никакой эмуляции наподобие VMware не нужно. Такой подход составляет основу Wine. Кстати название Wine расшифровывается как Wine Is Not an Emulator (Wine - не эмулятор).



Установка DOSEmu


Поскольку DOSEmu не является частью стандартного дистрибутива Red Hat Linux 7.1, вам придется его загрузить. На момент написания книги последней версией дистрибутива была версия 1.0.1, доступная как в виде сжатого архива (tar. gz), так и в RPM-формате на домашней странице DOSEmu по адресу http: / /www. dosemu. org/stable.

Если вы работаете с Red Hat Linux 7.1 (или любым дистрибутивом, использующим RPM-пакеты), загрузите и установите DOSEmu. Например, загрузив его в каталог / trap, вы можете установить эмулятор из режима корневого пользователя с помощью команды:

rpm -i /tmp/dosemu-1.0.1-1.1386.rpm



Установка операционной системы в VMware


Необходимо запустить VMware в X Window. Откройте интерфейс командной строки, например, терминал GNOME, Konsole в GNOME или KDE. Запустите VMware Workstation с помощью следующей команды:

$ /usr/bin/vmware

Когда VMware запустится, появится меню с тремя базовыми опциями, показанное на рис. 30.3. Простейший способ установки операционной системы в VMware предполагает выбор опции Run The Configuration Wizard (Запустить мастер конфигурирования) и щелчок на ОК.

Рис. 30.3.

Запуск VMware Затем VMware предложит вам ряд опций, среди которых можно выбрать следующие.

Operating System (Операционная система):

В VMware Workstation можно установить Windows

3.1,95,

98, NT 4.0,2000, Linux или другой известный Unix-клон FreeBSD.

Disk Type Setting (Тип диска):

Можно установить новую операционную систему на новый виртуальный диск или существующий физический.

New Virtual Disk (Новый виртуальный диск):

Позволяет создать виртуальный диск в файле Linux. Этот файл может быть достаточно большим; максимальный размер по умолчанию составляет 2000МВ.

Existing Physical Disk (Существующий физический диск):

Если вы уже установили другую операционную систему на данный компьютер, можете задать доступ к ней через VMware. Ниже мы будем полагать, что создается новый виртуальный диск.

CD-ROM Access (Доступ к CD-ROM):

Можно разрешить виртуальной машине доступ к существующему в системе накопителю CD-ROM.

Floppy Access (Доступ к гибким дискам):

Можно разрешить виртуальной машине доступ к существующему в системе накопителю гибких дисков.

Networking (Работа с сетью):

Предусмотрены две базовых сетевых опции. Если на компьютере установлен работающий сетевой Ethernet-адаптер, можно выбрать опцию Bridged Networking, что обеспечит доступ к локальной сети. Выбор опции Host-only Networking позволит создать двухмашинную сеть, включающую ваш компьютер и операционную систему на виртуальной машине.

После завершения выбора опций, VMware подтвердит сделанные установки. Например, на рис. 30.4 показаны типичные параметры для установки Windows 2000 на Linux-компьютер.

Рис. 30.4.

Конфигурирование VMware

Подтвердив выбор, вы фактически завершаете создание виртуальной машины внутри своего компьютера. Щелкнув на кнопке Power On (Включение питания) на пустом экране VMware, вы "включаете" виртуальную машину. Теперь можно приступать к установке программ с гибких дисков или компакт-дисков CD-ROM.

Совет

Поскольку Red Hat Linux 7.1 включает ядро Linux версии 2.4.2, то она не будет работать с VMware версий, предшествующих 2.0.4.

Другой способ запуска Microsoft Windows 95/98 под Linux основан на использовании Win4Lin фирмы NeTraverse, которая доступна на сайте http: / /www. netraverse. com.






Рис. 30.2.



Конфигурирование VMware

Подтвердив выбор, вы фактически завершаете создание виртуальной машины внутри своего компьютера. Щелкнув на кнопке Power On (Включение питания) на пустом экране VMware, вы "включаете" виртуальную машину. Теперь можно приступать к установке программ с гибких дисков или компакт-дисков CD-ROM.



Совет

Поскольку Red Hat Linux 7.1 включает ядро Linux версии 2.4.2, то она не будет работать с VMware версий, предшествующих 2.0.4.

Другой способ запуска Microsoft Windows 95/98 под Linux основан на использовании Win4Lin фирмы NeTraverse, которая доступна на сайте http: / /www. netraverse. com.


Установка VMware


Можно загрузить VMware в формате tar. gz или RPM-формате. Для всех версий VMware, доступных на момент написания книги, процедура установки выглядела одинаково. Если вы устанавливаете версию VMware, отличную от 2.0.4, используемые команды могут несколько отличаться. Последние указания по этому поводу доступны на сайте http: / /www. vmware. com.

Например, если вы загружаете файл tar. gz в каталог / trap, то необходимо будет развернуть архив, перейти в созданный установочный каталог и запустить сценарий установки в режиме корневого пользователя с помощью следующих команд:

$ tar xzvf VMvmware-2.0.4-1142.tar.gz $ cd vmware-distrib $ ./vniware-install.pl

А если вы загрузили RPM-файл в каталог / trap, то необходимо будет его развернуть, перейти в созданный установочный каталог и запустить сценарий установки в режиме корневого пользователя с помощью следующих команд:

S rpm -i vmware-2.0.3-799.1386.rpm $ /usr/bin/vmware-config.pl

После распаковки базового программного обеспечения из файла tar. gz или RPM-файла, дальнейшая процедура в обоих случаях выглядит одинаково. Как правило, большинство подсказок требуют однозначных ответов^ Но если вы уже установили Samba (см. главу 29), то необходимо ответить "по" на следующий вопрос:

Do you want this script to automatically configure your system to allow

your virtual machines to access the host file system? (Должен ли данный сценарий автоматически сконфигурировать вашу систему, чтобы позволить виртуальным машинам получить доступ к файловой системе хоста?)

В противном случае VMware сконфигурирует Samba, причем вовсе не так, как вам нужно.

Примечание

Если вы установили оценочную версию VMware, обратитесь на сайт http: / /www. vmware. com за оценочной лицензией. Следуйте полученным от VMware no e-mail инструкциям установки оценочной лицензии на вашем компьютере.



VMware


VMware (www. vmware. com) - технология виртуальных машин. Речь идет о создании виртуального компьютера, использующего все существующие ресурсы данного персонального компьютера. Выполнение виртуального компьютера обеспечивается в отдельном окне, в котором можно инсталлировать любую операционную систему, обычно выполняющуюся на аппаратном обеспечении персонального компьютера.

Версия VMware Workstation, доступная на момент написания книги, поддерживает DOS, Windows 3.1, Windows 95/98, Windows NT/2000 и популярные Unix-дистрибутивы для персональных компьютеров, например FreeBSD и Linux. Ведутся работы над обеспечением поддержки Windows ХР. Поскольку речь идет об установке и выполнении реальной операционной системы, в рамках которой доступна вся аппаратура PC ("виртуальная машина"), то вопросы совместимости практически никогда не возникают. Таким образом, в Linux реализуется способ запуска различных операционных систем для разработки, тестирования и достижения совместимости. Можно одновременно запускать множество экземпляров VMware, каждый из которых выполняет свою операционную систему.

Конечно, необходимо мощное аппаратное обеспечение. Чтобы получить приемлемую эффективность, нужен быстрый процессор Pentium II или Pentium III и большой объем памяти, поскольку Linux и любая клиентская операционная система, выполняющаяся с VMware, будут совместно использовать доступную память. Объем 96 Мбайт представляет собой минимум, необходимый для работы VMware под Linux, любые расширения оперативной памяти (даже до 256 Мбайт и более) пойдут только на пользу.



Выполнение приложений DOS в Linux


Поддержка приложений DOS в Linux наиболее существенна и включена в большинство дистрибутивов Linux.

В среде DOSEmu можно инсталлировать и выполнять DOS, (в том числе и последние версии, например DOS 6.2, и даже версии, поставляемые в составе Windows 95/98), а также запускать большинство приложений DOS. Конечно, существуют ограничения, влияющие на графику и операции со шрифтами, но в целом DOS и ее приложения работают хорошо.

Среда DOS может выполняться внутри отдельного окна X Windows, тогда приложение DOS будет, по сути, одной из программ Linux.

Основные возможности DOSEmu следующие:

запуск приложения DOS несколькими пользователями одновременно;

монтирование каталогов Unix на специальный символ диска в среде DOS;

печать на принтер Unix.



Безопасность автономной системы


При работе с автономной системой Linux необходимо обеспечить самую общую безопасность. Поскольку система не соединена с локальной сетью, а связь с Internet, предположим, осуществляется лишь в короткие промежутки времени по модему, то требования к безопасности системы относительно невысоки.

Некоторые фундаментальные принципы должны соблюдаться уже на этом уровне безопасности.

Следует убедиться, что пароли достаточно сложны и не могут быть легко отгаданы или подобраны. Пароль представляет собой комбинацию букв, чисел и других символов, которая не должна быть словом с точки зрения грамматики человеческого языка. Пароли необходимо часто менять. Особенно важно, чтобы эти требования соблюдались для пароля администратора (пользователя root). (Сложный пароль - это комбинация больших и малых букв, цифр и знаков пунктуации, что делает его сложным для отгадывания.)

Примечание

Существует ряд программ, предназначенных именно для разгадывания паролей. Если пароль представляет собой просто слово из словаря, то его можно распознать в течение

нескольких минут, даже располагая всего лишь ресурсами обычного персонального компьютера. Пароль, состоящий из смеси букв разных регистров и цифр потребует для разгадывания на таком же компьютере уже нескольких недель. Один из простых способов построения сложных (но не забываемых!) паролей основан на использовании базовой фразы. Например, устойчивый к угадыванию пароль OM15lftP легко построить как аббревиатуру по первым буквам слов фразы "On March 15, I'm flying to Paris."

• Убедитесь, что компьютер достаточно хорошо защищен физически. Если компьютер содержит важные данные, не следует оставлять его в открытом офисе, когда идете обедать. Не следует выходить на прогулку, если выполнен вход в систему, особенно если это вход в режиме администратора (root) в консоли или в окне терминала.

• Не создавайте ненужные счета пользователей. Если постоянно систему используют только два человека, создайте счета только для них. Это позволит отслеживать, кто использует систему, и где происходят нарушения защиты.

• Самое ваясное - не сообщать никому пароли (пользователей и администратора), даже людям, которые уполномочены регулярно использовать систему. Следите за надежностью пароля администратора (root). Если он попадет в руки пользователя-злоумышленника, то система может быть разрушена в течение одного дня.

• Поскольку не существует полностью защищенной системы, следует кодировать особо важные данные. Существует много инструментов кодирования, включая кодирование PGP. Руководство по PGP можно найти в Internet по адресу: http: //www. linuxdoc .org/HOWTO/MuttGnuPG-PGP-HOWTO. html. Старая версия документа доступна на узле Linux Focus по адресу

http://www.linuxfocus.org/English/Novemberl997/article7.html

.



Безопасность систем Linux в ЛВС


Новые аспекты безопасности возникают в момент соединения системы Linux с локальной сетью. Даже если следовать всем приведенным правилам для автономной системы (которые необходимо соблюдать и в случае, когда система находится в локалвной сети), для хакера остается возможность получения доступа к системе Linux благодаря слабости сетевой защиты.

Две простых ограничения помогут уменьшить существующую опасность.

• Не следует запускать ненужные сетевые сервисы. Если нет необходимости в доступе к системе через telnet, то убедитесь, что демон Telnet (вероятно, /usr/sbin/in. telnetd) не инсталлирован и в /etc/ inetd. conf нет записи для него. Аналогично, если компьютер не работает как почтовый сервер, не следует запускать демон sendmail, который может приоткрыть некоторые нежелательные пути проникновения в систему. Те же правила действуют и для большинства сетевых серв-исов: FTP, finger, news, DNS и многих других. Запускайте демонов только тех сетевых сервисов, которые необходимы для соединения с сетью и выполнения ваших задач.

Совет

Если вы используете файл /etc/inetd. conf, обычный для других версий Linux (включая Red Hat Linux 6.x), можете сконвертировать его в формат Red Hat 7.1 xinetd с помощью команды /usr/sbin/inetdconvert.

Если вы пользуетесь другой версией Linux, в которой нет файла /etc/xinetd.conf, убедитесь, что для демона нет записи в файле /etc/inetd. conf (запись можно закомментировать символом [#] в первой позиции соответствующей строки).

• Убедитесь в эффективном использовании файлов /etc/hosts. allow и /etc/hosts .deny (см. гл. 28). Необходимо не только не позволять доступ с любого IP-адреса ко всем сервисам, которые не выполняются на данной системе, но и проверять, что разрешается лишь входящий доступ к сервисам, выполняемым на хост-компьютерах, при наличии соответствующего разрешения. Например, если выполняется сервер FTP для входящего доступа только двум пользователям, следует позволить доступ к FTP-сервису именно с двух систем, а не позволять FTP-соединение любому пользователю ЛВС.




xinetd

В Red Hat, начиная с версии Red Hat Linux 7.0, входит расширенный демон сервиса Internet xinetd, заменяющий inted. "Суперсервер" inetd управляет Internet-доступом access к Unix/Linux-компьютерам через порт. Чтобы дать возможность неопытным пользователям быстро запускать сервисы, подобные Telnet, FTP, POP e-mail и другие, inetd изначально устанавливается с несколькими открытыми портами. Как описано выше, вы можете использовать файлы hosts . allow и hosts . deny, чтобы управлять доступом к своему компьютеру. К сожалению, разрешая стороннему компьютеру доступ только к FTP для выполнения загрузки, вы тем самым разрешаете доступ ко всем службам на вашем компьютере.

Демон xinetd позволяет управлять доступом с помощью сервиса. Другими словами, если вы хотите предоставить кому-либо доступ к вашему FTP-серверу, вы не обязаны предоставлять ему доступ к другим сервисам, подобным Telnet или NFS. Единственный способ проникновения в компьютер будет в этом случае лежать через открытый вами FTP-сервис.

Другое достоинство xinetd состоит в том, что он способен защищать вас от атак типа отказ в обслуживании (DoS - Denial of Service). DoS представляет собой ситуацию, в которой некто посылает на ваш сервер поток сообщений (возможно, совсем простых, наподобие ping), но настолько интенсивный, что другие пользователи не могут получить доступ к вашему серверу.

Более подробные сведения о xinetd доступны по адресу http: / /www. xinetd. огд. На этом сайте хранится документация и примеры необходимых конфигурационных файлов.


Дальнейшее конфигурирование сети


Другие настройки сети конфигурировать не нужно. В завершение заметим: файлы hosts. allow и hosts. deny созданы для того, чтобы маршрутизатор мог защитить себя от нежелательных атак, пресекая попытки удаленного входа в систему через сеть. Маршрутизатор необходимо конфигурировать в консоли, а не через сетевой login. Возможно, лучшее решение - не изменять данные файлы.



Безопасность и Linux Red Hat 7.1 как эффективный маршрутизатор


Проблемы базовой безопасности

Конфигурирование брандмауэра в ходе установки

Конфигурирование брандмауэра после установки

Создание маршрутизатора на основе Linux

Эта глава посвящена двум взаимосвязанным темам: безопасность и связь сетей с Internet.

Мы проанализируем несколько уровней безопасности Linux. Рассмотрим, как сохранить надежность автономных систем Linux и обсудим более широкие проблемы обеспечения безопасности ЛВС, которые имеют выход в Internet. Мы также разберем, как построить брандмауэр для защиты системы в ходе установки и после нее.

Мы ознакомимся с работой Linux Router Project (Проект Маршрутизатора Linux), который

позволяет использовать простую дискету со специальным дистрибутивом Linux для создания Linux-маршрутизатора, работающего как шлюз между локальной сетью и соединением с Internet.



Конфигурирование брандмауэра после установки


После инсталляции Red Hat Linux 7.1 настройки брандмауэра можно изменить с помощью утилиты lokkit. Если потребуется, монтируйте инсталляционный компакт-диск CD-ROM в каталоге /mnt/cdrom и выполните следующие команды установки пакета:

# rpm -i /Mnt/cdrom/RedHat/RPMS/lokkit-0.43-6.1386.rpm

Установив утилиту lokkit, ее можно запустить из командной строки следующей командой:

# /usr/sbin/lokkit

После запуска утилиты lokkit, на экране появится окно Firewall Configuration, показанное на рис. 31.2. В нем можно установить защиту высокого или среднего уровня или вообще отказаться от услуг брандмауэра па пашем компьютере. В рамках lokkit можно переключаться между опциями с помощью шшиши Tab и устанавливать опции клавишей пробела.

Рис. 31.2.

Окно утилиты lokkit конфигурирования Firewall Configuration

Выберите опцию High (Высокий) или Medium (Средний) уровня защиты и щелкните на кнопке Customize (Настроить). На экране появится меню Firewall Configuration - Customize, подобное показанному на рис. 31.3.

В этом меню представлен ряд опций настройки, которые были доступны в меню Firewall Configuration, использовавшемся в ходе инсталляции Red Hat. Опции сетевой платы содержат инфракрасное устройство (irlanO) и обычный Ethernet-адаптер (ethO). Выберите необходимые опции, как это описывалось выше, и нажмите ОК. В результате вы вернетесь в исходное окно, показанное на рис. 31.2. Далее можно нажать ОК. и утилита lokkit сохранит конфигурацию брандмауэрав файле /etc/sysconf ig/ipchains.

Примечание

Если вы используете утилиту lokkit после инсталляции, брандмауэры с высоким и средним уровнями защиты не открывают DHCP-порт.

Рис. 31.3.

Настройка брандмауэра

Примечание

По умолчанию командой брандмауэра для Red Hat Linux 7.1 является ipchains. Новая команда для ядра 2.4.x - iptables. Можно заблокировать ipchains, и команда iptables будет автоматически использоваться брандмауэром. Однако утилита lokkit не поддерживает конфигурирование iptables. Документация для iptables еще не закончена; свежее HOWTO-руководство можно найти по адресу http: / /va. samba. org/netf ilter/unreliable-guides/packet-f iltering-HOwro/index.html. Как только документация будет готова, а будет доступна по адресу www. linuxdoc. org Web.




Примечание

Доступна еще одна утилита конфигурирования брандмауэра, /usr/sbin/firewall-config, но она несколько сложнее, чем lokkit.

Можно настроить порты, которые открываются по IP-адресу. Другими словами, можно разрешить операцию доступа к определенному каналу только для компьютера с заданным IP-адресом (только он сможет пересылать вам данные). Но методика подобного конфигурирования лежит вне области, рассматриваемой в этой книге. Более подробные сведения о брандмауэрах и сетевом конфигурировании можно почерпнуть из написанной Робертом Циглером книги

"Брандмауэры Linux" ("Linux Firewalls"

Robert Ziegler (New Riders, 1999)).

В следующем разделе, вы построите брандмауэр на основе версии Linux, базирующейся на гибком диске. Эта конфигурация включает возможности выполнения подмены (masquerading), которую можно использовать совместно с брандмауэром, построенным на утилите lokkit. Подмена скрывает адреса компьютеров в вашей сети.





Примечание

Доступна еще одна утилита конфигурирования брандмауэра, /usr/sbin/firewall-config, но она несколько сложнее, чем lokkit.

Можно настроить порты, которые открываются по IP-адресу. Другими словами, можно разрешить операцию доступа к определенному каналу только для компьютера с заданным IP-адресом (только он сможет пересылать вам данные). Но методика подобного конфигурирования лежит вне области, рассматриваемой в этой книге. Более подробные сведения о брандмауэрах и сетевом конфигурировании можно почерпнуть из написанной Робертом Циглером книги

"Брандмауэры Linux" ("Linux Firewalls"

Robert Ziegler (New Riders, 1999)).

В следующем разделе, вы построите брандмауэр на основе версии Linux, базирующейся на гибком диске. Эта конфигурация включает возможности выполнения подмены (masquerading), которую можно использовать совместно с брандмауэром, построенным на утилите lokkit. Подмена скрывает адреса компьютеров в вашей сети.


Конфигурирование брендмауэра в ходе установки


Если вы не собираетесь подключать свой компьютер к локальной сети и не собираетесь получать доступ в Internet, то вам брандмауэр не нужен. Если вы подключаетесь к Internet изредка на короткое время, то риск и, соответственно, потребность в брандмауэре невысока. Но если ваш компьютер подключен к локальной сети, которая часто выходит в Internet, вы можете подвергнуться атакам всем разновидностей. Если ваш компьютер непосредственно подключен к Internet по выделенному каналу, наподобие DSL или кабельного модема, то опасность стать объектом атаки максимальна.

В ходе инсталляции Red Hat Linux 7.1 можно сконфигурировать брандмауэр для устанавливаемой системы Linux, как показано на рис. 31.1. Позже мы разберем, как пользоваться утилитой lokkit для создания новой конфигурации брандмауэра. В завершение вы познакомитесь с простым брандмауэром и оцените его возможности.

Вообще, брандмауэр блокирует весь трафик, за некоторыми исключениями. К исключениям относятся настраиваемые шлюзы, позволяющие определенные виды входного и выходного трафика на специальном порте или канале.

В TCP/IP — языке Internet - предусмотрено ди 65 536 портов. Каждый из этих портов подобен "двери", через которую осуществляются определенные разновидности обмена данными. Для выполнения базовых коммуникаций вашему компьютеру потребуется ряд таких дверей. Программа инсталляции Red Hat Linux 7.1 позволяет устанавливать брандмауэры с высоким или средним уровнем защиты, причем вы можете настраивать порты, открываемые для обмена.

Примечание

В TCP/IP все 65536 портов делятся на три категории. Полностью определенные порты (от О до 1023) используются для сервисов, подобных Web-страницам, e-mail и чатам Internet. Зарегистрированные порты (от 1024 до 49151) включают прочие сервисы, подобные Internet-телефонии и NIFS. Можно использовать и другие порты (от 49152 до 65535) в специальных

целях. Официальный список доступен через Internet Assigned Numbers Authority no адресу www. iana. org/assignments/port-numbers. Многие из ЭТИХ портов перечислены в файле

/etc/services.

Рис. 31.1.

Конфигурирование брандмауэра в ходе установки Linux



Конфигурирование основных настроек сети


Далее необходимо сконфигурировать основные настройки сети: указать маршрутизатору, кто вы, какой интерфейс соединен с какой сетью и тому подобное.

Для этого отредактируйте файл главных настроек сети - опция 1 в подменю настроек сети (доступно при выборе опции 1 в главном меню конфигурирования). Файл главных настроек сети открывается в редакторе.

Настраиваемый маршрутизатор будет пересылать сообщения из одной сети в другую. Поэтому необходимо сконфигурировать опции IP Forwarding, т.е. в следующих строках заменить NO на YES.

IPFWDING_KERNEL=YES IPFWDING_FW=YES

Далее позаботьтесь о том, чтоб вы смогли назначить хост-имя маршрутизатору, изменив в следующей строке N0 на YES.

CONFIG_HOSTNAME=YES

Укажите IP-адреса и сетевые маски плат Ethernet. Найдите строки

#IFO_IFNAME=eth0 IFO_IPADDR=dhcp

IFO_NETMASK=255.255.255.255

IFO_BROADCAST=255.255.255.255

IFO_IP_SPOOF=YES

Откорректируйте настройки для eth0 и активизируйте интерфейс, удалив # перед первой строкой.

IFO_IFNAME=eth0

IFO_IPADDR=200.200.200.254

IFO_NETMASK=255.255.255.0

IFO_BROADCAST=200.200.200.255

IFO_IP_SPOOF=YES

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

#IFl_IFNAME=ethl

IF1_IPADDR=192.168.0.20

IF1_NETMASK=255.255.255.0

IF1_BROADCAST=192.168.0.255

IF1_IP_SPOOF=YES

Измените их для ethl (для внешней, защищенной сети) и удалите знак диеза.

IFl_IFNAME=ethl

IF1_IPADDR=10.10.10.1

IF1_NETMASK=255.255.255.0

IF1_BROADCAST=10.10.10.255

IF1 IP SPOOF=YES

Так конфигурируются соответствующие платы Ethernet маршрутизатора для связи с подключенными к ним сетями (убедитесь, что платы Ethernet физически соединены с нужными сетями).

Далее, закомментируйте хост-информацию. Добавьте знаки диезов на первых позициях соответствующих строк. Поскольку данный компьютер работает только как маршрутизатор, хост-информация вообще не нужна.

#HOSTO_IPADDR=192,168.7.123

#HOSTO_GATEWAY_IF=default

#HOSTO_GATEWAY_IP=192.168.1.200

#HOSTO_IPMASQ=NO

#HOSTO_IPMASQ_IF=default


Теперь убедитесь в правильности указания сетевых адресов для внешней и внутренней сети. Исходный файл содержит следующие строки для каждой сети:

#NETO_NETADDR-192.168.0.0

NETO_NETMASK= $IF1_NETMASK

NETO_dkTEWAY_IF=$IFl_IFNAME

NETO_GATEWAY_IP-default

NETO_IPMASQ=YES

NETO_IPMASQ_IF=$IFOllFNAME

Внесите изменения, отражающие конфигурацию защищенной и незащищенной сета:

NETO_NETADDR=200.200.200.0

NETO_NETMASK=$IFO_NETMASK

NETO_GATEWAY_IF=$IFO_IFNAME

NETO_GATEWAY_IP=default

NETO_IPMASQ=NO

# Нет необходимости маскировать реальные IP адреса

NETO_IPMASQ_IF=$ IFO_IFNAME

NET1_NETADDR=10.10.10.0

NET1_NETMASK=$IF1_NETMASK

NETl_GATKWAY_IF=$IPl_IFNftME

NETl_GATEWAX_IP=default

NET1_IPMASQ=YES

# Вы должны маскировать личные IP адреса

NETl_IPMASCi_IF=$IFl_IFNftME

В заключение сконфигурируйте шлюз, который служит каналом связи вашей сети с Internet по умолчанию.



GWO_IPADDR=200.200.200.1



GWO_IFNAME=$IFO_IFNAME GWO_METRIC=1

Остальные секции файла конфигурации устанавливают заданные по умолчанию маршруты. Необходимо назначить имя хоста маршрутизатору. Измените следующую строку, чтобы задать подходящее имя:

HOSTNAME=tourettes

Сохраните измененный файл. Нажмите Ctrl+W и Enter для сохранения, а затем нажмите Ctrl+C, чтобы вернуться в меню конфигурирования сети. Нажмите 2 в этом меню, чтобы войти в файл /etc/network_direct. conf для установки базовой безопасности.


Надежные устройства


Все обнаруженные сетевые платы перечислены в окне Firewall Configuration (Конфигурирование брандмауэра). На рис. 31.1 показаны две сетевых платы eth0 и eth1. Предположим, что компьютер выполняет функции маршрутизатора между двумя сетями. Адаптер eth0 подключен к локальной сети, a ethl подключен к Internet. Если вы определите одну из этих плат как надежное устройство (trusted device), установив соответствующую опцию, то брандмауэр для этого адаптера будет отключен.

Если вы доверяете всем пользователям всех компьютеров в локальной сети, выберите опцию Customize (Настройка). Это позволит вам определить eth0 как надежное устройство.

С другой стороны, доверять кому бы то ни было подключение к Internet нельзя и выбор ethl недопустим. В противном случае брандмауэр не сможет защитить вас от атак из Internet.



Настройка базовой безопасности


Добавьте в файл /etc/network_direct. conf следующую строку:

[ "IF$" ] && ipfwadm -F -a -m -S "$NETWORKl"/24 -D 0.0.0.0/0

He поясняя синтаксис команды ipfwadm (с которым можно ознакомиться на Web-странице

http://www.dreamwvr.com/ipfwadm/ipfwadm-faq.html)

, отметим, что эта команда выполняет следующее,

• Позволяет осуществлять IP-пересылку для исходящих соединений из защищенной сети во внешний мир.

• Позволяет выполнять IP-подмену (IP masquerading) так, что исходным адресом всех исходящих соединений будет внешний IP-адрес маршрутизатора, а не настоящий адрес хост-компьютера в защищенной сети. Поскольку извне защищенной сети IP-адрес внутри нее не виден, отсутствует возможность использовать этот адрес для проникновения в систему.

• Обрабатывает все возвращаемые соединения так, что данные в ответе на исходящее соединение возвращаются на нужный хост-компьютер.

Теперь сохраните файл (Ctrl+W) и выйдите из редактора (Ctrl+C).

Примечание

Рассмотрение базовой безопасности для более современной утилиты ipchains выходит за рамки этой книги. Для получения более подробных сведений обращайтесь к ссылкам по вопросам безопасности из документации Linux Router Project на сайте irp. cOwz. com. Неплохой пример по этим сценариям приведен в "Seattle Firewall" на сайте seawall.source-forge, net.



Настройка конфигурации


ЕСЛИ

вы считаете, что и высокая и средняя степень защиты слишком ущемляют ваши интересы, можете установить исключения для выбранных портов. В окне, показанном на рис. 31.1, выберите опцию Customize (Настроить). Это позволит вам открыть в брандмауэре каналы для необходимых данных. Список Allow Incoming включает типовые трафики, которые могут потребоваться для доступа к Internet. Текстовое поле Other Ports (Другие порты) позволяет открыть другие порты по выбору.

Входной трафик

В списке Allow Incoming (Разрешен входной трафик) шесть типов портов. Они соответствуют разновидностям данных, которые вы собираетесь получить при подключении к Internet, или когда к вашему компьютеру подключаются другие, а он играет роль Web-, e-mail- или FTP-сервера:

DHCP. Разрешен по умолчанию в ходе инсталляции Red Hat Linux. Как мы ранее обсуждали, цель состоит в том, чтобы позволить DHCP-серверам, расположенным вне вашей сети конфигурировать компьютеры в ней.

SSH. Аббревиатура для Secure Shell (Безопасная оболочка). Когда используется SSH, вся процедура входа в сеть шифруется. Если вы хотите использовать пакет Secure Shell для администрирования вашего компьютера с удаленного сайта, вам необходимо будет подключаться через установленный вами брандмауэр. Разрешение SSH открывает порт 22, который предназначен для входов Secure Shell. Чтобы использовать SSH, вам потребуется пакет opensshserver-2.5.2р2-5.1386.rpm.

Telnet. Telnet представляет незащищенный способ входа и ввода команд для удаленного компьютера. Подключившись к удаленному компьютеру через Telnet, вы можете пользоваться интерфейсом командной строки так же, как будто вы локальный пользователь. Поскольку операции обмена Telnet не зашифрованы, любой пользователь, располагающий средством прослушивания вашей сети (оно называется sniffer (анализатор)), может записать пароль и другие передаваемые сведения.

WWW (HTTP). Если вы установили на своем компьютере Web-сервер, вы должны разрешить эту опцию. В противном случае пользователи, пытающиеся получить Web-страницы с вашего компьютера, не получат ничего. Эта опция не нужна для получения Web-страниц из Internet.


Mail (SMTP). Если вы установили на своем компьютере почтовый сервер, вы должны разрешить эту опцию. Пользователи, посылающие сообщения e-mail, посылают их на mail-сервер. Если Mail-порт (25) закрыт, то почтовые сообщения не смогут пройти через брандмауэр.

FTP. Если на вашем компьютере установлен один из типов FTP-серверов, следует разрешить эту опцию. Стандартный пакет организации FTP-сервера: wu-ftpd-2 . 6 .1-16 .1386 .rpm, доступный на компакт-диске CD-ROM, прилагаемом к данной книге.



Настройка трафика порта

Перечисленных в раздел Allow Incoming портов недостаточно для полного набора услуг, необходимых всем пользователям. Например, если вы хотите обеспечить разделяемый доступ к каталогам от других Linux- и Unix-компьютеров через брандмауэр, вы должны открыть каналы распределения по портам (portmap) и NFS, соответствующие портам 111 и 2049.

Далее необходимо проверить разновидности трафика, осуществляемого через каждый порт. Откроите файл /etc/services или указанную выше Web-страницу. Соответствующие сведения выглядят так:

sunrpc 111/tcp portmapper #RPC 4.0 portmapper TCP

sunrpc 111/udp portmapper #RPC 4.0 portmapper UDP

nfs 2049/tcp nfsd

nfs 2049/udp nfsd

Опираясь на эти сведения, вы можете открыть соответствующие каналы в окне Firewall Configuration, показанном на рис. 31.1. Щелкните на опции Customize (Настройка) и введите в текстовое поле Other Ports (Прочие порты):



111:tep,lll:udp,2049ttcp,2049:udp



Тем самым открываются порты 111 и 2049, которые используются для разделяемого доступа через NFS к TCP- и UDP-трафику. Можете добавить тем же способом и другие порты. Не забывайте в списке разделять порты запятыми и не вводите пробелы между элементами списка.


Не останавливайтесь на достигнутом


Изложенные принципы помогут вам организовать работу с дистрибутивом Linux Router Project для создания (кроме всего прочего) более совершенных маршрутизаторов, способных поддерживать соединения ISDN, пользователей коммутируемого соединения РРР и TnLernet-соединения по выделенной линии. Для этого потребуются дополнительные комбинации модулей и особые конфигурации систем. Необходимую информацию можно получить на Web сайте

http://www.linuxrouter.org

.



Подготовка


Ниже приведена процедура, позволяющая подготовить гибкий диск Linux Router Project в рамках системы Linux. На момент написания книги необходимые файлы можно было загрузить с одного из сайтов, перечисленных по адресу http: / /www. linuxrouter. org/download. shtml.

Загрузите файл образа Linux и сохраните его, где вам удобно, например, в / tup/. На момент написания книги самый свежий образ диска idipt-image_1440KB_FAT_2.9.8_Linux_2.2. gz.

Смените текущий каталог на каталог, в котором находится загруженный файл, командой cd /tmp.

Разверните архив. Образ диска хранится в gz ip-формате, который можно развернуть командой; gunzip idiot-image_1440KB_FAT_2.9.8_Linux_2.2.gz

Скопируйте файл образа диска на флоппи-диск, используя команду dd if=idiot-image_1440KB_FAT_2.9.8_Linux_2.2 of=/dev/fd0

Теперь у вас есть загрузочный диск для дистрибутива Linux Rquter Project. Но это еще не все Необходимы также драйверы сетевых плат, использующие ту же версию ядра (в данном случае -

2.2.16-1).

Повторите описанный процесс для файла 2.2.16-1. tar. gz, доступного на том же сайте Скопируйте его в каталог /tmp. Разверните и разархивируйте его с помощью команды tar xzvf 2.2.16-1. tar.gz. Скопируйте сетевые модули из развернутого подкаталога /tmp

2.2.16-1/modules/net-, на второй гибкий диск. В дальнейшем вам понадобятся оба диска.

Примечание

На момент, написания книги версия 2.9.8 Linux Router Project находилась в стадии бета-тестирования. Другими словами, до тех, пока она не перейдет в категорию финальной реализации, не рекомендуется использовать ее в производственном оборудовании.

Убедитесь, что аппаратное обеспечение достаточно для решения поставленных задач. Хотя компьютер 386SX с оперативной памятью 8 Мбайт можно использовать как маршрутизатор, а компьютер 486DX2 66 МГц с 12 Мбайт ОЗУ - еще лучше, сегодня желательно работать с Pentium 100 МГц или более мощной системой с оперативной памятью объемом не менее 16 Мбайт. Если происходит загрузка с дискеты, то нет необходимости в жестком диске. Если желательно добавить много модулей add-on в конфигурацию Linux Router Project, то объем программного обеспечения может превысить емкость дискеты и придется рассмотреть возможность загрузки с жесткого диска или загрузочного Zip-диска и увеличить объем оперативной памяти до 32 Мбайт. Подробности загрузки с других носителей описаны на домашней странице Linux Router Project.




Предупреждение

Если вы используете компьютер на базе Intel-процессора типа 386 или 486, то наилучший вариант - использование образов дисков с устаревшей командой ipfwadm, базирующейся на ядре версии 2.0.36. В рамках приведенной выше процедуры используйте файл образа диска idiot-image_1440KB_FAT_2.9.8_Linux2.0.gz И файл модуля ядра 2.0.36prel5-l. tar.gz.



Примечание

фирма Slackware предлагает вариант своего дистрибутива Linux, который ориентирован на



Использование С Zip-ДраЙВОМ. Подробнее СМ. ПО адресу

http : / /www . Slackware . com zipslack.

Необходимо, чтобы персональный компьютер имел две платы Ethernet. Одна - для связи с незащищенной сетью, а другая - для соединения с защищенной.


Проблемы базовой безопасности


Тема компьютерной безопасности обширна и не подлежит адекватному рассмотрению в одной главе книги. Фактически, все книги посвящены только некоторым аспектам компьютерной и сетевой безопасности.

Мы поговорим о компьютерной безопасности вообще и тех базовых концепциях, которые можно применить в конкретных условиях.



Рабочая среда


Чтобы дальнейшее конфигурирование имело смысл, перед запуском программного обеспечения маршрутизатора Linux следует определить среду, в которой маршрутизатор будет работать.

В первую очередь необходимо определить IP-адреса. В незащищенной сети используются адреса от 200.200.200.0 до 200.200.200.255 с маской сети 255.255.255.0. Маршрутизатор, который соединяет сеть с внешним миром, имеет адрес 200.200.200.1, а маршрутизатор, который создается, на своей незащищенной стороне имеет адрес 200.200.200.254. Это подлинные IP-адреса, они уникальны и вся сеть Internet знает об их существовании. Если маршрутизатор для внешнего мира позволяет, то компьютер из Internet может соединяться с любым хост-компьютером в незащищенной локальной сети.

Защищенная сеть использует адреса с 10.10.10.0 до 10.10.10.255 с маской сети 255.255.255.0. Маршрутизатор, соединяющий защищенную локальную сеть с незащищенной, на своей защищенной стороне использует IP-адрес 10.10.10.1. Это ложные, немаршрутизируемые IP-адреса. Внешний мир не знает о существовании хост-компьютеров в локальной сети, у него с ними нет прямой связи. Маршрутизатор (в роли брандмауэра) скрывает существование безопасной сети от остального мира (включая незащищенную сеть).

В создаваемом маршрутизаторе устройство eth0 будет соединено с незащищенной локальной сетью (IP-адрес 200.200.200.254), а устройство ethl будет соединено с защищенной сетью (IР-адрес 10.10.10.1).

Из защищенной сети можно выполнять только исходящие, но ни в коем случае не входящие

соединения. Более того, будет использоваться возможность ядра Linux, известная как IP

masquerading

(IP-подмена), для использования механизма защиты

network address translation

(трансляция сетевого адреса). При трансляции сетевого адреса маршрутизатор не только выполняет маршрутизацию данных из защищенной ЛВС и обратно, но, когда компьютер со стороны защищенной ЛВС соединяется через маршрутизатор, он также скрывает IP-адрес соединяющегося компьютера и транслирует его в адрес незащищенной ЛВС. Соединение нельзя отследить обратно, к действительному IP-адресу хост-компьютера, что помогает скрыть хост-компьютеры защищенной сети от остального мира.

Поскольку защищенная сеть использует немаршрутизируемые IP-адреса, хост-компьютеры незащищенной сети не знают о существовании защищенных хост-компьютеров и не могут связаться с ними. Аналогично, маршрутизатрр, соединяющий незащищенную сеть с Internet, не знает о существовании внутренней, защищенной сети, и никогда не направляет пакеты прямо к хост-компьютерам внутренней сети.



Сохранение безопасности в сети


Даже если отдельная система Linux в локальной сети хорошо защищена, в случае, когда ЛВС имеет выход в Internet, оставшаяся часть локальной сети открыта для самых разнообразных атак.

Защита сети - сложная работа, требующая детальных знаний о сетевой безопасности. В основе обеспечения минимальной безопасности сети лежат две технологии (и их вариации).

Напомним, что сеть соединена с Internet посредством некоторого маршрутизатора, который перемещает данные из локальной сети и обратно. Маршрутизатор может обеспечить некоторый уровень защиты и гарантировать, что большинство атак злоумышленников не проникнут в локальную сеть.

Защита на уровне маршрутизатора обычно выполняется одним из двух способов.

Использование брандмауэра (firewall), фильтрующего пакеты.

Фильтрация пакетов -

это задача, которую способен выполнить любой маршрутизатор. Каждый раз, когда маршрутизатор получает пакет информации из Internet, предназначенный для компьютера в ЛВС, IP-адрес отправителя, IP-адрес адресата и порт соединения проверяются и сравниваются с таблицей, чтобы проверить может ли ЛВС получить пакет. Если пакет получить нельзя, он уничтожается. В рамках этого подхода соединения указанных хост-компьютеров с указанными хост-компьютерами или для специфических портов (а также их комбинаций) можно разрешить или запретить.

Использование прокси-брандмауэра.

Прокси-брандмауэр (Proxy firewall) -

другой подход, основанный на предотвращении прямых соединений между компьютерами с внутренней стороны брандмауэра и со стороны Internet. Если хост-компьютер локальной сети соединяется с хост-компьютером Internet, то он соединяется с прокси-системой. Прокси-система выполняет соединение с системой в Internet, осуществляя переключение для всех передающихся данных. Proxy играет аналогичную роль посредника тогда, когда разрешены любые входящие соединения с ЛВС. Для защиты локальной сети и полного отделения от Internet прокси-бранд-мауэр имеет возможность фильтрации пакетов. Его можно сконфигурировать для поддержки определенных типов трафика через брандмауэр в каждом направлении или для запрета соединений на основе различных переменных, включая IP-адрес отправителя, IP-адрес адресата и используемый порт соединения.

Чтобы понять основы безопасности в сети, ознакомьтесь с Linux Security НОWTO на http: / / www.linuxdoc.org/HOWTO/Security-HOWTO.html.

Систему Linux легко сконфигуриронать как маршрутизатор между локальной сетью и Internet С поддержкой соединения через стандартный аналоговый телефонный модем или линии ISDN. Этот маршрутизатор можно сконфигурировать как фильтр пакетов или прокси-брандмауэр. Установка маршрутизатора на основе Linux дешевле, чем покупка полного аппаратного решения для обеспечения маршрутизации и предлагает больше опций защиты, чем многие аппаратные маршрутизаторы.



Сохранение изменений


После конфигурирования маршрутизатора сохраните изменения на дискете. Для этого выберите Ь в основном меню конфигурирования. Достаточно перезаписать только модуль etc, поскольку файлы изменены лишь в каталоге /etc. Чтобы выполнить копирование, выберите пункт 2 в мелю backup.

После записи изменений и перезагрузки системы новая конфигурация маршрутизатора будет доступна. Теперь маршрутизатор работает как простейший брандмауэр.



Создание маршрутизатора на основе Linux


В этом параграфе описаны этапы создания маршрутизатора на основе Linux-системы с использованием дистрибутива Linux Router Project.

Разработанный как минимальная инсталляция Linux, дистрибутив Linux Router Project размещается на единственной дискете 1,44 Мбайт и содержит компоненты, необходимые для маршрутизации между двумя сетями Ethernet или между Ethernet и Internet, соединенными посредством РРР. Модули add-on реализуют поддержку дополнительного аппаратного обеспечения в глобальных сетях. Доступны и другие возможности, например управление SNMP.

Удобство установки маршрутизатора с использованием дистрибутива Linux Router Project вместо полномасштабных версий Linux (таких, как Red Hat) в том, что вся предварительная работа уже выполнена. Не нужно определять то, что должно быть инсталлировано для маршрутизации. Программное обеспечение включает простую, управляемую через меню систему конфигурирования, которая позволяет проверить, все ли необходимые настройки выполнены.

Программное обеспечение Linux Router Project доступно на Web-сайте этой книги (http: / / linux. juxta. com/). Для полной информации, обновления и получения модулей add-on посетите Web-сайт Linux Documentation Project (http:./ /www. linuxrouter. org/).

Ниже приведен подробный пример конфигурирования маршрутизатора между защищенной и незащищенной сетями. К сожалению, программное обеспечение Linux Router Project (LRP) построено на базе версии 2.0 и 2.2 ядра Linux. LRP для ядра версии 2.0 включает устаревшую команду ipfwadm, содержащую брешь в защите. LRP для ядра версии 2.2 включает ipchains, надежность которой выше. Полная поддержка команды iptables для версии 2.4 ядра Linux пока не реализована.



Средний уровень защиты


При среднем уровне защиты число открытых каналов в брандмауэре больше. Открываются полностью определенные порты (от 0 до 1023), а также порты для NFS (2049), X Server (6000-6009) и X Fonts (7100). Открываются порты, необходимые для обслуживания DNS и DHCP, как описано выше. Другими словами, при среднем уровне защиты большинство зарегистрированных портов остаются открытыми, что автоматически позволяет вам получать доступ к множеству спец. услуг, подобных передачам RealAudio.

Если вас смущает наличие слишком многих открытых портов при среднем уровне защиты, выберите высокий уровень, и настройте брандмауэр вручную (ем. ниже). Если вы знаете, какие сервисы вам нужны, можете изменить настройки, чтобы открыть только те порты, которые вам нужны.



Установка сетевых модулей


Загрузочный диск Linux Router Project, первый из числа созданных, вами, не включает никаких модулей сетевых плат. Они расположены на втором гибком диске. Ниже приведена процедура копирования необходимых модулей с гибкого диска на RAM-диск, который создан с помощью загрузочного диска Linux Router Project.

Нажмите клавишу

Q

, чтобы выйти из меню Linux Router Project.

Вставьте и смонтируйте второй гибкий диск (с модулями сетевых плат) с помощью команды mount /dev/fdO /rant.

Скопируйте необходимые модули в каталог /lib/modules на RAM-диске. Например, если для ваших плат нужны драйверы пе2000 и pcnet32, выполните команды ср /mnt/ne. о /lib/modules и ср /mnt/pcnet32.о /lib/modules.

Вернитесь в конфигурационное меню Linux Router Project с помощью команды /usr / sbin/ Ircfg.

Сконфигурируйте файл /etc/modules, чтобы включить драйверы сетевых плат. Чтобы получить доступ к этому файлу, выберите в первом меню 3, во втором меню 2, а в третьем - 1. Добавьте имя модуля, например, pcnet32 и пе при необходимости, включая необходимые порты и адреса, например, irq=10 и io=0x3 00. Нажмите F1, чтобы получить доступ к списку команд редактора по умолчанию.

Установите IP-подмену для необходимых модулей. Например, если вам необходимо установить FTP-доступ через данный маршрутизатор, удалите символ диеза (#) перед ip_masq_f tp.

Запишите файл с помощью команды Alt+S. Выйдите из редактора с помощью команды Alt+Q. Вернитесь в главное меню с помощью двух команд Q.

В завершение, для проверки построенной конфигурации перезагрузите систему. Оставьте загрузочный диск Linux Router Project в накопителе. Компьютер должен распознать установленные сетевые платы.



Высокий уровень защиты


Брандмауэр с защитой наивысшего уровня вообще не подключен к внешним сетям. Но поскольку большинство пользователей хотят иметь, по крайней мере, выход в Internet, на практике такая защита нереализуема. Следующим приемлемым вариантом можно считать односторонний брандмауэр: выходной трафик разрешен, но входной трафик блокируется брандмауэром. Теоретически это неплохой вариант, но он лишает пользователя возможности выполнять навигацию в Internet.

Кроме запрашиваемых объектов, наподобие Web-страниц, установленный по умолчанию брандмауэр Red Hat Linux 7.1 с высоким уровнем защиты допускает две разновидности входного трафика: адресные сведения с DNS-серверов и конфигурационные сведения с DHCP-серверов.

DNS. В гл. 21 мы разбирали, что сервер имен, известный также как Domain Name Service (DNS), представляет собой базу данных доменных имен Web-сайтов, наподобие www. Sybex. com, и соответствующих им IP-адресов, наподобие 192.168.0.131. Компьютеру нужен IP-адрес, чтобы сообщить в Internet, где искать необходимый вам Web-сайт. Если вы задали IP-адрес хотя бы одного DNS-сервера в ходе инсталляции (проверьте файл /etc/resolv. conf), брандмауэр оставит для вас порт 53 открытым.

DHCP.

В главе 4 мы разбирали, что сервер Dynamic Host Configuration Protocol (DHCP) конфигурирует IP-адресную информацию в локальной сети. Если вы пользуетесь внешним DHCP-сервером, вы должны дать ему возможность обращаться к компьютерам локальной сети через брандмауэр. Если вы разрешили DHCP в разделе Allow Incoming (Разрешить вход) на рис. 31.1, то брандмауэр оставит для вас порты 67 и 68 открытыми.

Брандмауэр с высоким уровнем защиты не допускает никакого другого трафика. Вы не сможете пользоваться обычными Internet-утилитами, наподобие RealAudio, и большинством чат-программ. Вы даже не сможете разделять NFS-файлы через такой брандмауэр. Если на вашем компьютере установлен Web-сервер, никто не сможет найти ваши Web-страницы.



Запуск маршрутизатора Linux


Чтобы загрузиться в режиме Linux-маршрутизатора, достаточно вставить дискету и перезагрузить компьютер.

Программное обеспечение Linux Router Project создаст диск RAM и загрузит содержимое диска начальной загрузки на диск RAM. Затем с RAM-диска загрузится и остальное программное обеспечение маршрутизатора. Любые изменения в конфигурации могут записываться на загрузочный диск и использоваться при следующей загрузке.

После загрузки на экран выводится приглашение для входа в систему. Следует войти в систему как администратор (root-пользователь) без пароля и запустить программное обеспечение маршрутизатора Linux. На экране появится меню конфигурирования (см. рис. 31.5). рассмотрим этапы создания простейшей сети, описанной ранее.

Модули сетевых плат: возьмите второй гибкий диск из созданных вами. Предположим, что вы смонтировали его в каталоге /mnt/ floppy. Скопируйте необходимые для каждой из ваших сетевых плат модули из каталога /mnt /floppy в каталог /lib/modules.

Основные настройки: конфигурирование IP-адресов, масок сети и маршрутов для двух плат Ethernet.

Основы безопасности: конфигурирование параметров безопасности сети, необходимое для трансляции адреса сети.

Дальнейшее конфигурирование: конфигурирование дополнительных параметров сети, таких как серверы имен и хост-таблицы.

Рис. 31.5.

Главное меню Linux Router Project

Меню конфигурирования полностью цифровое и доступ к пунктам меню осуществляется вводом выбранного номера меню и нажатием Enter. Например, ввод 1 для Network Settings (Сетевые установки) в главном меню конфигурирования выводит на экран подменю настроек сети. Выбор пункта подменю открывает файл для редактирования (конфигурирования) в простом редакторе. Чтобы эффективно использовать редактор, достаточно знать, как сохранить файл (нажать Ctrl+W и затем нажать Enter для подтверждения имени файла) и выйти из программы (нажать Ctrl+C). Можно использовать редактор, способный выполнить более обширный набор операций, но в данном случае достаточно простого редактирования.