2025/11/03

ruckus AP 訊號調整

最近因為常有user捉到別間房間的AP訊號
因此需要把AP可連線範圍調小
就是調整最差連線的db值
把db值調大
只要小於這個db值
AP就不給連線

如何調整

登入vsz後
















拉到最下方





















目前先調到 -65db 再觀察看看

2025/10/28

這几天因為要測個東西
所以需要使用到raspberry pi
把raspberry pi 設定成AP
想到不久前才出新的pi os
所以直接下載重刷
開几後發現這個版本預設就有 hotspot功能
直接設定就可以用了
之前還要裝很多東西
方便多了
但使用上發現一個問題
就是當client 走無線ssh進raspberry後
只要下指定就會hang住
找了半天資料
發現是qos的問題
又試了很多參數

IPQoS cs0 cs0
IPQoS 0x00
以上都沒用

以下這個才有用
IPQoS throughput

修改 /etc/ssh/sshd_config

在最後加上
IPQoS throughput


systemctl restart ssh

才解決

今天又試了一下 問題還是存在

決定採用

2025/10/15

昨天有人說群組信都寄不出去
我覺得奇怪 程式跟 mail server最新都沒改設定
而且之前也都沒問題
問了才知道user一定選了40個群組
查看log 發現出現一堆







最後出現







之前的設定是





因為發信程式會先送一封 
group.mail.abc.com.tw
過來
所以要能收進來然後 mail server會丟掉 如上圖

但現在狀況是當user一次選了太多群組
會產生很多 error 然後觸發 disconnect 几制

因此改用另一種方法

先把 mydestination 裡的 group.mail.abc.com.tw 刪除

在transport進行判斷
設定 /etc/postfix/main.cf  
加上一行:

transport_maps = hash:/etc/postfix/transport

把寄到 group.mail.abc.com.tw 的信丟掉
建立/etc/postfix/transport檔案,加上一行: 
group.mail.abc.com.tw discard:

執行 postmap 編碼

postmap  /etc/postfix/transport

重啟 postfix

後記 

昨天有試著使用 header_checks 但沒解決
應該沒几個人用一樣的發信程式吧

2025/10/10

目前使用的zabbix 是官網提供的vm
今天在做os 更新時出現空間不足的問題
看了一下分割如下

















即便是把HD加大
也無法處理 / 再加大
於是使用另一個做法
新加一個HD
再來把資料dd到新HD
使用linux mint 開几

dd if=/dev/sda2 0f=/dev/sdb status=progress

因為是使用dd 所以blkid 會相同
/etc/fstab 直接用 不用改
所以用 fdisk 把 /dev/sda2 直接砍了 避免用到舊的
重開几沒問題

最後使用 gparted 調整 /dev/sda /dev/sdb 的分割區空間
/dev/sdb 要再check 才能使用到所有空間 






















2025/10/09

昨天在二個地方碰到相同問題
手几能捉到wifi訊號但連不上
無線一直有個狀況就是如果之前連過某個AP
就會先一直咬住
即使頭頂上有一個AP
也不一定會再优先連頭頂上的那個
討論之後的做法建議是先清除原本的設定
再讓手几自己捉一次訊號
捉到最近AP的几會就會比較大

安卓清除方式如下






在iPhone 上清除Wi-Fi 設定

前往「設定」>「Wi-Fi」,點選網路旁的「更多資訊」圖示,再點「忘記此網路設定」
























2025/10/05

又在 librenms heallth state 發現有設備fan 壞了





怪的是在syslog都沒看到相關訊息
不管是在 syslog server或在本几下 show log
所以在librenms 再加了一個alert rules





















2025/10/02

promox mail gateway 9 這次的進展真的快

Beta出來沒几天 正式版就出來了

而且之前都要等好久 才會有 LXC 的template

今天早上就已經看到了

既然看到 就升吧

一直以來都是直安裝新版再重設config

官方雖然有升版的文件

但以往的經驗是直接原几升都會有問題

https://forum.proxmox.com/threads/proxmox-mail-gateway-9-0-released.173158/

2025/09/26

昨天說的工具 如果碰到是用xml檔案安裝的office會無法移除

就要使用別的方法

Office Deployment Tool, ODT


下載解壓後得到 setup.exe執行檔

接下來要制做 xml file 檔名設為 remove_office.xml

<Configuration>
    <Remove All="TRUE" />
    <Display Level="None" AcceptEULA="TRUE" />
    <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
</Configuration>


以系統管理員身分執行

setup.exe /configure remove_office.xml

2025/09/25

因應office 2019 2016的eos

找了可以下指令移除的官方工具


下載後解压 

以系統管理員執以下指令即可

