2025/11/26

debian 升到 13 版後發生很奇怪的事

同樣使用 nfdump -r $f 'flags S and not flags AFRPU'
目的是找出有syn 但沒有其他回應的ip

在12版時撈出的資料計算ip筆數的最大值大約都在100以下
因此是設100為臨界值

但升到13版後 最大值 暴升到數千
因為程式沒改
導致很多ip被block
目前改為 1000

再觀察看看

2025/11/21

又一個升到pve 9 後的怪問題

guest的ram會持續在 100% 的狀態












但此時到 search去看 反而是 0






要解決這個問題 就要把 virtio win 的 guest tool 裝上去














以上是另一台裝好後的情況

可是在 pve 8 沒裝 guset tool 雖然ram也會高 但不會到 100%
大約會在 90多%

是不會影響操作 就觀感問題

以上是在guest os 是win才會發生


升到pve9後

pvesh get /cluster/resources 的欄位有變

修正如下

pvesh get /cluster/resources|awk '{print $46" "$2" "$36" "$8}'|grep -E "lxc|qemu"|sed 's/....$//' > /tmp/all_guest_cpu


原來是

pvesh get /cluster/resources|awk '{print $41" "$2" "$33" "$8}'|grep -E "lxc|qemu"|sed 's/....$//' > /tmp/all_guest_cpu


主要是要拿 host name,guest id,guest name,guest cpu

2025/11/20

今天把PVE升到9

guest移過去 boot 出現以下訊息


netdev net0: not adding 'host_mtu' parameter for migration compat

QEMU: kvm: warning: Machine type 'pc-i440fx-5.1' is deprecated: old machine version is subject to deletion during current major Proxmox VE release

migration listens on unix:/run/qemu-server/103.migrate

WARN: current machine version 'pc-i440fx-5.1+pve0' is deprecated - see the documentation and change to a newer one


TASK WARNINGS: 1


全部改為 q35 version 10.1

2025/11/18

今天 pf_ring 釋出 9.2.0 版
終於解決了在新版kernel無法使用的問題 

https://github.com/ntop/PF_RING/releases/tag/9.2.0

2025/11/17

再延續之前 docker 的問題
今天 pve 9 更新到

lxc-pve    6.0.5-3

docker 升到

docker-ce-29.0.1-1.el9.x86_64

docker 都正常了

但check了一下 pve 8

lxc-pve 停留在 

lxc-pve_6.0.0-1_amd64.deb  

pve-no-subscription

pve-test

都是相同的版本

感覺是不是8版沒什麼心力在做了 2026/8 EOL



2025/11/15

之前反應的 docker 無法啟動的問題
到今天升到 docker ce 29.0.1 還是沒解決
看了一下systemctl status docker 發現

Nov 15 05:21:45 n8n-almalinux9 dockerd[160]: time="2025-11-15T05:21:45.778838547+08:00" level=error msg="failed to start container" container=52ba4237fbaed18fdb341674d6569b331080be432ca7bb70d5237719417d40ac error="failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: open sysctl net.ipv4.ip_unprivileged_port_start file: reopen fd 8: permission denied"

然後再找了一下資料 發現不是 docker的問題
原因出在 pve的lxc


討論串上是說用 pve-test 裡的版本能解決
再等等吧 目前不打算使用 pve-test

2025/11/07

今天把另一台graylog也轉到 7 版了
目前狀況

datanode.conf 裡

opensearch_heap = 16g


目前全部ram是給32G 文件上是說要給到一半的 ram
所以
opensearch_heap 如果不調到  16G  進web介面後會有告警


/etc/sysconfig/graylog-server

以下這行最好調到 8g 如下
 
GRAYLOG_SERVER_JAVA_OPTS="-Xms8g -Xmx8g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow"

8G以下 buffers 很容易塞住







調整完剩下 8G 再觀察看看會不會有什麼問題
user 反應信件寄不到 單位的M365信箱有一段時間了
昨天連絡經銷商
問題竟然是出在 M$ 把設定改了
導致mail傳送錯誤
原來的設定是




