Get Social

Бесплатный сертификат S/MIME (comodo secure email)

Конечно же, честным гражданам нечего скрывать. Однако, согласитесь, что неприятно, когда личная или конфиденциальная информация становится доступной ещё кому-то. Чтобы не передавать почту по интернету как открытки, мы можем воспользоваться замечательной функцией  S/MIME, которую поддерживают современные почтовые клиенты.

Для этого сделаем следующие шаги:

[1] По ссылке https://www.comodo.com/home/email-security/free-email-certificate.php можем получить  бесплатный сертификат для своего почтового адреса:

1

[2] Затем внимательно заполнить форму, придумать и запомнить/записать себе пароль восстановления:
2

[3] Затем на указанный адрес email получаем сообщение с темой “Confirm Your Subscription to COMODO Information & Newsletter“. Ссылку, которая в письме, нужно открыть в том браузере, в котором вы инициализировали регистрацию. После подтверждения сертификат должен сохранится в хранилище.

[4] Затем в вашем любимом браузере (у меня на скриншоте – chromium) нужно извлечь полученный сертификат, чтобы использовать его в почтовом клиенте:
3    4
[5] Как видно на рисунках, в настройках выбираем “показать дополнительные настройки” и находим раздел “управление сертификатами”, выделяем полученный от comodo сертификат и экспортируем его.

5

Всё, теперь его можно встраивать в почтовые клиенты.

p.s. Необходимо экспортировать всё дерево сертификатов, а также закрытый ключ (если при экспорте будет задан такой вопрос).

Скрипт для мониторинга доменных имён

Скрипт для мониторинга доменных имён image

Часто перед теми, у кого есть несколько сайтов встаёт задача контролировать, когда подходит срок продления доменного имени. Особенно, если доменные имена обслуживаются разными регистраторами. Так было и в тех компаниях, где я работал: полтора-два десятка доменных имён всегда имелось. Хотелось сделать так, чтобы вовремя узнавать об истечении срока действия домена и вовремя его оплачивать.

Поделюсь скриптом на Bash, который я набросал для этого. По сути – это парсер.
Что он делает, можно понять из комментариев, но всё же опишу немного подробнее:

Итак задача: скрипт, запускается по расписанию; опрашивает домены; отсылает отчёт на email.

[1] Откуда берём данные?

Скрипт использует для своей работы результаты команды whois. Иногда запрос в консоли: “whois какой-то-домен” не даёт ожидаемого результата. Это связано с тем, что команда whois не опрашивает подходящие сервера, которые содержат полную информацию. Поэтому мы можем добавить такие сервера в конфигурационный файл whois.conf

[2] Как это работает?

1. Видим массив из доменных имён, которые нужно проверять (заполнить самому).
2. Дальше – создаётся временный файл, который красиво наполняется парсером
3. Содержимое файла отправляется на почту и файл удаляется.

[3] Исходный код?

Вот он:

#!/bin/bash

## скрипт для мониторинга доменных имён -> проверка срока действия домена
## url: http://rocknroot.pp.ua/blog/skript-dlya-monitoringa-domennyih-imyon.html


# НЕ ЗАБЫТЬ ДОБАВИТЬ В /etc/whois.conf СТРОКИ:
# \.ua$ whois.com.ua
# \.by$ whois.cctld.by
#(если нужно)
# или положить где-нибудь свой whois.conf и указать параметром к команде whois

export LC_ALL=ru_RU.utf8

# массив доменных имён для опроса
ARR_DOMAIN+=(
ya.ru
mail.ru
)

# если нет возможности править whois.conf - тогда можно попробовать вписать в массив bash следующее значение: '-h whois.cctld.by tut.by' (в кавычках)

# создаём файл для временных данных
echo "" > tmp_file_domain_renew

# записывает туда заголовок таблицы 
printf "%-35s\t %-25s\t %-25s\n" "Domain     " "< 50 days" "> 50 days" >> tmp_file_domain_renew
printf "%-35s\t %-25s\t %-25s\n" "---------------" "----------" "----------" >> tmp_file_domain_renew

# парсим информацию о сроке действия домена
for DOMAIN_ in "${ARR_DOMAIN[@]}"
 do
 sleep 0.2
 dateexp_=`whois $DOMAIN_ | \
 egrep -i 'Expiration Date:|paid-till:|OK-UNTIL|Domain Currently Expires:|Record expires on|expires:|Registry Expiry Date:'| \
 head -n 1 | \
 sed 's/\(OK-UNTIL\) \(.\{,8\}\).*/\2/i' | \
 sed 's/.*Currently //' | \
 sed 's/.*Expiration Date:/ExpDate: /' | \
 sed 's/.*Registry Expiry Date:/RegExpDate: /' | \
 sed 's/T[0-9][0-9]\:.*//'| \
 awk '{$1=""; print $0}' | \
 sed 's/^\ //' | \
 sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1\2\3/i'`

#  высчитываем, сколько остаётся дней от текущей даты
dateexp_s=`date -d "${dateexp_}" +"%s"`
datenow_s=`date +"%s"`
diff_s=`expr $dateexp_s - $datenow_s`
diff_d=`expr $diff_s / 3600 / 24`