SaRAcmd.exe -S OfficeScrubScenario -AcceptEula -OfficeVersion All

2025/09/24

今天要把ixc 7150 的firmware撈出來
size 是 31457280
但不管是用tftp或scp
都做到一半就斷了
試了好几次都一樣
想說是不是idle timeout的問題
改一下設定

(config)#telnet timeout 
  DECIMAL   <0..240> In minutes, 0 never timeout
先調大一些

改完後就ok了

2025/09/22

最近在找可以在dos視窗解壓的工具

找到

https://www.7-zip.org/a/7zr.exe

不過只支援7z

指令範例如下


7zr.exe -y x %temp%\abc.7z -o%temp%

今天早上打開看ntopng時發現完全沒有資料

本來以為是mirror有問題

測試了一下

其他的几器使用tcpdump 去看都正常

唯獨這台完全捉不到封包

dmesg發現以下訊息


[    4.618648] ------------[ cut here ]------------

[    4.618940] WARNING: CPU: 3 PID: 671 at net/core/dev.c:603 dev_add_pack+0xaa/0xd0

[    4.618954] Modules linked in: pf_ring(OE+) rfkill bochs drm_vram_helper drm_ttm_helper ttm drm_kms_helper pcspkr virtio_balloon i2c_piix4 joydev drm fuse xfs libcrc32c sr_mod cdrom sg ata_generic ata_piix libata crc32c_intel virtio_net net_failover virtio_blk failover serio_raw

[    4.618969] CPU: 3 PID: 671 Comm: modprobe Tainted: G           OE     -------  ---  5.14.0-570.44.1.el9_6.x86_64 #1

[    4.618971] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014

[    4.618973] RIP: 0010:dev_add_pack+0xaa/0xd0

[    4.618975] Code: c5 28 11 00 00 eb a0 48 8b 6f 28 48 85 ed 74 15 48 81 c5 18 11 00 00 48 85 d2 74 8b 48 8d aa a8 01 00 00 eb 82 48 85 d2 75 f2 <0f> 0b 5b 5d 41 5c 41 5d e9 99 b7 2b 00 66 c1 c0 08 83 e0 0f 48 c1

[    4.618977] RSP: 0018:ffff983bc076fb58 EFLAGS: 00010246

[    4.618979] RAX: 0000000000000300 RBX: ffffffffc0814da0 RCX: 0000000000000201

[    4.618981] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffffc0814da0

[    4.618981] RBP: 0000000000000000 R08: ffff983bc076fb00 R09: ffff8ae7c72b7860

[    4.618982] R10: ffff8ae7c3c78540 R11: 000000000003a680 R12: 0000000000000000

[    4.618983] R13: 00007f5329cd55ad R14: 000055d97d7be962 R15: ffff983bc076fc20

[    4.618985] FS:  00007f532a75d740(0000) GS:ffff8ae8f7d80000(0000) knlGS:0000000000000000

[    4.618986] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033

[    4.618987] CR2: 00007f5329cd4ff0 CR3: 0000000108956000 CR4: 00000000000006f0

[    4.618992] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000

[    4.618993] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

[    4.618994] Call Trace:

[    4.618996]  <TASK>

[    4.618998]  ? show_trace_log_lvl+0x1c4/0x2df

[    4.619003]  ? show_trace_log_lvl+0x1c4/0x2df

[    4.619006]  ? __pfx_init_module+0x10/0x10 [pf_ring]

[    4.619020]  ? ring_init+0x29a/0xff0 [pf_ring]

[    4.619030]  ? dev_add_pack+0xaa/0xd0

[    4.619031]  ? __warn+0x7e/0xd0

[    4.619035]  ? dev_add_pack+0xaa/0xd0

[    4.619037]  ? report_bug+0x100/0x140

[    4.619040]  ? handle_bug+0x3c/0x70

[    4.619043]  ? exc_invalid_op+0x14/0x70

[    4.619045]  ? asm_exc_invalid_op+0x16/0x20

[    4.619050]  ? dev_add_pack+0xaa/0xd0

[    4.619052]  ? __pfx_init_module+0x10/0x10 [pf_ring]

[    4.619062]  ring_init+0x29a/0xff0 [pf_ring]

[    4.619072]  do_one_initcall+0x44/0x210

[    4.619077]  do_init_module+0x64/0x230

[    4.619080]  __do_sys_init_module+0x12e/0x1b0

[    4.619084]  do_syscall_64+0x5f/0xe0

[    4.619086]  ? syscall_exit_to_user_mode+0x19/0x40

[    4.619088]  ? do_syscall_64+0x6b/0xe0

[    4.619090]  ? netif_receive_skb_list_internal+0x1e4/0x300

[    4.619094]  ? napi_complete_done+0x6e/0x220

