Як бути в курсі чи немає вразливостей у вашій ОС чи в пакетах? Звісно, обовʼязково бути підписаним на різні security news, але простіше користуватися відповідними інструментами, які заточені під вашу ОS/pkgs.
Як бути в курсі чи немає вразливостей у вашій ОС чи в пакетах? Звісно, обовʼязково бути підписаним на різні security news, але простіше користуватися відповідними інструментами, які заточені під вашу ОS/pkgs.
Це буде коротке нагадування у випадку, коли iostat показує велике навантаження на диски, але через dtrace (rwsnoop, …) ви не бачите, щоб якийсь процес так навантажував диски. Тут варіанти 2: або запущений scrub на цьому пулі або активно використовується swap, який розташований на цих дисках.
Варіанти рішення: зупинити scrub (якщо це він) або перенести swap на інший пул (якщо це можливо).
В Solaris є таке поняття, як contract id (ctid). Перекласти його українською не можна, бо втрачається суть. Так ось, він повʼязує між собою процеси і служби smf.
Розглянемо це на прикладі, щоб краще зрозуміти. У нас є запущені процес, але ми не знаємо, який сервіс їх запускає. Для цього, нам треба дізнатися ctid цих процесів:
$ ps -efc -o ctid,comm,args,pid,user | grep python
1759 python3 python3 /export/home/user01/run_daemon.py --skip-origin 938206 webservd
1759 python3 python3 /export/home/user01/run_daemon.py --skip-origin 201025 webservd
А тепер знайдемо сервіс з ctid 1759:
$ svcs -o CTID,SVC | grep 1759
1759 application/pm2
В даній статті мова йтиме саме про необхідні privileges при запуску сервісів. Для звичайного запуска можна використати ppriv .
Отже, маємо сервіс, який запускається, але в логах скаржиться на permission denied. Зрозуміло, що йому чогось не вистачає, але проблема ускладнюється тим, що це fork від мастер-процесу і він викликається по запиту. Тобто, просто так натравити ppriv не можна.
Нагадаю, що таке ToS (Type of Service) – це можливість пріоритезувати певний трафік за рахунок виставлення спеціального байта у заголовку IP пакету. DSCP – деяке розширення (або в деякому сенсі новіша версія ToS), бо має більше різних пріоритетів (64 проти 7 у ToS).
The running system has not been modified. Modifications were only made to a clone (be://rpool/11.4.61.151.2) of the running system. This clone is mounted at /tmp/tmp_8n959v2 should you wish to inspect it. pkg: The following mediated link targets do not exist, please reset the links via pkg set-mediator: MEDIATOR REMOVED PATH(S) openssl usr/openssl/1.1/lib/amd64/llib-lcrypto.ln, usr/openssl/1.1/pkgconfig/32/libcrypto.pc, usr/openssl/1.1/lib/llib-lcrypto.ln, usr/openssl/1.1/pkgconfig/32/libssl.pc, usr/openssl/1.1/lib/libssl.so.1.1, usr/openssl/1.1/lib/libcrypto.so.1.1, usr/openssl/1.1/lib/amd64/libcrypto.so.1.1, usr/openssl/1.1/bin/CA.pl, usr/openssl/1.1/lib/amd64/llib-lssl.ln, usr/openssl/1.1/bin/c_rehash, usr/openssl/1.1/pkgconfig/64/libssl.pc, usr/openssl/1.1/lib/amd64/libssl.so.1.1, usr/lib/proftpd/amd64/mod_tls-default.so, usr/openssl/1.1/pkgconfig/64/libcrypto.pc, usr/openssl/1.1/bin/openssl, usr/openssl/1.1/lib/llib-lssl.ln
ZFS, це як FreeBSD, з базовими налаштуваннями її мало хто використовує. І є люди, які незаслужено її звинувачують у тому, що вона повільна. Так, в default конфігурація вона не швидка (в першу чергу створювалася не для швидкості, а для стабільності). Почнемо з простих і далі будемо рухатися до більш складних:
Установка VirtualBox під Solaris не відрізняється складністю: скачуємо пакет і встановлюємо:
# wget https://... && pkgadd -d <pkg_name.pkg>
Також встановлюємо extension pack (інакше VRDE не запрацює і видасть помилку), який скачуємо з сайту virtualbox
VRDE: VirtualBox Remote Desktop Extension is not available.
# VBoxManage extpack install /opt/VirtualBox/Oracle_VM_VirtualBox_Extension_Pack-7.0.8.vbox-extpack
Зіштовхнувся нещодавно з тим, що у Solaris немає ‘proc_setgid’ privilege, який, наприклад, вимагає powerdns при старті, якщо запускати не від root’a. Помилка наступна:
pdns_server[401190]: missing privilege "proc_setid" (euid = 0, syscall = "setgid") at setgid+0xcf
Каже, що немає proc_setid, але воно є, а далі вже йде уточнення, що треба не setid, а саме setgid, але у Solaris цього немає. Чому? Не знають навіть у Solaris community. Workaround – стартувати сервіс від root’a і перевірити, щоб не було явного обмеження на privileges для сервісу
UPD. Згідно man то типу повинно використовувати syscall від set_uid, але не хоче.
Нам потрібно отримати лише список сервісів, які з якихось причин не запустилися через помилки
svcs -xv
systemctl --failed