# заполняем стоблцы таблицы в зависимости от того
# больше или меньше, в данном случае, 50 дней
if [[ $diff_d -ge 50 ]];
then
  printf "%-35s\t %-25s\t %-25s\n" "$DOMAIN_"  "-" "$diff_d" >> tmp_file_domain_renew
else
  printf "%-35s\t %-25s\t %-25s\n" "$DOMAIN_" "$diff_d" "-" >> tmp_file_domain_renew
fi

done

# отсылаем на почту
# mail -s DomainRenewCheck mail@example.com < tmp_file_domain_renew

cat tmp_file_domain_renew

# прибираем за собой
rm tmp_file_domain_renew

[4] Проверка.

Не забываем сделать исполняемым с помощью команды:

chmod +x domain_renew.sh

Результат работы в почте должен быть примерно таким:

Домен                          < 50 дней             > 50 дней            
—————                     ———-                ———-               
ya.ru                               –                         320                      
mail.ru                             16                        –          

[5] Как добавить в планировщик?

Запускаем “crontab -e” в консоли и прописываем пусть к скрипту, время и дни, когда его нужно запускать.
Вот и всё. Теперь немного легче будет отследить, когда истекает срок домена. 🙂

Установка Debian Wheezy на SSD

Итак, что имеем:

Intel i5-3470
16 Gb DDR3-1600Mhz
60Gb Kingston SSD
1500Gb Samsung Hard Disk

[1] Анализ и подготовка

Поиск в гугл выдаёт первые 3 ссылки на wiki.debian.org

Это то, что нам нужно.
В статье “SSD Installation” рассказывается о том, что использование SSD позволит увеличить быстродействие системы на 200%. Это приятная новость. Однако, там же показано, что есть проблема – ограниченного число циклов перезаписи.

Дальше объясняется, как перенести существующую установку на твердотельный накопитель – это уже не то, что нужно, поскольку мы будем ставить чистую систему на него. Поэтому переходим к статье “SSDOptimization”. Здесь получаем следующие рекомендации:
– использовать ядро версии минимум 3.2 (в Debian 7 как раз 3.2)
– использовать файловую систему ext4 (её и выберем при инсталляции)

[2] Установка чистой системы

На этом подготовительный этап закончен. Теперь любым удобным способом запускаем установку Debian Wheezy. Предварительно прочитав разные статьи, о которых речь пойдёт дальше, я решил ничего особо не менять в том, как разбиты диски, а все нужные преобразования делать после установки. Тем более на это нужно было бы уйма времени – основное место на 1.5 Тб диске занимает раздел /home на файловой системе xfs, которая не поддерживает уменьшение. То есть нужно было бы переносить более 1 Тб данных куда-то, а потом снова копировать… Буду ставить систему целиком на SSD накопитель, а потом сделаю символические ссылки для таких каталогов, как /var и других, какие посчитаю нужным разместить на имеющемся HDD рядом с /home.
Раздел swap даже не будем ставить.

[3] Настройка и оптимизация

Итак, система установлена. Далее по ссылкам на другие статьи находим ещё ценные рекомендации.
Благодаря https://wiki.archlinux.org/index.php/SSD , http://help.ubuntu.ru/wiki/ssd , и другим статьям, можем увидеть, что разделы и файловые системы на SSD необходимо дополнительно настраивать. Что пригодилось лично мне:

-> Проверим поддержку TRIM (http://ru.wikipedia.org/wiki/TRIM) (технологию, позволяющую распределить нагрузку на SSD)

hdparm -I /dev/sda | grep TRIM
        *    Data Set Management TRIM supported (limit 1 block)
        *    Deterministic read data after TRIM

-> Загружаемся с LiveCD/LiveUSB и переносим раздел /var из корня, находящегося на SSD на диск HDD (тот, который монтируется в home). Затем делаем символическую ссылку с /home/var на /var.
Это позволит значительно снизить число циклов записи на SSD, так как этот каталог активно используется системой для записи (одни только лог-файлы чего стоят).

-> Также редактируем /etc/fstab – добавим для корневой файловой системы опции discard (включает использование TRIM), noatime (отключение времени обращения к файлу), nodiratime

-> Решил воспользоваться ещё одним советом – поместить в ОЗУ кэш apt
Для этого в /etc/fstab нужно добавить следующую строку:

tmpfs   /var/cache/apt/archives tmpfs   defaults        0       0

При этом, кэш apt не будет сохраняться на диске и при переустановке пакетов, однако их всегда можно выкачать из сети. Зато можно будет сейчас ускорить за счёт большого объёма озу установку пакетов в чистой системе.

[4] Дальнейший анализ

Поставим утилиту iotop:

aptitude install iotop

Теперь можно увидеть, какие процессы наиболее активно используют запись на диск:

iotop -oPa

После этого можно подумать, какие ещё папки, возможно из профилей приложений перенести на hdd.

p.s. Работает эта конфигурация с января 2014. Проблем нет 🙂