[    4.619096]  ? virtnet_poll+0x1fb/0x2d4 [virtio_net]

[    4.619104]  ? __napi_poll+0x2c/0x170

[    4.619106]  ? net_rx_action+0x29c/0x370

[    4.619109]  ? kvm_sched_clock_read+0xd/0x20

[    4.619111]  ? sched_clock+0xc/0x30

[    4.619114]  ? sched_clock_cpu+0xb/0x190

[    4.619119]  ? irqtime_account_irq+0x3c/0xb0

[    4.619121]  ? handle_softirqs+0x16b/0x270

[    4.619125]  ? __irq_exit_rcu+0x46/0xc0

[    4.619127]  ? common_interrupt+0x43/0xa0

[    4.619129]  entry_SYSCALL_64_after_hwframe+0x78/0x80

[    4.619133] RIP: 0033:0x7f5329f0f51e

[    4.619135] Code: 48 8b 0d fd 98 0e 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ca 98 0e 00 f7 d8 64 89 01 48

[    4.619137] RSP: 002b:00007ffe93d34038 EFLAGS: 00000246 ORIG_RAX: 00000000000000af

[    4.619138] RAX: ffffffffffffffda RBX: 000055d97db21bb0 RCX: 00007f5329f0f51e

[    4.619139] RDX: 000055d97d7be962 RSI: 000000000005e59d RDI: 00007f5329c77010

[    4.619140] RBP: 00007f5329c77010 R08: 000055d97db21e40 R09: 0000000000000000

[    4.619141] R10: 0000000000000005 R11: 0000000000000246 R12: 000055d97d7be962

[    4.619142] R13: 000055d97db21d20 R14: 000055d97db21bb0 R15: 000055d97db21df0

[    4.619144]  </TASK>

[    4.619144] ---[ end trace 0000000000000000 ]---

[    4.619146] [PF_RING] pf_ring initialized correctly

[    4.676410] dca service started, version 1.12.1

[    4.683689] gnss: GNSS driver registered with major 240 


knerlel 更新後 pf_ring 不能用了

只好先倒回去更新前的備分

倒回去後開几就正常了

再來就是先暫停kernel的更新


vi /etc/dnf/dnf.conf

在 [main] 加上 exclude=kernel*
如下

[main]
...
exclude=kernel*

之後再看看如果kernel沒問題再拿掉吧

2025/09/12

因為之前用的rainloop webmail在今年的弱掃出現風險
但看起來作者已經不再更新維護了


找了找 目前大約只剩 roundcube webmail 還有維護更新


使用 docker


首先依官方的說明

docker run -e ROUNDCUBEMAIL_DEFAULT_HOST=mail -e ROUNDCUBEMAIL_SMTP_SERVER=mail -p 8000:80 -d roundcube/roundcubemail

啟動後可以收信 但不能寄信

查文件才發現預設的smtp不是連 25

所以改一下

docker run --restart=always -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -p 8888:80 -d roundcube/roundcubemail

指定 port 25

改完後 mail server 上的 log 是有連記錄了
但還是無法寄 出現如下問題








看起來是roundcube會強制使用認証

參考文件後 再改一下啟動參數

docker run --restart=always -e ROUNDCUBEMAIL_SMTP_PASS='' -e ROUNDCUBEMAIL_SMTP_USER='' -e ROUNDCUBEMAIL_SMTP_AUTH_TYPE='' -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -p 8888:80 -d roundcube/roundcubemail

但還是沒用
進到docker去看後才發現以下參數沒有被吃進去

ROUNDCUBEMAIL_SMTP_PASS=''
ROUNDCUBEMAIL_SMTP_USER='' 
ROUNDCUBEMAIL_SMTP_AUTH_TYPE=''

只能換另一個方法
先把原來的 config.inc.php 先 co出來

<?php
    $config['plugins'] = [];
    $config['log_driver'] = 'stdout';
    $config['zipdownload_selection'] = true;
    $config['des_key'] = 'dK8orO1JOTEWY';
    $config['enable_spellcheck'] = true;
    $config['spellcheck_engine'] = 'pspell';
    include(__DIR__ . '/config.docker.inc.php');

加入以上參數放在宿主 於啟動時帶入
檔案修改後如下

<?php
    $config['plugins'] = [];
    $config['log_driver'] = 'stdout';
    $config['zipdownload_selection'] = true;
    $config['des_key'] = 'dK8orO1JOTEWY';
    $config['enable_spellcheck'] = true;
    $config['spellcheck_engine'] = 'pspell';
    $config['smtp_auth_type'] = ''; 
    $config['smtp_user'] = '';
    $config['smtp_pass'] = '';
    include(__DIR__ . '/config.docker.inc.php');

