LXF156:По рецептам доктора Брауна
Olkol (обсуждение | вклад) (→Начинаем) |
Olkol (обсуждение | вклад) (→Управляем ресурсами) |
||
(не показаны 18 промежуточных версий 1 участника) | |||
Строка 21: | Строка 21: | ||
Недавно я был у дантиста и заполнял форму, требующую проставить несколько галочек напротив вопросов об этнической принадлежности. Однако секретарь деликатно подсказал мне, что если я не хочу, то заполнять эти пункты не обязательно. Нельзя ли точно так же поступать с электронной почтой?}} | Недавно я был у дантиста и заполнял форму, требующую проставить несколько галочек напротив вопросов об этнической принадлежности. Однако секретарь деликатно подсказал мне, что если я не хочу, то заполнять эти пункты не обязательно. Нельзя ли точно так же поступать с электронной почтой?}} | ||
− | |||
==Дай работу, насяльника== | ==Дай работу, насяльника== | ||
[[Файл: LXF156.sysadmin.spectru_opt2.png|right |300px ]] | [[Файл: LXF156.sysadmin.spectru_opt2.png|right |300px ]] | ||
Строка 68: | Строка 67: | ||
Container private area was created | Container private area was created | ||
</pre> | </pre> | ||
− | |||
{{Врезка|left|Заголовок= Спектр технологий виртуализации|Ширина=98%|Содержание= [[Файл:LXF156.sysadmin.spectru_opt.png | |thumb|500px|Классификация технологий контейнеров по тому, что они обобществляют и разделяют.]] | {{Врезка|left|Заголовок= Спектр технологий виртуализации|Ширина=98%|Содержание= [[Файл:LXF156.sysadmin.spectru_opt.png | |thumb|500px|Классификация технологий контейнеров по тому, что они обобществляют и разделяют.]] | ||
− | Один из способов разобраться в ошарашивающем наборе технологий виртуализации – исследовать степень разделения, предоставляемую каждой из них. В нижнем конце спектра – процесс Linux, который разделяет адресное пространство, дескрипторы файлов, переменные окружения, приоритет планирования и пользователя. | + | <span style="font-size: 150%"> Один из способов разобраться в ошарашивающем наборе технологий виртуализации – исследовать степень разделения, предоставляемую каждой из них. В нижнем конце спектра – процесс Linux, который разделяет адресное пространство, дескрипторы файлов, переменные окружения, приоритет планирования и пользователя. |
+ | </span> | ||
+ | <span style="font-size: 150%"> | ||
Это старая история, и мы обычно не удостаиваем ее термином «виртуализация», но наши размышления полезно начать именно с нее, потому что другие контейнеры виртуализации по существу представляют собой лишь расширения этой идеи. Далее в нашем спектре – chroot jails [jail – англ. тюрьма], когда на каждую «тюрьму» отводится отдельная файловая система. Это небезопасная технология (из «тюрьмы» легко вырваться), но она предоставляет «песочницу», где можно попробовать различные конфигурации без риска вывести из строя всю систему. | Это старая история, и мы обычно не удостаиваем ее термином «виртуализация», но наши размышления полезно начать именно с нее, потому что другие контейнеры виртуализации по существу представляют собой лишь расширения этой идеи. Далее в нашем спектре – chroot jails [jail – англ. тюрьма], когда на каждую «тюрьму» отводится отдельная файловая система. Это небезопасная технология (из «тюрьмы» легко вырваться), но она предоставляет «песочницу», где можно попробовать различные конфигурации без риска вывести из строя всю систему. | ||
+ | </span> | ||
− | В верхнем конце спектра – технологии полной виртуализации устройств, создающие иллюзии отдельных дисковых разделов, сетевых интерфейсов и операционных систем. OpenVZ лежит где-то в середине. Его достоинство – создание достаточно убедительной иллюзии независимо администрируемого компьютера без затрат на использование технологии полной виртуализации. | + | <span style="font-size: 150%"> |
− | }} | + | В верхнем конце спектра – технологии полной виртуализации устройств, создающие иллюзии отдельных дисковых разделов, сетевых интерфейсов и операционных систем. OpenVZ лежит где-то в середине. Его достоинство – создание достаточно убедительной иллюзии независимо администрируемого компьютера без затрат на использование технологии полной виртуализации. </span> |
+ | }} Здесь 102 – идентификатор контейнера (CTID), который представляет собой просто целое число, идентифицирующее контейнер. По умолчанию используются значения от 100 и выше. Идентификаторы контейнеров должны быть уникальными в каждом физическом хосте (или «узле оборудования», на языке OpenVZ); хотя если у провайдера несколько хостов, то, пожалуй, лучше, чтобы значения CTID были уникальными в пределах организации. Теперь можно настроить экземпляр контейнера, задав имя хоста, IP-адрес и пароль root: | ||
− | + | [[Файл: LXF156.sysadmin.spectru_opt3.png|left |400px |thumb|OpenVZ: виртуальные частные серверы, создаваемые за секунды из готовых шаблонов, с установкой поверх общего ядра Linux.]] | |
+ | <pre> | ||
+ | # vzctl set 102 --hostname test102.example.com --save | ||
+ | </pre> | ||
Saved parameters for CT 102 | Saved parameters for CT 102 | ||
− | # vzctl set 102 --ipadd 192.168.1.102 --save | + | <pre> # vzctl set 102 --ipadd 192.168.1.102 --save</pre> |
Saved parameters for CT 102 | Saved parameters for CT 102 | ||
− | # vzctl set 102 --userpasswd root:pink-turtle | + | <pre> # vzctl set 102 --userpasswd root:pink-turtle</pre> |
Теперь все готово для запуска экземпляра: | Теперь все готово для запуска экземпляра: | ||
− | # vzctl start 102 | + | <pre> # vzctl start 102</pre> |
Starting container ... | Starting container ... | ||
Строка 105: | Строка 110: | ||
... и запуска в нем сервера sshd: | ... и запуска в нем сервера sshd: | ||
− | # vzctl exec 102 service sshd start | + | <pre> # vzctl exec 102 service sshd start</pre> |
Starting sshd: [ OK ] | Starting sshd: [ OK ] | ||
Строка 111: | Строка 116: | ||
Наконец, я могу подключиться к новому VPS по ssh: | Наконец, я могу подключиться к новому VPS по ssh: | ||
− | # ssh 192.168.1.102 | + | <pre> # ssh 192.168.1.102</pre> |
root@192.168.1.102’s password: | root@192.168.1.102’s password: | ||
Строка 119: | Строка 124: | ||
Сейчас я смотрю в командную строку своего VPS, хотя, конечно, на практике это будут делать клиенты хостинг-провайдера. | Сейчас я смотрю в командную строку своего VPS, хотя, конечно, на практике это будут делать клиенты хостинг-провайдера. | ||
− | Остановим контейнер | + | ==Остановим контейнер== |
Конечно, может показаться, что для запуска одного сервера мы приложили слишком много усилий, но легко написать небольшой скрипт, который бы это автоматизировал. Можете даже представить себе хостинг-провайдера, который немного знаком с написанием скриптов и сделал несколько скриптов (и, возможно, web-интерфейс), чтобы клиенты могли сами создавать экземпляры VPS. Контейнер можно остановить следующим образом: | Конечно, может показаться, что для запуска одного сервера мы приложили слишком много усилий, но легко написать небольшой скрипт, который бы это автоматизировал. Можете даже представить себе хостинг-провайдера, который немного знаком с написанием скриптов и сделал несколько скриптов (и, возможно, web-интерфейс), чтобы клиенты могли сами создавать экземпляры VPS. Контейнер можно остановить следующим образом: | ||
− | # vzctl stop 102 | + | {{Врезка|right|Заголовок= |Ширина=20%|Содержание=Утилиты командной строки |
+ | |||
+ | *vzlist Выводит список всех контейнеров (по умолчанию содержит только запущенные контейнеры). | ||
+ | |||
+ | *vzcpucheck Отображает использование процессора для каждого контейнера. | ||
+ | |||
+ | *vzcalc Отображает долю системных ресурсов хоста, используемых заданным контейнером. | ||
+ | |||
+ | *Создает пример файла настройки контейнера, который можно использовать для разделения ресурсов узла оборудования на N равных частей. | ||
+ | |||
+ | *vzmigrate Переносит контейнер с одного узла оборудования на другой. Делать это можно, даже когда они запущены. Фантастика! }} | ||
+ | <pre> # vzctl stop 102</pre> | ||
Stopping container ... | Stopping container ... | ||
Строка 133: | Строка 149: | ||
...а навсегда уничтожить – так: | ...а навсегда уничтожить – так: | ||
− | # vzctl destroy 102 | + | <pre> # vzctl destroy 102</pre> |
Вы видите, что команда vzctl – «рабочая лошадка» для управления контейнером. Подкомандой set задается набор параметров – определяя, нужно ли запускать контейнер автоматически при загрузке хоста, создать пароли для учетных записей пользователей, добавить IP-адреса, задать MAC-адрес контейнера и лимиты на потребление ресурсов. Подкоманда exec позволяет запустить произвольную команду в контексте заданного контейнера. Например, список открытых портов контейнера можно вывести так: | Вы видите, что команда vzctl – «рабочая лошадка» для управления контейнером. Подкомандой set задается набор параметров – определяя, нужно ли запускать контейнер автоматически при загрузке хоста, создать пароли для учетных записей пользователей, добавить IP-адреса, задать MAC-адрес контейнера и лимиты на потребление ресурсов. Подкоманда exec позволяет запустить произвольную команду в контексте заданного контейнера. Например, список открытых портов контейнера можно вывести так: | ||
Строка 153: | Строка 169: | ||
У каждого контейнера есть свой IP-адрес и свое личное пространство номеров портов. Так, порт 80 контейнера 102 полностью отделен от порта 80 контейнера 103. «За кулисами» OpenVZ использует глобальный файл настройки /etc/vz/vz.conf (применяемый ко всем контейнерам) и файлы настройки контейнеров /etc/vz/conf/xxx.conf, где xxx – идентификатор контейнера. Установка Live CD содержит примеры файлов, а подробности можно узнать на man-странице vz.conf. У хостинг-провайдера решения вроде OpenVZ оставляют некое ощущение «всех яиц в одной корзине», в том смысле, что если физический сервер выйдет из строя или будет атакован хакером, он по сути останется без виртуальных частных серверов клиентов. Но это справедливо для всех технологий виртуализации. | У каждого контейнера есть свой IP-адрес и свое личное пространство номеров портов. Так, порт 80 контейнера 102 полностью отделен от порта 80 контейнера 103. «За кулисами» OpenVZ использует глобальный файл настройки /etc/vz/vz.conf (применяемый ко всем контейнерам) и файлы настройки контейнеров /etc/vz/conf/xxx.conf, где xxx – идентификатор контейнера. Установка Live CD содержит примеры файлов, а подробности можно узнать на man-странице vz.conf. У хостинг-провайдера решения вроде OpenVZ оставляют некое ощущение «всех яиц в одной корзине», в том смысле, что если физический сервер выйдет из строя или будет атакован хакером, он по сути останется без виртуальных частных серверов клиентов. Но это справедливо для всех технологий виртуализации. | ||
− | Управляем ресурсами | + | ==Управляем ресурсами== |
OpenVZ – не технология полной виртуализации. Хотя каждый контейнер видит свою собственную файловую систему, он не видит собственных дисковых разделов фиксированного размера. Вместо этого файловая система контейнера связывается с файловой системой хоста, так что (например) каталог /home контейнера с идентификатором 102 представляет собой каталог /vz/private/102/home хоста. | OpenVZ – не технология полной виртуализации. Хотя каждый контейнер видит свою собственную файловую систему, он не видит собственных дисковых разделов фиксированного размера. Вместо этого файловая система контейнера связывается с файловой системой хоста, так что (например) каталог /home контейнера с идентификатором 102 представляет собой каталог /vz/private/102/home хоста. | ||
Строка 161: | Строка 177: | ||
Последний хитрый прием OpenVZ – возможность переноса VPS с одного узла устройств на другой, даже при работающем VPS. Для хостинг-провайдера, который только что раскошелился на дополнительное оборудование и хочет распределить нагрузку пользователя на новые компьютеры, это потрясающая возможность. На сайте OpenVZ есть руководство пользователя, хотя местами его не помешало бы и обновить, и полный набор man-страниц (http://wiki.openvz.org/images/9/9a/Man_pages.pdf). Но лучший способ знакомства с ним – установить программу и попробовать что-нибудь сделать. В этом и заключается прелесть открытого ПО. | Последний хитрый прием OpenVZ – возможность переноса VPS с одного узла устройств на другой, даже при работающем VPS. Для хостинг-провайдера, который только что раскошелился на дополнительное оборудование и хочет распределить нагрузку пользователя на новые компьютеры, это потрясающая возможность. На сайте OpenVZ есть руководство пользователя, хотя местами его не помешало бы и обновить, и полный набор man-страниц (http://wiki.openvz.org/images/9/9a/Man_pages.pdf). Но лучший способ знакомства с ним – установить программу и попробовать что-нибудь сделать. В этом и заключается прелесть открытого ПО. | ||
+ | =Etcetera в иллюстрациях – часть 4= | ||
+ | ''Изучайте файлы в /etc каждый месяц с нашим удобным руководством. В этот раз знакомимся с hosts.allow и hosts.deny.'' | ||
− | LXF156.sysadmin. | + | [[Файл: LXF156.sysadmin.spectru_opt4.png|right |400px |thumb|Файл /etc/hosts.allow позволяет отфильтровать подключения к сервису путем идентификации клиентского компьютера.]] |
− | + | ||
− | + | '''Ф'''айлы /etc/hosts.allow и /etc/hosts.deny — файлы настройки механизма управления доступом, который называется «обертки TCP [TCP wrappers]» и предоставляет сетевым сервисам дополнительный уровень безопасности, позволяя управлять тем, какие сервисы могут быть доступны с определенных клиентских компьютеров или сетей. TCP wrappers были написаны Виетсой Венема [Wietsa Venema], который работал в Университете Эйндховена и, пожалуй, более всего известен как автор почтовой системы Postfix и таких утилит безопасности, как SATAN и Coroner’s Toolkit. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Существует два подхода в использовании TCP wrappers. Первый – «невиновен, пока вина не доказана». В нем все подключения разрешены, если они явно не заблокированы в hosts.deny. Второй – «виновен, пока не доказано обратное»: все соединения блокируются, если они явно не разрешены в hosts.allow. Строгие администраторы, не допускающие течи на судне, наверняка выберут второй подход и начнут с файла hosts.deny, содержащего всего одну строку: | Существует два подхода в использовании TCP wrappers. Первый – «невиновен, пока вина не доказана». В нем все подключения разрешены, если они явно не заблокированы в hosts.deny. Второй – «виновен, пока не доказано обратное»: все соединения блокируются, если они явно не разрешены в hosts.allow. Строгие администраторы, не допускающие течи на судне, наверняка выберут второй подход и начнут с файла hosts.deny, содержащего всего одну строку: | ||
ALL: ALL | ALL: ALL | ||
− | + | [[Файл: LXF156.sysadmin.spectru_opt5.png|left |400px |thumb|]] | |
Затем они укажут разрешенные сочетания сервис/клиент в hosts.allow. Этот файл дает большую гибкость в описании соединений клиентов. Можно ввести конкретный IP-адрес или набор адресов (скорее всего, здесь вы укажете свою локальную сеть) или имя компьютера или домена. Однако учтите, что для имен компьютеров TCP wrappers приходится выполнять обратные DNS-запросы, а это влияет на производительность. | Затем они укажут разрешенные сочетания сервис/клиент в hosts.allow. Этот файл дает большую гибкость в описании соединений клиентов. Можно ввести конкретный IP-адрес или набор адресов (скорее всего, здесь вы укажете свою локальную сеть) или имя компьютера или домена. Однако учтите, что для имен компьютеров TCP wrappers приходится выполнять обратные DNS-запросы, а это влияет на производительность. | ||
На заре TCP wrappers проверки доступа выполнялись отдельной программой tcpd. Обычно так называемый «суперсервер», такой как inetd, слушал входящие соединения от имени сервиса и затем запускал tcpd. После выполнения проверок и обработки параметров, указанных в hosts.allow и hosts.deny, tcpd запускал сервер. Сегодня inetd и tcpd почти не используются. Однако на удивление много сервисов все еще удостаивают вниманием hosts.allow и hosts.deny посредством библиотеки libwrap (см. врезку). | На заре TCP wrappers проверки доступа выполнялись отдельной программой tcpd. Обычно так называемый «суперсервер», такой как inetd, слушал входящие соединения от имени сервиса и затем запускал tcpd. После выполнения проверок и обработки параметров, указанных в hosts.allow и hosts.deny, tcpd запускал сервер. Сегодня inetd и tcpd почти не используются. Однако на удивление много сервисов все еще удостаивают вниманием hosts.allow и hosts.deny посредством библиотеки libwrap (см. врезку). | ||
− | Еще больше пользы | + | ==Еще больше пользы== |
Кроме управления доступом к сервису путем идентификации компьютера клиента, TCP wrappers могут выполнять и другие действия при подключении клиента. Можно записать в журнал все запросы на подключение (с помощью syslog), отправить клиенту содержимое заранее заданного файла «баннера» (часто как сообщение «только для авторизованных пользователей») или запустить любую команду оболочки. На man-странице hosts_access описан базовый синтаксис hosts.allow и hosts.deny, а на man-странице hosts_options – дополнительные возможности. А прочтя оригинальный документ Венемы (ftp://ftp.porcupine.org/pub/security/tcp_wrapper.pdf), вы узнаете, что основным мотивом разработки TCP wrappers было отслеживание попыток хакера взломать компьютерную систему в Эйндховене. | Кроме управления доступом к сервису путем идентификации компьютера клиента, TCP wrappers могут выполнять и другие действия при подключении клиента. Можно записать в журнал все запросы на подключение (с помощью syslog), отправить клиенту содержимое заранее заданного файла «баннера» (часто как сообщение «только для авторизованных пользователей») или запустить любую команду оболочки. На man-странице hosts_access описан базовый синтаксис hosts.allow и hosts.deny, а на man-странице hosts_options – дополнительные возможности. А прочтя оригинальный документ Венемы (ftp://ftp.porcupine.org/pub/security/tcp_wrapper.pdf), вы узнаете, что основным мотивом разработки TCP wrappers было отслеживание попыток хакера взломать компьютерную систему в Эйндховене. | ||
− | |||
− | |||
− | |||
− | |||
+ | {{Врезка|left|Заголовок=Кто этим пользуется? |Ширина=80%|Содержание= | ||
Сервисы, использующие TCP wrappers, связываются с библиотекой libwrap. Поэтому их легко найти с помощью простого скрипта, примерно такого: | Сервисы, использующие TCP wrappers, связываются с библиотекой libwrap. Поэтому их легко найти с помощью простого скрипта, примерно такого: | ||
− | + | <pre> | |
for f in /bin/* /usr/bin/* /sbin/* /usr/sbin/* | for f in /bin/* /usr/bin/* /sbin/* /usr/sbin/* | ||
− | |||
do | do | ||
− | |||
# echo processing $f | # echo processing $f | ||
− | |||
if ldd $f | grep -q libwrap | if ldd $f | grep -q libwrap | ||
− | |||
then | then | ||
− | |||
echo $f uses libwrap | echo $f uses libwrap | ||
− | |||
fi | fi | ||
− | |||
done | done | ||
− | + | </pre> | |
Он нашел 23 исполняемых файла в Ubuntu 10.04 и 38 в Fedora 15. | Он нашел 23 исполняемых файла в Ubuntu 10.04 и 38 в Fedora 15. | ||
Интересно, что в этот список входит демон безопасной оболочки (sshd) и зеркало портов (rpcbind), которое необходимо таким сервисам, как NFS и NIS. | Интересно, что в этот список входит демон безопасной оболочки (sshd) и зеркало портов (rpcbind), которое необходимо таким сервисам, как NFS и NIS. | ||
− | + | }} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Текущая версия на 14:30, 13 июля 2018
|
|
|
Содержание |
[править] По рецептам доктора Брауна
Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает. Эзотерическое системное администрирование из причудливых заворотов кишок серверной
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] Дай работу, насяльника
Мы все знаем, что Linux чудесен, но можно ли с ним сделать карьеру? Доктор считает, что да.
И ногда мои курсы посещают студенты, «отдыхающие от работы» (то есть попросту безработные) – они платят за обучение из своего кармана, надеясь улучшить свои перспективы на рынке труда в будущем. Как преподаватель, я ощущаю особую ответственность, когда кто-то хочет, чтобы я увеличил его шансы заработать на хлеб. Мы все знаем, что Linux – лучшая ОС на планете, но действительно ли обучение на курсах системного администрирования в Linux – правильный выбор для этих людей?
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Сайт itjobswatch.co.uk формирует статистику рынка труда, собирая информацию с сайтов вакансий в сфере IT. Статистика, разумеется, основана на поиске по ключевым словам в описаниях вакансий, и к ней нужно относиться с осторожностью. Но она позволяет понять некоторые интересные моменты, и я провел счастливое утро за вводом поисковых запросов в этот сайт. Ниже приведены некоторые добытые мною показатели.
Показатели основаны на средних значениях за три месяца (конец интервала – 26 января 2012 г.). Для сравнения также приводятся показатели за тот же период год и два года назад. Больше всего вдохновляет не абсолютное значение цифр, а то, что во всех сферах мира СПО (поиск по “Tomcat”, “PHP”, “Hadoop”, “Drupal”, “Red Hat” и “Ubuntu”) – стойкий восходящий тренд.
[править] Путь только наверх
Правда, часть этих технологий возникла совсем недавно, и единственный путь для них – наверх. Обратный результат, впрочем, демонстрируют запросы по названиям основных систем UNIX (такие как “Solaris”, “HPUX” и “AIX”) – количество всех их без исключения постоянно падает.
Конечно, с конкретизацией рода работы и местоположения цифры падают. Если вы, скажем, разработчик Drupal и ищете работу в Тэмуорте, забудьте об этом. Ее нет. Но не верьте мне на слово – зайдите на itjobswatch.co.uk и убедитесь сами.
[править] Контейнеры OpenVZ
Используйте свое «железо» на полную силу с OpenVZ, легкой программой для виртуализации, идеальной для хостинг-провайдеров.
В мире бездна технологий виртуализации. Даже если ограничиться только применимыми в Linux, найдется достаточно, чтобы глаза заслезились: Bochs, DOSEMU, KVM, VServer, OpenVZ, Parallels, различные версии VMWare, QEMU, Xen... список можно продолжить.
Сегодня я хочу рассказать вам об OpenVZ. Это технология ядра Linux, позволяющая запускать несколько виртуальных частных серверов (VPS) на одном физическом компьютере. Каждый из серверов при этом выглядит как отдельный сервер с отдельными доступом root, IP-адресом, таблицей процессов, файловой системой, правилами брандмауэра и т. д. От средств полной виртуализации вроде Xen или VMWare эту программу отличает то, что в каждом экземпляре VPS используется одна и та же разделяемая копия ядра Linux. Поэтому, например, с OpenVZ нельзя загрузить экземпляр Windows 7 и экземпляр RedHat, и нельзя загружать модули ядра независимо в каждый VPS. Но «пространство пользователя» в каждом VPS может быть разным, поэтому можно, например, запустить CentOS и SUSE рядом на одном и том же ядре. Это эффективное решение, и можно создать достаточно полную иллюзию отдельно администрируемых компьютеров, чтобы удовлетворить пользователей, которые не хотят много платить за хостинг-услуги. Это делает OpenVZ привлекательной технологией для хостинг-провайдеров, желающих получить максимальную прибыль при ограниченных вложениях в оборудование.
[править] Начинаем
OpenVZ – технология, на основе которой работают Virtuozzo Containers. Это коммерческая виртуализация сервера от Parallels (www.parallels.com/products/pvc) – компании, пожалуй, лучше всего известной настольными продуктами для виртуализации, позволяющими запустить Windows на Mac. Virtuozzo Containers не бесплатен, но если вы хотите немного поработать в командной строке, OpenVZ позволит воспользоваться этой технологией бесплатно. Она состоит из модифицированной версии ядра Linux, набора утилит командной строки и коллекции шаблонов. Шаблон по сути представляет собой сжатый tar-архив пакетов, которые вы хотите установить на VPS. Шаблоны ускоряют создание экземпляров VPS. Хостинг-провайдеры обычно начинают с установки дистрибутива Linux на свое оборудование. В нашем случае они могут загрузить OpenVZ-версию ядра, настроить его загрузку в Grub и установить утилиты пространства пользователя. И ядро, и утилиты доступны в виде RPM-пакетов на сайте OpenVZ, поэтому установка не должна быть сложной.
Как всегда, предвкушая немедленное удовольствие, а загрузил образ Live CD с сайта OpenVZ (http://wiki.openvz.org/Download_live_CD) и установил его на сервер Dell PowerEdge. Диск меня немного разочаровал – не столько из-за неуклюжего интерфейса командной строки, сколько из-за возраста: в нем используется загрузчик Lilo и старое ядро (2.6.18). Нет ни предустановленных шаблонов, ни yum, ни wget. Но зато есть ядро OpenVZ, утилиты командной строки OpenVZ и man-страницы. И на нем есть рабочий сервер ssh, поэтому я загрузил шаблон CentOS с сайта OpenVZ на своем ноутбуке и скопировал его командой scp на сервер следующим образом:
wget http://download.openvz.org/template/precreated/centos-5-x86_64.tar.gz scp centos-5-x86_64.tar.gz root@192.168.1.144:/vz/templates/cache Установив шаблон, я смог подключиться к серверу и создать VPS, вот так: # vzctl create 102 --ostemplate centos-5-x86_64 Creating container private area (centos-5-x86_64) Performing postcreate actions Container private area was created
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить Здесь 102 – идентификатор контейнера (CTID), который представляет собой просто целое число, идентифицирующее контейнер. По умолчанию используются значения от 100 и выше. Идентификаторы контейнеров должны быть уникальными в каждом физическом хосте (или «узле оборудования», на языке OpenVZ); хотя если у провайдера несколько хостов, то, пожалуй, лучше, чтобы значения CTID были уникальными в пределах организации. Теперь можно настроить экземпляр контейнера, задав имя хоста, IP-адрес и пароль root:
# vzctl set 102 --hostname test102.example.com --save
Saved parameters for CT 102
# vzctl set 102 --ipadd 192.168.1.102 --save
Saved parameters for CT 102
# vzctl set 102 --userpasswd root:pink-turtle
Теперь все готово для запуска экземпляра:
# vzctl start 102
Starting container ...
Container is mounted
Setting CPU units: 1000
Configure meminfo: 65536
Set hostname: test102.example.com
Container start in progress...
... и запуска в нем сервера sshd:
# vzctl exec 102 service sshd start
Starting sshd: [ OK ]
Наконец, я могу подключиться к новому VPS по ssh:
# ssh 192.168.1.102
root@192.168.1.102’s password:
[root@test102 ~]#
Сейчас я смотрю в командную строку своего VPS, хотя, конечно, на практике это будут делать клиенты хостинг-провайдера.
[править] Остановим контейнер
Конечно, может показаться, что для запуска одного сервера мы приложили слишком много усилий, но легко написать небольшой скрипт, который бы это автоматизировал. Можете даже представить себе хостинг-провайдера, который немного знаком с написанием скриптов и сделал несколько скриптов (и, возможно, web-интерфейс), чтобы клиенты могли сами создавать экземпляры VPS. Контейнер можно остановить следующим образом:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
# vzctl stop 102
Stopping container ...
Container was stopped
Container is unmounted
...а навсегда уничтожить – так:
# vzctl destroy 102
Вы видите, что команда vzctl – «рабочая лошадка» для управления контейнером. Подкомандой set задается набор параметров – определяя, нужно ли запускать контейнер автоматически при загрузке хоста, создать пароли для учетных записей пользователей, добавить IP-адреса, задать MAC-адрес контейнера и лимиты на потребление ресурсов. Подкоманда exec позволяет запустить произвольную команду в контексте заданного контейнера. Например, список открытых портов контейнера можно вывести так:
- vzctl exec 102 lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE
NODE NAME
sshd 29989 root 3u IPv4 76125 TCP *:ssh (LISTEN)
sendmail 30015 root 4u IPv4 76193 TCP 127.0.0.1:smtp (LISTEN)
httpd 30033 root 3u IPv4 76232 TCP *:http (LISTEN)
httpd 30034 apache 3u IPv4 76232 TCP *:http (LISTEN)
У каждого контейнера есть свой IP-адрес и свое личное пространство номеров портов. Так, порт 80 контейнера 102 полностью отделен от порта 80 контейнера 103. «За кулисами» OpenVZ использует глобальный файл настройки /etc/vz/vz.conf (применяемый ко всем контейнерам) и файлы настройки контейнеров /etc/vz/conf/xxx.conf, где xxx – идентификатор контейнера. Установка Live CD содержит примеры файлов, а подробности можно узнать на man-странице vz.conf. У хостинг-провайдера решения вроде OpenVZ оставляют некое ощущение «всех яиц в одной корзине», в том смысле, что если физический сервер выйдет из строя или будет атакован хакером, он по сути останется без виртуальных частных серверов клиентов. Но это справедливо для всех технологий виртуализации.
[править] Управляем ресурсами
OpenVZ – не технология полной виртуализации. Хотя каждый контейнер видит свою собственную файловую систему, он не видит собственных дисковых разделов фиксированного размера. Вместо этого файловая система контейнера связывается с файловой системой хоста, так что (например) каталог /home контейнера с идентификатором 102 представляет собой каталог /vz/private/102/home хоста.
Поэтому не в меру активный контейнер теоретически мог бы (нечаянно или намеренно) заполнить всю файловую систему хоста или по крайней мере дисковый раздел, в котором находится каталог /vz. Чтобы избежать этой ситуации, OpenVZ налагает квоты на ресурсы. Квоты первого уровня ограничивают использование ресурсов для контейнера, а квоты второго уровня – использование ресурсов для каждого пользователя внутри контейнера.
Последний хитрый прием OpenVZ – возможность переноса VPS с одного узла устройств на другой, даже при работающем VPS. Для хостинг-провайдера, который только что раскошелился на дополнительное оборудование и хочет распределить нагрузку пользователя на новые компьютеры, это потрясающая возможность. На сайте OpenVZ есть руководство пользователя, хотя местами его не помешало бы и обновить, и полный набор man-страниц (http://wiki.openvz.org/images/9/9a/Man_pages.pdf). Но лучший способ знакомства с ним – установить программу и попробовать что-нибудь сделать. В этом и заключается прелесть открытого ПО.
[править] Etcetera в иллюстрациях – часть 4
Изучайте файлы в /etc каждый месяц с нашим удобным руководством. В этот раз знакомимся с hosts.allow и hosts.deny.
Файлы /etc/hosts.allow и /etc/hosts.deny — файлы настройки механизма управления доступом, который называется «обертки TCP [TCP wrappers]» и предоставляет сетевым сервисам дополнительный уровень безопасности, позволяя управлять тем, какие сервисы могут быть доступны с определенных клиентских компьютеров или сетей. TCP wrappers были написаны Виетсой Венема [Wietsa Venema], который работал в Университете Эйндховена и, пожалуй, более всего известен как автор почтовой системы Postfix и таких утилит безопасности, как SATAN и Coroner’s Toolkit.
Существует два подхода в использовании TCP wrappers. Первый – «невиновен, пока вина не доказана». В нем все подключения разрешены, если они явно не заблокированы в hosts.deny. Второй – «виновен, пока не доказано обратное»: все соединения блокируются, если они явно не разрешены в hosts.allow. Строгие администраторы, не допускающие течи на судне, наверняка выберут второй подход и начнут с файла hosts.deny, содержащего всего одну строку:
ALL: ALL
Затем они укажут разрешенные сочетания сервис/клиент в hosts.allow. Этот файл дает большую гибкость в описании соединений клиентов. Можно ввести конкретный IP-адрес или набор адресов (скорее всего, здесь вы укажете свою локальную сеть) или имя компьютера или домена. Однако учтите, что для имен компьютеров TCP wrappers приходится выполнять обратные DNS-запросы, а это влияет на производительность.
На заре TCP wrappers проверки доступа выполнялись отдельной программой tcpd. Обычно так называемый «суперсервер», такой как inetd, слушал входящие соединения от имени сервиса и затем запускал tcpd. После выполнения проверок и обработки параметров, указанных в hosts.allow и hosts.deny, tcpd запускал сервер. Сегодня inetd и tcpd почти не используются. Однако на удивление много сервисов все еще удостаивают вниманием hosts.allow и hosts.deny посредством библиотеки libwrap (см. врезку).
[править] Еще больше пользы
Кроме управления доступом к сервису путем идентификации компьютера клиента, TCP wrappers могут выполнять и другие действия при подключении клиента. Можно записать в журнал все запросы на подключение (с помощью syslog), отправить клиенту содержимое заранее заданного файла «баннера» (часто как сообщение «только для авторизованных пользователей») или запустить любую команду оболочки. На man-странице hosts_access описан базовый синтаксис hosts.allow и hosts.deny, а на man-странице hosts_options – дополнительные возможности. А прочтя оригинальный документ Венемы (ftp://ftp.porcupine.org/pub/security/tcp_wrapper.pdf), вы узнаете, что основным мотивом разработки TCP wrappers было отслеживание попыток хакера взломать компьютерную систему в Эйндховене.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить