29 พฤษภาคม 2569

Mikrotik container : PowerDNS DNSdist

/interface veth
add address=10.0.0.20/24 gateway=10.0.0.1 name=veth-dnsdist

/interface bridge port
add bridge=br-lan interface=veth-dnsdist

/file
add name="/dnsdist-conf/dnsdist.conf" contents=""

:delay 2s;
 
/file
set "/dnsdist-conf/dnsdist.conf" contents="setLocal('0.0.0.0:53')\n\nnewServer({address='1.1.1.1:853', tls='openssl', subjectName='1.1.1.1', validateCertificates=true, pool='dot-parallel-pool'})\nnewServer({address='8.8.8.8:853', tls='openssl', subjectName='8.8.8.8', validateCertificates=true, pool='dot-parallel-pool'})\nnewServer({address='9.9.9.9:853', tls='openssl', subjectName='9.9.9.9', validateCertificates=true, pool='dot-parallel-pool'})\n\nnewServer({address='1.1.1.1:443', tls='openssl', subjectName='1.1.1.1', dohPath='/dns-query', validateCertificates=true, pool='doh-parallel-pool'})\nnewServer({address='8.8.8.8:443', tls='openssl', subjectName='8.8.8.8', dohPath='/dns-query', validateCertificates=true, pool='doh-parallel-pool'})\nnewServer({address='9.9.9.9:443', tls='openssl', subjectName='9.9.9.9', dohPath='/dns-query', validateCertificates=true, pool='doh-parallel-pool'})\n\nsetServerPolicy(leastOutstanding)\n\naddAction(NotRule(PoolAvailableRule('dot-parallel-pool')), PoolAction('doh-parallel-pool'))\n\naddAction(AllRule(), PoolAction('dot-parallel-pool'))\n"

/container/mounts
add list=dnsdist-conf src="/dnsdist-conf/dnsdist.conf" dst="/etc/dnsdist/dnsdist.conf"

/container
add name=dnsdist \
interface=veth-dnsdist \
remote-image="registry-1.docker.io/powerdns/dnsdist-19:latest" \
mountlists=dnsdist-conf \
root-dir="/dnsdist-root" \
use=0 \
start-on-boot=yes \
logging=yes

Mikrotik container : AdGuard DNS Proxy

/interface veth
add address=10.0.0.20/24 gateway=10.0.0.1 name=veth-dnsproxy

/interface bridge port
add bridge=br-lan interface=veth-dnsproxy

/container
add name=dnsproxy \
interface=veth-dnsproxy \
remote-image=registry-1.docker.io/adguard/dnsproxy:latest \
root-dir=/dnsproxy \
cmd="--upstream-mode parallel \
-u https://1.1.1.1/dns-query \
-u https://8.8.8.8/dns-query \
-u https://9.9.9.9/dns-query \
-u tls://1.1.1.1 \
-u tls://8.8.8.8 \
-u tls://9.9.9.9" \
start-on-boot=yes \
logging=yes

10 พฤษภาคม 2569

Mikrotik container : ZeroTier One

/interface/bridge/add name=containers
/ip/address/add address=172.17.0.1/24 interface=containers
/interface/veth/add name=veth-zt address=172.17.0.2/24 gateway=172.17.0.1
/interface/bridge/port add bridge=containers interface=veth-zt
/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24

/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/pull
/container/envs/add list=zt_envs key=ZT_NETWORK_ID value=0d66ea7479dd0d63
/container/add remote-image=zyclonite/zerotier:latest interface=veth-zt root-dir=disk1/zerotier envlist=zt_envs

/container/shell zerotier:latest
zerotier-cli join 0d66ea7479dd0d63
 

02 มีนาคม 2569

Crowdsec command

cscli decisions list
ดูรายชื่อ IP ที่โดนแบนอยู่ทั้งหมด (Local + CAPI)

cscli decisions list --origin CAPI
cscli decisions list --origin CAPI | wc -l 
ดูเฉพาะ IP มหาโจรจากส่วนกลาง (Community List)

cscli decisions add --ip 1.2.3.4 --duration 1h
สั่งแบน IP 1.2.3.4 เป็นเวลา 1 ชั่วโมง

cscli decisions delete --ip 1.2.3.4
ปลดแบน IP 1.2.3.4 (Whitelist คืนมา)

cscli decisions delete --all
ล้างรายการแบนทั้งหมด (ใช้ตอนเผลอบล็อกตัวเองยกแผง)

cscli bouncers list
เช็คว่า Traefik Bouncer ยัง Online (✔️) อยู่ไหม

cscli bouncers add <name>
สร้าง API Key ชุดใหม่ (เอาไปใส่ใน Traefik Middleware)

cscli bouncers delete <name>
ลบ Bouncer ที่ไม่ได้ใช้งานแล้ว

cscli capi register
ลงทะเบียนเครื่องนี้กับส่วนกลาง (ทำครั้งแรกครั้งเดียว)

cscli capi status
เพื่อเช็คการเชื่อมต่อส่วนกลาง

cscli metrics
สำคัญมาก! ดูว่า CrowdSec อ่าน Log ไปกี่บรรทัด และบล็อกไปกี่ครั้ง

cscli alerts list
ดูเหตุการณ์ที่ CrowdSec ตรวจพบ (ใคร ทำอะไร ที่ไหน)

cscli alerts inspect <ID>
ดูรายละเอียดเชิงลึกของ Alert นั้นๆ (เช่น Log บรรทัดที่เป็นปัญหา)

cscli hub update
อัปเดตรายชื่อ Scenario ล่าสุด (เหมือน Update Antivirus)

cscli hub upgrade
สังอัปเกรด Scenario ที่ติดตั้งไว้ให้เป็นเวอร์ชันใหม่

cscli collections list
"ดูว่าเราติดตั้งการป้องกันอะไรไว้บ้าง (Traefik, HTTP, etc.)"

cscli collections install <name>
ติดตั้งการป้องกันเพิ่ม (เช่น crowdsecurity/wordpress)