Расширение знаний о крипторграфии

Когда разбираюсь с гуглоаналитикой я давно наблюдаю поисковые запросы касающиеся протокола SSLv3. Со временем частота этих запросов и их разнообразие увеличивается. Выходит, что обыватели которые не смогли попасть на свои уютные жежешечки или вконтактики не по своей воле но всё чаще спрашивают у всезнающего гуглина о том что же такое SSLv3.

Вот топ вопросов:

как включить поддержку протокола sslv3
как в амиго включить протокол ssl3
как включить протокол sslv3
как подключить протокол sslv3 на facebook
sslv3 как включить видео
sslv3 как включить chrome

Иногда вопросы тянут на сочинение

как исправить ошибку в вконтакте клиент и сервер поддерживают разные версии протокола ssl или шифров. скорее всего, серверу требуется поддержка протокола sslv3, однако она была отключена.

Но мне особенно понравился вопрос

скачать протокол sslv3
sslv3 скачать

Теперь я понимаю почему мы все до сих пор получаем “Нигери́йские пи́сьма“, почему до сих пор работает “развод” пользователя на то чтобы заставить его скачать и поставить утилиту какую нибуть г.в.утилиту.

Хочется всем таким искателям приключений сказать: SSLv3 умер. Не нужно его “откапывать” скачивать и включать!

Windows 10 BestCrypt BSOD и перезагрузка при размонтировании криптодиска

При размонтировании шифрованного диска выдавалось сообщение о том, что с диска открыты какие-то файлы и его размонтирование может привести к потере несохранённых данных открытых файлов. После согласия пользователя с размонтированием система входила в долгое ожидание и через минуту уходила в BSOD (синий экран смерти) и перезагружалась в соответствии с настройками. Ситуация повторялась в 9-ти случаях из 10-ти. Windows 10 работала в виртуальной машине KVM. Другие аналогичные инсталяции работали под VMWare и проблем не создавали.
Continue reading Windows 10 BestCrypt BSOD и перезагрузка при размонтировании криптодиска

Обновление ssh и очередное отключение устаревших алгоритмов

Время идёт и постепенно старые алгоритмы шифрования становятся небезопасными. Разрабочики софта конечно же постепенно их отключают. Но для админа-то обычно это просиходит внезапно и ой как не вовремя и становится чертовски неприятным сюрпризом, особенно если обновления накатываются атоматически. Так обновление на Fedora 23 подарило мне пару незабываемых часов когда я не мог достучаться на большую часть серверов которыми управляю. Казалось бы что обновление openssl, openssh в любом виде должно стать красной тряпкой, но пока что стереотип поведения не сложился. И последнее обновление openssh.i686 7.2p1-2.fc23, openssh-server.i686 7.2p1-2.fc23, openssh-clients.i686 7.2p1-2.fc23 снова подарило неожиданный сюрприз в виде невозможности залогиниться на клиентский mikrotik.

[user001@localhost ~]$ ssh root@192.168.88.1
ssh_dispatch_run_fatal: Connection to 192.168.88.1 port 22: DH GEX group out of range

И как обычно бывает в свежих случаях гугл и яндекс не показали ничего интересного.
— Упс, сказал я и полез в мануал.
Continue reading Обновление ssh и очередное отключение устаревших алгоритмов

sudoers: проверка синтаксиса

