Руководство начинающего пользователя Linux.
(Оно же "Руководство новичка - администратора Linux",
оно же - "Linux
Newbie
Administrator
Guide" или просто LNAG).
Версия 0.193 2002-12-14 by Stan, Peter and Marie Klimas.
Оригинал на английском языке находится по адресу http://sunsite.dk/linux-newbie.
Переведено - ~77 %. Текст еще не прошёл литературную обработку :).
Все комментарии / исправления / сообщения по поводу перевода принимаются на xoid26@linux-online.ru.
Это замечательная идея. Это позволяет использовать имеющиеся машины более производительно, чем в раздельности. Преимущества включают разделяемые жесткие диски, zip-дисководы, CD-дисководы, модем, принтеры, даже звуковые карты, возможность исполнять программы удаленно (в текстовом и графическом режиме), просматривать Интернет на всех компьютерах через одно телефонное соединение. Если Вы потеряли контроль над собственной машиной, Вы еще можете иметь возможность перезагрузить ее удаленно и избежать возможных проблем -- смотри ответ на вопрос:отключение для дополнительной информации.
Hardware. Выша аппаратура должна быть сконфигурирована должным образом. Ваша сетевая карта должна распознаться при начальной установке Red Hat. Если Вы добавляете Вашу сетевую карту позже, есть шансы, что она распознается и будет автоматически сконфигурирована при следующей загрузке (by kudzu). Если этого не произойдет, Вам может потребоваться установить ее вручную. Если у Вас больше одной сетевой карты в компьютере, Вам может потребоваться устанавливать настройки сетевой карты вручную, поскольку Linux может распознать только одну сетевую карту.
Под Linux, большинство драйверов сетевых карт входят в дистрибутив в виде пакетов. Так что установка сетевой карты сводится к установке соответствующего пакета с необходимыми параметрами. Вам не придется ни перекомпилировать ядро, ни перегружать компьютер (за исключением того случая, если у Вас совсем необычная карта). Чтобы разобраться, какие модули и параметры Вам нужны, желательно обратиться к документации, поставляемой вместе с исходными текстами ядра:less /usr/src/linux-2.4/Documentation/networking/net-modules.txt
Если потребуется, Вы можете получить список всех модулей доступных Вашему ядру:
modprobe -l | more
Если потребуется дополнительная помощь, смотрите Руководство Сетевого Администратора Linux (Linux Network Administrator Guide) (файл /usr/share/doc/LDP/nag в Вашей системе или http://metalab.unc.edu/mdw/index.html#guide). Это превосходное руководство известно как nag.
Есть много способов добавить модуль в ядро. Для сетевой карты, проще всего запустить, как "root", netconf и определить имя модуля там. Альтернатива состоит в запуске X-терминала, выполнении "su" (чтобы сделать себя "root") после чего выполнить /usr/bin/kernelcfgВ большинстве случаев, Вым не придется устанавливать параметры (IRQ и адрес) для Вашего модуля--модуль будет знать, какими они должны быть. Между тем, параметры были проблемой при установке двух сетевых карт на одном компьютере -- Вы должны удостовериться в отсутствии конфликтов. Главным источником проблем бывает желание Видеокарты работать с IRQ 5, которое занято звуковой картой, или IRQ 3 что конфликтует с последовательным портом (COM2, cua1, ttyS1). Просмотр файла /proc/interrupts, /proc/ioport и чтение загрузочных записей может помочь.
Например, моя карта WD8013 (то же что и SMC Elite и SMC Elite plus, упомянутые в nag) работают с IRQ 10 (установлено переключателем на карте и я опредилил это IRQ при установке модуля в ядро), под адресом 0x300, модуль "WD" . Моя карта "SMC EtherEZ" (без переключателя на карте) работает с IRQ 9, адрес 0x240 и модуль "SMC EtherEZ". Пожалуйста убедитесь, что Вы не забыли указать "0x" в адресе -- это означает "(шестнадцатерично-десятичный)hexadecimal" -- иначе адрес будет воспринят как десятичный.
После того, как модуль добавлен, просмотрите файл /proc/modules чтобы увидеть, что модуль действительно загружен (или выполните lsmod как "root"). Файл конфигурации модулей /etc/modules.conf так что если Вы испытываете трудности (например, я испытываю трудности с удалением модулей установленных с ошибкой), отредактируйте его вручную , например, используя pico.
Конфигурирование сети. После установки сетевых карт и кабелей, установите сеть, выполнив (как "root"):
netconf
Эта программа может помочь! netconf может работать и в графическом режиме, но сам я не пробовал. Если Вам требуется получше понять работу сети, Вы можете почитать ранее упомянутый nag. Кроме того, чтение следующих материалов можеет быть полезным: http://ieee.uow.edu.au/~mjp16/wylug-netlinux/notes.html.
Эти материалы содержат ясные примеры организации малой офисной сети, похожей на домашнюю, имеющую нерегулярную связь с внешним миром.Что и как заполнять в netconf зависит от Вашей сети. Вы, конечно, захотите заполнить "Основную информацию о главном узле(Basic Host Information)" (разрешить первый сетевой интерфейс, eth0, заполнить имя, псевдонимы и IP-номер Вашего компьютера) и "Информацию о других узлах (Information About Other Hosts)" (имена, псевдонимы и IP-номера других компьютеров Вашей домашней сети). Эта информация пойдет в файлы: /etc/hosts и /etc/sysconfig/network, так что Вы можете провести там инспекцию и исправить что-нибудь вручную.
Когда установите сеть, не запутайтесь с "loopback driver" который имеет IP 127.0.0.1. Он всегда там -- Это IP через который компьютер разговаривает сам с собой.
Если у Вас нет IP-адреса (что весьма типично для небольшой сети без связи с внешним миром), Вы можете захотеть сочинить его. Это не так важно, поскольку при соединении с внешним миром через модем, Вам будет присвоен динамический IP-адрес (у машины может быть много IP-адресов). Ваш изобретенный IP должен быть формально правильным и сетевая маска должна совпадать с классом сети(класс A, B or C). Смотри главу об IP адресах в уже упоминавшемся Руководстве Сетевого Администратора (nag) (/usr/doc/LPD/nag в вышей системе, если у Вас до сих пор его нет, скачайте по адресу http://metalab.unc.edu/mdw/index.html#guide.
Для домашней сети, Вам может подойти сеть класса C (до 254 машин, или меньше) IP-номер которой начинается с трех цифр между 192 и 223. Последние три цифры однозначно определяют компьютер в Вашей сети класса C и должен быть между 1 и 254 (не используйте 0, это значит "вся сеть" и 255 что означает "широковещательный адрес"). Между этими двумя значениями(от 0 до 255) вы можете выбрать любое. Так 223.223.223.1 это первая машина в сети класса C 223.223.223.0 (последний 0 означает "вся сеть"), с широковещательным адресом 223.223.223.255. Сетевая маска для сети класса C всегда 255.255.255.0 (если Ваша сеть не будет разделена на несколько подсетей, это здесь не обсуждается).Чем полностью изобретать IP-номер, возможно безопаснее/лучше использовать один из адресов для "частных сетей". Для меня, IP-номер 192.168.1.1 работает совершенно замечательно. Таким образом, Ваш "изобретенный" IP-адрес гарантирует отсутствие конфликтов с IP-адресами, которые могут существовать в мире.
Обычно, первая машина в сети предполагается для присоединения к внешнему миру (поскольку она присоединяется первой, но стандарта на этот счет нет). Так, я занял под шлюз (GATEWAY) адрес xxx.xxx.xxx.1 (моя первая машина) на всех машинах, кроме самой xxx.xxx.xxx.1, где я оставил это поле чистым. В действительности, несмотря на то, что я оставил это поле пустым, netconf добавил шлюз(gateway) 0.0.0.0 в мой файл /etc/sysconf . Это было источником досадных сообщений об ошибке в процессе загрузки сетевой карты при старте системы. Чтобы убрать сообщения, я редактировал /etc/sysconfig/network и установил их примерно так:
GATEWAYDEV=
GATEWAY=
[Вам не нужен шлюз(gateway) на вашем ethernet-интерфейсе на этой машине если он не ведет к внешнему миру. PPP-интерфейс на этой первой машине должен быть установлен как шлюз(gateway) раз уж Вы используете модемное соединение, например kppp.]
Имя компьютера полностью произвольно -- обычно, основной пользователь выбирает короткое слово на свой вкус. Имя домена также произвольно, если у Вас нет постоянного соединения, иначе Вам придется регистрировать его. Постарайтесь изобрести что-нибудь отсутстующее в сети -- это облегчит Вам жизнь.
Для DNS(domain name server - сервер имен доменов), называемого так же "named" = name daemon(сервис имен), RedHat 5.2 и 6.0 идут с DNS предустановленным "Только для кэширования(caching-only)" для облегчения конфигурирования. Вы также можете выбрать "не использовать локальный DNS", поскольку если ваш локальный DNS ищет "внешний" сервер и не находит его, это может быть просто песней (машина может зависнуть в течении нескольких минут). Для использования DNS, сервис "named" должен быть разрешен(enabled) -- проверьте это выполнив setup. Для установки DNS "Только для кэширования(caching-only)", заполните соответствуюшие поля netconf. Например, я заполнил "nameserver 1" для моей первой машины на всех компьютерах (Я ввел кольцевой (loopback) адрес 127.0.0.1 на машине xxx.xxx.xxx.1, и адрес xxx.xxx.xxx.1 на всех остальных машинах).
Моей сети не требуются пути(routes) к другим сетям, поскольку у меня нет другой локальной сети. Поэтому я оставляю поле пустым.
После правильной уствановки аппаратуры и заполнения информации в netconf на каждом компьютере, как описано выше, мне просто больше нечего делать в стандартном Red Hat для того, чтобы сеть заработала.
Перезагрузите все компьютеры один за одним в любом порядке (это не обязательно, но не повредит) и посмотрите сообщения загрузки (если они прошли по экрану слишком быстро, используйте <Shift><PgUp> чтобы вернуть их, или запустите dmesg из командной строки чтобы посмотреть их позже). Правильно ли установлены Ваши сетевые карты? используйте команду route (как "root") чтобы увидеть, что интерфейс eth0 работает. Используйте команду ping для проверки соединений между машинами. Попробуйте войти на ваш компьютер, используя telnet чтобы убедиться, что ваш кольцевой (loopback-only (lo)) интерфейс работает:
telnet name_of_the_machine_you_are_sitting_at
После удачного входа в систему, Вы можете покинуть сессию telnet напечатав
exit
Наконец, попробуйте войти через telnet на другой компьютер Вашей сети:
telnet name_of_a_remote_machine
Если это сработало на всех машинах, Ваш сетевой интерфейс eth0 установлен.
После установки ppp и подключения к Интернет-провайдеру, Вы получите другой интерфейс (ppp0) и доступ к другим машинам всемирной сети.
GUI. На Вашем месте, я установил бы kde и использовал kppp. kppp весьма прост в конфигурировании и использовании. Чтобы установить Ваше удаленное соединение ppp, запустите kppp (Выбрав в "K"-меню "Internet", или из xterm напечатав kppp), нажмите клавишу "setup", создайте account и заполните необходимую информацию: номер телефона(telephone number), протокол аутентификации (authentication protocol), имя домена Вашего провайдера (Internet Service Provider's (ISP)) и номер DNS Вашего провайдера. Вся эта информация должна быть предоставлена Вам Вашим провайдером.
Далее, я проверяю наличие /dev/modem и размиещение его на правильном порте. Если необходимо, я создаю его как символическую ссылку на /dev/ttyS1 (как "root"):
ls -l /dev/modem
ln -s /dev/ttyS1 /dev/modem
ttyS1 должен работать если Ваш модем находится на порте, который DOS называет COM2. Используйте ttyS0 для COM1, ttyS2 для COM3, ttyS3 для COM4. Модем не заработает если порт выбран неправильно. Для нестандартных установок смотрите команду setserial.
Со старыми версиями kppp, Вы можете получить сообщение об ошибке "занято" (a "lock"). Убедитесь что файл /etc/ppp/options пуст отредактировав его (как "root"):
pico /etc/ppp/options
и удалив "lock", сохраняя файл. Этой проблемы нет в более современных версиях kppp.
RedHat 6.0 требует дополнительного шага: установки "suid" ("(Идентификатора замещающего пользователя)substitute user id") чтобы "kppp" исполнялся всеми пользователями с эффективными правами "root" (это требуется для прямого обращения к аппаратуре). Без этого, kppp заявит что он "неправильно установлен (was not properly set up)" и "не может создать файл блокировки(can't create lock file)". Это делается так (как "root"):
cd /usr/bin/
chmod a+s kppp
Решение проблем. Если Ваш модем отказывается работать с портом удостоверьтесь, что он выбран правильно, может быть модем настроен неправильно (а вдруг это "winmodem"? Тогда бросьте его подальше и купите настоящий модем).Например, в одном случае, мне пришлось менять установки kppp , редактировать "команды модема(modem commands)" и ввести ATZ1 как "строку инициализации(initialization string)" (вместо обычной для стандартных модемов ATZ). По-иному этот конкретный модем работать не хотел.
Если в Вашей телефонной сети принят импульсный набор (а не тоновый), Вам может потребоваться заменить команду дозвона "ATDT" (="ATtantion Dial Touchtone") на "ATDP" (="ATtantion Dial Pulse"). Эта команда сработает на любом стандартном модеме.
Если дозвон прошел нормально и вы получили соединение(connect), но авторизация(вход в систему) провалилась, может быть Ваш провайдер использует другой протокол авторизации(autentification protocol). Позвоните ему, и спросите какой протокол авторизации он использует. Или пробуйте "pap", "terminal-based" или "chap" (в установках kppp ) пока не найдете подходящий.
В одном случае, я заполучил проблему с надежностью установления соединения (Выскакивало сообщение об ошибке, что-то вроде: "Время истекло для запуска pppd(time-out for the pppd startup)", и соединение устанавливалось не с первой попытки).Проблема была решена изменением параметра "flow control" (в установках kppp под "device") с "CRTSCTS" на XON/XOFF. (Не смотря на это, в большинстве случаев, flow control все равно является наиболее рекомендованным методом для CRTSCTS.)Случайное рассоединение (после нескольких удачных соединений) может иметь много причин. (1) Это может происходить по причине падения сигнала "терминал данных готов (data terminal ready)" (DTR) или сигнала "несущая частота (carrier)". например, из-за посторонних шумов на линии. Большинство модемов реагирует на это зависанием. Чтобы изменить это распространенное поведение, Вам может понадобиться добавить к вашей "строке инициализации модема (modem initialization string)" что-то вроде S10=50 . Это установит устойчивость к потере DTR (на 0.01 секунды) после чего зависание неизбежно (сверьтесь с Вашим руководством к модему, модемы "US Robotics" хотят видеть что-то вроде S25=200). (2)Установка на "ожидание звонка" в вашей телефонной линии может вызвать рассоединение, если кто-то позвонит Вам. (3) Старые телефонные кабели, грязные и ржавые телефонные розетки так же являются постоянным источником проблем. Проверьте соединения, поменяйте кабели. Уберите кабели подальше от источников электронных шумов. (4) Слишком высокая скорость для ваших деревенских длинных и шумных телефонных кабелей. Сбросьте скорость (или переезжайте в город). (5) Многие провайдеры отключат Вас после некоторого периода бездействия (30 min?).
Если у Вас все еще есть проблемы с установкой ppp, вы можете попробовать minicom чтобы увидеть, сможет ли Ваш модем работать из-под него. minicom это нечто вроде PROCOMM для Linux. Он должен быть в Вашей системе, если Вы не отменили его выбор при начальной установке RedHat. Вот выдержка из группы новостей comp.os.linux.help, объясняющая, как запустить ppp вручную, используя minicom (сокращено):
From: mark <balthazaar@one.net.au> Subject: Re: Проблема с pppd и kppp
BachuZ wrote:
>>Кроме того, для эксперимента, попробуйте добраться до вашего провайдера, запустив ppp вручную ... это докажет ошибочность скрипта. >А как мне это сделать?
Просто!! Но если Ваш провайдер не поддерживает ручной авторизации(manual logon), вы будете в затруднении. Правда, все провайдеры, с которыми я имел дело предоставляют такую возможность. Так что.. 1. Запустите minicom. 2. Соединитесь с провайдером(Dial ISP). 3. Представьтесь (log in). 4. После того, как Ваш провайдер запустит PPP, покиньте minicom при помощи ALT-Q (эта последовательность нужна для того, чтобы 'покинуть без сброса (quit without reset)'). 5. Запустите pppd, например:
pppd -d -detach /dev/modem 115200 &
OK, PPP должен заработать. Попробуйте команду ping с любым известным Вам IP-адресом. Это покажет, что все OK. Между прочим, все это есть в PPP-HOWTO. Если Вы смогли добиться запуска PPP таким образом, тогда все ваши проблемы в скрипте. Если PPP не работает, у Вас проблемы с конфигурацией PPP. Будьте здоровы.
Командная строка. Если Вы предпочитаете запуск ppp из командной строки, используйте netconf (как "root") для конфигурирования Вашего первого интерфейса ppp (ppp0). Информация, которую Вам придется ввести, подобна той, что вы вводили при настройке kppp (смотри выше!): Устройство, соответствующее модемному порту, строки инициализации модема и дозвона, номер телефона провайдера, протокол авторизации (вводом имени пользователя и пароля в правое поле). В более старых версиях, netconf не отводит места для IP - адресов провайдера и сервера DNS, так что я редактировал /etc/ppp/pap-secrets (Я использую PAP-протокол авторизации) и добавлял два DNS IP адреса в конец установочной строки созданной netconf, чтобы это выглядело примерно так:
# added by linuxconf
my_login_name ppp0 my_password 111.111.111.111 222.222.222.222
Когда с установками закончено, я могу запустить интерфейс ppp0, используя команду (как "root", если в netconf не было указано, что нормальный пользователь может запустить интерфейс):
ifup ppp0
и завершить его:
ifdown ppp0
Установка ppp из командной строки не сложнее выполнения kppp и более надежно. Есть много командных файлов для запуска/остановки ppp, но они, несомненно не столь просты в установке и использовании, и новички могут получить с ними большое количество проблем. Неудачное соединение ppp может быть устранено с помощью (как "root"):killall pppd
Если эта минимальная установка ppp у Вас не сработает, вот несколько полезных ссылок:
Roderick A. Anderson < raanders@altoplanos.net > wrote:
У меня есть страница по diald для работы с RedHat Linux 5.x который работает у меня. It is at http://home.altoplanos.net/~raanders/diald.html
Bill Unruh < unruh@physics.ubc.ca > wrote:
Я просто хотел обратить Ваше внимание на: http://axion.physics.ubc.ca/ppp-linux.html для детальных инструкций по установке ppp. Это для случаев в которых удаленный пользователь (может быть без провайдера как Вы говорили.) PAP или CHAP. Пока kppp полезно, но в ряде случаев он может провалиться.
Другой компьютер Вашей сети должен имет модем (или другое Интернет-подключение) :-). Установите IP-маскарад. Таким образом, все запросы из Вашей сети к Провайдеру будут распознаваться им, как запросы от одного компьютера, и Ваш провайдер их пропустит.На REDHAT 5.2, простой маскарад осуществляется одной командой (на компьютере с модемом):
/sbin/ipfwadm -F -p m
Это устанавливает маскарад, как основную политику пересылки для IP-файервола, и следовательно, это небезопасно из-за возможных разрешений для домашних пользователей. (Опасность в том, что если кто-нибудь взломает Ваш компьютер, то он сможет прикрыться вашим именем. И что бы он после не сделал, Вы можете оказаться крайним. Хакер может так же установить в Вашей системе обратный путь к себе как "tunnel" назад чтобы скрыть свою идентификацию от Вас.) Для большей информации, смотрите файл /usr/doc/HOWTO/mini/IP-Masquerade. Более безопасный метод указан здесь:
ipfwadm -F -p deny
ipfwadm -F -a m -S 192.168.1.1/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.1.3/32 -D 0.0.0.0/0
ipfwadm -F -a m -S 192.168.2.0/24 -D 0.0.0.0/0
Это устанавливает основную политику в "запрет(deny)" и, в качестве исключения, маскирует две машины с IP-номерами 192.168.1.1 и 192.168.1.3. Это , кроме того, маскирует все машины из сети 192.168.2.0. Номер /32 установлен для соединения точка-к-точке(point-to-point) (это значит "машина-к-машине"), параметр /24 указывает на сеть класса C. Параметр -D 0.0.0.0/0 указывает основной путь по умолчанию, который замаскированные машины будут использовать для обращения к Internet.
На REDHAT 6.0 имя команды ipfwadm-wrapper (вместо ipfwadm) и я должен был использовать более безопасный метод (установка маскарада в качестве основной политики похоже более не работала в моей системе). Кроме того, с более новыми ядрами (2.0.34 и позже) пересылка запрещена по умолчанию и должна быть включена:echo "1" > /proc/sys/net/ipv4/ip_forward
Действительно, ipfwadm-wrapper это обертка(wrapper) поскольку она позволяет мне использовать старые правила настройки политик файервола, используя новый код ядра файервола. Возможно что-то вроде этого у Вас будет работать лучше:
ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ
Если бы Вам хотелось, чтобы эти команды всегда выполнялись в Вашей системе, при старте добавьте эти строки в конец /etc/rc.d/rc.local . Этот файл чем то похож на AUTOEXEC.BAT в DOS. И как всегда, рекомендуем просмотреть информацию об этих командах и других их параметрах:
less /usr/doc/HOWTO/mini/IP-Masquerade
man ipfwadm
man ipchainsВ REDHAT 7.1 (KERNEL 2.4.x) файервол можно настроить с помощью команды iptables. Вы можете использовать ipchains, если не используете iptables в то же время. Можно использовать ntsysv чтобы убедиться, что ipchains разрешен, и iptables отключен.
Samba (smb) предназначена для сетевого обмена Linux-MS Windows. Эта программа маскирует компьютеры Linux под MS Windows NT server, что позволяет компьютерам с MS Windows 3.1/95/98 присоединяться к сети. Samba не просто заменяет WinNT--она делает работу лучше, чем WinNT!
Одна из машин моей домашней сети может быть загружена как в Linux так и в Win95. Я сконфигурировал мою сеть так, что если я загружаю Win95, другая Linux машина действует как Samba-server. Таким образом, машины с Win95 могут работать с сетевым принтером и разделяемыми директориями Linux, могут использовать telnet, смотреть Internet через модем Linux-машины, etc. Кроме того, есть возможность просмотра файлов на машине Win95 с компьютеров Linux.
Необходимо сконфигурировать Samba только на одной Linux-машине.
Во-первых, я запустил setup как "root", выбрал "System Services" (RH6.0) или "ntsysv" (RH5.2) из меню, и убедился, что сервис "smb" разрешен. (Программа setup даст подсказку, если нажать F1. В случае если Вам захочется узнать для чего нужны остальные сервисы.) Если smb здесь не указан, может быть Вы не указали его при установке RedHat? Тогда вставьте RedHat CD в CDROM, смонтируйте CD, запустите установочную утилиту glint (RH5.2) или gnorpm (RH6.0) (как "root") и добавьте Samba в вашу систему.
Во-вторых, конфигурируем Samba. Это сравнительно просто поскольку конфигурация Samba содержится в одном, хорошо комментированном файле: /etc/smb.config . Минимальные установки содержат только имя сетевой группы. Заметьте, что если Вы не заполнили параметр "host allow", Все хосты будут разрешены, это может быть хорошо для домашней сети. Другие параметры /etc/smb.conf , поставленного на Вашем RedHat CD, могут понадобиться для удовлетворения Ваших особых нужд, но их не обязательно изменять для того, чтобы Windows-машины присоединялись к Samba-серверу.
Проверьте, что параметры
domain master = yes
domain logons = yes
разрешены в /etc/smb.conf. Возможно это Вам понадобится.
Под RH6.0, Вы можете выполнить основные настройки samba используя (как "root"):
netconf
В третьих, конфигурируем MS Windows 95 (или другую) для работы в сети. Это происходит почти как при подключении к WinNT server. Убедитесь, что Вы разрешили работу в сети ("client for Microsoft Network") и заполнили имя рабочей группы. При загрузке MS Windows, используйте имя и пароль пользователя Linux. Если это сработало, щелкните по ярлыку "Network Neighborhood"-- Ваш сервер Linux должен быть указан там, и в нем будут все директории и принтеры которые Вы выбрали в /etc/smb.conf.
Если Вы не видите или не можете использовать директории, убедитесь, что создали их и разрешили чтение/запись для пользователей.
MS Windows 95b и выше (95c, 98, и новые NTs) могут использовать шифрование паролей. Это может привести к ошибке аутентификации на машине Window's, и Вам может потребоваться разрешить этот параметр в файле /etc/smb.conf:
encrypt passwords = yes
На сервере Linux, Вы можете запускать, останавливать, перезагружать и проверять состояние Samba, используя команды (как "root"):
samba start
samba status
samba restart
samba stop
Вам потребуется перезапустить samba после изменений в файле /etc/smb.conf.
Вы можете работать в Интернет через Netscape for Windows если Вы присоединились к компьютеру с Linux через Samba и Linux-машина на данный момент присоединена к Internet. Для этого, IP-маскарад должен быть установлен на Linux-машине с модемом (рассмотрено здесь) и Вы должны установить разрешение имен Samba через dns в /etc/smb.conf :
dns proxy = yes
и тогда сообщить Windows разрешение сервера dns, определив имя сервера Linux и IP адреса (в Панель управления(ControlPanel)-Сеть(Network)-TCP/IP).
Вы так же можете монтировать удаленную директорию Windows к Вашей файловой системе Linux. См. здесь.
Здесь рассмотрены только самые минимальные установки Samba. Вы получите больше информации:
man samba; man smb.conf; man smbclient; man smbmount
less /usr/doc/HOWTO/SMB-HOWTO (under RH5.2)
документация в /usr/doc/samba-2.0.3/doc (under RH6.0)
http://www.sfu.ca/~yzhang/linux/samba/ (samba minihowto)
http://www.germanynet.de/teilnehmer/101,69082/samba.html
а также изучая файл /etc/smb.conf .
Sendmail это стандартная в Internet система пересылки почты и стандартная система в RedHat Linux (Mandrake использует PostFix). Как пользователь, Вы не используете sendmail непосредственно--sendmail это внутренний сервер который управляет почтой на вашей машине в фоновом режиме, для всех пользователей. Для чтения/посылки почты в текстовом режиме, вам возможно потребуется использовать pine или elm (Выберите один и придерживайтесь его--содержание двух раздельных почтовых ящиков может оказаться хлопотным). В KDE, Вы можете выбрать для использования "mail client"(kmail) доступный из K-menu. Для связи с внешним миром через ppp, Вам возможно захочется использовать почтовую программу, встроенную в Netscape, которая работает с почтовым ящиком, расположенным у Провайдера (в обход почтового сервера на Вашем локальном компьютере).
Sendmail - очень мощная и гибкая программа, но также печально известная сложностью настройки и управления под конкретные нужды. К счастью, Red Hat (5.2 или 6.x) поставляется с sendmail которая выходит за привычные рамки (накладывая ряд ограничений).
В моей домашней системе (Red Hat с установками по умолчанию), я могу послать почту любому пользователю на той же машине (например используя pine). Я могу послать письмо локально или в любую точку мира как только соединюсь с провайдером через модем если (IP маскарад разрешен). Но когда я не соединен, почта сидит в очереди и ждет соединения с Интернет, даже если она предназначена для другого компьютера моей сети (слегка раздражжает). Она будет послана только после соединения. (Это происходит потому, что sendmail Пробует найти DNS а это невозможно в моей системе -- RedHat DNS по умолчанию в режиме только кеширование.) Если Вам необходимо обойти это ограничение в RH6.x, Вы можете использовать netconf (как "root") и установить, что sendmail не использует DNS совсем (Linuxconf который поставляется с RH5.2 не дает нам такого выбора). Я вынужден использовать DNS.
Под RedHat 6.x, вам также может потребоваться netconf для конфигурирования других параметров sendmail. Я ввел имя моего провайдера и имена моих сетевых машин в "систему доставки почты(mail deliver system)"-"рассылать хостам(relay to hosts)". Я также добавил имена моих домашних сетевых машин в "рассылать по именам(relay for by name)".
Вы также должны быть осведомлены об ограничениях Вашей простой установки, которые всплывут при отправлении почты из Вашей домашней сети (например используя pine), во внешний мир. Если Вы изобрели IP адреса и ваш домен не зарегистрирован, нет никаких шансов на получение ответа. Ваша исходящая почта содержит "ответный (reply)" адрес в форме: "user_login_name@machine.domain". Это НЕ хорошо, поскольку такого домена НЕТ, по данным любой DNS внешнего мира, следовательно никакого ответа ждать не приходится. Чтобы преодолеть это, вы можете использовать Netscape mailer для связей с внешним миром. Netscape использует установки, введенные Вами в пункте "редактировать-установки(edit-preferences)" для непосредственной связи с почтовым ящиком на компьютере Вашего провайдера (который имеет зарегистрированный адрес) и обходит Ваш Незарегистрированный-домашний-сетевой-адрес почтовой системы. Другая возможность состоит в указании правильного поля "ответный адрес (reply to)". Если это сделать в Netscape, Вы можете настроить ваш NetscapeMail на использование локального Linux-компьютера как почтового сервера, этот способ позволит посылать электронную почту с вашей NetscapeMail на компьютеры Вашей домашней сети (а не только во "внешний мир"). Параметр "ответный адрес(reply-to)" также может быть установлен в настройках "почтового клиента (mail client)" KDE, если вы используете почтовую программу KDE. Кроме того, в "pine" Вы можете указать ответный адрес в разделе "setup-configure", "customized-hdrs" например так:
Reply-to: joe@joe_net.net
где "joe@joe_net.net" Ваш настоящий адрес электронной почты.Если Вы хотите доставать вашу почту из Вашего почтового ящика размещенного на настоящем сервере Internet без помощи Netscape, Вы можете попробовать установить fetchmail (см. man fetchmail).
Установить простой web-сервер apache на RedHat 6.0 необычайно просто. Во-первых, я убедился в том, что apache rpm-пакет был установлен в процессе установки RedHat. Если нет - поместите RH CD в ваш CDROM, смонтируйте его, и установите пакет apache-*.rpm (вместо "*" имя содержит номер версии и платформу). Если я знаю, что я хочу установить, то сделать это - просто (как "root"):
cd /mnt/cdrom/RedHat/RPMS
rpm -ivh apache*.rpm
Потом, я запускаю "setup" (как "root") и убеждаюсь, что демон(daemon) httpd (в "системных сервисах(system services)") размещен. [Демон (daemon) это программа которая "сидит" в фоновом режиме и пробуждается когда это необходимо. В случае с httpd, он проснется когда кто-нибудь позовет ваш http-сервер.]
Теперь, httpd будет запускаться автоматически каждый раз, когда я запускаю компьютер. Кроме того, я могу запускать его вручную (как "root"):
/etc/rc.d/init.d/httpd start
и отключать, используя:
/etc/rc.d/init.d/httpd stop
Я проверил бы наличие директории: /home/httpd (при отсутствии создал бы), и внутри ее, поддиректории html--это "корневая директория (root directory)" для людей, обращающихся к моему компьютеру через Web ( "их корневая директория" значит, что у них не будет возможности обратиться к директориям выше /home/httpd/html/ в Вашей системе). По умолчанию, эта директория содержит несколько файлов html и руководство, которые программа установки apache размещает там. Так что теперь я мог бы обратиться к моему WEB-серверу из домашней сети. Например, я мог бы ввести в строку "Location" программы Netscape:
http://my_http_server_name
и прочитать руководство к "apache".
Для того, чтобы наполнить мой сервер содержимым, я перемещаю файлы примеров к "apache" куда-нибудь еще, и копирую мои html-файлы (которые я желаю опубликовать) в директорию /home/httpd/html/ (не забудьте включить файл index.html , он будет открыт первым, когда кто-нибудь обратится к Вашему серверу).
Конфигурационные файлы apache и журнал(log)-файлы располагаются в директории /etc/html/ ,где Вы сможете просмотреть/настроить их. Журнал(log)-файлы могут быть просмотрены в "реальном времени", используя эту простую команду (как "root"):
tail -f /etc/httpd/logs/access_log
[Команда tail обычно выдает на экран конец ("хвост(tail)") текстового файла. С флагом "-f", "tail" сохраняет на экране хвост журнал-файла с учетом его роста--очень удобно для просмотра того, кто в данный момент входит на Ваш сервер.]
Для графической установки сервера Apache, попробуйте (в X-терминале, как "root", если Вы установили "Comanche" с Вашего RedHat CD):
comanche
С моими, более старыми дистрибутивами RedHat Linux (RH<7.1), установка ftp-сервера не могла быть проще--он просто работал по умолчанию. Это потому, что ftp-сервис разрешен по умолчанию как один из стандартных сервисов (так же как и telnet или gopher), в файле /etc/inetd.conf. Здесь наиболее значимая часть моего файла /etc/inted.conf:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
gopher stream tcp nowait root /usr/sbin/tcpd gn
Вторая часть моих настроек ftp-сервера находится в файле /etc/passwd который определяет псевдо-пользователя ftp:
ftp:*:14:50:FTP User:/home/ftp:
Двоеточие ":" это разделитель полей. Первое поле - имя псевдопользователя "ftp", Звездочка "*" - второе поле - объявляет, что пароль отключен (никто не сможет войти с именем пользователя "ftp"), пользовательский идентификатор 14, идентификатор группы 50, "FTP User" это коментарий, домашняя директория /home/ftp, последнее поле осталось пустым (для "нормального" пользователя, это означает имя оболочки, назначенной по умолчанию).
Поскольку эти установки уже произведены в моей системе для меня моим RedHat, кто-нибудь может войти через ftp на мой компьютер либо как пользователь (с вводом пароля и переходом в его домашнюю директорию), либо как "безымянный(anonymous)" с использованием электронного почтового адреса в качестве пароля. Любой пользователь в строке "location" своего Netscape может ввести что-то вроде:
ftp://my_computer_name
и автоматически подключиться (Netscape позаботится о вводе имени пользователя "anonymous" и адреса электронной почты как пароля).
Анонимные пользователи ftp направляются в директорию /home/ftp , которая становится для них корневой (они не смогут работать с вышерасположенными директориями). Я располагаю файлы, которые я собираюсь предоставить пользователям в директории /home/ftp/pub .
Директория /home/ftp/bin содержит команды, предназначенные для исполнения пользователями ftp. В моей системе это: compress, cpio, gzip, ls, sh, tar, zcat; все с правами "только для выполнения" (111).
Директория /home/ftp/etc содержат файлы установок для обеспечения доступа (редактированные passwd, group, ld.so.cache). Директория /home/ftp/lib содержит библиотеки (Я думаю эти библиотеки используются программами, к которым разрешен доступ анонимных пользователей).Red Hat 7.1 использует xinetd вместо старого inetd, и большинство сетевых сервисов по умолчанию отключены. Если вы не можете использовать вход через telnet даже на собственную машину или не можете пользоваться другими сервисами, Вы должны осмотреть файлы в директории /etc/xinetd.d, и редактировать файл с именем сервиса, так чтобы он содержал: "disable = no" . Это сделано из соображений безопасности--Вы должны выбрать необходимые сервисы и разрешить только их. Не включайте ftp если он Вам не нужен--в прошлом ftp предназначался для закрытия некоторых проблем с безопасностью. Если Вы разрешили сетевые службы, убедитесь, что Вы предусмотрительно настроили файлы /etc/hosts.allow и /etc/host.deny для безопасности.
Файл примера /etc/xinetd.d/tpfp показывает что сервис отключен:
service tftp
{
disable = yes
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
Если у Вас нет этих файлов, выполните cat чтобы увидеть какие сервисы установлены в вашей системе. Демоны большинства сервисов будут запускаться автоматически при старте системы, если это разрешено с помощью программы setup (как "root").
Довольно трудно, поскольку Ваш IP-адрес выдается динамически Вашим провайдером из его пула IP-адресов, и, следовательно, Ваш IP-адрес каждый раз разный (Если конечно Вы не заключили отдельного соглашения с Вашим провайдером). Для telnet, ftp или http из внешнего мира, необходимо знать Ваш текущий IP-адрес. Чтобы найти мой IP-адрес, я использую команду "interface configuration" которая, при выполнении без параметров, отображает информацию о всех активных сетевых интерфейсах представленных на моей машине:
/sbin/ifconfig
На моей машине три параграфа информации : eth0 (Первый сетевой ethernet-интерфейс к компьютерам моей домашней сети), lo (интерфейс только-к-себе(loopback-only), с IP-адресом 127.0.0.1 должен быть представлен на каждой машине) и ppp0 (первый интефейс точка-к-точке(point-to-point protocol)). Мой текущий IP-адрес, назначенный мне моим провайдером, отображается поз заголовком ppp0. (Ваша Linux-машина может иметь несколько IP адресов в один момент времени, так если у Вас "статический" IP-адрес который Вы используете в домашней сети, это совершенно верно, но видно лишь в Вашей домашней сети.)
Раз я знаю IP-адрес, я могу послать его через ICQ или e-mail друзьям, которые могут в этом случае, например, получить вход через telnet или ftp на мой компьютер (если у них есть учетная запись на моей машине) и выполнить программу на моей linux-машине, или ввести http://my_ip_address в строку "location" своего Браузера, чтобы мосмотреть мои домашние странички, и т.д. Если у моих друзей есть Xwindows на их локальной машине, они могут так же исполнять графические программы на моем сервере, направив вывод на свой компьютер.Кроме того, можно написать короткий командный файл, который будет уведомлять моих друзей о моем входе в Интернет и ввести имя командного файла в kppp-setup-account-edit-dial-"выполнить программу после соединения(execute program upon connect)". Здесь например короткий скрипт сообщающий мне на работу когда кто-то у меня дома входит в сеть (Этот текст был введен в файл, который я сделал выполняемым с помощью chmod o+x file_name) :
#!/bin/bash
sleep 15
/sbin/ifconfig | mail -s notification my_email_address
Первая строка сообщает моему компьютреру, что этот командный файл надо интерпретировать как файл скрипта оболочки bash. Вторая строка заставляет компьютер ждать 15 секунд (просто чтобы убедиться, что электронная почта не будет послана до тех пор пока соединение не будет установлено). Третья строка выполняет команду ifconfig и передает ее вывод на вход программы mail, которая посылает его на my_email_address c темой сообщения "предупреждение(notification)".
Более гибкий путь состоит в том, чтобы сконфигурировать его как dial-up-ppp-сервер (в противоположность dial-in-клиенту который Вы используете для подключения к Вашему провайдеру). Если у Вас есть простой способ для того, чтобы сделать это, пожалуйста напишите.В общем, в отличие от MS Windows 3.x/95/98 которые серьезно ограничивают траффик к Вашей сети, Linux очень ориентирован на работу в сети и позволяет осуществлять все виды соединений как С так и НА Ваш Linux-компьютер. Мощные сетевые возможности составляют силу Linux ,но , с точки зрения настоящего новичка, они могут стать проблемой (см. следующий вопрос).
К сожалению, это весьма возможно и весьма просто. Каждый раз, когда Вы присоединяетесь к провайдеру Вы рискуете. В предыдующем вопросе Вы можете узнать, как это происходит. Естественно, риск выше, если соединение постоянное (например кабельный модем), и ниже, когда соединения кратковременны (как обычно происходит при соединении через модем).
Реальную опасность представляет непрошенный гость, если он сможет войти в систему, используя любую учетную запись, которую сможет подобрать (или выведать) - и получить права "root". Обычно это возможно, если Вы действительно администратор - новичок и/или Выша машина не ориентирована на настоящую безопасность (Вы же дома, не так ли--зачем думать о безопасности!).
Чтобы защитить себя, Вы не должны позволить посторонним вломиться на Ваш компьютер. Используйте длинные и сложные пароли для ВСЕХ учетных записей на Вашем компьютере. Меняйте пароли регулярно. Для того чтобы навязать всем пользователям Вашего компьютера правильную политику в отношении паролей выполните (как "root", например в RH6.0) linuxconf и под "политики паролей и учетных записей(password and account policies)" измените минимальную длину пароля на 6 или более знаков, минимальное количество не-буквенных знаков на 1 или 2, количество дней после которых пароль должен быть сменен на что-то вроде 90 или менее, и установите предупреждение об устарении пароля на 7 дней перед устарением. Остальную информацию о паролях смотрите здесь (FAQ2.htm#pass_security). Абсолютно НИКОГДА не создавайте учетных записей без пароля, или со слабыми паролями. Не вырабатывайте привычки работать на своем компьютере как "root"--Если Вы выполняете программу с "дырами в безопасности" как "root", кто-то может найти возможность взломать Ваш компьютер. Старые Linux-дистрибутивы имели известные дыры в бьезопасности, так что используйте более новые версии, особенно если впашим компьютером могут воспользоваться ненадежные люди, или если Ваш компьютер выполняет сетевые сервисы "со стороны сервера" (например, ftp или http сервер).
Кроме того совсем неплохая идея - регулярно просматривать все файлы в которых фиксируются все входы пользователей в систему: /var/log/secure (самый последний log) /var/log/secure.1 (более старый) /var/log/secure.2 (еще более старый), и т.д. Кроме того полезны log-файлы в директории /var/log. Проверяйте их времы от времени. Наиболее распространенные "предупреждения(warning)" относятся к сканированию портов Вашего компьютера: это повторяющиеся попытки входа с какого-то IP-номера на Ваш telnet, ftp, finger или другой порт--кто-то хочет узнать больше о Вашем компьютере.
Если Вы не используете удаленного соединения с Вашей машиной, есть прекрасная идея ограничить права на использование сетевых сервисов "со стороны сервера" (все сетевые сервисы перечислены в файле /etc/inetd.conf) машинами Вашей домашней сети. Доступ контролируется двумя файлами:/etc/hosts.allow и /etc/hosts.deny . Эти файлы контроля за доступом работают следующим образом. Когда кто-то извне запрашивает соединение, файл /etc/host.allow сканируется первым и если одно из имен, содержащихся в нем и имя компьютера, запрашивающего соединение совпадают, nbsp; доступ разрешен (независимо от содержимого файла /etc/host.deny ). Иначе, сканируется файл /etc/host.deny, и если имя машины, с которой запрашивается соединение совпадает с одним из имен в файле, соединение закрывается. Если совпадения не найдены, разрешение предоставляется.
B. Staehle (Гуру в Linux-модемах) дал мне совет не устанавливать сетевые службы вообще. "Если Ваши сетевые службы не установлены правильно, Вы можете "влететь" со своим компьютером присвоенным ловким скриптописателем. Новичкам _НЕ_СТОИТ_ разрешать сервисы (ftp, telnet, www) во внешний мир. Если Вы "должны" устанавливать их, убедитесь в том что вы разрешили доступ только с тех машин, которые можете контролировать. Файл /etc/hosts.deny должен содержатьALL: ALL
,а /etc/hosts.allow должен содержать
ALL: 127.0.0.1
для разрешения входа только с этого компьютера. Не используйте имен (только IP)! " &конец совета>.
Действительно, мой /etc/host.deny как и было присоветовано содержит (ALL: ALL), но мой /etc/hosts.allow содержит еще два компьютера, имеющих полный доступ, и еще один для входа через telent и ftp: (IP-номера вымышлены):
ALL: 127.0.0.1, 100.200.0.255, 100.200.69.1
in.telnetd, in.ftpd: 100.200.0.2В вышеуказанных примерах "ALL: ALL" означает "ВСЕ(ALL) службы, ВСЕ(ALL) компьютеры", то есть "соединение со всех компьютеров ко всем сетевым службам" идущих с "любого компьютера".
Для большей информации, смотрите превосходное "Руководство сетевого администратора Linux (Network Administrator Guide)" которое разумеется есть в Вашем дистрибутиве RedHat (или другом). Я, например, даже распечатал эту книгу.
Чтобы проверить какие сетевые службы Вашего компьютера доступны из внешнего мира, Вы можете воспользоваться специальными WEB-инструментами. Зайдите на: http://scan.sygatetech.com/ и щелкните "scan now".
Здесь другие места в которых могут Вас просканировать: http://crypto.yashy.com/ http://davidovv2.homestead.com/freetoolsservices.html http://privacy.net/ http://scan.sygatetech.com/ http://security1.norton.com/us/intro.asp http://suicide.netfarmers.net/ http://trojanscanner.com/cgi-bin/nph-portscanner http://www.doshelp.com/dostest.htm http://www.dslreports.com/secureme/ http://www.dslreports.com http://www.earthlink.net/freescan/ http://www.grc.com http://www.hackerwhacker.com/ http://www.nessus.org http://www.netcop.com/newscan/fullscan.html http://www.privacyscan.org http://www.sdesign.com/cgi-bin/fwtest.cgi http://www.sdesign.com/securitytest/index.htmll http://www.securityspace.com/ http://www.vulnerabilities.org/nmapemail.html http://grc.com http://www.dslreports.com/scan http://www.dslreports.com/security/sec025.htmИз соображений безопасности, неплохо бы не афишировать операционную систему и ее версию, которые Вы используете. Я сменил содержимое файла /etc/issue и /etc/issue.net которые на моем компьютере выглядели так:Red Hat Linux release 6.2 (Zoot)
Kernel 2.2.14-5.0 on an i586на что-то вроде:
WARNING: THIS IS A PRIVATE NETWORK
UNAUTHORIZED USE IS PROHIBITED AND ALL ACTIVITIES ARE LOGGED
IBM S/390 LINUXЭта шуточка может слегка (чуть-чуть) увеличить (я надеюсь) безопасность моей системы.
Содержимое файлов /etc/issue и /etc/issue.net я изменяю при каждой загрузке (когда выполняется /etc/rc.local). Чтобы сделать измения постоянными, я могу сделать эти файлы доступными только для чтения для всех пльзователей, выполнив (как "root"):
chmod a=r /etc/issue*
Вместо последней команды, Я мог бы отредактировать (как "root"), командный файл /etc/rc.d/rc.local и закоментировать 5 строк, используя ### таким образом, чтобы его значимая часть содержала:
# Здесь перезаписывается /etc/issue при каждой загрузке. Делаем несколько изменений
# необходимых, чтобы не потерять /etc/issue при перезагрузке
### echo "" > /etc/issue
### echo "$R" >> /etc/issue
### echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue
### cp -f /etc/issue /etc/issue.net
### echo >> /etc/issueДругая хорошая мера безопасности - выключить ping. Ping("Звонок") - это система, отвечающая на запрос посланный с другого компьютера. Она весьма полезна при установке и отладке сетевых соединений, чтобы проверить, что Ваша машина доступна по сети. Она может так же быть использована при прощупывании и/или атаке ее перегружающими ping-запросами ("Звонок смерти(ping of death)"). Для запрета ping-запросов из сети я использую IP-маскарад. Я взял ,слегка изменив, следующие команды, вместе с пояснениями с http://www.securityfocus.com/focus/linux/articles/linux-securing2.html:
ipchains -A input -p icmp --icmp-type echo-request -i ppp0 -j REJECT -l
(1) (2) (3) (4) (5) (6) (7)
Разяснение флагов ipchains:
1. Добавим новое правило.
2. Указать сферу применения правила, в этом случае правило будет применено ко входящим пакетам.
3. Протокол, к которому будет применяться правило. В этом случае - icmp.
4. ICMP тип, в этом случае icmp эхо-ответ на запрос будет блокирован. "Эхо-ответ (ICMP echo)" значит ping.
5. Имя интерфейса. В этом случае это первое телефонное соединение, ppp0.
6. Цель,что мы будем делать с пакетами запроса.
7. Отмечать все пакеты по некоторому критерию в системном журнал-файле.IP-маскарад более детально описан в главе маскарад этого руководства.
Другие меры предосторожности. Я время от времени посматриваю, чтоба кто-то не установил "root kit" на моей системе. Я использую "chkrootkit" (очень маленькую, 25k, скачанную с http://www.chkrootkit.org/). После скачивания:
su [provide password]
cd /usr/local
tar xvzf /home/my_name/chkrootkit.tar.gz
cd /usr/local/chkro<tab>
make
./chrootkitПоследняя команда предназначена для поиска "root kit" в моей системе. "Rootkit" это программы, оставляющие черный ход каждому, однажды получившему права "root", устанавливаемые в целях прослушивания, просматривания, и защиты своего доступа, etc.
Переход к части: 5 - Команды и сокращения Linux
На главную страницу