修改參數啟動docker

docker run --restart=always -v /tmp/config.inc.php:/var/www/html/config/config.inc.php:ro -e ROUNDCUBEMAIL_DEFAULT_HOST=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_SERVER=mail.aaa.tw -e ROUNDCUBEMAIL_SMTP_PORT=25 -e ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=25M -p 8888:80 -d roundcube/roundcubemail

寄信就沒問題了

2025/08/29

最近試了一下 wazuh

安裝很方便 官方文件如下



但安裝好後如果要更改admin的密碼 依官方文件試了很多次都無法成功
還會導致wazuh 有問題打不開



安裝好後主要設定檔是

/var/ossec/etc/ossec.conf

目前只改了 email通知跟 啟動syslog server

<email_notification>yes</email_notification>
    <smtp_server>10.0.0.1</smtp_server>
    <email_from>wazuh@abc.com</email_from>
    <email_to>abc@abc.com</email_to>
    <email_maxperhour>12</email_maxperhour>
    <email_log_source>alerts.log</email_log_source>
    <agents_disconnection_time>10m</agents_disconnection_time>
    <agents_disconnection_alert_time>0</agents_disconnection_alert_time>
    <update_check>yes</update_check>
  </global>

  <alerts>
    <log_alert_level>3</log_alert_level>
    <email_alert_level>10</email_alert_level>        這裡修改那個level 以上要發通知
  </alerts>


啟動 syslog server

<remote>
  <connection>syslog</connection>
  <port>514</port>
  <protocol>udp</protocol>
  <allowed-ips>10.0.0.0/8</allowed-ips>
  <local_ip>10.1.1.1</local_ip>
</remote>

wazuh 會自動解析log 但如果解析規則沒有定義 就不會出現在 discover


client 端要自己把要monior的檔案加上去 才會送到 server進行解析

<localfile>
  <location>/var/log/httpd/access_log</location>
  <log_format>apache</log_format>
</localfile>

<localfile>
  <location>/var/log/httpd/error_log</location>
  <log_format>syslog</log_format>
</localfile>

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/secure</location> 
</localfile>

2025/08/21

如何在librenms設定到達某個臨界值時發出告警

最快的方式

點開要設定告警的圖
找出url上的 id 值
如下所示
http://10.0.0.1/graphs/to=1755736500/id=22718/type=sensor_fanspeed/from=1755650100/

id 是 22718

再來設定 alert rule
如下圖
設定名稱, sesssor id , 跟告警值
設完後儲存即可



















第二個方式

點開要取值的圖 如下

註記表示在 alert rule 需要使用的 名稱








接下來 create new alert rule



















設定名稱, rule 即可
如果需要限定作用几器 再額外加上 match devices


建立感測器警報規則時最常會用到的選項如下

選項 (Attribute) 資料類型 說明

sensor_value            數字         (最常用) 感測器目前讀取到的數值。例如,電壓的 110、溫度的 25、電量的 98。

sensor_descr         文字         感測器的描述性名稱。例如 Input Phase 1、CPU Core 0 Temp、Toner Level。用來鎖定特定感測器。

sensor_type         文字         感測器的類型,通常來自 MIB 的定義。例如 voltage、temperature、charge、snmp。用來篩選某一類型的所有感測器。

sensor_class         文字         感測器的通用類別。與 sensor_type 類似,但更通用。例如 temperature、voltage、current 等。

sensor_limit         數字         設備本身定義的高臨界值。如果設備透過 SNMP 提供此資訊,您可以用它來做動態比較。

sensor_limit_low 數字         設備本身定義的低臨界值。

sensor_alert         數字 (0/1) 一個布林值 (Boolean),表示設備本身是否認為此感測器已處於警報狀態。1 代表是,0 代表否。


這些選項在特定情境下也可能很有用。

選項 (Attribute) 資料類型 說明

sensor_id             數字         感測器在 LibreNMS 資料庫中的唯一 ID。

sensor_prev         數字         感測器上一次輪詢 (poll) 時的數值。可用來比較數值的變化。

last_updated         時間戳         該感測器最後一次更新的時間

2025/08/20

zabbix設定好triger action
一直沒收到alert
查了半天
才知道server monitor的權限沒開
因為預設是 All groups None
記得要把權限加上去
至少要有read
 






如果要在zabbix要使用不同的mib

找到下方工具 應該是最方便使用的

https://github.com/Sean-Bradley/SNMPWALK2ZABBIX


只要以下指令

python3 snmpwalk2zabbix.py public 192.168.1.1 1.3.6.1.2.1

就會產生 template 的 xml 可以直接從 zabbix 匯入

但執行時出現以下問題
























試了好几次都一樣

