Як відомо, логи у CloudFlare (CF) дивитися дуже незручно. А от в kibana – зовсім інша річ. Наше завдання зробити пересилку log’ів у logstash. Дана стаття припускає, що у вас вже є налаштований ELK стек і розкаже, як додати в існуючий стек новий source, тобто CF. Стаття буде розбита на 2 частини: Logstash і CF
Проблема виглядає наступним чином: є зібраний nginx з openssl-3, але є старі клієнтські сертифікати з ключам 1024 біта і відповідно, стандартним чином воно не працює, бо для openssl-3 ключ повинен бути мінімум 2048 біт і маємо помилку:
"FAILED:CA certificate key too weak"
Рішення просте – CipherString = DEFAULT@SECLEVEL=0, але не хочеться ламати все інше на цьому хості, тому просто так вставити це в /etc/ssl/openssl.cnf не можна.
Виявляється, можна через ENV в nginx передавати OPENSSL_CONF, де вказати шлях до кастомного файлу openssl.cnf.
Дана помилка зʼявилася після оновлення і наразі питання відкрите, як правильно її вирішити.
В даній статті буде показано спосіб, як “замʼютити” дану помилку, бо інакше кожну хвилину в лог буде писати
SUNW-MSG-ID: FMD-8000-GN, TYPE: Alert, VER: 1, SEVERITY: Major
EVENT-TIME: Wed Feb 7 10:09:39 UTC 2024
PLATFORM: SSG-5049P-E1CR45L, CSN: A313853X0400066, HOSTNAME: mailserver.domain.com
SOURCE: software-diagnosis, REV: 0.2
EVENT-ID: 185c1062-7deb-43c1-a5de-d02f0e95051e
DESC: The kernel device tree was changing too frequently for the fault management daemon to form a stable topology snapshot.
AUTO-RESPONSE: None.
IMPACT: This may temporarily affect the fault management daemon's ability to diagnose or repair faults in the part of the device tree that is unstable.
REC-ACTION: This alert should resolve itself automatically once the underlying kernel device tree has stabilized.
FRU-LOCATION:
Пробуємо обнулити і дивимося:
# fmstat | grep software-diagnosis
software-diagnosis 1193 0 0.0 0.9 0 0 10 0 66.6K 26K
# fmadm reset software-diagnosis
fmadm: software-diagnosis module has been reset
# fmstat | grep software-diagnosis
software-diagnosis 2 0 0.0 0.0 0 0 0 0 368 0
Якщо це не допомагає, тоді примусово вивантажуємо модуль software-diagnosis:
# fmadm unload software-diagnosis
Дана помилка виникає на VirtualBox 7.2.X, причому на 7.0.Х все працює нормально. Отже, розберемося, чому так відбувається і як це виправити.
# VBoxManage modifyvm mincss-pdf --nic1 hostonly --hostonlyadapter1 vboxnet0
VBoxManage: warning: Interface "vboxnet0" doesn't seem to exist
# VBoxManage list hostonlyifs
#
А далі починається найцікавіше:
В деяких випадках хочеться обійтися однією конфігурацією nginx для багатьох сайтів. Але у випадку з SSL це не завжди можливо. Починаючи з 1.15.9 можна використовувати змінні для задання сертифікатів.
map $ssl_server_name $domain {
default $ssl_server_name;
~(([^\.]+)\.([^\.]+))$ $1;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
add_header Content-Type text/html;
return 200 "domain: $domain, document_root: $document_root, request_uri: $request_uri";
ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem;
}
Дана конструкція буде працювати, якщо у вас один і той же SSL issuer, SSL chain. Так, в документації nginx сказано
Only OpenSSL 1.0.2 or higher supports separate certificate chains for different certificates. With older versions, only one certificate chain can be used.
але по факту не працює.
Як відомо, pptp не вміє базово передавати маршрути при підключенні до VPN серверу. Але, можна піти хитріше і спробувати деякі опції з DHCP протоколу, а саме
option ms-classless-routes code 249 = array of unsigned integer 8;
option rfc3442-classless-routes code 121 = array of unsigned integer 8;
Чому треба передавати обидві опції? Бо microsoft заміть 121 (яка і була для цього зроблена згідно RFC) використовувала (до Windows XP/2003 включно; всі новіші вже розуміють 121, але перевагу віддають 249) свою, власну – 249.
Маємо наступну ситуацію:
root@solaris:~# zpool import -f -N -F 9663859789121603598 sata_pool
cannot import 'rpool' as 'sata_pool': one or more devices is currently unavailable
root@solaris:~# zpool import -f -N -F -o readonly=on 9663859789121603598 sata_pool
cannot import 'rpool' as 'sata_pool': one or more devices is currently unavailable
root@solaris:~# zpool import
pool: rpool
id: 9663859789121603598
state: UNAVAIL
status: One or more devices are missing. There are insufficient
replicas for the pool to continue functioning.
action: The pool cannot be imported. Connect the missing
device(s) and try again.
see: http://support.oracle.com/msg/ZFS-8000-6X
scan: resilvered 33.2G in 9m23s with 0 errors on Fri Oct 3 10:17:14 2025
config:
NAME STATE
root UNAVAIL
mirror-0 DEGRADED
c1t1d0 ONLINE
c1t0d0 UNAVAIL
В даній статті розкажу про деякі методи швидкого збирання чи перезбирання ядра.
Типове збирання ядра виконується командою
$ make buildkernel
Ця команда не лише збирає ядро, а і ще перезбирає всі модулі, які входять у GENERIC (або у custom kernel, якщо вказана опція KERNCONF=MYKERNEL).
Є сервер під windows і є центр сертифікації у них в організації і треба було просто перевипустити сертифікат для одного із сервісів. Нічого складного, але щось пішло не так і браузери постійно скаржилися на SSL-зʼєднання.
В першу чергу перевірив чи новий сертифікат підписаний саме тим CA, який у них:
openssl verify -verbose -CAfile ca_ad.crt newcrt.crt
client
X509v3 Authority Key Identifier:
5A:E5:8A:6D:B0:93:BF:58:8C:88:06:B4:28:99:05:13:4F:1A:B6:9F
ca
X509v3 Subject Key Identifier:
5A:E5:8A:6D:B0:93:BF:58:8C:88:06:B4:28:99:05:13:4F:1A:B6:9F
Все збігається, йдемо далі. Перевіримо, що скаже curl, якщо йому примусово підсунути ще наш CA:
> curl.exe -I --cacert root-ca-chain.pem https://zabbix.domain.local curl: (60) SSL: no alternative certificate subject name matches target hostname 'zabbix.domain.local'
І тут все стало на свої місця: домен був лише в Subject Common Name (CN) і не було в Subject Alternative Name (SAN) , а оскільки зараз майже ніхто не “дивиться” в CN, то маємо проблему. Доречі, саме це і збило з пантелику системного адміністратора, оскільки він бачив домен в CN, але не очікував, що треба, щоб домен був саме в SAN полі. Після правильної генерації сертифіката все запрацювало, як треба.
Тобто, резюмуючи, якщо генеруєте SSL-сертифікат то обовʼязково вказуйте все в SAN, навіть те, що ВЖЕ вказали в CN.
Це потрібно для того, що приховати наявність хопа/роутера від таких команд, як traceroute. Але, це доступно не у всіх файерволах, а тільки в деяких.
iptables
iptables -t mangle -А PREROUTING -i eth0 -J TTL --ttl-inc 1
mikrotik
[admin@MikroTik] /ip/firewall/mangle> add chain=prerouting action=change-ttl new-ttl=incrernent:1 passthrough=yes in-interface=\log=no log-prefix=""