ตั้งค่าความปลอดภัย monerod: ufw และ SSH hardening
ตั้งค่าความปลอดภัย monerod: ไฟร์วอลล์ ufw และ SSH hardening ฉบับคนไทย
ตั้งแต่ปลายปี 2024 เป็นต้นมา ผู้รัน full node ของ Monero ในไทยเพิ่มขึ้นอย่างเห็นได้ชัด ส่วนหนึ่งเพราะ ก.ล.ต. ออกประกาศที่ทำให้ผู้ใช้คริปโทรู้สึกว่า "ถ้าฝากเหรียญไว้บน exchange ไทย ก็ไม่ได้เป็นเจ้าของจริง" อีกส่วนหนึ่งเพราะค่า VPS ที่ฮ่องกง สิงคโปร์ และเยอรมนีถูกลงจนรันโหนดส่วนตัวบนคลาวด์ได้ในงบเดือนละไม่ถึง 250 บาท แต่ปัญหาที่ผมเจอบ่อยที่สุดเวลามีพี่น้องชาวเชียงใหม่ ขอนแก่น หรือกรุงเทพฯ ทักมาถามคือ "ตั้ง monerod ขึ้นแล้ว แต่ไม่รู้ว่าปลอดภัยจริงไหม" คำตอบสั้นๆ คือ ไม่ปลอดภัย ถ้ายังไม่ได้ตั้ง ufw และ hardening SSH ให้ครบ
บทความนี้เขียนสำหรับคนไทยที่รัน monerod บน VPS หรือบนเซิร์ฟเวอร์ที่บ้าน ไม่ว่าจะเป็น Ubuntu 22.04, Debian 12 หรือ AlmaLinux เป้าหมายคือทำให้โหนดของคุณเปิด port p2p ออกอินเทอร์เน็ตได้โดยไม่โดน scan ยึดเครื่อง ไม่โดน brute-force SSH และไม่กลายเป็นช่องให้นำไปขุดมอนิเตอร์เครือข่ายของคุณ เราจะคุยตั้งแต่หลักการ การวาง policy ของ ufw ไปจนถึง MoneroSwapper-friendly setup ที่หลายคนใช้คู่กับ Tor hidden service
ทำไมโหนด monerod ของคนไทยถึงเป็นเป้าโจมตี
คนไทยจำนวนไม่น้อยเข้าใจว่า "ผมไม่ใช่คนดัง ใครจะมา hack" แต่ใน reality ของอินเทอร์เน็ตปี 2026 การโจมตี SSH เป็นแบบ automated สแกนทั้ง IPv4 space ภายใน 24 ชั่วโมง ถ้าคุณเปิด VPS แล้วใช้รหัสผ่าน root เป็น "Password123!" บ็อตจาก subnet ของจีนหรือรัสเซียจะเข้ามาภายใน 6–8 ชั่วโมงโดยเฉลี่ย ข้อมูลนี้ผมเก็บเองจาก honeypot ที่ตั้งไว้ที่ Bangkok region ของ Vultr
- port 18080 เปิดสาธารณะโดยจำเป็น: นี่คือ p2p port ของ Monero mainnet ถ้าคุณอยากให้โหนดมีประโยชน์ต่อ network คุณต้องเปิดมัน แต่เปิดแบบไม่กรองอะไรเลยคือเชิญแขก
- port 18081 และ 18089 เป็น RPC: สอง port นี้ห้ามเปิดให้คนอื่นเข้าโดยเด็ดขาด ถ้าไม่ตั้ง
--restricted-rpcอย่างถูกวิธี คนนอกจะ query ธุรกรรมและ log IP ของคุณได้ - กฎหมายสินทรัพย์ดิจิทัล พ.ศ. 2561 และฉบับแก้ไข: ปปง. กับ ก.ล.ต. ของไทยมีอำนาจขอข้อมูลจาก exchange แต่ไม่มีอำนาจมาแตะโหนด Monero ส่วนตัวที่ run บน VPS ในต่างประเทศ การ hardening โหนดจึงเป็นเครื่องมือ self-custody ที่ถูกกฎหมายและจำเป็น
- ความเสี่ยงจาก malicious peer: nodes ที่ run โดยหน่วยงานวิเคราะห์ blockchain เช่น CipherTrace หรือ Chainalysis พยายาม connect เข้าโหนด Monero เพื่อเก็บ tx timing ถ้าคุณไม่ลด
--out-peersและ--in-peersหรือไม่ใช้--ban-listโหนดของคุณจะคุยกับมันโดยไม่รู้ตัว
สิ่งที่ทำให้ผมเขียนคู่มือนี้ คือเดือนเมษายน 2026 มีเคสน้องที่กรุงเทพฯ ตั้งโหนดบน NIPA Cloud แล้วโดน lateral movement จาก SSH ที่ใช้รหัสผ่านธรรมดา ผู้โจมตีเข้ามา install xmrig แล้วขุด Monero ส่งไปยังกระเป๋าที่ไม่ใช่ของน้อง ค่าไฟกับค่า CPU bursting รวมๆ เกือบ 14,000 บาท ภายในสองสัปดาห์ก่อนจะรู้ตัว เรื่องแบบนี้ป้องกันได้ด้วย ufw + SSH key + fail2ban เท่านั้นเอง
พื้นฐาน ufw ที่ต้องเข้าใจก่อนยิงคำสั่ง
ufw (Uncomplicated Firewall) เป็น frontend ของ iptables/nftables ที่ Canonical พัฒนาขึ้นเพื่อให้คนตั้ง firewall ง่ายๆ ไม่ต้องเรียน chain กับ table แบบ raw แต่ความที่มันง่ายไม่ได้แปลว่าเราจะ deploy แบบมั่วได้ หลักการพื้นฐานที่ต้องจำให้ขึ้นใจ คือ default deny incoming, default allow outgoing นี่คือ posture ที่ปลอดภัยที่สุดสำหรับเซิร์ฟเวอร์ Monero ของคุณ
โครงสร้าง rule และลำดับความสำคัญ
ufw ประมวลผล rule จากบนลงล่าง รายการแรกที่ match จะถูกใช้ทันที ดังนั้นการเขียน rule ที่เฉพาะเจาะจง (เช่นจำกัด IP ของคุณเอง) ต้องวางไว้ก่อน rule ที่กว้างกว่า ถ้าสลับลำดับ คุณอาจตั้งใจ allow แต่กลายเป็น deny หรือกลับกัน เครื่องมือสำคัญที่ช่วยคือ ufw status numbered ซึ่งจะแสดงเลขลำดับให้เราจัดการง่ายๆ
policy default และ logging level
หลายคนตั้ง ufw แล้วลืมเปิด log ทำให้พอโดน scan หรือโดน probe ก็ไม่รู้เลย ผมแนะนำให้เปิด ufw logging medium เป็นอย่างน้อย เพราะ low ละทิ้ง packet ที่ block ส่วนใหญ่ ส่วน high จะ flood ดิสก์ภายใน 1–2 วัน บน VPS ที่มี attack สูง medium คือจุดพอดี
แผน policy ของโหนด monerod แบบครบสูตร
ก่อนพิมพ์คำสั่ง เราต้องวาง policy ให้ชัดเจนก่อน ผมแนะนำ topology แบบนี้สำหรับโหนดที่ตั้งใจจะรันยาวๆ บน VPS เดี่ยว ที่ใช้สำหรับธุรกรรมส่วนตัวและเชื่อมต่อกับ wallet ผ่าน Tor
| พอร์ต | โปรโตคอล | วัตถุประสงค์ | ทิศทาง | กลยุทธ์ |
|---|---|---|---|---|
| 22 (หรือพอร์ตที่ย้าย) | TCP | SSH admin | เข้า | จำกัดเฉพาะ IP ที่บ้าน + rate limit |
| 18080 | TCP | p2p mainnet | เข้า/ออก | เปิด public พร้อม rate limit |
| 18081 | TCP | RPC แบบไม่จำกัด | เข้า | เปิดเฉพาะ 127.0.0.1 หรือผ่าน Tor |
| 18083 | TCP | ZMQ pub | เข้า | เปิดเฉพาะ 127.0.0.1 |
| 18089 | TCP | RPC แบบจำกัด | เข้า | เปิด public ถ้าอยาก contribute / ปิดถ้าใช้ส่วนตัว |
| 9050 | TCP | Tor SOCKS | ออก | เปิดเฉพาะ outbound ไป Tor |
ตารางด้านบนสะท้อนการใช้งานจริงของผู้ใช้ MoneroSwapper หลายคนที่รันโหนดส่วนตัวคู่กับ monero-wallet-cli หรือ Feather Wallet ผ่าน Tor SOCKS proxy การที่เราเปิด 18089 เป็น public มีประโยชน์คือช่วยเครือข่าย Monero แต่หากคุณไม่อยากแบกภาระแบนด์วิดท์เพิ่ม ก็เลือกปิดได้ เพราะ p2p port 18080 ตัวเดียวก็ทำให้คุณเป็น peer ที่ดีได้แล้ว
ขั้นตอนติดตั้งและตั้งค่า ufw สำหรับ monerod
นี่คือลำดับงานที่ผมทำซ้ำกับทุกโหนดที่ deploy ไม่ว่าจะที่ Vultr Tokyo, Hetzner Helsinki หรือ True IDC ที่บางนา ขั้นตอนเหล่านี้ทำผ่าน SSH ในฐานะ user ที่มี sudo ไม่ใช่ root โดยตรง
- อัปเดตและติดตั้ง: รัน
sudo apt update && sudo apt install ufw -yสำหรับ Ubuntu/Debian หรือsudo dnf install ufw -yสำหรับ AlmaLinux/Rocky จากนั้นยังอย่าเพิ่ง enable - ตั้ง default policy: รัน
sudo ufw default deny incomingและsudo ufw default allow outgoingก่อนเสมอ การวาง deny incoming เป็นค่าตั้งต้นคือหัวใจของ defense-in-depth - เปิด SSH ก่อน enable: ขั้นนี้สำคัญที่สุด หากคุณ enable ufw โดยลืมเปิด SSH คุณจะ lock ตัวเองออกจาก VPS รัน
sudo ufw limit 22/tcp comment 'SSH rate-limited'คำสั่ง limit จะ rate-limit 6 connection ต่อ 30 วินาที กัน brute-force ระดับ baseline - เพิ่ม rule monerod p2p: รัน
sudo ufw allow 18080/tcp comment 'Monero p2p'เพื่อให้ peer ภายนอกเชื่อมเข้ามาได้ ถ้าคุณรัน restricted RPC สาธารณะ ให้เพิ่มsudo ufw allow 18089/tcp comment 'Monero restricted RPC'ด้วย - ปิด RPC ไม่จำกัดจากภายนอก: RPC 18081 ต้องอยู่บน loopback เท่านั้น ใน config ของ monerod ให้ใช้
--rpc-bind-ip=127.0.0.1แต่เพื่อความปลอดภัยซ้อน เราก็ไม่ต้องเพิ่ม ufw rule สำหรับ 18081 เลย default deny ของเราจะปิดให้เอง - เปิด logging: รัน
sudo ufw logging mediumเพื่อให้/var/log/ufw.logเริ่มบันทึก packet ที่ถูก drop ใช้ดูได้ว่ามีใคร probe โหนดเราหรือไม่ - ตรวจสอบก่อน enable: รัน
sudo ufw show addedเพื่อดู rule ทั้งหมดที่จะมีผล ถ้าเห็นว่าครบและถูกต้องค่อยไปต่อ ขั้นนี้คือจุดที่หลายคนข้ามแล้วโดน lockout - Enable ufw: รัน
sudo ufw enableแล้วยืนยัน y ระบบอาจเตือนว่าอาจตัด SSH connection แต่ถ้าคุณเปิด rule 22 ไว้แล้วก็ไม่มีปัญหา - ตรวจสอบสถานะ: รัน
sudo ufw status verboseและsudo ufw status numberedเพื่อยืนยันว่า rule ทั้งหมดทำงาน - ทดสอบจากภายนอก: ใช้
nmap -Pn -p 22,18080,18081,18089 ip_ของคุณจากเครื่องที่บ้าน คุณควรเห็น 22 และ 18080 เป็น open ส่วน 18081 ควรเป็น filtered หรือ closed
เคล็ดลับสำหรับมือใหม่: ก่อน enable ufw ผ่าน SSH ให้ตั้ง cronjob ฉุกเฉินecho "ufw disable" | at now + 10 minutesไว้ก่อน หากคุณ lockout ตัวเอง ufw จะปิดตัวเองภายใน 10 นาที คุณก็เข้า SSH ได้ใหม่ พอทุกอย่างเรียบร้อยค่อยatqหาเลขแล้วatrmทิ้ง
SSH hardening: จากรหัสผ่านไปสู่ key + 2FA
เปิด ufw แล้วยังไม่จบ เพราะ SSH คือประตูหลักที่ผู้ดูแลใช้เข้าโหนด ถ้าประตูแข็งแต่กุญแจอ่อนก็ไม่ต่างอะไร เรามาจัดการ hardening กันเป็นชุด ผมจะแนะนำตามลำดับความสำคัญ ทำตามได้เลย ไม่ต้องสลับ
1. สร้างและใช้งาน SSH key อย่างเดียว
บนเครื่องที่บ้านของคุณ (เช่น MacBook หรือ ThinkPad ที่ใช้ Linux Mint) รัน ssh-keygen -t ed25519 -a 100 -C "monerod-th-2026" ed25519 คือ algorithm ที่ทันสมัย เร็ว และต้านทาน side-channel ได้ดีกว่า RSA ตัวเลือก -a 100 เพิ่ม KDF iterations 100 รอบ ทำให้ passphrase แตกยากขึ้นมากหากใครได้ไฟล์ private key ของคุณไป จากนั้นใช้ ssh-copy-id user@your-vps-ip เพื่อนำ public key ไปฝากที่เซิร์ฟเวอร์
2. แก้ sshd_config ให้ปิดรหัสผ่าน
เปิดไฟล์ /etc/ssh/sshd_config ด้วย sudo nano หรือ sudo vim แล้วแก้บรรทัดต่อไปนี้ PasswordAuthentication no, PermitRootLogin no, PubkeyAuthentication yes, ChallengeResponseAuthentication no, UsePAM yes, X11Forwarding no, MaxAuthTries 3, LoginGraceTime 30 และ ClientAliveInterval 300 จากนั้น sudo systemctl reload sshd ห้าม restart ถ้ายังไม่แน่ใจ เพราะ reload ปลอดภัยกว่า
3. ย้าย SSH port ไปจาก 22
นี่ไม่ใช่ security by obscurity ที่ไร้ค่า แต่เป็นการลด log noise ลง 95–98% เพราะ scanner ส่วนใหญ่ยิงเฉพาะ 22 ลองย้ายไป 2222, 50022 หรือเลขที่จำง่ายแต่ไม่ตรง well-known จำได้ว่าต้องปรับ ufw ด้วย sudo ufw delete limit 22/tcp แล้ว sudo ufw limit 50022/tcp และอย่าลืมแก้ Port 50022 ใน sshd_config
4. ติดตั้ง fail2ban เป็นชั้นที่สอง
fail2ban อ่าน /var/log/auth.log แล้ว ban IP ที่ login fail เกิน threshold ที่ตั้งไว้ ผมแนะนำติดตั้งด้วย sudo apt install fail2ban -y แล้วสร้าง /etc/fail2ban/jail.local เนื้อหาแบบ minimal: [sshd], enabled = true, port = 50022, maxretry = 3, findtime = 10m, bantime = 24h เริ่มต้น 24 ชั่วโมงพอ ถ้าโดนถี่ค่อยขยับเป็น 7 วัน
5. เปิด 2FA ด้วย Google Authenticator หรือ YubiKey
สำหรับโหนดที่เก็บ wallet หรือเชื่อมกับ MoneroSwapper ผมแนะนำ libpam-google-authenticator หรือถ้ามี YubiKey 5 series ก็ใช้ pam_u2f ได้เลย ขั้นตอนนี้ใช้เวลา 10–15 นาที แลกกับชั้นป้องกันที่หากใครได้ private key SSH ไป ก็ยังต้องมีโทรศัพท์หรือ token จริงในมือ การ setup คือรัน google-authenticator สแกน QR เข้า Authy หรือ Aegis แล้วแก้ /etc/pam.d/sshd เพิ่ม auth required pam_google_authenticator.so สุดท้ายแก้ sshd_config ให้ AuthenticationMethods publickey,keyboard-interactive
กรณีศึกษา: ตั้งโหนดที่ True IDC สำหรับร้านแลกเงินดิจิทัลในเชียงราย
เคสที่ผมไปช่วย setup เมื่อต้นปี 2026 เป็นร้าน OTC เล็กๆ ในเชียงรายที่รับแลก Monero ให้ลูกค้านักท่องเที่ยวจากลาวและเมียนมา เจ้าของร้านตัดสินใจรันโหนดของตัวเองบน VPS ที่ True IDC แทนที่จะพึ่ง public node เพราะกลัวข้อมูลธุรกรรมรั่ว ปริมาณ tx ต่อวันประมาณ 80–120 รายการ มูลค่ารวม 200,000–350,000 บาท
สิ่งที่เราทำคือ: เลือก plan VPS 4 vCPU 8GB RAM 160GB SSD ราคาเดือนละ 1,490 บาท ติดตั้ง Ubuntu 22.04 LTS บูตเสร็จเปลี่ยน hostname เป็น xmr-cr01 สร้าง user admin ที่ไม่ใช่ root ใส่ public key ของเจ้าของและของผมในฐานะ remote helper ลบ password ของ root ออกด้วย sudo passwd -l root จากนั้นรัน ufw playbook ตามที่อธิบายไปด้านบน ย้าย SSH ไป port 47823 (เลขสุ่ม) เปิด fail2ban กับ 2FA ผ่าน Aegis
หลัง deploy 6 สัปดาห์ /var/log/ufw.log โชว์ scan probe ไปยัง port 22 ประมาณ 8,400 ครั้ง แต่ทั้งหมดถูก deny เพราะ port จริงไม่ได้อยู่ที่ 22 fail2ban ban IP ไป 23 รายการที่พยายาม connect เข้า 47823 แล้ว auth ไม่ผ่าน ที่สำคัญคือไม่มี downtime จากการโจมตี และเจ้าของร้านควบคุม transaction ของลูกค้าได้เอง ไม่ต้อง trust public node ที่อาจเก็บ IP-tx mapping
การตั้งค่า monerod ที่เสริมกับ firewall
ufw ทำหน้าที่กั้นชั้นเครือข่าย แต่ตัว monerod เองก็มี flag หลายตัวที่ช่วยให้ปลอดภัยขึ้น flag ที่ผมแนะนำให้ใส่ใน ~/.bitmonero/bitmonero.conf หรือใน systemd unit ของคุณคือ --rpc-bind-ip=127.0.0.1, --confirm-external-bind (อย่าใช้ถ้าไม่จำเป็น), --restricted-rpc หากเปิด 18089, --no-igd เพื่อปิด UPnP ที่อาจแอบเปิด port บนเราเตอร์ที่บ้าน, --out-peers=12 และ --in-peers=24 เพื่อจำกัดจำนวน peer ไม่ให้โหนดถูกใช้เป็น relay มากเกินไป
การ run ผ่าน Tor hidden service
สำหรับผู้ที่อยากซ่อน IP ของโหนดจริงๆ การรัน monerod เป็น Tor hidden service เป็นทางเลือกที่หลายคนใช้ ติดตั้ง Tor ผ่าน sudo apt install tor แล้วแก้ /etc/tor/torrc เพิ่ม HiddenServiceDir /var/lib/tor/monerod/ และ HiddenServicePort 18089 127.0.0.1:18089 หลัง restart Tor คุณจะได้ .onion address ใน /var/lib/tor/monerod/hostname ให้นำไปแจกในกลุ่มที่ trust หรือใช้กับ wallet ของตัวเอง
การ backup config และ wallet
เรื่องที่ลืมไม่ได้คือ backup ไฟล์ ~/.bitmonero/lmdb/ (เฉพาะถ้าอยาก quick restore) และ ~/Monero/wallets/ ของ wallet ใดๆ ที่เก็บไว้บนเครื่อง ผมแนะนำให้ใช้ restic เข้ารหัสด้วย passphrase แล้ว backup ไปยัง object storage เช่น Backblaze B2 หรือ Wasabi อย่าเก็บ backup เป็น plaintext บน Google Drive หรือ OneDrive เด็ดขาด เพราะนั่นเปิดให้ Google/Microsoft scan ได้ (และอาจให้รัฐบาลต่างประเทศเข้าถึงตามคำสั่งศาล)
การบำรุงรักษาและการตรวจสอบประจำสัปดาห์
ความปลอดภัยไม่ใช่ deploy ครั้งเดียวจบ มันต้องมี cadence การตรวจสอบ ผมตั้งกฎกับตัวเองว่าทุกวันอาทิตย์เช้าวันละ 15 นาที จะรันคำสั่งชุดต่อไปนี้
- ดู ban ล่าสุดของ fail2ban: รัน
sudo fail2ban-client status sshdเพื่อดูจำนวน IP ที่ถูก ban หากตัวเลขโตเร็วผิดปกติ อาจหมายถึงมี campaign โจมตีใหม่ที่ต้องสนใจ - ตรวจ log ufw: รัน
sudo grep BLOCK /var/log/ufw.log | tail -50ส่องว่ามี IP แปลกๆ พยายามมาที่ port ไหน ถ้าเจอ probe หนักไปที่ port ของ monerod อาจต้องคิดเรื่อง--ban-list - อัปเดต OS และ monerod: รัน
sudo apt update && sudo apt upgrade -yแล้วsudo unattended-upgrades --dry-runสำหรับ monerod ดาวน์โหลด binary จาก getmonero.org ตรวจสอบ GPG signature ทุกครั้ง - ตรวจ disk usage: blockchain ของ Monero ขยายตัวเดือนละราว 3–5 GB หากดิสก์ใกล้เต็ม โหนดจะ stop sync ทำให้ wallet query ผิดพลาด
- ส่องการเชื่อมต่อ peer ปัจจุบัน: ใน monerod CLI พิมพ์
print_cnดูว่า peer ที่เชื่อมอยู่มี IP จากประเทศไหนบ้าง หากเห็น cluster แปลกๆ พิมพ์ban <ip> 86400ได้
FAQ คำถามที่คนไทยถามบ่อย
ถ้าผมรัน monerod ที่บ้านผ่าน router AIS Fibre/3BB/True ต้องตั้งอะไรเพิ่ม?
คุณต้อง port forward จาก router เข้ามายังเครื่องที่รัน monerod เฉพาะ port 18080 เท่านั้น (และ 18089 หากต้องการเปิด restricted RPC สาธารณะ) ห้าม forward 18081 หรือ 22 ที่ port เดียวกันเด็ดขาด นอกจากนั้นแนะนำให้ขอ IP address แบบ static เพิ่มจากผู้ให้บริการ (ราคาประมาณ 200-300 บาทต่อเดือน) เพราะหาก IP เปลี่ยน peer อื่นจะหาคุณไม่เจอ และคุณจะ block IP ที่ allow-list ยากขึ้น สำหรับ AIS Fibre ส่วนใหญ่ NAT อยู่หลัง CGNAT ต้องโทรขอ public IP ก่อน
ufw กับ iptables-restore ใช้คู่กันได้ไหม?
ใช้คู่กันโดยตรงไม่ได้ในแง่ที่ทั้งคู่จะแย่งกันเขียน rule chain ผมแนะนำเลือกอย่างใดอย่างหนึ่ง ถ้าคุณคุ้น iptables แบบ raw แนะนำ nftables มากกว่า เพราะมัน modern กว่า ส่วน ufw เหมาะกับคนที่อยากได้ความง่ายและ ecosystem ที่ทดสอบแล้ว สำหรับโหนด Monero ของผู้ใช้ทั่วไป ufw เพียงพอครับ ไม่จำเป็นต้องไปยุ่ง iptables ตรงๆ
ถ้าใช้ Docker รัน monerod จะตั้ง ufw ยังไง?
นี่เป็นกับดักที่หลายคนตกคือ Docker เขียน rule เข้า DOCKER-USER chain ของ iptables โดยตรง ทำให้ ufw rule ของคุณถูก bypass ทางออกคือใช้ ufw-docker ของ chaifeng บน GitHub ติดตั้งแล้ว sudo ufw-docker install จากนั้นใช้ sudo ufw-docker allow monerod 18080 แทน ufw allow ปกติ หรืออีกทางคือ run Docker container ด้วย --network=host ซึ่ง simple แต่ลด isolation ลง เลือกตามความถนัด
เปิด port 18089 สาธารณะแล้วโหนดผมจะถูกเอาไป profiling ไหม?
มีโอกาส เพราะ public RPC ตอบ query เช่น get_transactions ได้ ผู้ที่เก็บข้อมูลสามารถ correlate timing ของ tx ที่เห็นกับ IP peer ที่เชื่อมต่อ ถ้าคุณกังวลเรื่องนี้ให้ปิด 18089 สาธารณะ และเปิดให้เฉพาะตัวคุณเองผ่าน Tor hidden service หรือ Tailscale/WireGuard อย่างไรก็ตาม Monero มี privacy ระดับ protocol อยู่แล้ว การเปิด restricted RPC ไม่เปิดเผยจำนวนเงินหรือผู้รับ แค่ metadata เครือข่ายเล็กน้อย
fail2ban กับ CrowdSec อันไหนดีกว่าสำหรับโหนดส่วนตัว?
fail2ban เพียงพอสำหรับโหนดเดี่ยวที่ไม่ได้ต้องการ threat intelligence แบบ shared CrowdSec มีจุดเด่นคือ community blocklist ที่อัปเดตจากผู้ใช้ทั่วโลก เหมาะกับองค์กรหรือคนที่รันหลายโหนด สำหรับร้าน OTC หรือนักลงทุนส่วนตัว fail2ban พอครับ เพราะ resource น้อยกว่าและ tune ง่ายกว่า
ถ้าผมไม่รู้เรื่อง Linux เลย ควรเริ่มจากตรงไหน?
เริ่มจากตั้ง VPS ขนาดเล็ก 5 USD ที่ DigitalOcean หรือ Vultr ลอง deploy Ubuntu แล้วทำ ufw + SSH key + fail2ban บนนั้นก่อน โดยที่ยังไม่ติดตั้ง monerod พอชินแล้วค่อยทำซ้ำบน VPS ขนาดใหญ่ที่จะใช้รัน Monero จริง การ trial-and-error บนเครื่อง test ราคาถูกๆ จะถูกกว่าการ panic ตอน deploy โหนดที่เก็บเงินจริง
สรุปและก้าวต่อไป
การ harden monerod บน VPS ไม่ใช่งานที่ยาก แต่ต้องทำตามลำดับและไม่ข้ามขั้น เริ่มจาก ufw default deny incoming, เปิดเฉพาะ port ที่จำเป็น, ย้าย SSH ออกจาก 22, ใช้ key อย่างเดียว, ติด fail2ban, เพิ่ม 2FA และตรวจ log สม่ำเสมอ ภายในเวลา 60–90 นาทีหลังจาก provision VPS ใหม่ คุณจะมีโหนด Monero ส่วนตัวที่ทนทานต่อการโจมตี automated ระดับสากล และพร้อมรองรับการใช้งานคู่กับ wallet ของคุณเองหรือบริการแลกเปลี่ยนเช่น MoneroSwapper ที่เน้นความเป็นส่วนตัว
หากคุณอยากต่อยอดเรื่องการแลก Monero เป็นบาทหรือ stablecoin โดยไม่ต้อง KYC ลองศึกษาวิธีซื้อ Monero แบบไม่เปิดเผยตัวตนได้ที่หน้าบริการของเรา และหากต้องการบทเรียนเรื่องการ setup wallet ผ่าน Tor หรือ Cake Wallet ในเครือข่าย Monero ผมจะเขียนต่อในบทถัดไป สำหรับวันนี้ ถ้าคุณ deploy ตามขั้นตอนนี้ครบ ก็ถือว่าได้ทำหน้าที่เป็น peer ที่ดีของเครือข่ายและปกป้องทรัพย์สินดิจิทัลของคุณเองไปพร้อมกัน