| Ты в системе. Ты можешь игнорировать, протестовать, не признавать это. Но что бы ты не делал, как бы ты себя не вел, ты в системе. И так будет продолжаться до тех пор, пока ты ее не сменишь. Но даже после этого ты будешь в системе. Только в ДРУГОЙ! |
Компьютер - это сеть!
Почему Линукс???
Действительно, в последнее время слово Линукс произносится все чаще и чаще, эту ОС используют уже не только специалисты-сетевики, но и множество пользователей по всему миру отдают ей предпочтение. Чтобы понять, чем обусловлена ее популярность имеет смысл полистать страницы истории.
В августе 1991-го года в новостной группе comp.os.minix один финский студент оставил сообщение :
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.
Его звали Линус Торвальдс, и эти слова показывают, что он и сам не предполагал, чем в итоге обернется ставший историей пост. Что было раньше? В середине 80-ых на массовом рынке преобладали система DOS, и уже приобретающая очертания Windows фирмы Microsoft. Был также элитный, и недосягаемый Macintosh, с однопользовательской в то время операционной системой MacOS, к слову - первой системой, где графика реализована на уровне ядра. Благодаря этому Mac воспринимали как систему для работы с графическими приложениями, в частности он широко использовался, как издательская система. Однако высокотехнологичные, многопользовательские и многозадачные системы семейства UNIX стоили несравнимо дороже и поэтому работали лишь в специфичных проектах, например таких, как научные исследования, сети (Sun Microsystems - OS Solaris) и обработка трехмерной графики (Silicon Graphix - OS IRIX). Поэтому, возникшая в 1984-ом году организация Free Software Foundation обьявиа одной из своих задач создание свободной операционной системы UNIX с открытым исходным кодом. Концепция свободного программного обеспечения означает, что любой человек имеет право не только свободно копировать и распространять программу, но и изменять ее, приспосабливая к решению своих задач. Идея нашла отклик, и впечатляющее количесво свободного софта стало появляться в разных концх мира, однако этому сообществу все еще не хватало единой платформы, чтобы сплотить вокруг нее усилия. Наверное поэтому сообщение финского студента обернулось феноменом, которого все ждали. Линус стал координировать работу над ядром, ставшим основой для одной из самых СТАБИЛЬНЫХ систем в мире, однако Линукс - это не только ядро. Линукс - это система, создаваемая человечесвом, и в этом ее превосходство и уникальность. Простой пример - студент из Италии приобрел новую карту, и написал драйвер для нее, а системный администратор из Манчестера создал необходимую ему в работе программу, для организации архива, и предоставил ее ВСЕМ, кому она необходима. Пример, касающийся лично меня - случается, что фирма производитель оборудования в маркетинговых целях не поддерживает его, чтобы заставить перейти на свои новые, более дорогие решения. ПО, написанное сообществом любителей, зачастую превосходит фирменное и более полно использует потенциальные возможности железа. Линукс отвечает самым разнообразным потребностям людей, и поэтому разнообразна. Отсюда и такое количество оконных менеджеров с совершенно разными концепциями, когда как в других ОС, той же Windows пользователи во всем мире привязаны к единому стандарту и концепции окошек. Я просто привел пример, так как не имею морального права писать плохо о других ОС, описывая положительные качества Линукс. Кроме того, это означало бы, что Линукс - "хорошая" система, только потому, что Windows - "плохая". Напротив, я считаю что и в MacOs, и даже в Windows есть положительные качества, и не отрицаю их. А Линукс сама по себе является удобной, мощной и стабильной системой, и подобное сравнение ее только "унизит". Что касается использования Линукс в качестве сервера, то трудно представить себе настолько гибкий инструмент для "тонких настроек", который в руках мастера превращается в "волшебную палочку". В Линукс графика не является частью ядра, что по большому счету является несомненным плюсом: во первых, крах графической оболочки не приводит к зависанию ядра, и что касается серверов, то использование графики в них просто нецелесообразно. В самом деле, зачем расходовать ценные системные ресурсы на графическую оболочку в сервере, целью которого является обслуживание пользователей, а не прорисовка линий. Кроме того почти любая операция может быть произведена набором строчки в командной строке, что значительно упрощает использование системы и экономит время. Несмотря на внешнее сходство с ДОС, Линукс без графики - это удобная, мощная МНОГОЗАДАЧНАЯ платформа, с распределением привилегий (permissions), продвинутой файловой системой, и уникальным API. О стабильности этой системы можно судить также и потому, что к ее использованию перешли многие компании, работающие в самых разнообразных отраслях: распределенные вычисления, базы данных, научные исследования, системы компьютерной графики и цифрового видео, и даже просто оффисы. Линукс также стал хорошей системой для домашнего компьютера. Именно благодаря концепции этой системы, для нее почти не существует вирусов, так как написать вирус под Линукс во первых не тривиальная задача, а во вторых, при грамотном использовании системы он и ущерба причинить практически не сможет. Вообще, девиз "Знание - сила" очень подходит этой ОС, может в этом основа разговоров о Линукс, как о "волшебной, магической" системе. Кроме того, в последнее время стало более актуальным предпочтение Линукс как сервера другим unix-овым ОС, в связи с так называемыми "kernel level threads", то есть проще говоря функциям ядра, не реализованным в других unix системах, и на основе которых написана ощутимая часть современных серверных приложений, что дает несомненный выигрыш в производительности. Линукс поставляется с исходными текстами программ, что дает возможность, если позволят знания, изменить или приспособить работу приложений под свои нужды. Однако коммерческий софт в дистрибутив Линукс не входит и приобретается отдельно - так как в противном случае, дистрибутив не сможет носить имя Линукс. Итак, успех Линукс я вижу в том, что это "народная" система, продукт созданный человечеством и реализованный на разных аппаратных платформах, уже сейчас есть версии для Mac, Sun, Alpha Dec... - UNIX вообще легко переносится. Именно поэтому нет сомнений, что Линукс будет существовать и развиваться, соответствуя потребностям и независимо от личностей и фирм, как это бывает в случае коммерческих систем.
Почему Red Hat?
В принципе все, что я расскажу в большинстве случаев относится к любой linux системе, так как все дистрибутивы имеют в основе ядро linux. Однако каждый дистрибутив имеет свою программу установки. В Red Hat - это anaconda. Дистрибутивы разных фирм также отличаются административными и конфигурационными утилитами. И что еще немаловажно для неопытного админа, в дистрибутивах линукс ядро может быть откомпилировано по разному. Опытные админы часто, а иногда всегда перекомпилируют ядро соответственно своим потребностям, и поэтому этот вопрос для них не столь актуален. Так как я концептуально постараюсь не описывать настройки при помощи конфигураторов, то у Вас не будет особых проблем при использовании нижеописанного на любой linux системе. Тем не менее каждый дистрибутив имеет свою аудиторию. В частности Red Hat Linux очень часто используется как рабочая или серверная система. Цитирую фразу из книги Моххамеда Дж. Кабира Red Hat Linux Server:
На вопрос, почему "Red Hat является лучшим?" есть простой ответ - да потому, что его использует сам Линус Торвальдс!
Red Hat - система, "за спиной" у которой авторитетная фирма Red Hat Software, всегда шагающая в ногу со временем, предоставляющая протестированное ПО и квалифицированную техническую поддержку, хотя последнее касается корпоративных заказчиков. Red Hat зарекомендовала себя отлично укомплектованными дистрибутивами. Red Hat является автором инсталляционных пакетов rpm, на основе которорых собираются и другие дистрибутивы, как Mandrake и SUSE. Red Hat является самой популярной Линукс системой в штатах, а росты ее продаж уже превосходят рост продаж Microsoft. Сотни Red Hat Linux считали видео эффекты фильма "Титаник", недавно NASA заменила мейнфрейм, приобретенный у компании SGI за 1,6 млн долларов кластером из 12 компьютеров под управлением Red Hat Linux. Red Hat в качестве серверной системы предпочли также CNN и Google, нагрузка на сетевые ресурсы которой сомнений вызывать не должна. Red Hat не только очень легко поддается обновлению, позволяет просто добавить или удалить пакет, но также избавит Вас от необходимости заботиться о компиляции, и проверки новых программ на предмет совместимости с уже установленными. Именно Red Hat Linux в большинстве случаев используется как рабочая, в частности серверная ОС, поэтому и я с ней работал больше и возможно, сумею лучше о ней рассказать.
На какой компьютер ставить Red Hat?
Независимо от того, какая на сервер будет нагрузка, будет ли будущая система файл сервером или ресурсоемким, работающим под нагрузкой прокси - ставьте систему на хорошее железо. В зависимости от конкретных задач конфигурация может быть более или менее мощной, но во всех случаях компьютер должен быть собран на качественных комплектующих. Опыт научил меня отдавать предпочтение схеме "intel+intel", то есть процессор intel Pentium c материнской платой на основе чипсета (набора микросхем) intel. Эта схема оправдывает себя и иногда превосходит ожидания. По крайней мере вы не будете задумываться, правильный ли сделали выбор положившись на intel Pentium. Желательно, что бы при этом материнская плата имела зарекомендовавшую себя марку, как Asus или Gygabyte. Процессоры intel Celeron, и дешевые некачественные материнки собранные на чипсетах VIA использовать не стоит, пожалейте себя и свою работу. Лучше приобрести или собрать компьютер с более слабыми техническими характеристиками, но на качественных комплектующих. Что касается Cyrix - забудьте о них. Почему я не рекомендую intel Celeron??? Да потому, что он является своего рода урезанной версией старшего брата - intel Pentium. Процессоры всегда работали несравнимо быстрее ОЗУ и тем более винчестеров. Поэтому им приходится простаивать вхолостую, ожидая поступления информации от ОЗУ или жесткого диска. Чтобы смягчить разницу между скоростью обмена данными с RAM, HDD и скоростью процессора , в него встроена очень быстрая, и очень дорогая буферная память, называемая кэш памятью (cash). Из-за ее маленького обьема в современных процессорах Celeron, назвать их рабочими можно мягко говоря с натяжкой. Повторяюсь, рациональнее приобрести процессор Pentium с вдвое меньшей частотой. Использование Celeron может быть оправдано в домашней системе, где четырехсот мегагерцовый Celron покажет Вам DivX фильм, который не посмотреть на двухсотмегагерцовом intel Pentium. Но если требуется бесперебойная работа под нагрузкой, и одновременное обслуживание нескольких пользователей - то используйте качественные комплектующие, и не делайте ставку на скорость. Поэтому в народе говорят, что приобретая brand-name, то есть компьютер хорошей, фирменной сборки вы имеете выигрыш в 100mhz. На самом деле, вы имеете выигрыш в производительности. Приведу пример: В провайдерской фирме, где я работал, в качестве маршрутизатора работала Cisco 2600. За полтора года работы она ни разу не повисла и перегружалась исключительно по причине обновления софта или сбоя электроснабжения. Это обусловлено не только программным обеспечением, но и качественной аппаратной частью. Так получилось, что пришлось эту Cisco заменить на время PC маршрутизатором, разумеется на базе ОС Linux. Единственным компьютером оказавшимся под рукой, не считая стареньких Pentium1, которые точно не справились бы с маршруизацией мегабитного канала , был AMD Athlon 1000 mhz 256 RAM, Quantum HDD 7200 оборотов в минуту. То есть характеристики на первый взгляд довольно не плохие. И что вы думаете??? Его приходтлось перегружать раз 5 в день, так как он не справлялся с нагрузкой. А на качестве предоставляемых услуг это сильно сказывалось. Дело в том, что в компьютере была недорогая, и некачественная материнка. Она бы справилась с набором текста в Word, помучалась бы при играх, но серьезхной работы доверить ей нельзя. Кроме того, мне не приходилось видеть процессоры AMD, хорошо работающие на материнках VIA. Когда я заменил Athlon 1000 mhz на компьютер с AMD K6-500, то есть вдвое менее производительным процессоором, работающим с материнской плате с чипсетом ALI - о зависаниях пришлось забыть. Единственный сбой, который произошел у этого компьютера почти через год, был сбой по причине старого винчестера. Надо сказать, что по моим субьективным наблюдениям процессоры AMD довольно неплохо работают именно с ALI chipset-ом. Надеюсь, я смог убедить Вас использовать заведомо качественное оборудование.
На что следует обратить особое внимание, это винчестер и cooler - то есть почти единственные механические части компьютера, более всего подверженные порче от времени. Электроника чаще устаревает морально, чем портится. Если у вас плохо крутится cooler, то общая производительноть системы резко снижается, а если он не дай бог перестал вращаться, то это грозит вам перегревом и как следствие выходом из строя материнки,и процессора, особенно это касается AMD, которые нагреваются при работе гораздо сильнее intel-овских.
Что касается видеадаптера, постарайтесь выбрать самый слабый. Жалко ставить на сервер Nvidia GeForce, который просущуствует лучшие свои годы в разрешении 40x25 символов.
Сетвая карта - это очень важно - они тоже "виснут". Более того, я замечал откровенно глючное поведение сервера, сопровождаемой выводом невнятых надписей на экран, периодическим пропаданием пинга на него - все проблемы как рукой сняло после смены сетевой карты. Я предпочитаю карты на чипсете Realtek 8139 - они всегда опознаются системой, ее легко "синсталлировать" простым добавлением модуля net2k-pci.o даже при сборке рабочей версии Linux, загружаемой с дискеты. Должен сказать, что долгой и надежной работой, заметно отличались 3com-овские сетевые карты, которые впрочем тоже безошибочно определяются в большинстве случаев. Огромная просьба, при сборке маршрутизатора, не ставьте на него сетевые карты, работающие на разных шинах, то есть используйте или все карты PCI, или все ISA. Причина в том, что шины работают на разной частоте, и соблюдение этого простого правила избавит Вас от множества проблем.
Где достать дистрибутив?
Предпочтительнее всего скачать с ftp.redhat.com, с любого из этих зеркал или переписать у друга. Можно конечно приобрести дистрибутив в магазине. В принципе можно даже заказать его у фирмы, которая предоставит инсталляционку со шкафом литературы и бесплатной технической поддержкой. Во всех случаях Вы получаете ту же самую операционную систему и пакеты программ, независимо, приобрели вы диск у фирмы, или скачали по сети. На ftp сервере Red Hat Вы можете скачать как iso файлы, так и отдельные пакеты. Настройка ftp соединения предельно проста:
user: anonymous , а в качестве пароля нужно указать любой e-mail адрес, можно реально существующий. Предпочтительно качать download acceleratorom, как Godzilla, или Reget. Дистрибутивы находятся в папке /pub/redhat/linux:
Желательно выбрать последнюю версию, на момент написания сего документа это была Red Hat 8.0. Вы наверное привыкли думать, что каждая последующая версия системы требует больше системных ресурсов, и хуже сказывается та производительности системы в целом? Может и так, но не когда вы имеете дело с Линукс. К примеру ощутимая часть ядра Линукс 2.4 была переписана с нуля, с целью увеличить производительность, не занимая большего обьема оперативной памяти. Версия 2.6 по предварительным данным обещает быть более производительной. Кроме того, предпочтительно выбирать последнюю версию дистрибутива исходя из соображений безопасности. Если в предыдущх пакетах обнаружены так называемые "bugs" , а также давно известны и опубликованы exploit-ы и методы взлома, то новые пакеты, чаще всего таких недостатков не имеют. Наверняка и в них найдутся дыры, однако они еще "не открыты". И независимо от того, какой версии дистрибутив вы предусмотрели скачайте для него обновления. Это избавит Вас от множества проблем, так как если в версию дистрибутива входит некорректно работающий пакет, скорее всего эта неисправность уже "пофиксена" и размещена на ftp.redhat.com в папке .pub/redhat/linux/updates. Повторяюсь, регулярное обновление системы очень важно. Если не верите, зайдите на http://www.linuxsecurity.com/advisories/redhat.html и от списка уязвимостей у Вас как минимум мурашки по коже пробегут!
В каждой директории на ftp сервере Red Hat вы найдете файл MD5SUM примерно следующего содержания.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
d7b16b081c20708dc0dd7d41793a4177
psyche-i386-disc1.iso
2df17bc02cb1b3316930ed4f7601ad9e
psyche-i386-disc2.iso
305d6ff5b5850fa316276710a148b0a3
psyche-i386-disc3.iso
0a77d7a3bc8c4e87508c46a2670242eb
psyche-i386-disc4.iso
8dbcf16f0072ee47db49b08921a41ba5
psyche-i386-disc5.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6
(GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE9mH6DIZGAzdtCpg4RAkKnAJ9FoKBr0tTIakp9XEn+3+jEWkES2QCfbVBo
OFisZU8vsf6HHUpUivNv39I=
=J1G1
-----END
PGP SIGNATURE-----
Проверку достоверности закачанного файла полезно производить даже в
случае, когда Вы скачали всего один пакет. Просто запустите команду
md5sum:
md5sum wu-ftpd-2.8.1-6.i386.rpm
t412cfhh5bf1376cia9da6c5dd86a463
wu-ftpd-2.6.1-6.i386.rpm
Если md5sum девелопреа отличен от Вашего, например
y415cfgz5bf1356cib8da6c5dd8da0k5 то придется качать пакет вновь.
Теперь конкретнее напишу о нескольких известных мне недочетах, надеюсь это поможет Вам выбрать дистрибутив, более соответствующий задачам. Все описанные проблемы решаются простым обновлением пакетов, или простой, но вызывающей страх у новичков перекомпиляцией ядра. Поэтому следующая инфа поможет сэкономить Ваше время и позволит не наступать на грабли, о которые споткнулся лично я. Повторяюсь, все проблемы присутствуют в чистом дистрибутиве, без обновлений. Значительная часть проблем связана с использованием конфигуратора Linuxconf, который разрабатывается независимо от компании Red Hat Software, и часто некорректно работает. Вообще, рекомендую избегать конфигураторов, и буду рассматривать всю работу с системой без их использования. Кроме того, начиная с версии 7.3 в дистрибутивах Red Hat Linux отсутствует Linuxconf, поэтому если вы от него все же зависите, придется скачать из интернета или не ипользовать новые версии, что не является лучшим выходом. Еще возможно, что нижеприведенные замечания не являются истиной в последней инстанции, и я когда-то сам что-то сделал не так, однако в большинстве случаев, думаю они будут Вам полезны
Red Hat 7.2 не сможет смонтировать SCSI CD-writer. Так что либо инсталлируйте сразу все, что нужно, либо потом перегоняйте пакеты по сети, так как Linux Ваш CD-writer вряд ли смонтирует. Выходом установки дополнительных пакетов именно с CD является также переинсталл в режиме upgrade existing system, правда, для этого Вам придется перегружаться.
Не удивляйтесь сообщениям time of days goes back... при использовании ping в Red Hat 7.2. Обновите ядро, и сообщения о обратном ходе времени прекратятся :)
Что еще стоит сделать в 7.2 - это update-нуть gcc, если он разумеется понадобится в работе.
Если у Вас мало времени и опыта лучше не пытайтесь настраивать dial-in server на дистрибутивах red hat 7.2 или 7.3. В пакет 7.2 включена версия pppd с bag-ом: connect-а не будет с клиентской машины работающей под управлением Windows 9x. У владельцев клиентских компьютеров, работающих под w2k и XP проблем не будет.
Выход:
1. (и лучшее) Скачайте update.
2. Если нету инета, но есть дистрибутив Red Hat 7.1 - то downgradeing на версию pppd из него.
Что касается Red Hat 7.3, то kernel 2.4.18 в дистрибутиве откомпилирован без модуля bsd_comp.o
Выход:
1. (и лучшее) - перекомпиляция ядра
2. Попробуйте скачать и закинуть в соответствующую директорию bsd_comp.o - у меня заработало.
3. Добавить в ppp_options строку nobsdcomp
При настройке дисковых квот пользователей в Red Hat 7.2, Linuxconf выполняет последовательность команд, причем последнюю команду quotacheck использует с неправильными параметрами. Параметр чаще всего представляет из себя букву или последовательность букв или цифр. К примеру, в строке
kill -9 1024 параметрами являются значения справа от команды kill.
Итак, Linuxconf выполняет команду quotacheck, с параметрами, при которых она не может завершиться успешно. Вместо этого нужно набрать quotacheck -avugnm. Подробнее на настройке дисковых квот пользователей будет рассказано в следующих главах. К примеру в Red Hat 7.0 настройка квот Linuxconf-ом не вызывает проблем и проходит гладко.
Если при upgrade-е с 7.0 на 7.2 у Вас не работает DNS (named) - проверьте указан ли в конфигурации параметр minimum. Версия bind из дистрибутива 7.0 работала и без указания данного параметра.
Однако не пытайтесь отключать мышь от работающего компьютера под управлением Red Hat 7.0 - повиснет - не знаю, но у меня еще не было случая, что бы не повис - на разных компьютерах. Может не повезло с железом.
Лучше не трогайте конфигурацию sendmail в 7.x системах linuxconf-ом, особенно ту ее часть, которая настраивает relay. Linuxconf умудряется так испортить конфигурационники, что в blackhole list попадете однозначно.
Когда вы монтируете CD-ROM, вставив в него нечитаемый диск, слишком много системных ресурсов идет на безуспешные попытки подключить фаяловую систему CD - обращения к дискам вообще всегда ресурсоемки. И так он упорно и самоотверженно пытается смонтировать нечитаемый диск, чсто зачастую виснет прежде, чем вы kill - нете этот процесс. Это же относится к плохому, с трудом работающему или изжившему себя cd-rom-у.
Не удивляйтесь, если не видите корректно mc, или вообще экран удаленного компьютера, сконнектившись к Red Hat 8.0 по протоколам telnet или ssh (secure shell). Это не плохо, а даже хорошо. Дело в том, что Red Hat решилась одной из первых перейти на unicode кодировку, и Вам всего лишь необходимо найти telnet или ssh клиент, который имеет UTF-8 поддержку. Такими например являются последние версии Absolute Telnet, или Kermit.
Инсталляция.
Опишу два наиболе часто используемых способа установки линукс.
1. Установка с загрузочных CD. Если компьютер старый, один из первых пентиумов, либо 486-ой, то возможно, у него нету опции в BIOS-е загружаться с CD-ROM-а. Тогда Вам необходимо будет загрузиться с дискетки, а затем продолжить установку с диска.
2. Установка с ftp сервера. Очень удобный и бытрый способ установки линукс. Вместо многократного использования дисков, лучше переписать их в одну директорию ftp сервера. В этом случае нету необходимости прикручивать к машине CD-ROM, вам необходима лишь сетевая карта.
Итак, рассмотрим подробнее первый способ. Убедитесь, что BIOS настроен на первоначальную загрузку с CD-ROM и всавьте диск. При этом Вы увидите на экране предложение выбора способа установки. Если Ваш компьютер не может загрузиться с компакт диска, необходимо создать загрузочную дискету. В большинстве случаев самым предпочтительным ипростым способом создания такого флоппи будет использование программы rawrite.exe из каталога dos tools с первого диска дистрибутива. Скопируйте ее на жесткий диск, и в ту же директорию скопируйте файл boot.img из каталога images все с того же первого компакта, вставьте отформатированную дискетку в флоппи дисковод, и запустите rawrite.exe:
Как видно, программа rawrite спросит у Вас название image файла, который следует записать, а также надо будет указать путь к флоппи диску: "a:"
Я предпочиаю долго не возиться и набрать строку:
rawrite -f boot.img
-d a:
Разумеется, загрузочную дискетку можно создать и под линукс:
dd if=bootnet.img of=/dev/fd0 bs=512 conv=sync; sync
Или даже проще:
dd if=bootnet.img of=/dev/fd0 bs=1440;
if - входной файл
of - выходной файл
bs - размер блока
conv=sync - размеры входного и выходного файлов не должны отличаться
Последний sync означает немедленный сброс буфера на диск.
Вообще команда dd (data dump) очень полезна, в частности при копировании
компакт дисков. К примеру, чтобы создать образ диска, а затем записать
точную его копию, необходимо набрать:
dd if=/dev/cdrom of=/cdimage.iso
bs=2049
Для записи образа на диск, если у Вас конечно есть writer тоже
совершенно не обязательно запускать графику. Посмотрите мануалы програмы
cdrecord (man cdrecord).
В большинстве случаев достаточно узнать
идентификационный номер устройства, которое используется для записи:
cdrecord
- scanbus
А затем, например если перед названием Вашего writer-a стоит 0, то
формат команды следующий:
cdrecord -v speed=2 dev=0,0,0 -data
/yourpath/yourfile.iso
где параметр
-v означает что программа cdrecord будет выводить на экран информацию о
текущем состояние записи.
speed=2 означает запись с двухкратной
скоростью...
Чтобы записать образ на флоппи диск можно поступить
иначе:
cp bootnet.img /dev/fd0: sync
Теперь Вам осталось загрузиться с только что созданной дискетки. Хорошо бы
при этом понять, что на ней по существу распологается миниатюрная версия
линукс.
При инсталляции с ftp Вас попросят указать сетевые параметры:
ip
address, subnet mask, один-три адреса dns сервера, а также адреса ftp
серверов.
Возможно установить Red Hat и с локального жесткого диска.
Тогда дистрибутив должен быть скопирован в директорию /RedHat на
винчестере, например : C:\RedHat, а загружаться нужно с дискетки записанной с
образа boot.img
Если после этого Вы увидели сообщение на экране "Retrieving install image
from..." значит первый этап инсталляции для Вас прошел успешно.
При установке Линукс с CD-ROM, у Вас есть выбор - инсталляция в графическом или текстовом режиме. Я выбираю текстовый способ установки: он несравнимо быстрее, да и не нужно подключать мышь к компьютеру. Зачем серверу мышь???
После тривиальных вопросов о выборе языка инсталляции, типе клавиатуры, мыши, часовом поясе и т. д. важно обратить внимание на:
1. Выбор загрузчика.
2. Разбивка диска
3. Выбор пакетов.
В линукс все усройства
Уже в версии Red Hat 7.2 есть альтернатива "классическому" LILO (Linux
Loader). Это загрузчик Grub. Если Вы не опытны, то ставьте Lilo. По крайней мере
при его использовании легче загрузиться в однопользовательский режим, что иногда
бывает необходимо, в частности когда Вы забыли пароль суперпользователя root.
Однако, если есть немного уверенности в себе, то попробуйте Grub. Главное не
забыть установить загрузчик, будь то Lilo или Groob, в MBR (Master Boot Record)
- Главную загрузочную запись. Тогда загрузчик сможет контролировать выбор
загрузки всех инсталлированных ОС, и Вам не придется загружаться в линукс с
дискетки.
Начиная с версии 7.2 Red Hat предлагает Вам удобный способ разбивки
диска - Autopartition. В этом случае на диске создается три раздела -
/boot, / (корень), и SWAP. Под swap система выделяет по умолчанию 250 мб
дискового пространства.
Иногда целесообразно использовать Disk Druid, и создать несколько разделов, к примеру раздел /home, со своими дисковыми квотами пользователей, разделы /usr и /var. В случае версии 7.0 у Вас просто нету выбора - необходимо создаь /var и /usr. Если в компьютере установлено немного оперативной памяти, то программа установки предложит Вам отформатировать и начать использование swap partition сразу после создания разделов. Каталог /usr не должен быть менее 350-400 mb, а то в процессе дальнейшей инсталляции наверняка выяснится, что у Вас не хватает места на диске. Важно понять, что в linux физические диски обозначаются как hda, hdb, hdc... Один диск hda может быть разделен на логические hda1, hda2, hda3...
Вы НЕ МОЖЕТЕ использовать как точку монтирования директории /etc, /dev/, /lib, /proc, /lost+fofund, /root, /sbin.
Что касается выбора пакетов, то Red Hat предложит Вам выбор
из определенных по умолчанию комплектов - Server System, KDE или GNOME
Desktop Workstation, Portable installation... и Custom...
Так как речь идет о
устаноке сервера, то логичным было бы выбрать пункт Server. Однако помните, что
в этом случае Вы не имеете возможности выбора, и будут поставлены все серверныу
пакеты. Кроме того, надо помнить что данный тип установки уничтожит все Windows
partition-ы. Зато точно не будет установлена графика. При выборе типа KDE или
GNOME Desktop Workstation будет синсталлирована графика, однако все
Windows разделы останутся нетронутыми. Выделите Custom и жмите OK - это
позволит Вам самостоятельно выбрать все необходимые пакеты не ставить не
нужные. Далее нечто вроде грубого выбора: web server, mail server, dns
server, networking workatation, Gnome, KDE... Лучше unselect-ните все, то есть
уберите звездочки (*) перед выбранными службами. Жмите Next, предварительно
отметив Select Individual Packages. Теперь Вы можете сделать выбор с точностью
до пакета. Ничего лишнего не ставьте - не имеет смысла. Рекомендую
обязательно отметить следующиеие пакеты:
finger - вывод информации о пользователе системы
ftp - ftp клиент
hdparm - программа для настройки производительности жеского диска. Обязательно ставьте.
iptools - в его состав входят необходимые утилиты для работы с сетями, например ping
ipchains или iptables - программа firewall. Лучше ставить только одну из них. В версии Red Hat 7.2 они могут сосуществовать, если к примеру оставить приостановленным iptables, и запущенным ipchains.
lynx и links - интернет броузеры в текстовом режиме. Начиная с Red Hat 7.3 последний обозначен как elinks. lynx не поддерживает фреймы, а links мне кажется более "дружественным".
logwatch - Очень полезная утилита - logwatch - отличный log analyser, высылающий резульаты на мейл рута.
mc - midnight commander, продвинутый аналог norton commander-a. Если не понадобится, то точно не помешает.
ntsysv - единственный конфигуратор, который стоит инсталлировать. В Red Hat-ах он устанавливается по умолчанию вместе с пакетом setup. В mandrake его надо отметить.
snmpd - snmp daemon. snmp - simple network management protocol - простой протокол управления сетью. Предназначен в частности для передачи разнообразной информации о сервере. Очень полезная утилита.
traceroute - отслеживание маршрута - утилита, применяемая очень часто.
tar - архиватор
telnet, ssh (openssh) - telnet, secure shell клиенты
tcpdump - мониторинг сетевого траффика. Очень полезная программа.
wu-ftpd - ftp сервер, наверняка Вам пригодится. Тем не менее, одна из самых уязвимых служб. Предпочтительно запускать его только по мере необходимости, или держать открытыми ftp порты только для ограниченного числа доверенных машин.
openssh - secure shell server. Аналог telnet сервера, но информация передается в зашифрованном виде. Поэтому Вы можете подключиться к удаленному серверу по протоколу ssh непосредственно, как root. Telnet server Вам этого не позволит, так как небезопасно передавать пароль root-а по сети открытым текстом.
xinetd - наследник inetd. inetd не включается в дистрибутивы Red Hat позднее версии 6.2. Начиная с версии 7.0 его заменил демон xinetd. Прослушивает порты для управления набором сетевых служб, например wu-ftpd или talk.
Теперь пакеты, которые Вам могут понадобится.
anacron - аналог scheduled tasks - если может пригодится - ставьте
apache - web server.
autofs - программа автоматичексого подключени файловых систем. Дело вкуса. Я предпочитаю монтировать вручтную.
bind - dns сервер.
bind-utils - программы, которые пригодятся при работе с dns - в частности nslookup.
imap - содержит протоколы imap и pop, управляющие передачей почты от сервера клиенту. В дистрибутиве Red Hat 7.0 mail server sendmail отделбно невозможно отметить при инсталляции - необходимо выделить
elm и pine - Если одна из задач будущего сервера - услуги электронной почты, то вам пригодятся помимо самого mail сервера, и эти почтовые клиенты.
mod_perl - интерпретатор языка perl, используемый webserver-ом apache.
php/mod_php - вам нужен web mailer? или расчитываете установить php скрипты??? Выбирайте!
samba - совместное использование файлов/каталогов с windows или os/2 клиентами.
sendmail-cf - программыдля создания файла sendmail.cf - в частности makemap...
squid - кеширующий прокси сервер - работает с http, ftp, и gopher
Начиная с версии Red Hat linux 7.3 в дистрибутив входит помимо sendmail также инсталляционка сервера postfix. В предыдущие версии Red Hat входил только пакет sendmail. Напротив, в старых версиях Mandrake Linux sendmail отсутствовал, зато всегда присутствовал пакет postfix, а в современные дистрибутивы включены оба пакета. Еще раз подчеркиваю, что при инсталляции Red Hat 7.0 пакет sendmail вы просто не обнаружите - для его установки нужно выбрать imap. В поздних версиях Red Hat выберите imap, если намерены использовать web mailer. В дистсрибутив Red Hat Linux 8.0 входит один из лучших web mailer-ов - squirrelmail. Есть такое понятие, как зависимость пакетов. То есть если для работы одной программ обязательно наличие другой, то инсталляционка отследит подобные зависимости и сообщит о них Вам. Если Вы не выбрали ничего лишнего, лучше согласится с предустановленным по умолчанию значением Install packages tio satisfy dependencies. Тогда далее во время инсталляции программа установки будет распаковывать rpm пакеты и инсталлировать их соответственно зависимостям. В это время при установке с CD вам необходимо будет лишь заменять компакт диски. В конце anaconda Вам предложит создать загрузочный диск для Вашей системы, на случай, если что-то не в порядке и Вы не сможете загрузиться с жесткого диска. Не пренебрегайте этой возможностью, и не жалейте флоппи.
Оптимизация
Первое, что следует сделать после инсталляции - это оптимизация системы. Все
сервисы (демоны), которые Вы выбрали будут запущены процессом init.
Возможно,
что некоторые из них не смогут правильно запуститься, и тогда вместо зеленой
надписи OK справа от названия севриса будет красное и неприятное Failed. Это не
очень страшно, так как Вам придется настраивать заново и те службы, которые
казалось бы стартовали без ошибок.
Итак, войдите в систему как root. Наберите
setup. Эта программа всегда инсталлируется в Red Hat Linux.
Если Вы используете другую версию Линукс, например Mandrake, то обнаружите, что программы с названием setup просто нету. Однако пункт System Services - это программа ntsysv, и если она уже не синсталлирована , то найти и добавить проблем не составит. Есть много способов узнать, инсталлирован ли пакет в системе. Один из самых простых - набрать:
whereis ntsysv
Система посмотрит в каталогах, куда обычно копирует программы при инсталляции, и если найдет, то выведет полный путь к программе, например:
где /usr/sbin/ntsysv означает, что исполняемый файл, программа ntsysv находится в каталоге /usr/sbin/ ... а в каталоге /usr/share/man/man8/ - находится уже документация к программе. Ее можно вызвать набрав:
man ntsysv
Команда man произошла от слова manual. Если бы ntsysv не была инсталлирована, то программа whereis просто не нашла бы ее:
Повтооряюсь, Red Hat Linux всегда инсталлирует конфигуратор setup, а следовательно и программу ntsysv. Вообще, это единственный текстовый конфигуратор, который инсталируется вместе с системой Red Hat Linux.
Итак, Вы выбрали пункт "System Services" и запустили программу ntsysv.
Если в квадратных скобках перед названием сервиса стоит звездочка, значит он запустится при старте системы. На рисунке видно, что каждый раз при запуске стартует сервис ipchains (файруолл). Не следует иметь запущенными сервисы, которые Вам не нужны! Это не только пустая трата ценных системных ресурсов, но и дополнительная опасность взлома. Например, если держать запущенными неправильно сконфигурированный прокси сервер, то Ваши сетевые ресурсы могут быть использованы людьми, которые за них не платят. Открытый ftp может дать возможность доступа людям, которым Вы это право не предусмотрели. Кроме того, если служба запущена, то более-менее опытный хакер сможет использовать известные уязвимости, если конечно у Вас не самые последние версии программ, что маловероятно, так как речь идет о свежеустановленной системе! Кроме того, часто запущенные сервисы конфликтуют друг с другом! В частности это касается файруоллов ipchains и iptables! Итак, лучше всего просто отключить все службы, которые еще не настроены, и включать их по мере готовности, после соответствующей конфигурации. Для начала оставьте только network и xinetd. Обратите внимание на то, что если убрать звездочку перед именем сервиса в ntsysv - это не значит остановить его! Программа ntsysv всего лишь определяет, какие сервисы будут, и какие не будут стартовать при загрузке! Что бы остановить так называемый "stand-alone" сервис, то есть сервис, который не регулируется например xinetd (читай чуть ниже) нужно запустить соответствующий скрипт с соответствующим параметром, то есть набрать строку:
/etc/rc.d/init.d/имясервиса stop
Не трудно догадаться, просмотрев содержимое скриптов в /etc/rc.d/init.d/, что запустить или перегрузить сервис можно заменив "stop" на "start" либо "restart" соответственно.
Вот пример рестарта mail server-а.
Не думайте, что для корректной работы в linux обязательно использовать команды с трудно запоминаемым синтаксисом.
Аналогичную перезагрузку можно сделать так:
или так:
Включенный network обеспечит работу компьютера в сети, при правильной настройке сетевых параметров: ip address, net mask, dns... Если Вы их указали во время инсталляции не правильно, то разумеется сможете изменить в любой момент.
Теперь о xinetd. Файл /etc/xinetd.conf контролирует некоторые службы линукс, в том числе ftp (file transfer protocol), i telnet. Xinetd, как и его предшественник inetd, это "супер-сервер", который следит за сетевой активностью для некоторых служб. Определив, какой сервис был затребован, он запускает соответствующий сервер. Таким образом, благодаря способности xinetd запускать только затребованные службы, нет необходимости в постоянно запущенных сервисах, и возникает реальная экономия ресурсов системы. Каждому xinetd сервису соответствует конфигурационный файл в директории /etc/xinetd.d/ - поэтому легко можно отключить ненужные службы. Например, большинство администраторов предпочитают отключать сервис telnet, который позволяет удаленно работать за компьютером, однако пересылает информацию открытым текстом, а не в зашифрованном виде, как secure shell. Настроить систему, чтобы служба telnet не запускалась при загрузке Вы можете просто убрав соответствующую звездочку с помощью все той-же программы ntsysv. Внимание! Сервис telnet все еще запущен! Он всего лишь не стартует при следующей загрузке! Чтобы отключит его прямо сейчас кроме удаления его из списка активных в ntsysv Вы должны перегрузить xinetd:
/etc/rc.d/init.d/xinetd restart
Теперь telnet не работает, но я обещал обьяснить работу в linux без использования конфигураторов! Попробуем обойтись без ntsysv - просто откройте файл /etc/xinetd.d/telnet любым текстовым редактором, например mcedit.
mcedit /etc/xinetd.d/telnet
Запись disable=yes означает, что сервис отключен, а запись disable=no - что включен! В старых версиях Red Hat Вы возможно не найдете такой записи. Тогда, что бы приостановить сервис, нужно просто закомментировать строчку service telnet, то есть добавить значок "#" в начале строки. Теперь осталось сохранить файл (save file - в редакторе mcedit это делается нажатием на F2), а затем перезапустить xinetd следующей строкой:
/etc/rc.d/init.d/xinetd restart
Если в ответ последует:
Stopping xinetd: [OK]
Starting xinetd [OK]
то все прошло отлично - если же нет, значит Вы допустили ошибку при редактировании файла. В чем проблема конкретнее можно будет узнать, посмотрев в конце файла /var/log/messages. Один из самых легких способов перейти в конец файла при использовании mc (midnight commander) следующий: Кнопками вверх и вниз переместите указатель и выделите файл messages. Нажмите кнопку F3 - открыть файл в режиме просмотра - Вы не сможете вносить изменения! Затем, комбинация SHIFT+G переместит Вас в конец файла.
Попробуйте также отключить сервис wu-ftpd, и rsh, если Вы их синсталлировали.
Думаю Вас не удивит, что если даже служба запущена, но файруоллом закрыт tcp порт, с которым она работает, то практически ее использование невозможно!
Что бы обеспесить запуск сервиса во время загрузки компьютера, кроме конфигуратора ntsysv можно пользоваться утилитой chkconfig. Однако прежде Вы должны понять что такое "runlevel". Runlevel - это режим работы компьютера, определенный сервисами в директориях /etc/rc.d/rc<x>.d , где <x> - это номер runlevel-а.
В Red Hat Linux 7.3 по умолчанию определены следующие runlevels:
В конце инсталляции системы Вы можете выбрать text login screen или graphical login screen, эта установка вначале и определяет Ваш runlevel: В первом случае это будет 3-ий rulevel, во втором - 5-ый.
Изменить runlevel можно отредактировав файл /etc/inittab. На рисунке участок файла inittab системы Red Hat 8.0
Найдите id:чтототам:initdefault:
Очевидно, что цифра между id: и :initdefault и определяет runlevel системы.
Итак, команда chkconfig также может быть использована для активации и деактивации сервисов. Наберите:
chkconfig --list
и Вы увидите список сервисов со значениями "on" (если сервис активен - enabled) и "off" (если нет - disabled) а также
номерами runlevel-ов.
В конце списка секция посвященная сервисам xinetd.
Синтаксис команды chrconfig, что бы определить enabled или disabled сервис, (не путать с текущим состоянием, речь идет НЕ о том запущен он (started) или приостановлен (stopped)) таков:
Наконец, используем chkconfig для автоматического старта сервиса в определенном runlevel:
chkconfig --level 345 sendmail off
означает, что сервис sendmail не будет запущен при загрузке в runlevel 3, 4 или 5.
Важно, что при использовании команды chkconfig для настройки сервисов, управляемых xinetd изменения вступают в силу НЕПОСРЕДСТВЕННО после выполнения команды.
Вы можете не перегружать xinetd!
Для перегрузки "stand-alone" сервисов необходимо использовать:
service <имя сервмса> start
service <имя сервмса> stop
service <имя сервмса> restart
Оптимизация работы винчестера..
Для оптимальной настройки жесткого диска существует утилита под названием hdparm. Желательно при ее использовании остановить все лишние сервисы, или перейти в днопользовательский режим:
telinit 1.
Начнем работу. Наберите hdparm -t /dev/hda, где /dev/hda - файл, соответствующий Вашему жесткому диску. Как??? Такого пакета нету в системе? Тогда найдите на диске, или ftp.redhat.com пакет hdparm*****.rpm , и синсталлируйте его набрав:
rpm -iUvh hdparm-version_number.rpm
Благодаря параметру v - программа hdparm показывает состояние инсталляции значками "#".
Итак, Вы набрали hdparm -t /dev/hda. Записав и прочитав данные на жесткий диск программа hdparm выведет сведения о производительности работы винчестера. Очевидно, что для современного диска 10 мб/в секунду - это далеко не предел. Теперь о самой настройке, так как часто linux по умолчанию не использует потенциальные возможности винчестера. Самые используемые параметры hdparm:
-d [0|1] включение DMA
-c [1|2|3] 16/32bit общение с диском
-m количество секторов, считываемое за раз
Давайте для начала переведем драйвер IDE в 32 битный режим, настроим контроллер на запрет генерации прерываний при любой работе с диском и разрешили передавать более одного слова за такт .
hdparm -m2c3u1 /dev/hda
Параметр -u1 помогает в случаях, когда при интенсивной работе с диском прерывается проигрывание mp3. Теперь еще раз можно замерить производительность: hdparm -t /dev/hda. Наверняка результаты улучшились. Осталось еще включить режим DMA:
hdparm -d1 /dev/hda
и вновь измерить скорость работы. Несомненно они значительно возростут. Параметры -X33 и -X66 соответствуют UDMA33 и UDMA66.
Однако после перезагрузки конфигурация работы жесткого диска сохранена не будет. Для того, что бы сохранить значения, самое простое, что можно сделать, это добавить строку соответствующую Вашей конфигурации в конец файла /etc/rc.d/rc.local - своего рода startup в Red Hat Linux. Есть и другой способ - отредактировать соответствующим образом файл /etc/sysconfig/harddisks
То ест ь что бы включит DMA нужно раскомментировать строчку "USE_DMA=1", а параметру -m2 соответствует строчка MULTIPLE_IO=16. Однако, такой способ нецелесообразен, если на Вашей машине физически два диска, один из которых скажем не имеет поддержки DMA, так как записи в файле /etc/sysconfig/harddisks применяются ко всем дискам. Что бы узнать, как разбит Ваш винчестер, наберите в командной строке команду df. Из выведенной на экран информации станет ясно, что к серверу подключен второй диск, если есть запись /dev/hdb, или hdc... В этом случае буде лучше поэкспериментировав с обоими дисками, записать в /etc/rc.d/rc.local параметры hdparm, для hda и для hdb отдельно.
Настройка сетевых параметров
Рассмотрим для начала подключение к сети одного компьютера. Для работы в сети ethernet системе необходима как минимум ethernet карта. Сетевые карты как правило автоматически определяются системой. Список совместимых карт находится в файле Ethernet-HOWTO на диске с дистрибутивом Red Hat Linux. Последние версии Red Hat предложат возможность настроить сетевые параметры уже во время инсталляции. Во всех случаях, для работы в tcp/ip сетях системе необходимо указать:
1. ip adres
2. subnet mask
3. gateway
4. dns server
Без указания DNS сервера работа в сети в принципе возможна. Вы будете лишены возможности указывать domain name, например www.yahoo.com так как именно domain name server проебразовывает домейнные имена в ip адреса.
Итак, ip адрес записывается в виде четырех чисел в диапазоне от 0 до 255, то есть каждое число может иметь 256 возможных вариантов. IP адрес может быть реальным, или приватным. Приватные ip адреса принято называть также виртуальными, частными, или фиктивными. Разница в том, что реальный адрес уникален, и двух компьютеров с одним и тем же реальным ip адресом в internet быть не может.
Пример ip адреса:
192.168.1.1
10.0.0.1
212.73.71.132
Первые два ip адреса принадлежат к принятому диапазону фиктивных адресов. Такие адреса установлены в тысячах локальных сетей во всем мире. Однако для полноценного доступа в интернет необходимо иметь реальный и уникальный ip адрес. К примеру работа интернет сервера не возможна без наличия реального ip адреса. Представьте, если разные почтовые сервера будут иметь один и тот же адрес, на какой же сервер направится письмо??? Поэтому tcp/ip сети устроены так, что работа двух компьютеров с одним и тем же реальным ip адресом исключена. Тем не менее для работы сети компьютеров, не являющихся серверами в домашних или корпоративных сетях часто вполне достаточно иметь один реальный ip адрес.
Итак, первое правило. Все Компьютеры из одного сегмента сети видят друг друга на физическом уровне. Предположим, у нас есть два компьютера. ip address первого - 192.168.1.5, а другого - 192.168.1.15
Вот чтобы указать из какого сегмента сети эти компьютеры, существует параметр subnet mask. попробуйте соединить компьютеры инвертированным UTP кабелем. Поставьте каждому из них subnet mask 255.255.255.248
Попингуйте с одного компьютера на другой. Компьютеры друг друга не видят. Теперь поменяйте subnet mask на обоих: 255.255.255.240 - пинги пошли! Теперь попробуем понять в чем же дело. Я специально в первую очередь останавливаюсь на теории, а лишь потом перехолжу к практике, так как не зная теории четко, вы наворотите себе же проблем.
ip address: 192.168.1.5
subnet mask: 255.255.255.248
Эти параметры означают, что компьютер с адресом 192.168.1.5 является членом сегмента сети из 8-и ip адресов, (256-248=8) от 192.168.1.1 до 192.168.1.8
Компьютер с адресом 192.168.1.15 и netmask 255.255.255.248 тоже является членом сегмена сети из 8-и адресов: от 192.168.1.9 до 192.168.1.16.
Поэтому, параметр "маска подсети" определяет, в каком же сегменте сети находится компьютер, и поменяв его с 255.255.255.248 на 255.255.255.240 - мы внесли оба компьютера, которые физически друг к друугу подключены в одну подсеть. О том, как видят друг друга компютеры из разных подсетей поговорим позже, в разделе "Маршрутизация". Как установить сетевые параметры на linux компьютер???
Это можно сделать командой ifconfig, ip address. Однако эти программы вносят сиюминутные изменения и не изменяют настройки в конфигурационных файлах. Поэтому для установки на интерфейс ip адреса, который должен сохраниться после перезагрузки, нужно или вручную отредактировать конфигурационный файл, или использовать программу setup. Однако прежде всего надо убедится, что Ваша сетевая определена, ее драйвер загружен, то есть сетевой интерфейс зарегистрирован кернелом. Для этого наберите :
dmesg | grep eth
Сетевые интерфейсы ethernet всегда определяются, как ethX: первый интерфейс -
eth0, второй - eth1 и т. д.
В первой строке символы IRQ - означают
проерывание
0xс88f7000 - адрес порта ввода.вывода
00:50:bf:e6:5a:c1 -
аппаратный адрес сетевой карты Realtek 8139
Если же сетевая карта не определена, то скорее всего или она не рабоччая, или
плохо вставлена в слот. Часто карты не определяются именно потому, что
неправильно вставлены.
Наберите ip addr. Если видите в ответ:
то инсталлируйте пакет iptools, его я отметил обязательным в разделе о
инсталляции системы.
Итак, если во время инсталляции Вы не указали сетевые параметры, то увидите
следующее:
То есть на интерфейс eth0 не установлен никакой ip адрес.
Попробуем
установить на него фиктивный ip адрес 192.168.5.1
Вновь воспользуемся
программой setup, единственным текстовым конфигуратором Red Hat Linux.
Выбираем Network Configuration
Да, конечно мы хотим настроить сетевые параметры. Yes!
Оставим "use dinamic ip condiguration" не отмеченным. Мы же учимся
настраивать статический ip адрес, чтобы затем ставить неизменные долгое время
адреса на сетевые карты сервера.
Введенный нами ip адрес сетевой карты, маску
подсети и адрес шлюза(getway) программа запишет в файл
/etc/sysconfig/network-scripts/ifcfg-eth0
Адрес nameserver-a будет записан в файл /etc/resolv.conf
Теперь жмем OK, а
затем
QUIT, чтобы выйти из конфигуратора.
Однако набрав команду ip address, мы
не заметим изменений. В чем дело? Надо еще перегрузить сервис nework, чтобы
внесенные изменения вступили в силу.
Теперь изменения вошли в силу. Мои поздравления, Вы поствили ip адрес на сетевой интерфейс.
Теперь давайте посмотрим что же записано в файле
/etc/sysconfig/network-scripts/ifcfg-eth0
Всего-то несколько строчек. Значит, чтобы поставить ip адрес, нужно было лишь
вручную отредактировать соответствующий файл.Если бы у Вас в компьютере стояло
две сетевые карты, то программа конфигуратор, которой мы только что
воспользовались, попросила бы вначале ввести сетевые параметры для первого
интерфейса (eth0), а затем для второго (eth1). Однако основной недостаток
программы - невозможность поставить второй ip адрес на тот же интерфейс. Давайте
сделаем это вручную, без конфигураторов.
Второй ip адрес для сетевой карты
eth0 хранится в файле ifcfg-eth0:0. Создадим его в директории
/etc/sysconfig/network-scripts
Пусть второй адрес на интерфейсе будет 192.168.5.2
Тогда файл должен иметь следующий синтаксис:
Перегрузим network, чтобы изменения вступили в силу:
Теперь команда ip addr (сокращение от ip address) отобразит корректные
изменения сетевых параметров.
Подробнее о информации, которую Вы видите по
команде ip address
Что такое интерфейс lo??? Это мы не проходили, это нам не
задавали.
lo (сокращение от анлийского loopback) - это интерфейс обратной
связи, позволяющий протоколу tcp/ip функционировать на автономном компьютере,
даже не подключенном к сети. Его адрес всегда 127.0.0.1. Поэтому пингануть свой
компьютер можно всегда набрав команду ping 127.0.0.1 либо ping localhost. Чтобы
понять это, посмотрите в файл /etc/hosts - файл, на котором раньше была основана
система домейнных имен.
Далее вы видите надпись brd(broadcast) после адреса
ip.Broadcast по английски означает широковещательный. Этот адрес используется,
когда компьютер посылает пакет, адресованный всем членам подсети.
Broadcast
ip адрес в UNIX - это последний адрес сегмента сети. То есть в сети 192.168.1.1
определенной маской 255.255.255.248 - широковещательный ip - 192.168.1.8, а с
маской 255.255.255.240 - broadcast будет 192.168.1.16. Windows системы как
broadcast адрес используют первый адрес подсети, то есть в обоих вышеприведенных
случаях для Windows системы broadcast - 192.168.1.1 Поэтому первый и последний
ip адрес в сегменте сети ставить на компьютер нельзя. Невозможно также пингануть
broadcast ip сети. Linux в этом случае недоуменно спросит: Do You want to ping
broadcast? Это риторический вопрос - он не подразумевает ответа. Вы не заставите
Linux пингануть broadcast IP адрес.
Какие могут возникнуть проблемы при установке сетевых параметров?
Прежде всего, если Вы изменили ip адрес в соответствующем файле, перегрузили
network, и запустили ip addr, то возможно увидите, что на интерфейсе в данный
момент есть оба адреса, и тот, который вы только что записали в файле, и тот,
который был записан до изменения. То есть система не убрала старый адрес, а лишь
добавила новый.
Первый и самый глупый способ - это перегрузиться. Тогда
система установит на интерфейс только тот адрес, который записан в файле. Однако
можно и не перегружаться. Мы же уверены, что после перезагрузки, которая рано
или поздно произойдет сетевые параметры будут корректными. Осталось только
удалить ненужный адрес с сетевой карты.
Предположим, что вы изменили ip
address 192.168.5.1 в файле /etc/sysconfig/ifcfg-eth0 на адрес 192.168.5.7, и
заметили что после перезагрузки сервиса network оба на интерфейсе все еще
установлены оба адреса . Воспользуемся программой ip addr:
ip addr del
192.168.5.1 dev eth0
dev - сокращение от английского слова
device.
Конечно, Вы можете добавить ip адрес таким же способом заменив слово
add на слово del, однако помните, что изменения внесенные этими командами не
сохраняются после перезагрузки.
Наверняка у Вас возник вопрос. Как установить
нужную маску подсети используя программу ip address??? Вот как:
ip addr add
192.168.5.4/28 dev eth0
где число 28 определяет маску подсети и аналогично
записи в файле 255.255.255.240
Понять и писать так легко, приятно и быстро,
если попривыкнуть. Кроме того, такая запись вообще принята в unix, и понимать ее
Вам будет необходимо в работе, в частности даже при настройке маршрутизатора,
описываемой в следующей главе.
Итак, как понять, что число 28 определяет
сегмент сети из 16-и адресов?
32-28=4
2^4=16
Поэтому, сети из 8-и
адресов соответствует число 29, а сети из 32-ух адресов соответствует
число 27.
Маршрутизация
Как обьяснялось в пердыдущей главе, обязательным условием, чтобы компьютеры в
сетях tcp/ip видели друг друга и могли общаться, является их пребывание в одном
сегменте сети. Поэтому, если соединить два компьютера инвертированным UTP
кабелем так, как показано на рисунке,
то они друг друга видеть будут.
Мы научились ставить ip адрес,
маску подсети и адрес шлюза. Интернет-абонент, подключенный по выделенке,
обычно получает такие параметры, для установки на свой компьютер. Например, Вы
можете получить 8 реальных ip адресов, соответствующую диапазону адресов
маску, и адрес шлюза, который установите на каждый из своих
компьютеров:
Как видно на примере - Вы получили сеть 207.241.172.160/29, то есть 8 реальных ip адресов. Однако реально можете использовать 5 из них, так как один уже стоит на смотрящем в Вашу сторону интерфейсе провайдера (а то Вы его не увидите), а друие два - это первый и последний адреса подсети, и как пояснялось ранее их использовать нельзя. Такая схема проста и понятна. При этом важно знать, что необходимая для работы таблица маршрутизации на роутере провайдера создается операционной системой, без всяких дополнительных настроек. В ней попросту записано, что для сети 207.241.160/29 является шлюзом (gateway) интерфейс 207.241.172.161.
Однако не всегда такая схема является правильным и удобным решением. Часто абоненты предпочитают контролировать весь свой траффик. Это можно сделать конечно подключив все компьютеры к switch-у с встроенным snmp сервером, однако в основном клиенту удобнее поставить свой шлюз, и контролировать свою сеть полностью.
Поэтому большинство провайдеров поступают следующим образом. Выделяют клиенту кроме сети из 8-и адресов, еще и один адрес, который они установят на внешний интерфейс своего шлюза:
То есть Вам необходимо для настройки своего маршрутизатора как минимум поставить на него два ip адреса с соответствующими масками, по одному на каждый интерфейс. Кроме того, необходимо отметить, что default gateway для вашего роутера будет 207.241.172.9. Один из них (назывемый для удобсва внешним) смотрит в сторону провайдера, и в него входит кабель идущий из провайдерского HUB-а. Другой, внутренний подключается к своему HUB-у, к которому также подключены все компьютеры вашей сети.
При этом никаких дополнительных настроек, типа создания таблицы маршрутизации Вы делать не должны. Таблица, как и в предыдущем случае будет сгенерирована системой и будет иметь следующий вид:
Шлюзом для сети 207.241.172.160/29 является интерфейс с адресом 207.241.172.161
Основной маршрут (default route) 207.241.172.9
Эту таблицу можно вывести на экран консоли, набрав ip route, ил просто ip ro и она будет иметь примерно следующий вид:
207.241.172.0/28 dev eth0 scope link
207.241.172.160/29 dev eth1
127.0.0.0/8 dev lo scope link
default
via 207.241.172.9 dev eth0
Теперь посложнее. Вы работаете системным администратором этого провайдера. В певром случае Вам не нужно было настраивать роутинг, так как адрес шлюза, назначенный провайдером был из предоставленного вам диапазона адресов. а современные сетевые ОС, даже Windows NT достаточно "умны", чтобы понять ситуацию и самостоятельно составить таблицу маршрутизации. Во втором случае, админу абонента так же, как и админу провайдера в первом случае нету необходимости в дополнительных настройках. ОС понимает, что интерфейс 207.241.172.161 является шлюзом для сети 207.241.172.160/29, а пакеты, с которыми маршрутизатор не знает что делать будут отправлены по основному маршруту (default gateway). Однако админу провайдера придется еще чуть-чуть подкрутить свой маршрутизатор. На интерфейсе, смотрящем в сторону клиентов, у него установлен ip адрес из сети 207.241.172.0/28 . Таким образом он может позволить себе в общей сложности 14 абонентов, которым назначит шлюз 207.241.172.9. Исходя из того, что на этом интерфейсе установлен адрес 207.241.172.9 и маска подсети 28 (255.255.255.240), ОС сделает вывод, что
Для сети 207.241.172.0/28 шлюзом является интерфейс 207.241.172.9.
Однако пакеты от адресов диапазона (source ip) 207.241.172.160/29 не будут маршрутизироваться. Поэтому, если с компьютера из этой сети пингануть наружу, Вы получите сообщение Destination host unreachable. Вам, как админу провайдера следует добавить запись о том, что интерфейс 207.241.172.9 является шлюзом также для сети 207.241.172.160/29
Как это сделать???
Обычно статические роуты хранятсф в файле /etc/sysconfig/static-routes.
Синтаксис нужной нам записи будет следующим:
ethX net 207.241.172.160 netmask 255.255.255.248 gw 207.241.172.9
где вместо ethX нужно подставить eth0, если адрес 207.241.172.9 в Вашей системе поставлен именно на eth0, или eth3, если 207.241.172.9 поставден на eth3. Разумеется, чтобы изменения вступили в силу необходимо перегрузить сервис network:
service network restart
Сиюминтуное изменение маршрутизации, которое не сохранится после перезагрузки можно сделать командой ip route:
ip route add 207.241.172.160/29 via 207.241.172.9 dev ethX
ip route del 207.241.160/29 via 207.241.172.9 dev ethX
Однако Вы также можете добится сохранения настроек маршрутизаци после перезагрузки добавив запись такого формата в конце файла /etc/sysconfig/network-scripts/ifup-routes
Еще одна деталь. Когда Вы используете Setup->Network Configuration, эта программа прописывает Вам Gateway (адрес шлюза) в соответствующем файле папки /etc/sysconfig/network-scripts. Убедитесь однако, что адрес шлюза прописан и в файле /etc/sysconfig/network. Он имеет следующий синтаксис:
NETWORKING=yes
HOSTNAME=yourhostname.ru
GATEWAY="207.241.172.9"
GATEWAYDEV="eth0"
Однако самое важное, это не забыть включить ip forwarding, он разрешает пересылку пакетов между интерфейсами. Без включенного ip forwarding компьютер роутером работать не будет.
Чтобы убедиться, что ip forwarding в Вашей системе включен
cat /proc/sys/net/ipv4/ipforward:
Программа cat выводит на экран содержимое файла. Однако директория /proc на жестком диске реально не существует. В Linux существует понятие VFS - виртуальная файловая система (virtual file system). Это особенность ядра линукс. Виртуальная файловая система включает в себя драйверы поддерживаемых файловых систем. При попытке доступа к любой файловой системе запрос проходит через VFS, и перенаправляется соответствующему драйверу файловой системы. При загрузке системы, после того, как ядро себя распакует, и переходит к тестированию железа, оно также монтирует виртуальную файловую систему:
LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 virtual
consoles
Serial driver version 3.94 with no serial options enabled
tty00
at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a
16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192
available (300k kernel code, 384k reserved, 176k data)
Floppy drive(s): fd0
is 1.44M, fd1 is 1.2M
Loopback device init
Warning WD8013 board not found
at i/o = 280
Math coprocessor using irq13 error reporting
Partition
check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem)
Вообще в UNIX системах доступ к устройствам и процессом реализован с помощью файлов. Файлы устройств находятся в каталоге /dev, а файлы процессов в каталоге /proc Файловая система /proc не является реальной файловой системой. Она позволяет получить доступ к данным ядра о процессах. Повторяю, ни один из файлов этой системы не занимает места на диске.
Однако вернемся к настройке маршрутизатора. Итак, нам необходимо активировать ip forwarding.
Для этого нужно прописать в файле sysctl.conf значение net.ipv4.ip_forward=1
Чтобы активировать изменения без перезагрузки наберите:
sysctl -n -p
Брандмауер (Firewall)
Что бы правильно настроить firewall (далее брандмауер) нужно прежде всего определить какие службы должны работать на этом сервере. В tcp/ip сетях, каждая служба, например ftp, telnet, ssh, http серверы использует определенный TCP или UDP порт. К примеру, ftp использует TCP порты 20 и 21, telnet - 23-ий. Когда броузер клиента запрашивает web страницу, этот запрос направляется на 80-ый TCP порт сервера. Почтовые серверы общаются, используя 25-ый TCP порт (протокол SMTP) , и закрыть его - означает исключить возможность получения почты. Служба DNS (Domain Name System) использует как UDP, так и TCP 53-ий порт. TCP порт 53 используется при общении DNS серверов, а на UDP порт 53 направляются запросы преобразования domain name (например www.yahoo.com) в соответствующий ему ip адрес. Порты обычно классифицируют, как well-known (от 1-1023), и Registered (1024-65535). Well-known порты используются сетевыми сервисами, которым назначены специфичные порты, как это определено например в файле /etc/services.
Каждый сервер постоянно "слушает" (listens) соответствующий ему well-known порт, когда как registered порты по существу временные, используются клиентами, и меняются в соответствии с тем, какой сервис использует клиент. Подробнее о соответствии портов и сервисов можно узнать на: ftp://ftp.isi.edu/in-notes/rfc1700.txt или ftp://ftp.dubna.ru/pub/mirrors/info/ports/port-numbers.txt
Важно, что сервисы, работающие с портами до 1023 включительно запускаются от имени root-a. Это предполагает, что сервисы, работающие не от имени root-а, и соответственно классифицируемые, как "untrusted", не должны быть сконфигурированы на использование портов ниже 1024!
Каким же образои работают well-known порты с registered портами? Можно проиллюстрировать это на примере подключения обычного web browser-а к www серверу. Клиент посылает http запрос с registered tcp порта, каким является 1025-ый. Запрос маршрутизируется на 80-ый порт web сервера. После того, как связь установлена, сервер продолжает работу используя 80-ый порт, а клиент различные registered порты, как 1025, 1026 для передачи данных.
Более того, попробуйте набрать в командной строке подключенного к интернет компьютера:
telnet www.yahoo.com 80
то есть подключитесь к 80-му порту web server-a www.yahoo.com, а затем наберите GET - и Вы получите в окне telnet-a HTML source этой страницы. Если же закрыть себе порты выше 1024 "исходя из соображений защиты", то больше с включенным брандмауером Вам www.yahoo.com не видать, как своих ушей. Более того, ни один telnet запрос, даже если закрыты только порты выше 1024 с вашей машины работать не будет. Точнее пакеты от сервера до Вас просто не дойдут!
Итак, прежде чем настроить файруолл Вам нужно определить, какие сервисы у Вас должны работать. В большинстве случаев, просто закройте все TCP порты, которые не используются запущенными сервисами. Однако в некоторых случаях поступив так Вы тем самым закроете себе доступ к службам, которые Вам нужны. Итак, предположим, Вы должны защитить почтовый сервер, на котором запущены sendmail (mail transfer agent) и imap. Почтовые серверы работают на 25-ом порту, а imap использует 143-ий. То есть спокойно закрывайте все TCP порты кроме 25 и 143. Если Ваша машинка выполняет лишь функцию www сервера, то спокйно закрывайте все порты, кроме 80-го! Кроме того, вы можете закрыть все UDP и ICMP порты, так как вышеперечисленные службы smtp, imap и http работают только с TCP пакетами. Если же Вы намерены использовать Ваш сервер как http клиент, хотя бы для скачивания обновлений, то такая схема Вам не подойдет! Таким клиентам необходимы registered порты для обращения к DNS, так же, как и registrered TCP порты для подключения к удаленному www серверу. Однако, если Вы откроете только UDP порты 25, 80 и 143 - DNS запросы все равно будут блокированы, так как используют UDP пакеты направленные 53-ий порт, а ответы направлены на registered порт выше 1024! Таким образом, вычислить какие же конкретно UDP registered порты будут случайным образом назначены для ответа на dns запрос невозможно. Вам нужно или менять конфигурацию брандмауера всякий раз перед скачиванием обновлений, или же качать их с другого компьютера, а затем перевести на диске или по сети.
Теперь практика. Убедитесь, сто в системе синсталлирован брандмауер ipchains или iptables. Во время инсталляции Red Hat Linux начиная с версии 7.1 предлагает выбор степени защиты системы: "High", "Low", или "Disable Firewall - no protection." - Если выбрать первые два варианта, то ipchains будет по умолчанию сконфигурирован. В последнем случае ipchains сконфигурирован не будет.
Однако в версии Red Hat Linux 8.0 выбирая при инсталляции между High, Low, и Disable Firewall - Вы выбираете уже настройку брандмауера iptables, а не ipchains!
Думаю, использование одного или другого скорее дело вкуса. Даже синтаксис в обоих случаях почти не отличается. Имеет смысл удалить тот пакет, который Вы не будете использовать. Кроме того, в версиях Red Hat Linux 7.1-7.3 ядро при загрузке сначала пытается запустить ipchains, и не найдя соответствующих настроек делает попытку запуска iptables. Напротив, ядро Red Hat 8.0 сначала пытается запустить iptables.
На screenshot-е показано, что попытка uninstall-а пакета iptables не удалась успешно, так как существует зависимость пакетов. Пакет iptables был "нужен" программе lokkit - а именно текстовому конфигуратору брандмауера. Очевидно, что без брандмауера, существование программы lokkit лишено смысла, и только хорошо, что система предупредила нас об этом. Как видно, после удаления lokkit, деинсталляция iptables не представляет проблемы. Помните, что в системах Red Hat 7.1-7.3 программа lokkit конфигурирует ipchains, a не iptables! Другим способом выяснить, инсталлирован ли пакет в системе является программа "rpm" с параметром -q
Теперь попробуем узнать состояние ipchains. Для этого наберите:
service ipchains status
Если в ответ получите что-то типа:
это означает что ipchains остановлен. Если видна таблица с надписями "DENY" и "ACCEPT" - что ipchains работает. А если Вы видите что-то непонятное, например:
то не переживайте - это вовсе не означает, что необходимо перекомпилировать ядро. Такая ошибка чаще всего возникает, при отсутствии конфигурационного файла ipchains. Теперь создадим файл /etc/sysconfig/ipchains, и приступим к конфигурации.
mcedit /etc/sysconfig/ipchains
Существует лишь два варианта конфигурации ipchains: "Разрешено все, что не запрещено" и "запрещено все, что не разрешено".
Запишем в файле сначала:
:input ACCEPT
:forward ACCEPT
:output ACCEPT
Эти строчки означают, что ВСЕ, что мы далее не запретим, может выполняться.
Теперь начнем запрещать:
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1
Эта строка означает, что все TCP пакеты со ВСЕХ ip адресов (0.0.0.0/0) на ip нашего сервера (предположим 192.168.1.1) будут отброшены "огненной стеной" - программой firewall-ом ipchains. Понять строку легко:
-s - означает source ip, то есть ip адрес машины, с которой пакет отправлен. Если сравнить пакет с письмом, то "souce ip" - ээто адрес отправителя.
-d - destination ip, то есть ip адрес машины которой пакет адресован. Проще говоря поле "Кому".
Пока рассмотрим для простоты случай настройки машины с одним интерфейсом (сетевой картой), поэтому как destination ip - будем указывать только ip адрес компьютера на котором установлен брандмауер.
Если надо закрыть конкретный порт, от пакетов со всех компьютеров, то запишем:
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 3128
Эта запись означает, что ВСЕ TCP пакеты со ВСЕХ компьютеров на компьютер с адресом 192.168.1.1 и на порт 3128 будут отвергнуты.
Несколько примеров:
строка
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 0:24
не даст пройти tcp пакету с ЛЮБОГО компьютера к компьютеру 192.168.1.1 на порты от 0 до 24. Пакеты icmp (например пинги), или пакеты UDP, а также пакеты TCP, адресованные на порты выше 24 компьютера 192.168.1.1 достигнут.
-I input -j DENY -p icmp -s 192.168.1.3 -d 192.168.1.1
Закрыть пинги (icmp пакеты) c адреса 192.168.1.3 на наш 192.168.1.1. В этом случае номер порта указывать не следует, так как icmp протокол с портами не работает.
Теперь, когда мы немножко разобрались, давайте составим простой конфигурационный файл ipchains для сервера c запущенными службами sendmail (почтовый сервер), httpd (веб сервер), imap (протокол доступа к почте), named (DNS сервер), и наконец sshd (secire shell доступ для администратора с определенного компьютера).
:input ACCEPT
:forward ACCEPT
:output ACCEPT
# Zakroyem vse pingi na nash kompyuter
-I input -j DENY -p icmp -s 0.0.0.0/0 -d 192.168.1.1
#Zakroem VSE TCP porty krome 25(smtp), 53 (dns), 80 (mail), и 143 (imap) dlya vsekh kompyuterov.
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 0:24
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 26:52
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 54:79
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 81:142
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 144:65535
# Zakroem VSE UDP porty krome 53 (dns)
-I input -j DENY -p udp -s 0.0.0.0/0 -d 192.168.1.1 0:52
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 192.168.1.1 53:65535
# Teper' chto je my razreshim v kachestve isklyucheniya adminu. Naprimer ssh s ego ip adresa 192.168.1.2
-I input -j ACCEPT -p tcp -s 192.168.1.2 -d 192.168.1.1 22
Вот и все! Ничего сложного!!!
Теперь случай посложнее. Предположим, что ставим брандмауер на шлюз, контролирующий работу доверенной Вам сетки.
Очевидно, что удобней поставить один firewall на шлюз, через который проходит весь траффик вашей сети, чем на каждый компьютер отдельно. Тем не менее, я на всякий пожарный привык файруоллить сетку со шлюза, а также все серверы в сети по отдельности. Однако не забывайте, что файруолл - это не панацея! В некоторых случаях потенциальная опасность состоит в работе старых, не обновленных пакетов, а вовсе не в открытых портах! Более того, почти все "взломы", с которыми я сталкивался былт связаны именно с тем, что сисадмин не уделил времени или внимания на обновление пакетов.
Рассмотрим конфигурацию брандмауэра (так тоже принято называть файруоллы) на примере все той же сети:
Первое, что отличает ситуацию от предыдущей. В прошлый раз мы закрыли один единсивенный интерфейс сервера. В этом случае на компьютер установлено два интерфейса, и каждый из них нуждается в защите. Не думайте, что если интерфейс внутренний к нему сложнее приконнектиться, чем к внешнему. Более того, это достаточно частая ошибка начинающих сисадминов, которые закрыв один из интерфейсов уверены в своей защищенности. Кроме того, если у Вас есть вторичный ip адрес на сетевом интерфейсе, закройте и его тоже.
Итак, приступим:
Предположим, что компьютер с адресом 207.241.172.162 является почтовым сервером с запущенными сервисами imap и web почтой. Кроме того пользователям предоставлен pop3 доступ со всего мира. Компьютер 207.241.172.166 выполняет функцию прокси сервера, слушающего порт 3128. Прокси настроен обслуживать только компьютеры из сети 207.241.172.160/29, однако можно и подстраховаться файруоллом. Компьютеры с адресами 207.241.172.163-165 - рабочие станции, а не серверы.
:input ACCEPT
:forward ACCEPT
:output ACCEPT
# Zakroyem vse pingi na nash kompyuter
-I input -j DENY -p icmp -s 0.0.0.0/0 -d 207.241.172.10
# i na vsyu set'
-I input -j DENY -p icmp -s 0.0.0.0/0 -d 207.241.172.160/29
# Poshli dal'she. Zakroem servery
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 207.241.172.162 0:65535
-I input -j DENY -p udp -s 0.0.0.0/0 -d 207.241.172.162 0:65535
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 207.241.172.166 0:65535
-I input -j DENY -p udp -s 0.0.0.0/0 -d 207.241.172.166 0:65535
# Obespechim rabotu pochtovogo servera (sendmail, httpd, pop3, imap)
-I input -j ACCEPT -p tcp -s 0.0.0.0/0 -d 207.241.172.162 25
-I input -j ACCEPT -p tcp -s 0.0.0.0/0 -d 207.241.172.162 80
-I input -j ACCEPT -p tcp -s 0.0.0.0/0 -d 207.241.172.162 110
-I input -j ACCEPT -p tcp -s 0.0.0.0/0 -d 207.241.172.162 143
# Teper' rabochie stancii
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 207.241.172.163 1024
-I input -j DENY -p udp -s 0.0.0.0/0 -d 207.241.172.163 1024
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 207.241.172.164 1024
-I input -j DENY -p udp -s 0.0.0.0/0 -d 207.241.172.164 1024
-I input -j DENY -p tcp -s 0.0.0.0/0 -d 207.241.172.165 1024
-I input -j DENY -p udp -s 0.0.0.0/0 -d 207.241.172.165 1024
Маскарадинг (NAT)
Аббревиатура NAT расшифровывается, как Network Address Translation.
Дело в том, что для полноценной работы сети рабочих станций, достаточно всего одного реального ip адреса.
На интерфейс одной из рабочих станций вышерассмотренной нами сетки попробуем поставить виртуальный ip адрес 192.168.1.2. Очевидно, что прописывать в этом компьютере адрес шлюза 207.241.172.161 не имеет смысла - адреса из совершенно разных сегментов сетей. Поэтому добавим на внутренний интерфейс маршрутизатора вторичный ip адрес 192.168.1.1
Теперь рассмотрим ситуацию. С рабочей станции 192.168.1.2 пингуется только наш маршрутизатор - дальше него ничего не видно. Чтобы предоставить пользователю компьютера 192.168.1.2 доступ в интернет по http, ftp и gopher достаточно синсталлировать на шлюзе прокси сервер, и предоставить сети 192.168.1.0/29 возможность пользоваться им. Тем не менее полноценным доступом такой доступ не назовешь. Пользователь не сможет использовать такие протоколы, как telnet, ssh, кроме того некоторые службы web-mail работают неправильно через прокси, и т. д . Тем не менее, установка фиктивных ip адресов является одним из лучших способов защиты рабочих станций. Выходом из ситуации, когда целесообразно использовать частные ip адреса на пользовательских компьютерах (сервер не имея уникального реального ip работать в интернет не может) и является NAT-ирование. При таком способе организации сети все компьютеры с фиктивными адресами имеют полноценный доступ в интернет, необходимый рабочей станции или пользовательскому компьютеру. Эти виртуальные ip адреса "подменяются" реальным ip, установленном на внешнем интерфейсе маршрутизатора. Пользовательский компьютер как бы маскируется за своим шлюзом, и со стороны интернет виден только один реальный ip адрес - адрес нашего NAT-ирующего шлюза. Такой способ работы, называется Masquerading, то есть подмена в пакете адреса источника(source ip) на другой адрес. Теперь можно обеспечить работу в интернет принципе неограниченного числа пользователей используя всего лишь один реальный ip адрес.
Практика:
Просто добавьте в конфигурационный файл ipchains:
-A FORWARD -s 192.168.1.0/29 -d 0.0.0.0/0 -p all -j MASQ
Здорово, правда???
Так как Вы уже знаете принцип настройки файруолла ipchains, то сможете без затруднений ограничить доступ одним или другим членам Вашей сети.
Сервер домейнных имен
Что такое DNS и с чем его едят? Вы уже знаете, что компьютеры в сетях tcp/ip работают с ip адресами. К примеру один интернет пользователь в Гваделупе захотел посмотреть интернет страницу на росийском сервере. То есть его компьютеру необходимо знать ip адрес запрашиваемого росийского сервера, и тогда, как мы выяснили из главы про маршрутизацию пройдя через какое-то количество роутеров пакеты из Гваделупы дойдут до сервера в России. Однако человеку, независимо от того, живет он в Гондурасе, России или Буркина-Фасо удобнее запоминать название сервера, (например lib.ru), а не его ip адрес (213.59.0.47). Исключение составляют немногочисленные страдающие маниакально депрессивным психозом сисадмины. Вот и пришли к сути: необходима система, преобразующая домейнные имена в ip адреса. Она и называется Domain Name System, ил попросту DNS. Вполне возможно, что у Вашей фирмы есть домейнное имя chtototam.ru , и соответственно необходимость в настройке почтового и web сервера chtototam.ru. При регистрации этого домейнного имени необходимо указать минимум два адреса name серверов, первичного и вторичных DNS. Это необходимо сделать приобретаете Вы домейн в nic.ru, nic.am или даже прямо у network-solutions.
Чтобы понять как работает система домейнных имен вновь полистаем страницы истории. В старые времена, когда домейнных имен было не так много, все они хранились в файле /etc/hosts. Файл этот приходилось постоянно обновлять, и очевидно, что он должен был содержать названия всех существующих домейнов и соответствующие им ip адреса.Очевидно, что в наше время при наличии невообразимого количества домейнных имен такая система изжила себя, и уже в начале восьмидесятых была разработана концепция согласно котороой нформация о домейне записана в его DNS сервере.
Согласно этой системе, у домейнов есть уровни. Домейнами первого уровня являются: com, net, org, edu, ru, am, pl... Полный список существующих домейнных имен певрого уровня можно найти в интернет, в частости набрав такой URL в окошке броузера: http://www.101domain.com/domain_whois_server.php
Обладатель домейнного имени первого уровня может создать и предоставить
имя второго уровня: mail.ru, yahoo.com, hay.am являются именно
домейнами второго уровня. Распространением домейнных имен с окончанием .ru
занимается некоммерческая организация "Региональный Сетевой Информационный
Центр"
(http://www.nic.ru). Если Вы
оплатили и приобрели на время домейнное имя chtototam.ru,
то можете создать домейнное имя третьего уровня типа:
ktototam.chtototam.ru и подарить другу. Друг, в свою очередь создаст для сынишки
: vasya.ktototam.chtototam.ru и не только разместит интернет страничку http://vasya.kotottam.chtototam.ru,
но и может зайти слишком далеко, настроив настроит mail сервер
vasya.ktototam.chtototam.ru. Разумеется его продвинутый сынишка подарит
подружке на день рожения e-mail girlfriend@vasya.ktototam.chtototam.ru
:) Надеюсь, Вы поняли, что привычное "www" перед названием домейна в URL
- всего лишь определено названием домейна третьего уровня К примеру,
зоны DNS домейна google.com настроены так, чтобы отзываться и на
ww.google.com, и на wwww.google.com. Ничто Вам не мешает открыть домейн третьего
уровня vvv.chtototam.ru, если вы являетесь обладателем lomain name
chtototam.ru. Теперь, поняв что такое домейн певрого уровня проиллюстрируем
работу системы домейнных имен на примере все того же самоотверженно
исследующего просторы интернет любителя русской литературы из Гваделупы. Он
набирает в окне броузера адрес, скажем lib.ru. Его компьютер обращается к своему
DNS серверу, то есть посылает UDP пакет на 53 порт своего DNS сервера. Адрес
этого DNS сервера он получил у своего интернет провайдера, он мог быть прописан
в настройках соединения вручную, или назначен сервером без ведома user-а. В
ответ на запрос, DNS сервер посмотрит у себя в кэше, и если найдет ip адрес
соответствующий имени lib.ru, то незамедлительно пошлет ответ клиентскому
компьютеру. Да, DNS серверы тоже кэшируют информацию, ведь не исключено, что это
единственный пользователь провайдера, интересующийся lib.ru Более того, если
речь идет о преобразовании в ip адреса таких массово посещаемых domain
name, как yahoo.com, то можно сказать с уверенностью, что не более, чем за 10
минут до нашего запроса, аналогичный запрос серверу уже поступал. Однако,
не найдя в кэше lib.ru (наверное во всей Гваделупе никто еще не
интересовался этим сервером), DNS сервер постарается определить, у кого же
спросить: "какой адрес ip соответствует имени lib.ru", то есть кто
является DNS сервером lib.ru?
А затем уже спросит у первичного DNS сервера, который содержит всю основную информацию о домейне. Если первичный name сервер не отвечает, то запрос будет передан одному из вторичных, которые просто хранят копию данных первичного, и регулярно обновляют ее. Именно поэтому Вы замечали, что часто между тем, как Вы набрали в броузере URL, нажали Enter, и тем, когда в строке состояния (status bar) появляется надпись типа "opening page: http://..." проходит некоторое время. Это время и есть время преобразования domain name в ip address ( lookup ).
Пришло время и попрактиковаться. В дистрибутив ОС Red Hat Linux входит пакет BIND, что по английский означает "переплет", и является аббревиатурой от Berkeley Internet Name Domain. Админам Red Hat 7.0 - версия bind из дистрибутива 7.0 очень уязвима, и ее небезопасно запускать. Последняя на момент написания сего документа версия bind-9.2.1 успешно работает на Red Hat Linux 6.0 и выше, требует процессор i486 или совместимый.
На его основе Вы можете натроить caching-only nameserver, который будет лишь отвечать на запросы пользователей и кешировать информацию. Такой nameserver не хранит в себе информацию о домейне, однако есть резон использовать caching-only nameserver, хотя бы для экономии, хоть и незначительной внешнего канала. Вот конфигурацинный файл для caching-only name server-а, с правом доступа к нему только с определенных ip адресов (наша сетка):
и далее
Такой конфигурации файла /etc/named.conf вполне достаточно для работы caching-only name server-а. Необходимые файлы named.conf, named.ca и named.local создаются при инсталляции rpm пакета bind. Запускаем name server:
service named start
Если сервис успешно не стартовал, посмотрите сообщения в конце файла /var/log/messages - там наверняка найдете обьяснения. Слово named составлено из двух слов: name daemon.
Если хотите открыть name server, чтобы им пользовались все, просто уберите строки acl "ournet"... и allow-query. Можно закомментировать только строку, начинающуюся с allow-query, так как первая строка всего лишь описывает группу "ournet". Это нужно сделать также при настройке так называемого Authotitative name сервера, который не только отвечает на запросы пользователей но записан в nic.ru как primary DNS Вашего домейна и содержит всю информацию о нем.
Итак, настроим первичный DNS сервер chtototam.ru. Для настройки первичного сервера для Вашего домейна просто замените "chtototam.ru" в строке, начинающейся словом zone на Ваш domain name, а два последующих ip адреса на один или два адреса вторичных name серверов. Этим Вы даете понять, что информация о зоне chtototam.ru хранится в файле chtototam.ru, который находится в рабочей директории, указанной выше. В конкретном случае - это директория /var/anemd, однако, если Вам удобно, создайте и сделайте рабочей директорию в /etc, если Вы привыкли хранить там конфигурационники.
К вышеописанному нужно добавить:
Перед словами type, file, allow-transfer, и ip адресами можно не ставить TAB, на примере проставлен для читабельности.
Очевидно, allow-transfer позволяет вторичным серверам обновлять свои зоны (transfer).
Разумеется, при этом в нашей working directory, которая в конфигурации указана, как /var/named нужно создать соответствующий файл: chtototam.ru
Конфигурация, которую нужно дописать в named.conf вторичного (slave) name server-а:
При настройке вторичных серверов никаких более файлов создавать не нужно. Сервис bind создаст и будет обновлять их самостоятельно.
Таким образом осталось описать зону telex221.ru, и тогда работу над DNS можно будет считать почти законченной.
Как и обещали bind-у, создаем файл chtototam.ru в рабочей директории
Записываем:
Обязательно жмите TAB, не ставьте длинные последовательности пробелов! Таков синтаксис, и неправильно составленный файл повлечет за собой некорректную работу bind
В начале строки TAB-а может и не быть, я оставил свободное место лишь исходя из соображений читабельности.
Запись после символов SOA - это имя сервера, на котором находится информация о зоне. Обязательно должно оканчиваться точкой. С этого сервера будут обновляться slave серверы.
root.chtototam.ru - почтовый адрес ответственного за сервер, согласно синтаксису собачка в адресе заменяется на точку .
Вместо двух нулей перед комментарием Serial принято писать год, месяц, число и номер версии файла в этот день. К примеру, Вы отредактировали файл третьего апреля 2003 года уже второй раз. Тогда вместо двух нулей запишите: 2003040302 . Это не правило, просто удобный способ записи, позволяющий определить время последнего изменения файла. Дело в том, что каждый раз при рестарте сервис named смотрит Serial, и если Serial не изменился, bind может не считать данные из файла заново.
Значение, прописанное перед комментарием Refresh оопределяет, как часто secondary DNS проверяет первичный на предмет увеличения значения serial. Если ответ положителный, вторичный DNS обновляется с первичного В нашем случае: 86400 секунд
Retry: Как часто secondary DNS , будет вновь обращаться к primary, в случае time-out-а, то есть если первичный DNS недоступен. Рекомендуемое значение 7200 секунд, то есть два часа.
Expire определяет сколько времени запись будет существовать на secondary DNS, если не видно первичного. По истечении этого срока secondary DNS будет считать себя не способным давать компетеный ответ по зоне. Рекомендуемое значение 2592000 секунд составляет 30 суток.
И наконец, параметр Minimum определяет сколько времени будет храниться запись в кэше. Рекомендуемое значение составляет четверо суток.
В разделе name server records пропишите серверы домейнных имен для домейна chtototam.ru. Одним из этих серверов может быть и сам chtototam.ru
Каждое домейнное имя должно закагчиваться сиволом "точка".
Запись MX означает, что на указанный в конце строки сервер будет отправляться почта адресованная на anyname@chtototam.ru . Разумеется, почтовым сервером для chtototam.ru может быть не машина с domain name chtototam.ru. К примеру mail server yahoo.com реально имеет domain name smtp.mail.yahoo.com , а сервер yahoo.com - имеет другой ip адрес.
Число после записи MX - это приоритет почтового сервера. Почта отправляются на сервер, у которого выше приоритет. Эта настройка становится актуальной при конфигурировании backup почтового сервера. Если указано два сервера с одинаковым приоритетом, то адресат выбирается случайным образом.
Как проверить настройку DNS сервера?
С Linux опросите оба сервера:
dig chtototam.ru @207.241.172.161
После собачки записан ip адрес name server-а, который мы опрашиваем.
Проставьте в любом компьютере, подключенном к сети, и работающем под управлением NT или Linux первичныйм DNS сервером Ваш свеженастроенный сервер. Наберите в терминале
nslookup chtototam.ru
Если получите в ответ тот ip адрес, который прописали, значит все путем. Если не получите ответа, досконально проверьте пракильность заполнения файлов.
Мы научились настраивать DNS серверы для конвертации domain name в ip адрес. Возможно ли узнать по ip адресу domain name? Да, возможно, и для этого существуетпонятие "обратной зоны". Обычно, если провайдер выделил немного ip адресов, то скорее всего прерогативу прописывать обратную зону оставит себе. Попробую пояснить. Вы не можете обеспечить определение своего domain name, простой настройкой DNS сервера. Domain name Вы должны зарегистрировать у обладателя вышестоящей зоны, чтобы он делегировал ее Вам, в конкретном примере обладатель зоны ru это RU-NIC. В противном случае Ваш domain name будет определен только теми компьютерами, где проставлен как DNS сервер именно Ваш DNS. Поэтому ничего удивительного нет и в том, что "обратную зону" тоже нуэно делегировать. Ее делегирует Вам тот, кто выдал Вам ip адреса. Теперь о конфигурации:
Как и в предыдущем случае, для начала нужно добавить зону в named.conf:
а затем создать соответствующий файл:
bind, а также другие сервисы, о настройке которых рассказывется в этом документе имеют массу настроек, которые не представляется возможным уместить в краткое руководство. Если почувствуете , что достаточно созрели, у Вас самих рука потянется и Вы найдете этот, или другой, соответствующий современной версии документ.
Почта
Структура протокола SMTP (simple Mail Transfer Protocol) была описана уже в 1982 году. Последнее изменение добавлено в 1993-ем. Первая версия почтового сервера sendmail, который посылает и принимает почту, была написана в 1983-ем году. Вы наверное уже инсталлировали пакет sendmail, в противном случае найдите его на диске с дистрибутивом, или лучше скачайте последнюю версию с ftp.redhat.com
Убедитесь, что в файле /etc/hosts прописано имя Вашего сервера и его ip адрес перед запуском sendmail. Именно туда заглянет sendmail при старте, чтобы определить, на каком сервере ему предстоит работать. В противном случае не исключено подвисание sendmail на неоторое время при старте, пока он тщетно пытается определить domain name.
Все входящие сооющения хранятся в каталоге /var/spool, исходдящие в каталоге /var/spool/mqueue
Конфигурационный файл: /etc/sendmail.cf
В принципе sendmail в системах Red Hat 7.x может полноценно работать непосредственно после запуска и без дополнительных настроек. Начиная с Red Hat 7.3, запустив казалось бы правильно сконфигурированный sendmail, Вы сможете подключиться к 25-ому порту только с localhost. Такая настройка по умолчанию принята из соображений безопасности. Поэтому, первое, что мы сделаем, это отправимся в /etc/mail и отредактируем файл sendmail.mc, закомментировав строку dnl DAEMON_OPTIONS(`port=smtp, Addr=127.0.0.1, Name=MTA')
Затем регенерируем файл sendmail.cf из sendmail.mc:
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
Теперь отредактируем полученный файл sendmai.cf.
В разделе local info можно прописать название сервера. Однако не проблема, если sendmail определит имя хоста сам.
Найдите слова "MaxMessageSize", MaxRecipientsPerMessage и ограничьте соответственно максимальный размер сообщения и максимальное количество адресатьв на одно сообщение. По умолчанию эти ограничения не проставлены.
Запись MaxMessageSize=1000000 означает, что sendmail не отправит сообщение размером больше мегабайта. Ограничение числа адресатов на одно сообщение, несомненно, затруднит массовые рассылки через Ваш сервер, поэтому я настоятельно рекомендую не пренебрегать возможностью определить такое ограничение. Если кто либо из пользователей захочет сделать рассылку для друзей, скажем приглашение на вечеринку, то его не особо затруднит 5-7 раз повторить сообщение с двумя-тремя адресатами в каждом письме. Напротив, спаммеру, распологающему mail листом не менее, чем на тысячу другую адресатов, это ограничение придется вовсе не по вкусу, и он скорее всего подыщет другой сервер. Кстати, о массовых рассылках: Существует понятие "open relay", напрямую к ним имеющее отношение.
Почтовый сервер должен позволить посылать письма через себя ТОЛЬКО компьютерам из сети, которой доверяет. Если такого ограничения нету, то считается, что у сервера open relay.
Если у почтового сервера open relay, то возникают следующие проблемы:
1. Сервер с открытым релейем обязательно найдет спаммер из Новой Зеландии и будет использовать его для массовых рассылок! Следствием являются еще две проблемы:
1.1 Траффик. Возможно, Вам придется платить за спаммера из Новой Зеландии.
1.2 Множество людей в мире ненавидят спам! Я в их числе. Поэтому и созданы организации для борьбы со спамом, которые ведут "черные списки" (blackhole lists) ненадежных серверов, то есть серверов с открытым релейем. Любой уважающий себя администратор сервера электронной почты обязательно настраивает его на использование blackhole list, чтобы уменьшить количество спама, поступающего к абонентам. Точнее, такая настройка исключает получение ЛЮБОГО письма с сервера, который занесен в "черный список", будь то спам или деловое письмо. Следствие, с Вашего сервера практически НИКУДА не будут доходить письма, а если это деловая переписка, то пользователи вероятнее всего будут очень недовольны! Выход: написать в ту организацию (а их много), которая Вас занесла в черный список, о том, что Вы уже изменили настройки своего почтового сервера и просите протестировать его заново. В течение недели сервер будет протестирован. Так как неделя - слишком долгий срок, то лучшим способом для быстрого выхода из ситуации является изменение ip адреса сервера. Помните! Стоит любому человеку лишь нажалдоваться на Ваш сервер, как его relaying будет проверен на надежность. Вот что написано на главной странице одной из таких организаций:
DNSRBL is an anti-SPAM system. We publish, via DNS, a list of IP addresses of machines that we know to be either direct SPAM sources or Dial-up (dynamic address) pools which would never be a source of non-SPAM eMail. Some users may choose to use our lists to block or add warnings to email. Neither of these facts directly relate to us; we simply publish a list of known SPAM sites.
То есть таким организациям нет дела, попал в список сервер банка, или министерства внутренних дел. Они лишь составляют и публикуют списки, и нету законов, обязывающих ими пользоваться. Тем не менее, я уверен, что и Вы, как администратор уже захотели включить в свой почтовый сервер свойство сверяться хотя бы с одним из таких листов.
2. Есть организации, которые борятся со спамом. Они ведут свои списки. Другие организации борятся с открытыми редейами, как с потенциальным гнездом спама. Поэтому, если у Вашего почтового сервера open relay, он в течение двух недель будет найден или спаммером (в результате рассылка и занесение с список), или подобой организацией (итог один)
Обобщая, будет ли у Вас открытый релей, или будет зафиксирован спам, особенно если он усугублен открытым релейем меры будут приняты незамедлительно. В чем же тогда смысл RELAY-а спросите Вы??? Он всего лишь разграничивает кому можно посылать письма с использованием конкретного мейл сервера, а кому нельзя, причем ограничение в основном именно по ip адресу. Дело в том, что если спам отправлен с сетки, которой Вы доверяете, и которой соответствено есть доступ на отправку сообщений, то Вы сами выследие и найдете нарушителя по логам мейл сервера. Иное дело, когла спаммер обитает в другом городе, или даже другой стране, шансы на то что он понесет ответственность за содеянное мягко говоря уменьшаются. Занимаются рассылками часто неплохо разбирающиеся в сетях люди, которые оплачиваются за анонимную рассылку. Существует довольно развитая инфраструктура с массой звеньев, на самом низу которой находятся люди, сканирующие web страницы и собирающие e-mail адреса. За каждый работающий адрес ои получают деньги от человека, зарабатывающего на продаже мейл листов.Другой способ рассылки, более легальный, это оплатить владельцу посещаемого почтового сервера массовую рассылку его абонентам. Так как такая услуга предоставляется платно, владелец сервера ьожет списать к себе в убытки опрееленную не заработанную сумму, в случае фиксации спама, кроме того, мало кто из пользователей любит массовые рассылки, и престиэ сервера также будет поставлен под сомнение. Я наприаер не пользуюсь серверами, которые платно предоставляют рассылки.Даже такой сервер, как yahoo не так давно отказался от предоставлений услуг POP3, то есть когда у абонента есть возможность использовать mail client, например outlook express, netscape, the bat... Именно потому, что по неутешителбной для сервера статистике ощутимая часть пользователей yahoo предпочитала использовать почтовые программы, и не смотреть на разноцветные баннеры.
Теперь, когда мы убедились, что всему миру позволить посылать письма, используя наш сервер не стоит, закроем relay:
Найдем в каталоге /etc/mail файл access. По умолчанию он имеет такой вид:

то есть письмо будет отправлено только при условии, что оно послано с localhost.
Чтобы разрешить отправлять письма компьютеру с ip 207.241.172.163 необходимо добавить запись:
207.241.172.163 RELAY
Разрешить сети 192.168.1.0/24 (255 адресов)
192.168.1 RELAY
Не принимать письма с yahoo.com
yahoo.com REJECT
Принимать письма с этого домейна, даже если это противоречит всем правилам:
sendmail.org OK
Теперь необходимо создать файл access.db исходя из наших новых записей:
makemap hash /etc/mail/access.db < /etc/mail/access
Перегрузим sendmail, чтобы загрузить только что созданные настройки.
Проверить, правильно ли работает relay можно помощью web-интерфейса, зайдя на http://www.abuse.net/relay.html
В окне справа от надписи "address to test" запишите именно ip адрес, а не domain name. Программа, проверяющая relay будет стелнетнувшись на 25-ый порт Вашего сервера попытаться различными способами "обмануть" его и отправить через него почту. Часто бывает, что ей это удается подставив вместо domain name ip адрес, поэтому для максимальной уверенности пишите именно ip адрес.

Только убедившись, что в конце теста присутствуют слова "All teste performed, no relays accepted" можно оставлять mail server запущенным.

Наверное, Вам захотелось, чтобы и Ваш сервер сверялся с одним из черных списков. К примеру, используем все тот же DNSRBL (Domain Name System Real-time Black List). Добавим в файл /etc/mail/sendmail.mc строки
FEATURE(dnsbl,`dun.dnsrbl.net'')dnl
и
FEATURE(dnsbl,`spam.dnsrbl.net')dnl
Затем вновь сгенерируйте sendmail.cf:
makemap hash /etc/mail/sendmail.mc > /etc/sendmail.cf
Теперь после перезагрузки сервис sendmail будет использовать DNSRBL.
Настройка дисковах квот.
В Линукс Вы можете ограничить обьем информации, хранимый каждым системным пользователем на диске. Это и называется user quota. Ограничения можно ставить и на группы пользователей.
Для того, чтобы активировать дисковые квоты, сначала отредактируйте файл /etc/fstab, содержащий информацию о дисках:

Добавим слово usrquota, чтобы активировать квоты для пользователей в четвертый столбец...

Если Вы хотите активировать group quota навыбранном разделе, то замените слово usrquota словом grpquota. Для того, чтобы активировать и user quota, и group quota одновременно, нужно просто записать их через запятую

Теперь надо создать файлы quota.user и quota.group, для user и group quota соответственно. Файлы должны находиться в корне того раздела, в котором мы настраиваем квоты. Итак, переходим в корень соответствующего раздела (partition) т набираем:
touch quota.user
и/или
touch group.user
Оба файла должны иметь права чтения и записи только для root-а:
chmod 600 quota.user
chmod 600 group.user
Помните, что при настройке квот в системах ниже Red Hat Linux 7.3, точнее в системах с kernel-ом ниже 2.4.18 Вы должны создать файлы aquota.user и agroup.user соответственно!
Теперь перезагрузитесь. Изменения вступят в силу только после перезагрузки.
Запустите программу quotacheck с параметрами -avug
quotacheck -avug
Теперь определите ограничения для пользователей.
Команда edquota -u vasya откроет текстовый редактор vi для редактирования квот пользователя vasya. Однако, так как vi Вам вряд ли знаком, и работа в нем не тривиальна, изменим значение EDITOR по умолчанию:
export EDITOR=mcedit
а затем уже:
edquota -u vasya
Quotas for user vasya:
/dev/hda1: blocks in use: 2594, limits (soft =
5000, hard = 6500)
inodes
in use: 356, limits (soft = 1000, hard = 1500)
Параметр blocks in use показывает сколько места (в килобайтах) занято файлами пользователя в разделе.
edquota -g users
откроет mcedit для редактирования квот группы users.
dev/hda1 blocks in use: 255924, limits (soft = 0, hard =0)
inodes in use:
990, limits (soft = 0, hard = 0)
soft limit определяет максимальную величину дискового пространства, которую может использовать юзер или группа.
hard limit - это жесткий, абсолютный лимит использования дисового пространства, однако он вступает в силу лишь по истечении срока. Параметр, определяющий срок называется "grace period ". Он определяется командой
edquota -t
Повторяюсь, если Вы не умеете работать с текстовым редактором vi, предварите команду edquota командой export EDITOR=mcedit

Проделанную работу можно посмотреть командой:
repquota -a
Настройка web сервера Apache
В основе web сервера Apache лежит HTTPd - свободно распространяемый web server, некогда разработанный NCSA,( the National Center for Supercomputing Applications). Национальный центр по применению суперкомпьютеров, возможно известен Вам своей другой разработкой - а именно интернет броузером Mosaic, который был приобретен Microsoft и лег в основу Microsoft Internet Explorer-а. HTTPd был наиболее распространенным web сервоером, но безопасность откровенно хромала. В начале 1995 года одна из попыток создать на основе HTTPd пропатченный и более стабильный сервер удалась группе независимых разработчиков. Пропатченный сервер так и назвали: a Patchy server или Apache. Этот сервер входит в дистрибутив Red Hat Linux, так как является свободно распространяемым продуктом. Убедимся, что сервер Apache установлен:
rpm -q apache
Для корректной работы при запуске сервер httpd (Apache) пытается определить domain name компьютера на котором запущен. Часто именно этим обусловлена задержка при старте сервиса - невозможностью определить domain name. Если domain name еще не прописан, или у Вас его нету, то отредактируйте конфигурационный файл /etc/httpd/conf/httpd.conf и присвойте параметру ServerName ip адрес Вашего компьютера следующим образом:
Ваш сервер готов к работе.
service httpd start
Наберите domain name, указывающий на сервер с запущенным Apache, и увидите тестовую страницу вроде этой:

Далее дело техники. Файл index.html находится директории /var/www/html/. Изменить путь можно найдя в httpd.conf строку:
DocumentRoot /var/www/html
Я хочу остановиться на одной из особенностей сервера, возможности создания виртуальных web серверов.
Существует два типа virtual hosts: ip based и dns based. Рассмотрим работу DNS based virtual hosts, так как Вы можете гарантировать работу двух разных domain name web серверов имея всего один ip адрес, когда как при использовании ip based virtual hosts Вам необходимо иметь по одному ip адресу на каждый domain.
Теперь приступим к работе:
NameVirtualHost www.chtototam.ru
<VirtualHost www.chtototam.ru>
ServerName www.chtototam.ru
DocumentRoot /var/www/chtototam
</VirtualHost>
<VirtualHost www.ktototam.ru>
ServerName www.ktototam.ru
DocumentRoot /var/www/ktototam
</VirtualHost>
Очевидно, что после перезагрузки httpd в ответ на запрос www.chtototam.ru будет выдаваться index.html из директории /var/www/chtototam, а на запрос www.ktototam.ru - из папки /var/www/ktototam
Необходимо, чтобы этим домейнам ( www.ktototam.ru и www.chtototam.ru ) соответствовал один ip адрес, прописанный в DNS серверах chtototam.ru и ktototam.ru - этодолжен быть ip адрес компьютера, на котором установлен web сервер.
Прокси
Вы знаете, что прокси сервер кэширует html страницы. Суть ясна: бывает, страница передается очень медленно, что может быть связано с удаленностью интересующего Вас сервера, его перегрузкой, или перегрузкой каналов и узлов по пуи к нему. Однако возможно, что та же страница была запрошена другим пользователем, и ее копия осела в кэше прокси. Экономия времени и траффика очевидна, особенно учитывая количество повторяющихся запросов (www.yahoo.com, www.yandex.ru...). "Но ведь броузеры тоже кэшируют!" - воскликнете Вы! И будете правы.Но Вы забыли о том, что броузеры выделяют для хранения страниц гораздо меньше места, чем прокси. Даже если пользователь выделит несколько сотен мегабайт на диске под temporary internet files, все ракно не получит выигрыша, сравнимого с использованием прокси, где под кэш выделяются иногда десятки гигабайт.Но не все так хорошо, как кажется. Если у прокси мало мало пользователей, его использование только тормозит связь юзера. Часто в таком случае прокси просто является постредником: скачивает документ, и пересылает пользователю, положив копию себе в кэш. Еще один минус: Вы можете получить старую копию документа. В опсании прокси серверов упоминается о "сложных интеллектуальных алгоритмах определения устаревания страниц", но не редки случаи, когда пользователю приходится пользоваться комбинацией клавиш "SHIFT+Refresh" (MS IE) или "CTRL+Refresh" (Netscape) для закачки страницы без использования прокси.
Прокси тоже присуще понятие "открытый" - если прокси открыт, Вашими сетевыми ресурсами смогут пользоваться чаще всего незнакомые люди, для которых Вы это право точно не предусмотрели. Анонимный прокси - находка для любителей поломать, скрывая свой ip адрес. К примеру Yandex не пускает с открытых прокси на свои страницы, поэтому о том, что Ваш прокси открыт возможно неожиданно узнать с www.yandex.ru - Вы увидите html документЮ в котором отмечается, что у Вас открытй прокси, и пока админы это дело не поправят, и не напишут в Yandex - никакого доступа.!
По умолчанию в последних версиях Red Hat Linux прокси закрыт.
Начнем его конфигурацию. Номер порта, который squid слушает:
По умолчанию 3128.
Защищаем свои сетевые и системные ресурсы. Для этого сначала создаем список контроля доступа acl (access control lists), а затем предоставим этим спискам права доступа. Просто, и напоминает конфигурацию bind caching-only name server.
По умолчанию в конфигурационном файле /etc/squid/squid.conf уже прописаны используемые по умолчанию списки:

Например, первая строка добавляет все хосты (0.0.0.0/0) в группу all.

Запись http_access deny all запрещает им использование прокси.
Создадим группу "ourusers" и предоставим ей право пользоваться нашим прокси.
acl ourusers arc 192.168.1.0 - 192.168.1.255/255.0.0.0
http_access allow ourusers
параметр cache_mem определяет обьем кэш памяти в ОЗУ, и по умолчанию составляет 8 мб. В зависимости от предполагаемой нагрузки сервера его можно изменить до 16, 32 или 128 мб.
Параметр cach_dir определяет каталог для хранения кэша на винчестере. По умолчанию это /var/spool/squid
Если ip адрес прокси прописан в DNS и соответствует записи proxy.chtototam.ru, то пользователь с определенных Вами заранее ip адресов, проставивший у себя в настройках броузера proxy.chtototam.ru и порт прокси 3128 сможет им пользоваться без проблем.
Ядро операционной системы заведует такими вещами, как запуск программ, распределение процессорного времени между программами, завершение работы программ, распределение памяти, работа с различными устройствами посредством драйверов, написанных для них.
Существуеют различные "сборки" операционных систем на основе ядра Linux. Они отличаются способом установки, административными и конфигурационными утилитами, разными комплектами программного обеспечения. Кроме того, в различных дистрибутивах ОC Linux ядро той же самой версии может быть откомпилровано по разному. Это означает, что в разных версиях Linux могут быть разные наборы драйверов, разные списки поддерживаемых файловых систем, и т. д.
Сегодня наиболее распространенными являются сборки (дистрибутивы) Linux следующих фирм:
Red Hat Linux - собран на основе инсталляционных пакетов RPM (Red Hat Package Manager). Они позволяют без труда устанавливать и удалять программы, отслеживают зависимость программ, так как некоторые программы не могут успешно работать при отсутствии соответствующих библиотек, сервисов или программ, то есть "зависят" от них.
Mandrake и Suse Linux - сответственно французский и немецкий дистрибутивы, собранные на основе разработки фирмы Red Hat Software - пакетных менеджеров rpm. Это наглядная иллюстрация того, как концепция свободного программного обеспечения способствует прогрессу и развитию. Red Hat Software не может запретить использовать те свои достижения, которые входят в дистрибутив ОС Linux, так как последняя может комплектоваться только open-source программами (свободное программное обеспечение с открытым кодом).
Debian Linux - дистрибутив собирает команда энтузиастов. Собран на основе инсталляционных пакетов deb.
Есть дистрибутивы, которые содержат исходники, а не готовые откомпилированные программы. В этом случае процесс инсталляции затягивается, программа установки не только инсталлирует, но и перед этим компилирует программы. Примером такого дистрибутива является Gentoo Linux.
Кластеры появились, как альтернатива очень дорогим суперкомпьютерам, которые находили широкое применение в частности при научно-исследовательских расчетах. Тогда и возникла идея обьединять вычислительные ресурсы нескольких машин. Скорость расчетов повышается путем распределения нагрузки на множество процессоров разных физически компьютеров. Современные параллельные вычислительные системы строятся как правило на базе IBM совместимых компьютеров (PC) и под управлением ОС Linux. Практика показывает, что производительность таких систем сопоставима с производительностью суперкомпьютеров, при несравнимо дешевой цене.
ftp://sunsite.nstu.nsk.su/pub/linux/mirrors/ftp.redhat.com/
ftp://woland.it.nsc.ru/pub/linux/
firewall - в переводе каменная противопожарная стена. Слово "брандмауер" - это буквальный перевод английского firewall на немецкий, попавший в русский язык вместе с "брандмейстером" и прочей пожарной терминологией. В толковом словаре русского языка Ушакова можно прочесть такое обьяснение:
БРАНДМАУЕР (нтм), брандмауера, м. (нем. Brandmauer, букв. пожарная стена) (спец.). Глухая стена из огнеупорного материала, обычно каменная, разделяющая два дома или проведенная внутри одного большого дома в противопожарных целях. <http://ushakov.academic.ru/misc/ushakov.nsf/ByID/NT000B7312>
В прайс-листах разработчиков, и в пресс-релизах компаний-продавцов применительно к брандмауерам можно встретить выражение "межсетевой экран".
Итак, Брандмауэр - это система или комбинация систем, позволяющие разделить сеть на две или более частей и реализовать набор правил, определяющих условия прохождения пакетов из одной части в другую (см рис.1). Как правило, зта граница проводится между локальной сетью предприятия и ИНТЕРНЕТ, хотя ее можно провести и внутри локальной сети предприятия. Брандмауэр таким образом пропускает через себя весь трафик. Для каждого проходящего пакета брандмауэр принимает решение пропускать его или отбросить. Для того чтобы брандмауэр мог принимать эти решения, ему необходимо определить набор правил. <http://library.web.am/win/SECURITY/firewall-faq/firewall-faq.txt#head_whatis>