четверг, 16 октября 2014 г.

Об администрировании UNIX

Можно выделить четыре типа системных администраторов UNIX:
  • Технический бандит. Обычно в прошло программист, вынужденный заниматься администрированием. Пишет скрипты на смеси языков интерпритатора Bourne shell, sed, C, awk, perl и APL.
  • Администратор-фашист. Обычно законченный тунеядец (реже - бывшая ведьма-секретарша), вынужденная заниматься администрированием системы.
  • Маньяк. Стареющий хакер, обнаруживший, что ни Массада, ни Куба не собираются оплачивать достойно его улуги по компьютерному шпионажу, вследствии чего подавшийся в системные администраторы.
  • Идиот. Полный кретин или старый программист на Коболе, выбранный в админы комитетом, состоящим из таких же кретинов или старых программистов на Коболе.
Как определить, к какому типу принадлежит ваш администратор.
Ситуация 1. Нехватка дискового пространства.
Технический бандит. Пишет набор скриптов для мониторинга использования дискового пространства, для сопровождения базы данных статистики использования диска, для прогнозирования будущего использования с помощью регрессионого анализа, для выявления пользователей, котороые превысили стандартное отклонение от среднего значения и, наконец, для отправления нарушителям почтовых сообщений. Помещает скрипты в cron. В результате дисковое пространство не увеличивается, посколько "дисковые обжоры" обычно почту не читают.
Администратор-фашист. Помещает правила использования диска в сообщение motd. Активно пользуется квотированием диска. Не допускает никаких исключений, чем полностью останавливает деятельность разработчиков. Блокирует регистрацию пользователей, превысивших квоту.
Маньяк:# cd /home
# rm -rf `du -s * | sort -rn | head -1 | awk '{print $2}'`
Идиот:
# cd /home
# cat `du -s * | sort -rn | head -1| awk '{printf "%s/*\n",$2}'`
# compress

Ситуация 2. Избыточная загрузка процессора.
Технический бандит. Пишет скрипты мониторинга использования ресурсов, для сопровождения базы данных их использования, для выявления процессов, превысивших стандартное значение и для изменения приоритета таких процессов. Помещает скрыпты под управление cron. В результате понижения приоритета офисный базы данных, предает ее забвению, ставя все работы на грань срыва к немалой радости поклонников игры в xtrek.
Администратор-фашист. Помещает правила использования вычислительных ресурсов в сообщение дня motd. Активно квотированием процессорных ресурсов. Не допускает никаких исключений, чем полностью останавливает деятельность разработчиков к немалой радости поклонников игры в xtrek.
Маньяк:# kill -9 `ps -augxww | sort -rn +8 -9 | head -1 awk '{print $2}'`
Идиот:
# compress -f `ps -augxww | sort -rn +8 -9 | head -1 awk '{print $2}'`

Ситуация 3. Регистрация новых пользователей.
Технический бандит. Пишет скрипт на Perl, создающий домашний каталог пользователя, определяющий непонятное окружение и помещающий записи в файлы /etc/passwd, /etc/shadow, /etc/group. Устанавливает на скрипт бит SUID и обязывающий секретаршу обеспечить регистрация новых пользователей. Поскольку обычно секретарша так и не может разобраться в разнице между <Enter> и <Return>, ни один новый пользоватей не зарегистрирован.
Администратор-фашист. Помещает правила регистрации пользователей в motd. Поскольку незарегистрированные пользователи не могут прочитать это сообщение, никто не выполняет бюрократические ьребования, и, как следствие, ни один новый пользователь не зарегистрирован.
Маньяк. "Если ты настолько глуп, что не можешь взломать машину и самостоятельно зарегистрироваться, тебе нечего делать в моей системе. В этом ящике и так слишком много придурков"
Идиот:
# cd /home; mkdir "Bob's home directory"
# echo "Bob Simon:gandalf:0:0:/dev/tty:compress -f" > /etc/passwd

Ситуация 4. Авария загрузочного диска.
Технический бандит. Чинит диск. ОБычно ему удается восстановить систему прямо из приглашения загрузки. Если это не помогает, запускает микроядро, которое запускает на соседнем компьютере скрипт, копирующий на аварийную машину загрузочный код, переворматирущий диск и инсталирующий операционную систему. Оставляет скрипт работать до конца уик-энда, а сам отправляется в поход в горы.
Администратор-фашист. Начинает расследование аварии. Отказывается исправить аварию до тех пор, пока виновный не найден, и с него не взыскана стоимость сломанного оборудования.
Маньяк. Извлекает диск. С помощью кузнечного молота пытается подогнать отдельные пластины. Звонит производителю. Во время установки нового диска и операционной системы наносит оскорбления присланному инженеру.
Идиот. Не заммечает ничего необычного.