要求改成




要改也完全沒有通知
反正M$做事就是這種鳥樣


2025/11/06

有人反應捉不到ip
我第一反應是會不會dhcp ip 滿了
所以先查 log
grep -i free /var/log/messages
並沒有找到反應段有出現 no free leases
再來查捉不到ip 的pc mac
出現很多如下的 log

Nov  6 10:27:44 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:28:16 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:28:20 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:28:29 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:28:46 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:34:00 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:34:05 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:34:12 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:34:28 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:35:01 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:35:06 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:35:14 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254
Nov  6 10:35:30 dhcp dhcpd[599]: DHCPDISCOVER from 9c:7b:ef:53:7f:e3 via 192.168.12.254

表示pc有送封包到 dhcp server 但 dhcp server 沒回應

正常的log應該是如下

Nov  6 13:27:40 dhcp dhcpd[619]: DHCPDISCOVER from 48:9e:bd:db:28:bd via 192.168.12.254
Nov  6 13:27:41 dhcp dhcpd[619]: DHCPOFFER on 192.168.12.221 to 48:9e:bd:db:28:bd (LAPTOP-RGQR6GL6) via 192.168.12.254
Nov  6 13:27:41 dhcp dhcpd[619]: DHCPREQUEST for 192.168.12.221 (10.0.0.3) from 48:9e:bd:db:28:bd (LAPTOP-RGQR6GL6) via 192.168.12.254
Nov  6 13:27:41 dhcp dhcpd[619]: DHCPACK on 192.168.12.221 to 48:9e:bd:db:28:bd (LAPTOP-RGQR6GL6) via 192.168.12.254


於是我把dhcp再加大範圍 加了五個ip

就正常了

所以為什麼沒出現 no free leases 的訊息
這個再查看看


早上把 almalinux 9上的docker 版本更新後
n8n就起不來了
不知道是不是有bug
只好先還原備分
過几天再看看

試了別台 也一樣
果然是這個版本的docker有問題

docker-ce-cli-1:28.5.2-1.el9.x86_64
docker-compose-plugin-2.40.3-1.el9.x86_64
docker-ce-3:28.5.2-1.el9.x86_64
docker-ce-rootless-extras-28.5.2-1.el9.x86_64

2025/11/05

早上死掉一台synology的nas
因為是mount nfs 給pbs 備分用
所以要先把備分移到別台nas
然後在pbs上disable datastore
指令如下

Set to Offline (Disables all access)

proxmox-backup-manager datastore update <datastore-name> --maintenance-mode offline


Set to Read-Only (Allows restores, no new backups)

proxmox-backup-manager datastore update <datastore-name> --maintenance-mode read-only


Re-enable (Go Online)

proxmox-backup-manager datastore update <datastore-name> --delete maintenance-mode


再來修改 /etc/fstab 先把該nfs mount point 註解

重開几

讓pbs繼續運作

PVE上的storage也要先disable 然後把備分改到其他storage

等修好後再 enable

2025/11/04

graylog 7 昨天發布

比較大的改變是不再使用 opensearch 而改用 graylog-datanode

照著官方文件安裝沒什麼問題

如果是在PVE上安裝

因為 mongodb 必須使用到cpu的 avx 功能

所以cpu type 至少要選 x86-64-v3 以上

這個在graylog 5 安裝時就有這個要求了

特別要注意的是以下流程跟之前不同

安裝完後必須 cat /var/log/graylog-server/server.log

找到首次進入系統的帳號密碼及連結

如下範例
http://admin:ghWgeIAkKl@10.0.0.1:9000

按照畫面上的流程步驟 使用預設值一直下一步即可

目前先把netflow轉到新版了 觀察一陣子看看


https://go2docs.graylog.org/current/setting_up_graylog/web_interface.htm#Prefligh

https://graylog.org/

https://go2docs.graylog.org/current/downloading_and_installing_graylog/red_hat_installation.htm

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