LXF165-166:Рубрика сисадмина
Olkol (обсуждение | вклад) (→Профилирование и оптимизация) |
Olkol (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:Постоянные рубрики]] | [[Категория:Постоянные рубрики]] | ||
− | |||
− | |||
− | |||
'''Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает.''' | '''Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает.''' | ||
Строка 321: | Строка 318: | ||
Еще одна черта хороших программистов, которую заметил лично я – постоянная и ненасытная потребность в новых знаниях, будь то новый язык или мелкая особенность системного вызова fcntl(). И третье – они считают свое занятие искусством. Снова цитирую Кнута: «Наука – это то, что мы понимаем достаточно хорошо, чтобы объяснить компьютеру. Искусство – все остальное, что мы делаем». Интересно, что думаете вы? Что делает хорошего программиста хорошим? Программирование – это искусство или наука? Пишите мне на chris.linuxformat@gmail.com.}} | Еще одна черта хороших программистов, которую заметил лично я – постоянная и ненасытная потребность в новых знаниях, будь то новый язык или мелкая особенность системного вызова fcntl(). И третье – они считают свое занятие искусством. Снова цитирую Кнута: «Наука – это то, что мы понимаем достаточно хорошо, чтобы объяснить компьютеру. Искусство – все остальное, что мы делаем». Интересно, что думаете вы? Что делает хорошего программиста хорошим? Программирование – это искусство или наука? Пишите мне на chris.linuxformat@gmail.com.}} | ||
+ | |||
+ | ==Итак, вы хотите стать сисадмином?== | ||
+ | |||
+ | ''Шестая часть серии, которая превратит вас из новичка в звезду системного | ||
+ | администрирования.'' | ||
+ | |||
+ | ===Поговорим о безопасности.=== | ||
+ | |||
+ | В этой, последней, части серии я хочу обратиться к теме безопасности серверов. Наверное, оставить ее напоследок было ошибкой, поскольку можно подумать, что безопасность – это то, чем можно заняться в последнюю очередь, когда все остальное уже сделано. Так поступать не стоит. Безопасность и разумный уровень паранойи должны быть заложены во всех ваших действиях. Кстати, если вам покажется, что большая часть того, о чем мы поговорим сегодня – нечто само собой разумеющееся, для этого есть причина. Для большинства из этого. | ||
+ | |||
+ | Для начала попытаемся дать определение безопасности. Формальная модель безопасности описывается моделью CIA – конфиденциальность (Confidentiality), целостность (Integrity) и доступность (Availability). | ||
+ | |||
+ | Конфиденциальность – это гарантия того, что информация на ваших серверах доступна только тем, у кого есть право ей пользоваться. Целостность – это гарантия того, что информация сохраняется в первоначальном виде – это относится не только к данным, но и к программам. А доступность – это гарантия того, что данные и сервисы, предоставляемые системой, доступны именно должным образом (например, можно удовлетворить два первых требования, отключив компьютер от сети и заперев его в сейф, но это не слишком хорошо повлияет на доступность данных; помните, что атаки, нацеленные на отказ от обслуживания и призванные неблагоприятно повлиять на доступность вашей системы – одна из самых популярных разновидностей вредоносных атак). | ||
+ | |||
+ | Безопасность – это не программа, которую можно установить. Это постоянный процесс. Поэтому вот план поддержки безопасности системы из десяти пунктов. | ||
+ | |||
+ | 1: Вовремя загружайте обновления безопасности своего дистрибутива | ||
+ | |||
+ | Время от времени в приложениях выявляются потенциальные уязвимости. У крупных дистрибутивов Linux есть сервисы обновления, с которых можно загрузить обновления безопасности для исправления этих ошибок в течение периода поддержки дистрибутива. Для RedHat 6 это 10 лет (но нужно приобрести подписку). В предыдущих версиях RedHat для применения заплат использовалась утилита up2date, но от нее отказались в пользу yum; благодаря модулю расширения yum-plugin-security, yum сможет вывести список обновлений безопасности и установить их. | ||
+ | |||
+ | Другой пример – релизы Ubuntu Server с долгосрочной поддержкой [Long Term Support], например, 12.04 LTS, бесплатны и поддерживаются в течение пяти лет. В Ubuntu для автоматической установки обновленных пакетов можно воспользоваться пакетом unattendedupgrades – в нем можно настроить обновление всех пакетов или только обновлений безопасности. | ||
+ | |||
+ | 2: Выбирайте надежные пароли | ||
+ | |||
+ | Любая система, у которой есть внешнее интернет-подключение и сервис аутентификации (например, ssh), ежедневно подвергается тысячам попыток несанкционированного входа в систему от автоматизированных скриптов. Такова жизнь. | ||
+ | |||
+ | Выбор надежных паролей для учетных записей пользователя жизненно необходим. Я писал об этом недавно (см. LXF160) и не буду повторяться. Но не забудьте о паролях на маршрутизаторах и других сетевых устройствах – никогда не оставляйте их в значениях по умолчанию. | ||
+ | |||
+ | 3: Регулярно делайте резервные копии | ||
+ | |||
+ | Возможно, вы думаете, что между резервным копированием и безопасностью нет прямой связи. Но помните, что одна из составляющих CIA – доступность. Поэтому если плохие парни уничтожат ваши данные (или если ваш незапятнанный диск испустит последний вздох и скончается), резервные копии имеют решающее значение для возобновления доступности данных. | ||
+ | |||
+ | Существует множество утилит резервного копирования на разные случаи жизни. В простейшем случае воспользуйтесь rsync для эффективного переноса своей файловой системы на удаленный компьютер, или создайте архив с файлами на съемном носителе с помощью tar. Если вы это делаете, помните о том, от чего защищаетесь. Я регулярно делаю архивы своей личной файловой системы на внешний жесткий диск с помощью tar, но, к своему стыду, ношу этот диск в сумке для ноутбука вместе со всем остальным. Так я защищаюсь от неисправности жесткого диска, но не от кражи сумки для ноутбука. | ||
+ | {{Врезка|right|Заголовок= Это не наша политика|Ширина=25%|Содержание= | ||
+ | Если вы системный администратор Linux, то ваша жизнь будет гораздо проще, если у компании есть политика безопасности. Это обширная тема, и мне не хочется начинать составлять политику за вас. | ||
+ | |||
+ | Политика может определять, у кого должен быть физический доступ к серверам, каковые минимальные требования к паролям («все пароли должны состоять из букв, цифр, каракулей, жестов и поросячьего визга»), при каких обстоятельствах можно отключать сервер от сети, как очищать диски перед их утилизацией и т. д. | ||
+ | |||
+ | Если вам нужны примеры, зайдите на infotech.com или на сайт SANS (http://bit.ly/SvgZrk).}} | ||
+ | {{Врезка|left|Заголовок=Вы слышали это и раньше... |Ширина=25%|Содержание= | ||
+ | Если у вас есть подписка на LXF и доступ к электронной версии или старые номера журнала, можете вернуться к нескольким ранним статьям, посвященным безопасности. | ||
+ | |||
+ | LXF108: AppArmor | ||
+ | |||
+ | LXF115: Утилиты брандмауэра | ||
+ | |||
+ | LXF139: ufw («простой брандмауэр» Ubuntu) | ||
+ | |||
+ | LXF148: Повышение привилегий (su, sudo и т. д.) | ||
+ | |||
+ | LXF158: SELinux | ||
+ | |||
+ | LXF160: Пароли и политики }} | ||
+ | |||
+ | Если у вас несколько серверов, вас могут заинтересовать средства централизованного резервного копирования, такие как BackupPC или Bacula, с помощью которых можно делать резервные копии нескольких систем на один компьютер. Для настройки обеих потребуются некоторые усилия. Подумайте о том, где будете хранить резервные копии. Лучше всего хранить их в другом месте (это поможет, если ваш дом сгорит дотла), но это неудобно, если нужно быстро восстановить данные. Также нужно доверять тем, кто будет хранить или шифровать их. Скажем, многие хранят их на облаке (например, в Amazon S3), это позволяет быстро восстановить данные и стоит порядка 10 центов за 1 ГБ в месяц. | ||
+ | |||
+ | Недавно Amazon запустила новый сервис долговременного архивирования Glacier, время получения данных в котором может составлять до нескольких часов. Расценки начинаются от 1 цента за ГБ в месяц. Разумеется, для резервного копирования в облако нужен хороший исходящий канал. | ||
+ | |||
+ | 4: Не запускайте сервисов, | ||
+ | которые вам не нужны | ||
+ | |||
+ | Это очевидно. Если вам не нужно предоставлять клиентам, скажем, FTP, не запускайте сервер FTP. Лучше не устанавливайте его вообще. Не то что он небезопасен, но в серверах FTP определенно были обнаружены уязвимости, позволяющие получить доступ root. Зачем рисковать? Это было проблемой ранних версий Unix, в которых все сервисы по умолчанию были запущены и приходилось отключать большинство из них (конечно, и времена тогда были проще). В современных дистрибутивах Linux по умолчанию (обычно) включен только ssh. | ||
+ | |||
+ | 5: Обучайте своих пользователей | ||
+ | |||
+ | Понимаю, что если мы говорим о серверах, трудно понять, что имеется в виду под «пользователем». В данном контексте это некто, обладающий информацией, которая может помочь злоумышленникам атаковать вашу систему, или тот, у кого есть учетная запись на настольном компьютере, подключенном к сети. Получение доступа к такому компьютеру – прекрасное начало для злоумышленника, пытающегося подобраться к корпоративной базе данных. Конечно, было бы здорово избавиться от ненадежных компьютеров с Windows и заменить их на компьютеры с Linux, но это потребует времени. Поэтому как минимум убедитесь, что пользователи знакомы с основами: не открывать вложения в письмах от незнакомых людей; блокировать компьютер, уходя на обед; не сообщать никому свой пароль; и не посещать сайты, не имеющие отношения к работе. | ||
+ | |||
+ | У SANS есть несколько отличнных ресурсов, которые помогут в обучении пользователей: www.securingthehuman.org и www.sans.org. И если у вашей компании нет программы обеспечения безопасности, подумайте, как убедить своего босса начать ее. | ||
+ | |||
+ | 6: Читайте журналы | ||
+ | (или хотя бы отчеты) | ||
+ | |||
+ | Ну да, лог-файлы неподдельно скучны, и вряд ли кто-то будет их читать. Но есть утилиты, например, logwatch, которые прочитают их за вас и сгенерируют отчеты. Например, команда | ||
+ | |||
+ | # logwatch --detail med --range Today --print | ||
+ | |||
+ | сформирует отчет о сегодняшних логах. В дистрибутивах logwatch часто включена и настроена по умолчанию. Обычно она запускается как ежедневное задание cron и отправляет отчеты на почту root. Но пользы от нее никакой, если не заглядывать в отчеты. Что в них следует искать? Сообщения о добавленных учетных записях, которые вам незнакомы, о новых (неизвестных) установленных программах и о повторяющихся ошибках входа в систему от таких программ, как sshd и su. | ||
+ | |||
+ | 7: Не отключайте средства | ||
+ | мандатного контроля доступа | ||
+ | |||
+ | Если вы не поняли, о чем я, то под ними я имею в виду такие вещи, как SELinux и AppArmor. Несколько раз пострадав от SELinux (как я на моих учебных курсах), есть соблазн его отключить. Если что-то не работает, можно временно отключить SELinux, чтобы узнать, в нем ли дело, хотя если ваш уровень паранойи достаточно высок, вы не захотите этого делать. Но отключать его совсем – явно не лучшая идея. У него есть свои задачи (если у вас есть старые номера, загляните в LXF158, там я немного писал об этом). | ||
+ | |||
+ | С помощью утилиты audit2allow можно создать правила SELinux для приложений, у которых их нет. Месяц назад я рассказывал об этом. Для систем с AppArmor есть утилита aa-genprof. | ||
+ | |||
+ | 8: Изучите и безопасно настройте | ||
+ | запускаемые приложения | ||
+ | |||
+ | Здесь трудно сказать что-то конкретное: все зависит от приложений. Вот несколько примеров. Во-первых, для демона sshd можно отключить вход в систему от имени суперпользователя-root, что заставит пользователей использовать обычные учетные записи и при необходимости переключаться на root с помощью su. Убедитесь, что он настроен именно так (посмотрите значение параметра PermitRootLogin в /etc/ssh/sshd_config). Другой пример – в Samba можно ограничивать диапазоны IP-адресов, в которые она экспортирует разделяемые каталоги. Убедитесь, что эти диапазоны покрывают вашу сеть и ничего кроме. | ||
+ | |||
+ | 9: Настройте брандмауэр | ||
+ | |||
+ | Запустить брандмауэр с фильтрацией пакетов в Linux просто, благодаря коду сетевого фильтра, который встроен в ядро, и команде iptables, которая управляет правилами. Однако если вы новичок в Linux, я не советовал бы запускать iptables напрямую. Наборы правил для настоящего брандмауэра могут быть очень сложными и требуют глубоких знаний TCP/IP. | ||
+ | |||
+ | В RedHat пользуйтесь утилитой system-config-firewall. С ней легко открыть нужные порты; также можно задать «доверенные» интерфейсы, которые не будут фильтроваться (например, для внутренних сетей). | ||
+ | |||
+ | В Ubuntu есть небольшая утилитка ufw, которая с помощью довольно простого (по сравнению с iptables) синтаксиса позволяет управлять правилами. Например, для открытия порта достаточно скомандовать | ||
+ | |||
+ | $ sudo ufw allow ssh | ||
+ | |||
+ | А если хотите сделать кое-что похитрее, можно сделать следующее: | ||
+ | |||
+ | $ sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22 | ||
+ | |||
+ | Так вы получаете больше возможностей по сравнению с утилитами вроде system-config-firewall. | ||
+ | |||
+ | С помощью довольно удачно названной графической программы firestarter (www.fs-security.com) можно легко задавать правила и просматривать трафик, который блокирует брандмауэр. Стоит взглянуть и на shorewall (www.shorewall.net). Это еще одна утилита, которая сгенерирует наборы правил iptables из описания поведения брандмауэра на языке высокого уровня. | ||
+ | |||
+ | Мир Shorewall – это не щелчки мышью, а текстовые конфигурационные файлы. В них можно задать определенные «зоны» и оговорить движение трафика между ними. Это именно то, что требуется для настройки шлюза, у которого есть сетевые соединения с внешним миром, с внутренней частной сетью и с «демилитаризованной зоной» публично доступных серверов. | ||
+ | |||
+ | 10: Регулярно запускайте средство обнаружения вторжений | ||
+ | |||
+ | Принцип работы средств обнаружения вторжений обычно состоит в том, что они делают «снимок» файловой системы (или указанных вами частей) в исходном, чистом состоянии компьютера, а затем периодически делают новые снимки и сравнивают их с оригиналом. Снимок – не полная копия файлов, он содержит лишь такие параметры, как размер, владельца, время доступа и контрольную сумму MD5 каждого файла. Этого обычно достаточно для распознавания, что что-то было изменено. | ||
+ | |||
+ | Обычно подобным образом нужно отслеживать только системные каталоги, например, /etc, /bin и /usr/bin, все изменения в которых должны быть вам известны. Конечно, такие утилиты скорее позволяют среагировать на проблему, чем предотвратить ее. Они не помешают хакеру взломать вашу систему, но вы по крайней мере об этом узнаете. | ||
+ | |||
+ | Классическая утилита для этих целей – tripwire, и ее открытая версия все еще доступна (http://bit.ly/h2pr9). Однако полноценная версия уровня предприятия стала коммерческим продуктом от Tripwire, Inc. Еще одна коммерческая утилита – Cimtrak. Также можете взглянуть на AIDE (Automatic Intrusion Detection Environment – среда автоматического определения вторжений), которая скорее всего есть в репозиториях вашего дистрибутива. Учтите, что эти утилиты нужно настраивать, и отчеты, как и лог-файлы, бесполезны, если их не читать. | ||
+ | {{Врезка|right|Заголовок= Под замком|Ширина=25%|Содержание= | ||
+ | Если вы не задали пароль для BIOS, помните, что каждый, у кого есть физический доступ к серверу, сможет загрузить его с собственного носителя и получить полный доступ. При задании пароля BIOS задача усложняется лишь немного, разве что теперь злоумышленнику понадобится отвертка, чтобы снять жесткий диск. Нужно ограничить физический доступ к серверу и повесить физический замок или установить какую-то систему с электронными картами. Каждый раз, когда я прихожу читать курсы в компанию с большим дата-центром, я всегда прошу показать мне серверную и почти всегда слышу: «Извините, нет». }} | ||
+ | Если вы пришли из мира Windows, то, наверное, интересуетесь, почему я не предложил вам установить антивирус (один из моих сыновей на своей последней работе управлял инфраструктурой крупного программного проекта и проводил, кажется, половину своего времени за установкой, обновлением и запуском антивирусных программ). Вредоносное ПО в Linux представляет собой гораздо меньшую проблему – частично, подозреваю, потому, что Linux гораздо реже становится целью атак плохих парней, а также из-за более высокого уровня безопасности. | ||
+ | |||
+ | Но антивирусные продукты для Linux, разумеется, существуют. Популярное открытое решение – программа ClamAV. Есть и коммерческие продукты, например, Avast. Большинство вирусных сигнатур, которые они ищут – это вирусы для Windows, поэтому запуск таких утилит в Linux защищает компьютеры в основном от неблаговидной роли «переносчиков», т. е. от наличия в них инфицированных файлов, которые могут быть переданы на компьютеры с Windows. | ||
+ | |||
+ | Надеюсь, что эта статья не превратила вас в маниакальных параноиков. Безопасность – это во многом просто здравый смысл. Не забывайте, что однажды сказал президент Эйзенхауэр: «В напрасных поисках абсолютной безопасности мы станем банкротами». | |
Текущая версия на 13:19, 5 ноября 2018
|
|
|
Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает.
Содержание |
[править] По рецептам доктора Брауна
Эзотерическое системное администрирование из причудливых заворотов кишок серверной
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] Подсчет ядер
За кулисами энергоблока сообщества, управляющего разработкой ядра Linux.
Вы слышали о Марке Брауне [Mark Brown] или Томасе Гляйкснере [Thomas Gleixner]? Думаю, нет. Как и я. Но согласно последнему отчету от Linux Foundation, эти два разработчика внесли наибольшее количество изменений в ядро, начиная с версии 2.6.5.
Исходные данные для отчета формируются путем мониторинга изменений на git.kernel.org. Исследуются вопросы «Быстро ли это происходит?», «Кто это делает?», «Что они делают?» и «Кто спонсор?». В ядре Linux более 15 миллионов строк кода – это самый крупный проект совместной разработки в истории вычислительной техники. Для сравнения, во всех семи книгах о Гарри Поттере – чуть больше миллиона слов.
Многие студенты моих курсов спрашивают: «Кто управляет ядром?» Бездумный ответ – «Никто», но на деле существует хорошо отлаженный процесс рассмотрения и утверждения патчей-заплаток ядра (кстати, “patch” – официальный термин для описания набора изменений: например, для добавления новой функции, поддержки нового устройства, исправления ошибки или увеличения производительности). Обычно заплатки рассматриваются всей командой, затем утверждаются разработчиками, отвечающими за соответствующую подсистему, и, наконец, принимаются в основной дистрибутив Линусом Торвальдсом – у него исключительное право решать, что войдет в следующий релиз ядра.
Немного цифр: » 226 – столько компаний работает над ядром 3.2.
» 37 626 – количество файлов в ядре 3.2.
» 14 – средний период времени в минутах между применением патчей к ядру.
» 78 – среднее число дней от выпуска до выпуска.
» 12 243 – максимальное количество патчей, которое когда-либо применялось к версии ядра.
» 17,9 – изменения, приходящиеся на долю индивидуальных разработчиков (%).
[править] Итак, вы хотите стать сисадмином?
Пятая часть серии, которая превратит вас из новичка в звезду системного администрирования. Сейчас мы установим web-сервер. Наконец в этой серии мы подобрались к тому, что должны делать серверы – обслуживать! Я решил установить web-сервер (хотя и не обычный Apache), но попытался обобщить процесс так, чтобы эти навыки пригодились вам при установке любого сервиса.
На всех уроках этой серии мы пользуемся CentOS 6.2. Если вы хотите следовать за мной, установите CentOS (можно и в виртуальную машину) в соответствии с описанием из первой статьи. У многих команд из обсуждаемых в этом месяце большой объем выходных данных, и на все здесь не хватит места. Если вам нужны подробности, то полный транскрипт многих команд есть на нашем сайте: www.linuxformat.com/archives?issue=165, так что смелее обращайтесь к нему в соответствующих местах.
[править] Общая картина
Конечно, детали установки и настройки сервиса сильно зависят от разновидности сервиса, но в целом для этого нужно выполнить следующие шаги:
» Установить сервис.
» Найти и прочесть его man-страницу (иногда для файла настройки есть отдельная man-страница).
» Изменить его конфигурацию в соответствии со своими потребностями.
» Настроить запуск сервиса при загрузке системы.
» Запустить сервис вручную.
» Проверить наличие сообщений об ошибках и/или об успешном запуске в лог-файле.
» Проверить сервис.
[править] Начинаем
В моей CentOS 6 был по умолчанию установлен классический HTTP-сервер Apache, но я решил воспользоваться другим сервером – Lighttpd. На его сайте (lighttpd.net) написано следующее: «Lighttpd – надежный, быстрый, послушный и очень гибкий web-сервер, оптимизированный для высокопроизводительного окружения. У него очень небольшие требования к памяти по сравнению с другими web-серверами, и он бережно расходует ресурсы процессора». Озвучивают его имя как “lighty [легкий]”.
Так как Apache уже установлен на моем компьютере, нужно убедиться, что он не запущен, и не запускать его во время загрузки. Если запустить и Lighttpd, и Apache, они оба попробуют слушать порт 80, а это недопустимо.
# service httpd status
httpd is stopped
# chkconfig httpd --list
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Сервис отключен – отлично. Но чтобы быть полностью уверенными, лучше удалить httpd совсем:
# rpm --erase httpd gnome-user-share
Почему я также удалил пакет gnome-user-share? Потому что rpm говорит, что он зависит от httpd, и я был вполне уверен, что он мне не нужен.
Надежно избавившись от Apache, перейдем к установке Lighttpd. Оказывается, что последнего нет в официальных репозиториях CentOS, как показывает быстрый поиск:
# yum search lighttpd
No Matches found
Но, введя в Google “CentOS6 lighttpd”, я нашел rpmforge и загрузил оттуда небольшой rpm:
# wget http://packages.sw.be/rpmforge-release/rpmforgerelease-0.5.2-2.el6.rf.i686.rpm
Это версия для 32-битных систем. Чтобы загрузить 64-битную версию, измените i686 на x86_64. Команда rpm -qlp с этим пакетом показала, что это не пакет lighttpd, он просто содержит файл .repo, указывающий на репозиторий rpmforge. Он также содержит файлы определения репозиториев для APT, утилиты управления пакетами Debian, но здесь они нам не нужны.
Установим пакет:
# rpm -i rpmforge-release-0.5.2-2.el6.rf.i686.rpm
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
warning: rpmforge-release-0.5.2-2.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Вы увидите, что rpm жалуется на невозможность проверить цифровую подпись пакета, так как у нее нет соответствующего публичного ключа (на самом деле, ключи есть в пакете!). Теперь поиск с yum более удачен:
# yum search lighttpd
lighttpd.i686 : Lightning fast webserver with light system
requirements [Молниеносный web-сервер со скромными требованиями к системе]
и мы можем установить его:
# yum install lighttpd
Так, пока неплохо. Посмотрим, что у нас есть, перечислив файлы в пакете:
# rpm -ql lighttpd
... здесь появится длинный список файлов ...
Этот список дает ответы на несколько важных вопросов (не забудьте, что полный транскрипт есть на нашем сайте):
» Какие исполняемые файлы здесь есть? Их два: lighttpd и lighttpd-angel (что бы это ни было).
» Где находятся файлы настройки? Файл настройки верхнего уровня – /etc/lighttpd/lighttpd.conf, а файлы настройки для отдельных модулей находятся в каталоге /etc/lighttpd/conf.d.
» Куда помещаются файлы, которые должен обслуживать сервер? В каталог /srv/www/lighttpd (согласно официальному стандарту иерархии файловой системы – Filesystem Hierarchy Standard, им вообще-то должен быть /srv/www, но многие системы не следуют этому правилу).
» Есть ли man-страницы? Да, есть одна страница под названием lighttpd.
» Есть ли лог-файл? Да, это /var/log/lighttpd (на самом деле оказалось, что это целый каталог с лог-файлами).
» Есть ли другая документация? Да, в каталоге /usr/share/doc/lighttpd-1.4.28 есть много текстовых файлов.
Следующий шаг – ознакомиться с man-страницей. Она довольно короткая, так как лишь описывает параметры командной строки и отсылает нас к файлам /usr/share/doc за более подробной информацией. Это начинает казаться долгой каторгой, а я хочу немедленного удовлетворения. Поэтому для минимальной демонстрации работы сервера я сделал вот что.
Во-первых, добавил одну строку текста в файл /srv/www/lighttpd/index.html, чтобы у сервера было что обслуживать. При желании можете добавить туда много хитроумного HTML-кода, но для этого теста мне было достаточно строки:
This is a test from Chris! [Это тест Криса!]
Затем попытался запустить сервер:
# service lighttpd start
Starting lighttpd: 2012-09-06 15:16:43: (server.c.722) couldn’t set ‘max filedescriptors’ Permission denied
Ай-яй-яй. Что здесь не так? Сообщение об отсутствии прав доступа от процесса, запущенного от имени суперпользователя-root, необычно и скорее всего означает, что операцию запрещает SELinux. Чтобы это проверить, я попробовал отключить SELinux и снова запустить сервер:
# setenforce 0
# service lighttpd start
Starting lighttpd: [ OK ]
Теперь все хорошо. Если вы подумали: «Какое умное и проницательное предположение!», скажу, что за последние несколько лет работы с системами в стиле RedHat 6 (в которых SELinux по умолчанию работает в принудительном режиме Enforcing) каждый раз, когда что-то не работает и я не могу найти веской причины, моя обычная реакция – попробовать отключить SELinux. Это не совсем правильное решение, но в нашем случае оно сработало.
Хороший способ узнать, запущен ли сервер – проверить, слушает ли он заданный порт (в данном случае, 80). Это легко:
# lsof -i TCP:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
lighttpd 2030 lighttpd 4u IPv4 15277 0t0 TCP *:http (LISTEN)
– у нас все в порядке.
Учтите, запуск сервиса командой service не означает, что он будет запускаться при загрузке системы. Для этого нужно выполнить еще одну команду:
# chkconfig lighttpd on
[править] Открываем порт
Прежде чем подключиться к серверу, нужно сделать еще одну вещь – открыть порт 80 в брандмауэре. Это легко сделать утилитой system-config-firewall (см. экранный снимок на стр. 61), которой можно воспользоваться, даже если у вас есть только ssh-доступ к серверу. (Не закройте случайно порт для ssh!). Если теперь открыть в браузере адрес сервера (http://192.168.1.64 – у вас, конечно, IP-адрес будет другим), на экране должен появиться текст, который был добавлен в index.html.
Итак, вот оно – наше немедленное удовлетворение! Мы смогли сделать это, не заглядывая в файлы настройки; но у вас вряд ли получится продвинуться намного дальше, как следует не разобравшись в них и не изменив их. Файл настройки верхнего уровня lighttpd (/etc/lighttpd/lighttpd.conf) – типичный пример такого файла, полный пояснений-комментариев и закомментированных записей. Иногда из-за этих комментариев сложно увидеть записи, поэтому вот маленький прием, который поможет от них избавиться:
# grep -v ‘^#’ /etc/lighttpd/lighttpd.conf | grep -v ‘^$’
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Эта команда исключит из содержимого файла комментарии и пустые строки. Выберем несколько основных строк:
var.server_root = “/srv/www”
server.port = 80
server.username = “lighttpd”
server.document-root = server_root + “/lighttpd”
Они задают соответственно:
» Базовый каталог. Несколько других важных каталогов задаются относительно него.
» Номер порта, который будет слушать сервер.
» Пользователь, от имени которого будет запускаться сервер. Изначально он запускается от имени суперпользователя-root (чтобы связаться с портом 80); затем переключается на указанного пользователя. Этот пользователь добавляется в /etc/passwd при установке пакета.
» Каталог, содержащий обслуживаемое содержимое.
В файле lighttpd также часто задаются параметры производительности. Пример из этого файла – строка
server.max-connections = 1024
Похоже, что разработчики задали их значения правильно, и я не советовал бы вам менять их, если только не (а) вы знаете, что делаете, и (б) вы сможете объективно измерить любые изменения в производительности при изменении параметров.
[править] Таинственный сад
Конечно, теперь можно сделать многое другое – включить скрипты PHP CGI, настроить несколько виртуальных хостов и т. д. Каждое из этих действий снова погрузит вас в файлы. На самом деле при установке любого сервиса вы попадаете в новый мини-мир синтаксиса файлов настройки. Это как открыть дверь в таинственный сад, где вы доселе не бывали.
Прежде чем закончить, вспомним о SELinux. Как вы помните, мы отключили его, чтобы быстро все поправить. Однако, как бы я ни относился к SELinux, он свое дело делает, и просто отключить его – не лучшая идея. Вместо этого нужно разработать новую политику SELinux, которая позволила бы Lighttpd делать то, что ему необходимо. Оказывается, это относительно просто. Вот что нужно сделать: сначала с помощью auditd мы запишем в журнал те действия, которые lighttpd пытается выполнить при запуске. Затем воспользуемся маленькой удобной программой audit2allow (из пакета policycoreutils-python), чтобы преобразовать запрещенные операции, записанные auditd в лог-файл, в правила политики SELinux. Наконец, мы установим новые правила с помощью semodule.
Команды приводятся ниже. Не забудьте заглянуть в полный транскрипт за подробностями.
Сначала переформируем всю политику SELinux. Это может занять минуту или две:
# semodule -DB
Мне также пришлось установить программу audit2allow:
# yum install policycoreutils-python
Эта команда установила еще восемь пакетов для разрешения зависимостей. Затем перезапустим демон auditd:
# service auditd restart
Теперь снова включим SELinux и попробуем перезапустить lighttpd. Да, снова ничего не получится, но нам нужно поймать запрещающие сообщения. Они будут записаны в /var/log/audit/audit.log:
# setenforce 1
# service lighttpd restart
Вот хитрый момент. Мы извлекаем соответствующие сообщения, записанные auditd, и передаем их audit2allow, которая преобразует их в правила политик SELinux:
# grep lighttpd /var/log/audit/audit.log | audit2allow -M lighttpdmaxfds
Сейчас в текущем каталоге появился файл lighttpdmaxfds.te. Это обычный текстовый файл. Также появится скомпилированная (двоичная) версия в lighttpdmaxfds.pp. Ее-то мы и загрузим:
# semodule -i lighttpdmaxfds.pp
Теперь lighttpd нормально запускается с включенным SELinux:
# service lighttpd restart
Stopping lighttpd: [FAILED]
Starting lighttpd: [ OK ]
Наконец, принудительно переформируем политику SELinux:
# semodule -B
(благодарю за помощь Google и некого FL0 на сайте Warp1337).
У меня осталось место только на пару слов о лог-файлах, о которых за всем этим мы позабыли. Для таких сервисов, как lighttpd, которые пишут в свои журналы напрямую (а не через rsyslog), лог-файлы легко найти, выведя список файлов, открытых web-сервером, например, так:
# lsof -c lighttpd | grep /var/log
Команда показывает, что это файлы /var/log/error.log и /var/log/access.log. В них нет ничего особенно интересного, но в лог-файле с ошибками часто есть сообщения, из которых можно понять, почему не работает сервис, особенно если это сервис вроде bind (сервер DNS), очень придирчивый к синтаксису файлов настройки и файлов зон. Вот удобный способ наблюдения за запуском сервера: откройте два терминала рядом и в первом запустите tail -f с именем лог-файла (так вы сможете видеть новые сообщения), а во втором – запустите демон командой service.
Одна из моих самых частых ошибок при решении проблем – обращение к журналам в самую последнюю очередь; на самом деле при диагностике проблемы прежде всего загляните именно в них.
В последней части небольшой серии мы наденем наши шляпы безопасности и обратимся к этой теме. Увидимся! |
[править] Устранение ошибок
Конечно, при первом запуске ваш сервис будет работать отлично, и вы можете пойти погулять и полюбоваться барашками в небе. Но если что-то пойдет не так, вот несколько стандартных вещей, которые стоит проверить:
» Запущен ли сервис на самом деле? (Поищите его командой grep в выводе ps -ef.)
» Открыт ли нужный(е) порт(ы)? (На этот вопрос ответит lsof -i.)
» Открыт ли порт в брандмауэре? (Запустите iptables -L или воспользуйтесь системной утилитой настройки брандмауэра systemconfig-firewall.)
» Появляются ли какие-то сообщения в лог-файле с момента запуска сервиса до попытки обращения к нему?
[править] Профилирование и оптимизация
Код тормозит? Требуется оптимизация? Изучите мир статистики производительности ядра с perf.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Подозреваю, что в мире есть множество вопиюще недозагруженных серверов, время простоя которых превышает 90 %. В самом деле, увеличение загрузки серверов – один из движущих причин использования виртуализации. Но на другом конце спектра есть и много систем, которые выжимают производительность из Linux до крайнего предела. Если вы пытаетесь нацедить из своих серверов еще капельку, рассмотрите утилиту мониторинга производительности под названием perf, способную помочь найти наиболее часто используемые участки кода, оптимизация которых принесет плоды с наибольшей вероятностью.
Perf – интерфейс командной строки к свежей (ну, довольно свежей) возможности ядра Linux: записи параметров производительности для выполняемого кода. Некоторые из этих замеров аппаратные, они используют счетчики процессора для фиксации таких событий, как промахи кэша или для подсчета количества выполненных команд. А некоторые – программные, в них с помощью таймеров или других программных событий анализируется поведение программы.
Синтаксис команд perf напоминает синтаксис rpm или git наличием множества субкоманд. Например, perf list выведет список доступных событий, perf top сформирует динамические данные профилирования для всей системы (нечто вроде top), perf record запишет заданные события для заданной команды (она также может подключиться к запущенному процессу), а perf report сформирует отчет по сгенерированным данным. С perf annotate можно даже спуститься до уровня машинных команд. Она запустит заданную команду, разберет каждую функцию и сформирует отчет с процентными данными для каждой выполненной команды. Но не придавайте результатам слишком много значения, если выборка мала. Помните шутку о лжи, гнусной лжи и статистике?
После запуска perf у вас появится множество цифр, как после vmstat или cat /proc/interrupts; и уж будьте уверены, они вам о чем-то хотят сообщить, нужно только знать – что. Думаю, следует написать руководство с примерами. Есть добровольцы?
«Не придавайте результатам много значения, если выборка мала.»
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] Итак, вы хотите стать сисадмином?
Шестая часть серии, которая превратит вас из новичка в звезду системного администрирования.
[править] Поговорим о безопасности.
В этой, последней, части серии я хочу обратиться к теме безопасности серверов. Наверное, оставить ее напоследок было ошибкой, поскольку можно подумать, что безопасность – это то, чем можно заняться в последнюю очередь, когда все остальное уже сделано. Так поступать не стоит. Безопасность и разумный уровень паранойи должны быть заложены во всех ваших действиях. Кстати, если вам покажется, что большая часть того, о чем мы поговорим сегодня – нечто само собой разумеющееся, для этого есть причина. Для большинства из этого.
Для начала попытаемся дать определение безопасности. Формальная модель безопасности описывается моделью CIA – конфиденциальность (Confidentiality), целостность (Integrity) и доступность (Availability).
Конфиденциальность – это гарантия того, что информация на ваших серверах доступна только тем, у кого есть право ей пользоваться. Целостность – это гарантия того, что информация сохраняется в первоначальном виде – это относится не только к данным, но и к программам. А доступность – это гарантия того, что данные и сервисы, предоставляемые системой, доступны именно должным образом (например, можно удовлетворить два первых требования, отключив компьютер от сети и заперев его в сейф, но это не слишком хорошо повлияет на доступность данных; помните, что атаки, нацеленные на отказ от обслуживания и призванные неблагоприятно повлиять на доступность вашей системы – одна из самых популярных разновидностей вредоносных атак).
Безопасность – это не программа, которую можно установить. Это постоянный процесс. Поэтому вот план поддержки безопасности системы из десяти пунктов.
1: Вовремя загружайте обновления безопасности своего дистрибутива
Время от времени в приложениях выявляются потенциальные уязвимости. У крупных дистрибутивов Linux есть сервисы обновления, с которых можно загрузить обновления безопасности для исправления этих ошибок в течение периода поддержки дистрибутива. Для RedHat 6 это 10 лет (но нужно приобрести подписку). В предыдущих версиях RedHat для применения заплат использовалась утилита up2date, но от нее отказались в пользу yum; благодаря модулю расширения yum-plugin-security, yum сможет вывести список обновлений безопасности и установить их.
Другой пример – релизы Ubuntu Server с долгосрочной поддержкой [Long Term Support], например, 12.04 LTS, бесплатны и поддерживаются в течение пяти лет. В Ubuntu для автоматической установки обновленных пакетов можно воспользоваться пакетом unattendedupgrades – в нем можно настроить обновление всех пакетов или только обновлений безопасности.
2: Выбирайте надежные пароли
Любая система, у которой есть внешнее интернет-подключение и сервис аутентификации (например, ssh), ежедневно подвергается тысячам попыток несанкционированного входа в систему от автоматизированных скриптов. Такова жизнь.
Выбор надежных паролей для учетных записей пользователя жизненно необходим. Я писал об этом недавно (см. LXF160) и не буду повторяться. Но не забудьте о паролях на маршрутизаторах и других сетевых устройствах – никогда не оставляйте их в значениях по умолчанию.
3: Регулярно делайте резервные копии
Возможно, вы думаете, что между резервным копированием и безопасностью нет прямой связи. Но помните, что одна из составляющих CIA – доступность. Поэтому если плохие парни уничтожат ваши данные (или если ваш незапятнанный диск испустит последний вздох и скончается), резервные копии имеют решающее значение для возобновления доступности данных.
Существует множество утилит резервного копирования на разные случаи жизни. В простейшем случае воспользуйтесь rsync для эффективного переноса своей файловой системы на удаленный компьютер, или создайте архив с файлами на съемном носителе с помощью tar. Если вы это делаете, помните о том, от чего защищаетесь. Я регулярно делаю архивы своей личной файловой системы на внешний жесткий диск с помощью tar, но, к своему стыду, ношу этот диск в сумке для ноутбука вместе со всем остальным. Так я защищаюсь от неисправности жесткого диска, но не от кражи сумки для ноутбука.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Если у вас несколько серверов, вас могут заинтересовать средства централизованного резервного копирования, такие как BackupPC или Bacula, с помощью которых можно делать резервные копии нескольких систем на один компьютер. Для настройки обеих потребуются некоторые усилия. Подумайте о том, где будете хранить резервные копии. Лучше всего хранить их в другом месте (это поможет, если ваш дом сгорит дотла), но это неудобно, если нужно быстро восстановить данные. Также нужно доверять тем, кто будет хранить или шифровать их. Скажем, многие хранят их на облаке (например, в Amazon S3), это позволяет быстро восстановить данные и стоит порядка 10 центов за 1 ГБ в месяц.
Недавно Amazon запустила новый сервис долговременного архивирования Glacier, время получения данных в котором может составлять до нескольких часов. Расценки начинаются от 1 цента за ГБ в месяц. Разумеется, для резервного копирования в облако нужен хороший исходящий канал.
4: Не запускайте сервисов, которые вам не нужны
Это очевидно. Если вам не нужно предоставлять клиентам, скажем, FTP, не запускайте сервер FTP. Лучше не устанавливайте его вообще. Не то что он небезопасен, но в серверах FTP определенно были обнаружены уязвимости, позволяющие получить доступ root. Зачем рисковать? Это было проблемой ранних версий Unix, в которых все сервисы по умолчанию были запущены и приходилось отключать большинство из них (конечно, и времена тогда были проще). В современных дистрибутивах Linux по умолчанию (обычно) включен только ssh.
5: Обучайте своих пользователей
Понимаю, что если мы говорим о серверах, трудно понять, что имеется в виду под «пользователем». В данном контексте это некто, обладающий информацией, которая может помочь злоумышленникам атаковать вашу систему, или тот, у кого есть учетная запись на настольном компьютере, подключенном к сети. Получение доступа к такому компьютеру – прекрасное начало для злоумышленника, пытающегося подобраться к корпоративной базе данных. Конечно, было бы здорово избавиться от ненадежных компьютеров с Windows и заменить их на компьютеры с Linux, но это потребует времени. Поэтому как минимум убедитесь, что пользователи знакомы с основами: не открывать вложения в письмах от незнакомых людей; блокировать компьютер, уходя на обед; не сообщать никому свой пароль; и не посещать сайты, не имеющие отношения к работе.
У SANS есть несколько отличнных ресурсов, которые помогут в обучении пользователей: www.securingthehuman.org и www.sans.org. И если у вашей компании нет программы обеспечения безопасности, подумайте, как убедить своего босса начать ее.
6: Читайте журналы (или хотя бы отчеты)
Ну да, лог-файлы неподдельно скучны, и вряд ли кто-то будет их читать. Но есть утилиты, например, logwatch, которые прочитают их за вас и сгенерируют отчеты. Например, команда
# logwatch --detail med --range Today --print
сформирует отчет о сегодняшних логах. В дистрибутивах logwatch часто включена и настроена по умолчанию. Обычно она запускается как ежедневное задание cron и отправляет отчеты на почту root. Но пользы от нее никакой, если не заглядывать в отчеты. Что в них следует искать? Сообщения о добавленных учетных записях, которые вам незнакомы, о новых (неизвестных) установленных программах и о повторяющихся ошибках входа в систему от таких программ, как sshd и su.
7: Не отключайте средства мандатного контроля доступа
Если вы не поняли, о чем я, то под ними я имею в виду такие вещи, как SELinux и AppArmor. Несколько раз пострадав от SELinux (как я на моих учебных курсах), есть соблазн его отключить. Если что-то не работает, можно временно отключить SELinux, чтобы узнать, в нем ли дело, хотя если ваш уровень паранойи достаточно высок, вы не захотите этого делать. Но отключать его совсем – явно не лучшая идея. У него есть свои задачи (если у вас есть старые номера, загляните в LXF158, там я немного писал об этом).
С помощью утилиты audit2allow можно создать правила SELinux для приложений, у которых их нет. Месяц назад я рассказывал об этом. Для систем с AppArmor есть утилита aa-genprof.
8: Изучите и безопасно настройте запускаемые приложения
Здесь трудно сказать что-то конкретное: все зависит от приложений. Вот несколько примеров. Во-первых, для демона sshd можно отключить вход в систему от имени суперпользователя-root, что заставит пользователей использовать обычные учетные записи и при необходимости переключаться на root с помощью su. Убедитесь, что он настроен именно так (посмотрите значение параметра PermitRootLogin в /etc/ssh/sshd_config). Другой пример – в Samba можно ограничивать диапазоны IP-адресов, в которые она экспортирует разделяемые каталоги. Убедитесь, что эти диапазоны покрывают вашу сеть и ничего кроме.
9: Настройте брандмауэр
Запустить брандмауэр с фильтрацией пакетов в Linux просто, благодаря коду сетевого фильтра, который встроен в ядро, и команде iptables, которая управляет правилами. Однако если вы новичок в Linux, я не советовал бы запускать iptables напрямую. Наборы правил для настоящего брандмауэра могут быть очень сложными и требуют глубоких знаний TCP/IP.
В RedHat пользуйтесь утилитой system-config-firewall. С ней легко открыть нужные порты; также можно задать «доверенные» интерфейсы, которые не будут фильтроваться (например, для внутренних сетей).
В Ubuntu есть небольшая утилитка ufw, которая с помощью довольно простого (по сравнению с iptables) синтаксиса позволяет управлять правилами. Например, для открытия порта достаточно скомандовать
$ sudo ufw allow ssh
А если хотите сделать кое-что похитрее, можно сделать следующее:
$ sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22
Так вы получаете больше возможностей по сравнению с утилитами вроде system-config-firewall.
С помощью довольно удачно названной графической программы firestarter (www.fs-security.com) можно легко задавать правила и просматривать трафик, который блокирует брандмауэр. Стоит взглянуть и на shorewall (www.shorewall.net). Это еще одна утилита, которая сгенерирует наборы правил iptables из описания поведения брандмауэра на языке высокого уровня.
Мир Shorewall – это не щелчки мышью, а текстовые конфигурационные файлы. В них можно задать определенные «зоны» и оговорить движение трафика между ними. Это именно то, что требуется для настройки шлюза, у которого есть сетевые соединения с внешним миром, с внутренней частной сетью и с «демилитаризованной зоной» публично доступных серверов.
10: Регулярно запускайте средство обнаружения вторжений
Принцип работы средств обнаружения вторжений обычно состоит в том, что они делают «снимок» файловой системы (или указанных вами частей) в исходном, чистом состоянии компьютера, а затем периодически делают новые снимки и сравнивают их с оригиналом. Снимок – не полная копия файлов, он содержит лишь такие параметры, как размер, владельца, время доступа и контрольную сумму MD5 каждого файла. Этого обычно достаточно для распознавания, что что-то было изменено.
Обычно подобным образом нужно отслеживать только системные каталоги, например, /etc, /bin и /usr/bin, все изменения в которых должны быть вам известны. Конечно, такие утилиты скорее позволяют среагировать на проблему, чем предотвратить ее. Они не помешают хакеру взломать вашу систему, но вы по крайней мере об этом узнаете.
Классическая утилита для этих целей – tripwire, и ее открытая версия все еще доступна (http://bit.ly/h2pr9). Однако полноценная версия уровня предприятия стала коммерческим продуктом от Tripwire, Inc. Еще одна коммерческая утилита – Cimtrak. Также можете взглянуть на AIDE (Automatic Intrusion Detection Environment – среда автоматического определения вторжений), которая скорее всего есть в репозиториях вашего дистрибутива. Учтите, что эти утилиты нужно настраивать, и отчеты, как и лог-файлы, бесполезны, если их не читать.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Если вы пришли из мира Windows, то, наверное, интересуетесь, почему я не предложил вам установить антивирус (один из моих сыновей на своей последней работе управлял инфраструктурой крупного программного проекта и проводил, кажется, половину своего времени за установкой, обновлением и запуском антивирусных программ). Вредоносное ПО в Linux представляет собой гораздо меньшую проблему – частично, подозреваю, потому, что Linux гораздо реже становится целью атак плохих парней, а также из-за более высокого уровня безопасности.
Но антивирусные продукты для Linux, разумеется, существуют. Популярное открытое решение – программа ClamAV. Есть и коммерческие продукты, например, Avast. Большинство вирусных сигнатур, которые они ищут – это вирусы для Windows, поэтому запуск таких утилит в Linux защищает компьютеры в основном от неблаговидной роли «переносчиков», т. е. от наличия в них инфицированных файлов, которые могут быть переданы на компьютеры с Windows.
Надеюсь, что эта статья не превратила вас в маниакальных параноиков. Безопасность – это во многом просто здравый смысл. Не забывайте, что однажды сказал президент Эйзенхауэр: «В напрасных поисках абсолютной безопасности мы станем банкротами». |