原因出在產生出來的xml裡有雙引號

<template>"INSIGHTPOWER" SNMP</template>
<name>"INSIGHTPOWER" SNMP</name>

把雙引號拿掉就正常了


<template>INSIGHTPOWER SNMP</template>

<name>INSIGHTPOWER SNMP</name>

2025/08/19

今天有人問我自建rustdesk的問題
其實在好久之前本來就已經自建了
不過因為管制在內部
所以沒有考慮管制連線的問題
找了一些資料 把這段補起來

下載最新版本的 server


解開後直接執行

hbbs -k _
hbbr -k _

會產生以下二個檔

id_ed25519
id_ed25519.pub

需要cat id_ed25519.pub 的內容 取得公鑰字串

下載client軟体

下載後把檔名改成

rustdesk-host=<伺服器IP或域名>,key=<您的公鑰字串>.exe

假設您的伺服器 IP 是 10.0.0.0,公鑰是 A1B2C3D4E5F68I9J0...,那麼檔名就應該是: rustdesk-host=192.168.1.10,key=A1B2C3D4E5F68I9J0....exe

存檔後直接執行即可

如果不改檔名的話 可以執後再更改相關設定




2025/08/17

almalinux 10 出來一段時間了
想說來升級一下
依照官方的步驟



出現四個問題

Upgrade has been inhibited due to the following problems:
    1. Detected XFS filesystems incompatible with target kernel.
    2. Current x86-64 microarchitecture is unsupported in RHEL10
    3. Deprecated DHCP plugin configured

解決方法

第4點

ifcfg-* files located in /etc/sysconfig/network-scripts/
檔案裡要加上

第3點

sed -i'.bak' 's/^dhcp=dhclient//g' /usr/lib/NetworkManager/conf.d/10-dhcp-dhclient.conf

第2點

rhel 10 cpu 硬体最低支援是 x86-64-v3

檢查 cpu 支援指令

/usr/lib64/ld-linux-x86-64.so.2 --help

Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

第1點

Title: Detected XFS filesystems incompatible with target kernel.
Summary: XFS v4 format has been deprecated and it has been removed from the target k
ernel. Such filesystems cannot be mounted by target system kernel and so the upgrade
 cannot proceed successfully. Following XFS filesystems have v4 format:
    - /
    - /home
Related links:
    - Backing up an XFS file system: https://red.ht/rhel-9-xfs-backup
    - Restoring an XFS file system from backup: https://red.ht/rhel-9-xfs-restore-fr
om-backup
Remediation: [hint] Migrate XFS v4 filesystems to new XFS v5 format. For filesystems
 hosting data, perform a back up, reformat, and restore procedure. Refer to official
 documentation for details. For filesystems hosting the system a clean installation
is recommended instead.

由於這台是centos 7 升上來的 所以 xfs 是 v4
如果要再升到almalinux 10 必須要升到 xfs v5
如何檢查 xfs是 v4 還是 v5


If the output is crc=0, it's a v4 filesystem. If it's crc=1, you have a v5 filesystem.


無法直接升級 只能備分 mkfs.xfs 再匯回資料

 rsync -avxHAX --progress /data/ /mnt/backup/data_backup/

umount /data

mkfs.xfs /dev/vda1

mount -t xfs /dev/vda1 /data

rsync -avxHAX --progress  /mnt/backup/data_backup/ /data/

2025/08/15

最近有個新的需求
希望在市電斷電
但發電机無作動是能關几
而且關几要有先後順序
首先詢問環控系統看看能不能讓我捉乾接點的訊號
廠商回覆是沒辦法
但他們可以增加這個功能
要收費
於是換個思考方式
目前就打算捉UPS的snmp值
只捉輸入電壓跟電池剩餘電量
由於現況是使用 AELTA 
找了一下SNMP的oid

輸入電壓有三相
1.3.6.1.2.1.33.1.3.3.1.3.1.0
1.3.6.1.2.1.33.1.3.3.1.3.2.0
1.3.6.1.2.1.33.1.3.3.1.3.3.0

旁路供電 三相

1.3.6.1.2.1.33.1.5.3.1.2.1.0
1.3.6.1.2.1.33.1.5.3.1.2.2.0
1.3.6.1.2.1.33.1.5.3.1.2.3.0 


只捉一相即可

電池剩餘電量

1.3.6.1.2.1.33.1.2.4.0

shell如下

#!/bin/bash

battery=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.2.4.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $battery

input_voltage=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.3.3.1.3.1.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $input_voltage

if [ $battery -lt 80 ] && [ $input_voltage -lt 50 ]; then

#       echo "ok"
        /usr/sbin/init 0

fi


2025/08/12