Когда вы редактируете файл /etc/sudoers или создаёте подключаемые к нему файлы в каталоге /etc/sudoers.d/* то неплохо бы сразу проверить синтаксис. Если вы редактируете sudoers в его редакторе visudo то он автоматически проверит синтаксис при сохранении. А если как я больше пользуетесь mcedit то после редактирования sudoers можно выполнить проверку указав ключ:

[root@d01 sudoers.d]# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/zabbix_sudo: parsed OK

Как видите синтаксис проверился вместе со вложением /etc/sudoers.d/zabbix_sudo.

Но на боевом сервере, где sudo активно используется системой мониторинга или каким либо скриптом из crontab, не стоит проводить правку файла по-живому. Для этого его можно скопировать в другое место и там редактировать. А после редактирования проверить всё той же командой но с дополнительным ключом:

[root@d01 sudoers.d]# visudo -cf /root/sudoers.new
/root/sudoers.new: parsed OK

После этого его можно смело копировать на место боевого файла. Не забудтре однако правильно поставить права 440 для владелеца и группы root:root.

Почему копипастить команды с web сразу в терминал это глупость?

Потому что bash/sh терминал выполнит команду если в ней будет перевод строки.

Во-первых когда команда набирается руками происходит запоминание, сначала вы внимательно читаете команду, затем вводите ту часть которую запомнили, затем дальше читаете и снова вводите. Работают глаза, голова и руки. Запоминается эффективнее.

Во-вторых вместе с командой можно скопипастить чужой зловредный код. Не верите?
Выделите код который приведён ниже скопируйте и затем вставьте в тектовый редактор. После этого вы всегда будете копипастить код через редактор, а короткие команды будете набирать руками.
Continue reading Почему копипастить команды с web сразу в терминал это глупость?

Однострочный скрипт вывода smart информации по нескольким дискам в виде таблицы

Буквы дисков нужно задать в операторе echo -e “a\nb”.

# for idx in `echo -e "a\nb"` ; do smartctl -A /dev/sd$idx | sed -n '/^ID#/,/^$/p' | sed -e '/^ID#/d;s/^./'"$idx "'&/g'; done | sed -e '/^[ \t]*$/d' | awk '{disks[$1]=$1;keys[$3]=$2$3;valuelen=length($11);keylen=length($3);if(valuelen>maxvaluelen){maxvaluelen=valuelen}if(keylen>maxkeylen){maxkeylen=keylen};VALUES[$1,$3]=$11}END{printf("\n%-"maxkeylen"s","NAME");for(disk in disks){printf(" %"maxvaluelen"s",toupper("SD"disk))};for(key in keys){printf("\n%-"maxkeylen"s",key); for(disk in disks){printf(" %"maxvaluelen"s", VALUES[disk,key])}};printf("\n")}'

NAME                       SDA    SDB
Spin_Retry_Count             0      0
Seek_Error_Rate              0      0
Start_Stop_Count           101     21
Multi_Zone_Error_Rate        0      0
Offline_Uncorrectable        0      0
Spin_Up_Time              9216  10183
Power_Cycle_Count           95     12
Calibration_Retry_Count      0      0
Load_Cycle_Count        199966 111455
Reallocated_Sector_Ct        0      0
Raw_Read_Error_Rate          3      0
Current_Pending_Sector       0      0
Reallocated_Event_Count      0      0
Power_On_Hours            9259  11992
Temperature_Celsius         27     23
UDMA_CRC_Error_Count         0      0
Power-Off_Retract_Count     33      7

Одним движением руки этот скрипт преобразуется в вывод информации, например по 8-ми дискам в RAID контроллере 3ware.

for idx in `seq 0 7` ; do smartctl -A /dev/twa0 -d 3ware,$idx | sed -n '/^ID#/,/^$/p' | sed -e '/^ID#/d;s/^./'"$idx "'&/g'; done | sed -e '/^[ \t]*$/d' | awk '{disks[$1]=$1;keys[$3]=$2$3;valuelen=length($11);keylen=length($3);if(valuelen>maxvaluelen){maxvaluelen=valuelen}if(keylen>maxkeylen){maxkeylen=keylen};VALUES[$1,$3]=$11}END{printf("\n%-"maxkeylen"s","NAME");for(disk in disks){printf(" %"maxvaluelen"s",toupper("p:"disk))};for(key in keys){printf("\n%-"maxkeylen"s",key); for(disk in disks){printf(" %"maxvaluelen"s", VALUES[disk,key])}};printf("\n")}'

Обновление базы дисков smartctl на CentOS 6.7

Чтобы обновить базу дисков smartctl на CentOS release 6.7 (Final) нужно использовать новый скрипт, так как старый, который идёт в дистрибутиве не работает.

update-smart-drivedb -v ./aa.txt
Download from branches/RELEASE_5_43_DRIVEDB
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
109   329  109   329    0     0   1108      0 --:--:-- --:--:-- --:--:--  2611
./aa.txt.error: rejected by /usr/sbin/smartctl, probably no longer compatible

С момента моего предыдущего обновления снова изменилась структура smartmontools линков для получения свежей базы. Поэтому я написал скрипт который загружает скрипт обновления и настраивает его так чтобы он стянул свежую базу дисков.
Continue reading Обновление базы дисков smartctl на CentOS 6.7

error: Failed to create domain … Cannot check QEMU binary

При копировании виртуальной машины на новый сервер можно получить ошибку, что эмулятор не найден.

# virsh create /root/copy-vm/server.vm.xml
error: Failed to create domain from /root/copy-vm/server.vm.xml
error: Cannot check QEMU binary /usr/bin/qemu-kvm: No such file or directory

# whereis qemu-kvm
qemu-kvm: /usr/libexec/qemu-kvm /usr/share/qemu-kvm /usr/share/man/man1/qemu-kvm.1.gz

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

...
    <emulator>/usr/bin/qemu-kvm</emulator>
...

После этого вписать туда результат команды

which qemu-kvm

И дальше импорт конфигурационного файла скорее всего закончится успешно.

Dec 12 13:15:35 gw1 sshd[19967]: Received disconnect from 66.234.240.251: 11: Bye Bye

Распухание логов роутера заставило меня обратить более пристальное внимание на записи в журналах безопасности sshd.

Dec 12 13:15:35 gw1 sshd[19967]: Received disconnect from 66.234.240.251: 11: Bye Bye

Эта запись появляется по одной причине: у меня запрещён вход на ssh по паролю. Разрешён только по сертификату. Бот который подбирает пароль к ssh к сожалению “тупой” и непрерывно долбится пока у него не закончится словарь. Когда ботов становится много и они настырны, то это и приводит к распуханию логов.
Continue reading Dec 12 13:15:35 gw1 sshd[19967]: Received disconnect from 66.234.240.251: 11: Bye Bye

OpenVPN: — PUSH тебе твой собственный ROUTE

К бессонной ночи привёло “молчание логов” OpenVPN сервера при невозможности прочесть файл.

Имеется OpenVPN сервер, к которому подключены VPN клиенты. За некоторыми клиентами находятся сети которые необходимо анонсировать другим клиентам OpenVPN и обеспечить маршрутизацию.

Для этого в OpenVPN предусмотрены четыре параметра находящиеся в двух разных файлах которые позволяют настроить роутинг в сети VPN клиента.

Файл /etc/openvpn/*.conf

push "route 192.168.33.0 255.255.255.0"
route 192.168.33.0 255.255.255.0
client-config-dir ccd-vpn03

client-config-dir определяет каталог в котором будут находиться файлы в которых будут объявлены сети клиентов. Имена файлов должны совпадать с CommonName сертификата клиента за которым находятся сети объявленные в файле. Например если за клиентом с сертификатом у которого CN равен “vpn03.gw01.common-client2” находится сеть 192.168.33.0 255.255.255.0 то файл /etc/openvpn/ccd-vpn03/vpn03.gw01.common-client2

iroute 192.168.33.0 255.255.255.0

Continue reading OpenVPN: — PUSH тебе твой собственный ROUTE