Ситуация 5. Слабая производительность сети.
Технический бандит. Пишет скрипт для мониторинга сети, переписывает программное обеспечение, чем повышает производительность на 2%. Пожимает плечами, говорит "Я сделал все, что мог", и отправляется в поход в горы.
Администратор-фашист.Помещает правила работы в сети в motd. Звонит в Беркли и в AT&T, приставая к ним, как установить сетевые квоты. Пытается уволить поклонников игры в xtrek.
Маньяк. Каждые два часа размыкает кабедь Ethernet и ждет тайм-аута на сетевых соединениях.
Идиот. # compress -f /dev/en0

Ситуация 6. "Глупые" вопросы пользователей.
Технический бандит. Отвечает на вопросы в шестнадцатеричном или двоичном виде, иногда по-французки, пока пользователь не уходит.
Администратор-фашист. Блокирует вход пользователя в систему, пока тот не предоставит веские доказательства своей квалификации.
Маньяк. 
# cat >> ~luser/.cshrc
alias vi 'rm \!*; unalias vi; grep -v BoZo ~/.cshrc > ~/.z;
mv -f ~/.z ~/.cshrc'
^D
Идиот. Отвечает на все вопросы в меру своего понимания. Приглашает пользователя в группу администрирования системы.

Ситуация 7. Установка новой операционной системы.
Технический бандит. Изучает исходные тексты новой версии и выбирает из них только то, что ему нравиться.
Администратор-фашист. В первую очередь изучает законодательные акты против производителя, постовляющего программное обеспечение с ошибками.
Маньяк.
# uptime
1:33pm up 19 days, 22:49, 167 users, load average: 6.49, 6.45, 6.31
#wall
Итак настало время установки новой версии. Займет несколько часов, и если нам повезет - управимся к 5-00.Мы работаем для вас !
^D
Идиот. # dd if=/dev/rmt8 of=/vmunix

Ситуация 8. Пользователям необходима электронная телефонная книга.
Технический бандит. Пишет программу на RDBMS, Perl и Smalltalk. Отчаявшиеся пользователи возвращаются к использованию записных книжек.
Администратор-фашист. Устанавливает Oracle. Отчаявшиеся пользователи возвращаются к использованию записных книжек.
Маньяк. Предлагает пользователям хранить данные в едином сплошном файле и применять grep для поиска телефонных номеров.
Идиот. # dd ibs=80 if=/dev/rdisk001s7 | grep "Fred"

Данные были взяты из книги "Операционная система UNIX".

пятница, 4 апреля 2014 г.


среда, 31 июля 2013 г.

Создание SSL-сертификата

Возникла однажды необходимость обновить сертификат на почтовом сервере, где используется dovecot. После непродолжительного курения man-ов родилось следующее решение:
  1. openssl req -new -x509 -days 365 -sha256 -newkey rsa:1024 \
  2. -nodes -keyform PEM -keyout dovecot-key.pem -outform PEM \
  3. -out dovecot.pem -subj '/O=Some Org/CN=mail.someorg.net'
O – название организации, CN – название сервера. Должно совпадать с именем хоста. Такой сертификат будет действителен 1 год с момента создания (параметр -days). Файл dovecot.pem нужно положить в директорию /etc/pki/dovecot/certs, а файл dovecot-key.pem – в директорию /etc/pki/dovecot/private, предварительно переименовав его в dovecot.pem или изменив параметр ssl_key_file в конфигурационном файле /etc/dovecot.conf, чтобы привести его в соответствие реальному имени файла с ключём.
Для того, чтобы экспортировать данный сертификат в формат PKCS#12, который используется многими приложениями от Microsoft, используется следующая команда:
  1. openssl pkcs12 -export -out dovecot.pfx -in dovecot.pem \
  2. -name "mycert" -inkey ../private/dovecot.pem
В данном случае она запускалась из директории /etc/pki/dovecot/certs.
Затем полученный сертификат в файле dovecot.pfx можно импортировать в храниилище доверенных сертификатов того приложения, которое работает с нашим почтовым сервером. Например, в Outlook Express 6 это делается так:
меню «Сервис» → «Параметры…» → вкладка «Безопасность» → кнопка «Сертификаты…» → вкладка «Доверенные корневые центры сертификации» → кнопка «Импорт…», выбрать найл dovecot.pfx, в окне запроса пароля поля оставить пустыми, далее везде согласиться со значениями по-умолчанию.
импорт ssl-сертификата в outlook
Импорт сертификата аутлук
Данная процедура избавляет от появления предупреждающего сообщения с текстом «Используемый сервер имеет сертификат безопасности, который невозможно проверить» при каждом новом сеансе связи с почтовым сервером:Предупреждение безопасности Интернета
Обратная операция (преобразование pfx в pem):
  1. openssl pkcs12 -in dovecot.pfx -out dovecot.pem -nodes
или
  1. openssl pkcs12 -in dovecot.pfx -out dovecot.pem
Во втором случае случае будет запрошен пароль для приватного ключа.
Для проверки конфигурации можно заставить openssl выступить в роли почтового клиента следующим образом:
  1. openssl s_client -connect mail.someorg.net:995
и потом использовать команды протокола POP3 для дальнейшего диалога с сервером.
http://avz.org.ua/wp/2009/05/17/ssl-cert/