前不久提到可以使用 zap docker 相當方便
但今天使用時有一些狀況
首先是如果不限制 docker 的 cpu ram 會把宿主几的資源全部吃完導致當几
必須使用 --cpu --memory 來設定
範例如下

--cpus="18" --memory 20000MB

接續以上的問題
在LXC就算增加2個以上的core 依然無法設定 --cpus 大於一
所以要使用vm才能設定多個cpu

另外硬碟使用率會隨著被scan的網站規模變大而變大
所以要有足夠的硬碟空間 否則也會有掃到一半當几的問題
要特別注意

2025/07/17

今天要把vsz轉到pve
不管是直接import或先tar 解開 使用 vmdk 都出現以下二個問題

首先是沒有 serial port
















要加上去

















再來是無法正常開几





















試了很多方法
最後是把vmdk轉成 qcow2才成功開機
qemu-img convert -f vmdk -O qcow2 vscg-5.2.2.0.1161-disk1.vmdk abc.qcow2



2025/07/12

如何解決win11最近更新造成倉頡空白鍵無法取字的問題 把相容性打開 如下影片



2025/07/02

最近一堆user反應如下的問題 一直跳出來

























以系統管理員執行 certmgr.msc

























在這個位置找到以上的憑証
刪除

2025/06/30

之前有提到 ZAP 使用shell scan 網站的方法 
今天找到單純使用docker的做法

docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:nightly zap-full-scan.py -t https://192.168.24.206 -r 192.168.24.206.html


以下是使用 docker stable     baseline scan
 
docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://192.168.24.206 -r 192.168.24.206.html


以下是使用 docker nightly update     baseline scan

docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t zaproxy/zap-nightly zap-baseline.py -t http://10.1.1.1 -r 10.1.1.1.html


實際跑起來快 而且方便許多

一樣用shell 來跑 

一行一個網站       

https://aa.bb.com
https://dd.ee.com

寫到  /tmp/site_to_test


#!/bin/bash

while read line
do

    echo "$line"

    docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t zaproxy/zap-nightly zap-baseline.py -t http://10.1.1.1 -r 10.1.1.1.html

#    docker run --cpus="18" --memory 30000MB --rm -v /tmp:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t $line -r `echo $line|cut -d '/' -f 3`.html

done < /tmp/site_to_test 

如果沒使用 --rm 全部執行完成後會殘留很多 docker process
列出所有 docker process

docker ps -a

找到如下 process

CONTAINER ID   IMAGE                             COMMAND                   CREATED              STATUS                      PORTS                                       NAMES
0ec0935c4233   ghcr.io/zaproxy/zaproxy:nightly   "zap-full-scan.py -t…"   About a minute ago   Exited (2) 44 seconds ago

清除CONTAINER ID

docker rm 0ec0935c4233

列出所有docker image

docker images

REPOSITORY                TAG       IMAGE ID       CREATED        SIZE
ghcr.io/zaproxy/zaproxy   nightly   432cd81f7738   22 hours ago   2.11GB

清除 IMAGE ID image

docker rmi  432cd81f7738

2025/06/26

本次的ZAP掃出以下的中風險







去年已經出現 本來想說去年應該已經解決了
但今年還是看到 可能是解決不完整

先在 apache 的 CSP 設定內加入以下二行

frame-ancestors 'self';
form-action 'self';

再來處理 style-src
先把 'unsafe-inline' 拿掉
接下來處理的方式有二種

如果在html檔裡直接定義 css 

要使用 hash 或 nonce
使用 nonce 是比較方便的做法

首先在 apache config 裡

style-src 這個定義加上 'nonce-12345678'

12345678 建議置換為亂碼

之後在 css 定義裡加上 nonce 定義
nonce的字串必須跟apahce config裡的相同

<style nonce="123456789" type="text/css">
</style>

修改 html內文 把原本直接定義的style改成先定義css再引用 

例如原本是

<a href="123456.exe" style="color:red;">123456</a>

要改成

<a href="123456.exe" class="red-text">123456</a><br>

同時在上方的css定義加入 red-text

<style nonce="sjdfhs6849" type="text/css">

.red-text {
  color: red;
  font-size: 21px;
}

</style>


另外不使用 hash 跟 nonce 的方法是 把css以獨立檔案定義後再引用

建立 style.css

檔案內容如下

.red-text {
  color: red;
  font-size: 21px;
}

接下來在 html 的head中引用

<head>
<link rel="stylesheet" href="style.css">
</head>

html內文的修正方法如上

2025/06/22

今天把oracle linux 8 升到 almalinux 9

首先升到 almalinux 8

dnf update -y

curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh

bash almalinux-deploy.sh


再升到 almalinux 9

dnf -y update

yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm

dnf install -y leapp-upgrade leapp-data-almalinux

leapp preupgrade

查看 log 解決升級會碰到的問題

cpu要改成 x86-64-v2 或以上

leapp upgrade


升完後

dnf -y update 出現以下訊息

warning: Signature not supported. Hash algorithm SHA1 not available.

需要清除有問題的 gpg-pubkey

列出所有 gpg key

rpm -qa gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

刪除以下二個  gpg key

gpg-pubkey-ad986da3-5cabf60d    gpg(Oracle OSS group (Open Source Software group) <build@oss.oracle.com>)

gpg-pubkey-ced7258b-6525146f    gpg(AlmaLinux OS 8 <packager@almalinux.org>)

rpm -e gpg-pubkey-ad986da3-5cabf60d
rpm -e gpg-pubkey-ced7258b-6525146f


目前正常
再觀察看看


2025/06/19

為了解決近期弱掃出現的portmapper 中風險
決定把 rpcbind 關了
之後nfs全部走4版

systemctl disable rpcbind.socket
systemctl disable rpcbind.service

mount -t nfs4


2025/06/05

fwupd

超方便的firmware 更新工具

先安裝

apt install fwupd

dnf install fwupd

使用 fwupd 的方法非常簡單,基於執行命令和 正確的方法是始終更新資料庫 在繼續更新設備韌體之前,請先了解可用韌體的資訊。我們可以透過輸入以下內容來做到這一點:

sudo fwupdmgr refresh

至 查看哪些裝置支援 fwupd以及其當前狀態,如果有可用更新,則可以使用以下命令進行更新:

fwupdmgr get-devices

一旦您列出了設備,他們就可以 檢查韌體更新 可以透過運行:

fwupdmgr get-updates

如果有可用的韌體更新, 你可以透過運行來應用它們:

sudo fwupdmgr update

至 顯示已安裝的韌體更新列表 透過 fwupd,您可以使用以下命令來完成此操作:

fwupdmgr history


2025/06/03

由於之前試的guacamole會一直當几斷線
今天找看看 meshcentral能不能錄影
有提供
不過要修改 config.json
路徑在 meshcentral-data/config/json

範例如下

{
  "$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",
  "settings": {
    "cert": "10.0.0.1",
    "WANonly": true,
    "_LANonly": true,
    "sessionKey": "MyReallySecretPassword1",
    "port": 443,
    "aliasPort": 443,
    "redirPort": 80,
    "redirAliasPort": 80
  },
  "domains": {
    "": {
      "title": "MyServer",
      "title2": "Servername",
      "minify": true,
      "newAccounts": true,
      "userNameIsEmail": true,
      "SessionRecording": {
        "_onlySelectedUsers": true,
        "_onlySelectedUserGroups": true,
        "onlySelectedDeviceGroups": true,
        "filepath": "/tmp/",
        "index": true,
        "protocols": [1, 2 ],
        "_maxRecordings": 100,
        "maxRecordingDays": 180,
        "maxRecordingSizeMegabytes": 1024
      }
    }
  },
  "_letsencrypt": {
    "email": "myemail@mydomain.com",
    "names": "myserver.mydomain.com",
    "skipChallengeVerification": true,
    "production": false
  }
}

這裡的config設好後 
就不用像之前啟動要再加上 --cert 10.0.0.1 了

node node_modules/meshcentral



2025/06/01

almalinux 10 几天前release

今天在proxmox (PVE) 上安裝時 用iso開几就出現 kernel panic



 








解決的方法就是cpu不要使用預設的 x86-64-v2-AES

也不要用  x86-64-v2

使用  x86-64-v3  或 x86-64-v4 就沒問題了

不過要注意的是 比較舊的host 可能無法支援這二個type 而無法 migrate










官方網站有提到
With RHEL 10, Red Hat will only support x86-64-v3 and higher

不過也有提到
AlmaLinux OS 10 has followed Red Hat’s decision to ship x86-64-v3 optimized binaries by default, but we will also provide an additional x86-64-v2 architecture, allowing users on that older hardware to continue to receive security updates for another 10 years.

所以如果一定要使用 x86-64-v2

就要下載另一個iso



2025/05/28

本來一直都是用ping 在 monitor AP的狀況的
這几天不知為什麼一直出現ping不到的情況
改用fping還是一樣
目前改用nping 來測 5246 port
看來正常了

/usr/bin/nping -c 1 --tcp -p 5246 10.0.1.4

2025/05/25

今天再度測試了一下PVE的firewall功能
發現只要打開cluster的firewall
預設就會載入很多firewall的rule 而且無法刪除
但在測試過程中發現竟然有 guest 原本提供服務的https 打不開了
而且原本使用 nmap做的一些測試也被擋了
最後決定在每台host直接下iptables 指令

#!/bin/bash

######## 以下是防護 host ##############
/usr/sbin/iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 22 -j DROP
/usr/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 8006 -j DROP

######## 以下是防護 guest  視需求新增  port #############
/usr/sbin/iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 22 -j DROP
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 8006 -j DROP
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 8007 -j DROP

記得寫在 crontab  @reboot

2025/05/18

另一個集中管理主几的好物



安裝超級簡單

npm install meshcentral

官網的說明是啟動LAN 模式 只能在同網段 client 使用 multicast找到server

node node_modules/meshcentral



如果要跨網段 要使用以下指令啟動 加上server的 ip

node node_modules/meshcentral --cert 10.0.0.1

安裝完成請馬上登入 https://10.0.0.1
建立帳號 第一個建立的帳號就是系統的管理帳號
建完帳號後再以此帳號登入

接下來是處理被控端的 agent 程式 直接從web管理介面上即可下載















可選擇不同的OS 及版本
agent 程式放到client後可選擇只執行連線 或 安裝成service
連線成功後即會出現在如上圖的位置 可在管理介面上操控

2025/05/17

隨著docker使用的愈來愈多
更新管理這件事也變的重要
找到watchtower這個工具 還滿方便使用的

部署方式如下

docker run -d --restart=always \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup --remove-volumes \
--interval 86400

預設檢查時間是 86400 秒 可視需求調整


如果需要只email通知而不更新

docker run -d --restart=always \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_NOTIFICATIONS=email \
-e WATCHTOWER_NOTIFICATION_EMAIL_FROM=from@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_TO=to@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=from@example.com \
-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=yourpassword \
  containrrr/watchtower \
  --monitor-only \
  --interval 86400 \



2025/05/16

裝好 guacamole 在管理介面几個要注意的地方

先建立連接

建立RDP連接時 如果一直無法連線 要調整安全模式
各個不同模式都試看看




















再來是螢幕錄影
路徑要跟 啟動docker 時 對應的路徑相同
名稱一定要設定 我這裡是跟連接設定相同名稱 方便識別
錄影檔只會有一個名稱為主的檔名 然後接續 .1 .2 .3 ...新增
要觀看必須要使用 guacenc 轉檔


















以下設定開啟檔案傳輸功能 就可以把檔案直接拖進瀏覽器內























在client產生一個共用資料夾 控制端把檔案拖進瀏覽器實際上是拖進這個共用資料夾內
這個資料夾是 guacd 這個docker的 /tmp
 











如果要從被控几下載檔案到控制几 要先把要下載的檔案放到這個資料夾內
之後在瀏覽器上 按 ctrl+alt+shift 打開側边欄 點選 shared Drive
就可以看到能下載的檔案 直接下載即可 
也可以在這個視窗上傳檔案到共用資料夾內























再來就是注意一定要設定時區
避免log對不上的問題

ctrl+alt+shift 可以叫出側邊功能面版 

2025/05/15

昨天有人介紹了一個可以管制登入並且螢幕錄影的軟体


今天試了一下
先安裝 本次都以docker 安裝
先pull四個image

網頁前端
docker pull guacamole/guacamole

主体程式
docker pull guacamole/guacd

資料庫
docker pull mysql

影像檔轉檔程式
docker pull litios/guacenc


在宿主几建立存放影像檔的資料夾 並提供給docker 掛載
mkdir /opt/screen_record
cd /opt
chmod -R 777 screen_record

啟動資料庫
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=guacamole mysql


生成並導入Guacamole初始化資料庫:

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
docker cp initdb.sql mysql:/
docker exec -it mysql bash
mysql -uroot -p
create database guac;
use guac;
source /initdb.sql;
exit
exit

啟動guacd 同時掛載影像檔目錄

docker run --name guacd -d -v /opt/screen_record:/recordings guacamole/guacd


啟動Guacamole Web應用,連結guacd和mysql:

docker run --name guacamole --link guacd:guacd --link mysql:mysql \
-e MYSQL_DATABASE=guac -e MYSQL_USER=root -e MYSQL_PASSWORD=guacamole \
-d -p 9090:8080 guacamole/guacamole


啟動guacenc 同時掛載影像檔目錄

docker run -v /opt/screen_record:/recordings -d -it --name guacenc litios/guacenc


瀏覽器訪問 http://你的IP:9090/guacamole,預設帳號密碼均為 guacadmin。


影像檔轉檔為m4v 指令
docker exec -it guacenc guacenc -s 1280x720 -r 20000000 -f /recordings/record_file_name


更新docker 開几重啟
docker update --restart always <容器ID或名稱>


下篇再補上操作介面說明