មគ្គុទ្ទេសក៍ឥតគិតថ្លៃ SSem SecuMon

ចាប់ពីម៉ាស៊ីនមេផ្ទាល់ខ្លួនមួយគ្រឿង · គិតត្រឹមខែតុលា ឆ្នាំ 2026

នឹងមកដល់ឆាប់ៗការចែកចាយឯកសារដំឡើងកំពុងរៀបចំ។

មគ្គុទ្ទេសក៍នេះបង្ហាញជាមុននូវអ្វីដែលត្រូវរៀបចំ លំដាប់ដំឡើង និងអ្វីដែលគួរដឹងពេលប្រតិបត្តិការ។ ពេលការចែកចាយចាប់ផ្តើម យើងនឹងដាក់អាសយដ្ឋានទាញយកនៅទីនេះ។

1. អ្វីដែលត្រូវរៀបចំ

អ្វីលក្ខខណ្ឌ
ម៉ាស៊ីនមេដែលត្រូវការពារLinux (systemd) + fail2ban · nftables · sqlite3។ amd64 ឬ arm64។ បានសាកល្បងលើ Ubuntu 22.04 · CentOS 8។
ម៉ាស៊ីនមេកុងសូលមួយគ្រឿង។ JDK 21 · Tomcat 11 · PostgreSQL 17។ ដំណើរការដោយ Docker គឺងាយស្រួល។
បណ្តាញម៉ាស៊ីនមេត្រូវអាចភ្ជាប់ទៅអាសយដ្ឋានកុងសូលតាម HTTPS។ មិនត្រូវការច្រកចូលទៅម៉ាស៊ីនមេទេ។ យើងណែនាំឱ្យដាក់កុងសូលនៅពីក្រោយ VPN ឬបណ្តាញខាងក្នុង។
នាឡិកាធ្វើសមកាលកម្មនាឡិកានៃម៉ាស៊ីនមេទាំងអស់ និងកុងសូលដោយ NTP។ បើពេលវេលាហត្ថលេខាខុសគ្នាលើស 60 វិនាទី សំណើនឹងត្រូវបដិសេធ។
វិញ្ញាបនបត្រវិញ្ញាបនបត្រ HTTPS សម្រាប់កុងសូល (ឧ. Let's Encrypt)។ cookie ចូលគណនីត្រូវបានផ្ញើតែតាម HTTPS ដូច្នេះមិនអាចចូលគណនីតាម HTTP ធម្មតា (មិនអ៊ិនគ្រីប) បានទេ។

ដំឡើងកញ្ចប់ជាមុនលើម៉ាស៊ីនមេនីមួយៗដែលត្រូវការពារ។

# Debian · Ubuntu
apt-get update && apt-get install -y fail2ban nftables sqlite3
# RHEL · Rocky · CentOS
dnf install -y epel-release && dnf install -y fail2ban nftables sqlite
systemctl enable --now fail2ban

2. បើកការហាមឃាត់កើនជាលំដាប់ក្នុង fail2ban

កំណត់ឱ្យ IP ដដែលកាន់តែត្រលប់មកវិញ កាន់តែត្រូវហាមឃាត់យូរ។ SecuMon ប្រើមេគុណទាំងនេះដើម្បីគណនា «ឥឡូវនៅកម្រិតណា» និង «លើកក្រោយនឹងត្រូវហាមឃាត់យូរប៉ុណ្ណា»។

# /etc/fail2ban/jail.local
[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5
bantime.increment   = true
bantime.multipliers = 1 2 4 8 16 32 64 168
bantime.maxtime     = 168h
ignoreip = 127.0.0.1/8 ::1 <ជួរ VPN របស់អ្នក>

# /etc/fail2ban/fail2ban.local — រក្សាកំណត់ត្រាល្មើសដដែលៗ 60 ថ្ងៃ (លំនាំដើម 1 ថ្ងៃ នោះក្រោយមួយថ្ងៃ IP នឹងក្លាយជាអ្នកល្មើសលើកដំបូងវិញ)
[DEFINITION]
dbpurgeage = 60d

ជាមួយការកំណត់ខាងលើ រយៈពេលហាមឃាត់មានដូចខាងក្រោម។ fail2ban បន្ថែមពេលចៃដន្យបន្តិច ដូច្នេះតម្លៃពិតប្រាកដអាចខុសគ្នាបន្តិចបន្តួច។

ការហាមឃាត់សរុប1 ដង2 ដង3 ដង4 ដង5 ដង6 ដង7 ដង8 ដងឡើងទៅ
រយៈពេលហាមឃាត់1 ម៉ោង2 ម៉ោង4 ម៉ោង8 ម៉ោង16 ម៉ោង32 ម៉ោង64 ម៉ោង7 ថ្ងៃ

សូមប្រាកដថាបានដាក់ផ្លូវចូលរបស់អ្នក (ដូចជាជួរ VPN) ក្នុង ignoreip។ វាការពារកុំឱ្យអ្នកត្រូវហាមឃាត់ពីម៉ាស៊ីនមេរបស់ខ្លួនឯង ដោយសារតែវាយពាក្យសម្ងាត់ខុសពីរបីដង។

3. ដំឡើងកុងសូល

3-1. ឯកសារសម្ងាត់

តម្លៃសម្ងាត់មិនត្រូវសរសេរក្នុងកូដ ឬអថេរបរិស្ថានទេ គឺទុកជាឯកសារក្នុងថតតែមួយ។ container កុងសូលភ្ជាប់ (mount) ថតនេះទៅ /App/secrets ជាបែបអានប៉ុណ្ណោះ។

mkdir -p /srv/secumon/secrets/tls && chmod 700 /srv/secumon
cd /srv/secumon/secrets
openssl rand -hex 24 > db_password
openssl rand -base64 18 > admin_password      # ពាក្យសម្ងាត់សម្រាប់ចូលលើកដំបូង (ឈ្មោះគណនី admin)
openssl genpkey -algorithm ed25519 -out console_ed25519.key
openssl pkey -in console_ed25519.key -pubout -out console_ed25519.key.pub
# ឯកសារ 644 ដើម្បីឱ្យគណនី container អានបាន — ការការពារពឹងលើថតមេ 700
chmod 644 db_password admin_password console_ed25519.key console_ed25519.key.pub
ឯកសារគោលបំណងបើគ្មាន
db_passwordការភ្ជាប់មូលដ្ឋានទិន្នន័យកុងសូលមិនចាប់ផ្តើមដំណើរការទេ
admin_passwordពាក្យសម្ងាត់នៃគណនីអ្នកគ្រប់គ្រងដំបូង adminគណនីមិនត្រូវបានបង្កើត ដូច្នេះមិនអាចចូលបានទេ
console_ed25519.key · .pubចុះហត្ថលេខាលើពាក្យបញ្ជាអាចមើលបាន ប៉ុន្តែមិនអាចអនុវត្តបានទេ
abuseipdb.keyសោ API AbuseIPDB (ស្រេចចិត្ត)មិនអាចប្រើការរាយការណ៍ · ការពិនិត្យកេរ្តិ៍ឈ្មោះបានទេ
telegram.envការជូនដំណឹង Telegram (ស្រេចចិត្ត)មិនមានការជូនដំណឹងចេញទេ
tls/cert.pem · chain.pem · privkey.pemវិញ្ញាបនបត្រ HTTPS របស់កុងសូលមិនអាចបើកតាម HTTPS បានទេ

មានតែ console_ed25519.key មួយ ក៏អាចចុះហត្ថលេខាលើពាក្យបញ្ជាដែលមានសុពលភាពសម្រាប់ម៉ាស៊ីនមេទាំងអស់បាន។ កុំដាក់ឯកសារនេះក្នុងឃ្លាំងកូដ ឬដ្រាយចែករំលែក — សូមរក្សាទុកដាច់ដោយឡែក។

3-2. មូលដ្ឋានទិន្នន័យ

កុំបើកច្រក DB ទៅខាងក្រៅ។ កុងសូលភ្ជាប់តាមឈ្មោះ container នៅក្នុងបណ្តាញ Docker ដូចគ្នា។

docker network create secumon-net
docker run -d --name secumon-db --network secumon-net --restart unless-stopped \
  -e POSTGRES_DB=secumon -e POSTGRES_USER=secumon \
  -e POSTGRES_PASSWORD_FILE=/run/secrets/db_password \
  -v /srv/secumon/secrets/db_password:/run/secrets/db_password:ro \
  -v secumon_pgdata:/var/lib/postgresql/data \
  postgres:17

កុងសូលបង្កើតតារាង និងទិន្នន័យដើមដោយខ្លួនឯង ពេលចាប់ផ្តើមដំណើរការលើកដំបូង។ មិនចាំបាច់បញ្ចូល schema ដាច់ដោយឡែកដោយ psql ទេ។

3-3. ការកំណត់កុងសូល

កុងសូលជាកម្មវិធីវេបដែលដំណើរការលើ Tomcat 11។ របៀបដំណើរការនឹងផ្សព្វផ្សាយជាមួយកញ្ចប់ចែកចាយ ហើយនៅទីនេះ យើងរៀបរាប់ជាមុននូវអថេរបរិស្ថានដែលត្រូវកំណត់។

អថេរបរិស្ថានតម្លៃលំនាំដើមអត្ថន័យ
F2B_DB_URLjdbc:postgresql://…:5432/secumonអាសយដ្ឋាន DB។ សរសេរដោយប្រើឈ្មោះ container។
F2B_CANONICAL_HOSTត្រូវដាក់តម្លៃរបស់អ្នកដូមែនកុងសូលរបស់អ្នក។ បើចូលមកតាម HTTP ធម្មតា ឬអាសយដ្ឋានផ្សេង វានឹងបញ្ជូនបន្តទៅ HTTPS នៃអាសយដ្ឋាននេះ។
F2B_PROTECTED_CIDRSត្រូវដាក់តម្លៃរបស់អ្នកជួរ IP ដែលមិនត្រូវទប់ស្កាត់ជាដាច់ខាត — VPN របស់អ្នក · បណ្តាញខាងក្នុង · IP សាធារណៈរបស់ម៉ាស៊ីនមេ។ បណ្តាញឯកជន · loopback តែងតែត្រូវបានការពារ ដោយមិនគិតពីតម្លៃនេះ។
F2B_BLOCK_TTL_DAYS30រយៈពេលលំនាំដើមនៃការទប់ស្កាត់ជួរ IP (ថ្ងៃ)។ 0 = អចិន្ត្រៃយ៍។
F2B_AUTO_BLOCK_ENABLEDtrueបើក ឬបិទការទប់ស្កាត់ IP ល្មើសដដែលៗដោយស្វ័យប្រវត្តិ។
F2B_AUTO_BLOCK_THRESHOLD3ចាប់ពីការហាមឃាត់លើកទីប៉ុន្មាន ទើបទប់ស្កាត់ស្វ័យប្រវត្តិ។
F2B_AUTO_BLOCK_TTL_DAYS30រយៈពេលទប់ស្កាត់ស្វ័យប្រវត្តិ (ថ្ងៃ)។
F2B_FEED_REFRESH_HOURS24ចន្លោះពេលទាញយកបញ្ជីទប់ស្កាត់សាធារណៈ · បញ្ជីប្រទេស ឡើងវិញ (ម៉ោង)។
F2B_BAN_MULTIPLIERS1 2 4 8 16 32 64 168កំណត់ឱ្យដូចមេគុណក្នុងការកំណត់ jail។
F2B_ABUSE_DAILY_LIMIT1000កូតាប្រើប្រាស់ AbuseIPDB ក្នុងមួយថ្ងៃ។

ពិនិត្យស្ថានភាពក្រោយចាប់ផ្តើម។ បើឃើញ "db":"ok" មានន័យថាដំណើរការធម្មតា។

curl -s https://<អាសយដ្ឋានកុងសូល>/api/health

4. ចុះឈ្មោះម៉ាស៊ីនមេ — ភ្នាក់ងារ

  1. ចូលកុងសូលជា admin បញ្ចូលឈ្មោះម៉ាស៊ីនមេក្នុងផ្ទាំង គោលដៅ រួចចុច ចុះឈ្មោះ + ចេញ token។
  2. អេក្រង់បង្ហាញ ID គោលដៅ និង token ប្រើតែម្តង។ token បង្ហាញតែម្តងនេះប៉ុណ្ណោះ ហើយផុតកំណត់ក្រោយ 15 នាទី។
  3. ដំណើរការស្គ្រីបដំឡើងជា root លើម៉ាស៊ីនមេដែលត្រូវការពារ។
# លើម៉ាស៊ីនមេដែលត្រូវការពារ (root)
tar xzf agent-amd64.tgz && cd agent
./install-agent.sh --console https://<អាសយដ្ឋានកុងសូល> \
    --target-id <ID គោលដៅ> --token <token ប្រើតែម្តង>
journalctl -u secumon-agent -f      # បើឃើញបន្ទាត់ដូចខាងក្រោមក្នុង 30 វិនាទី គឺធម្មតា

បើដំណើរការធម្មតា អ្នកនឹងឃើញបន្ទាត់ដូចនេះ secumon-agent: 2026/10/06 16:40:12 전송 완료 — jail 2개, 밴 5건

ស្គ្រីបដំឡើងធ្វើតែកិច្ចការខាងក្រោមប៉ុណ្ណោះ។ វាមិនបើកច្រកជញ្ជាំងភ្លើងទេ។

  • បង្កើតគណនីដាច់ដោយឡែក f2bagent ដែលមិនអាចចូលបាន — ភ្នាក់ងារមិនដំណើរការជា root ទេ។
  • អនុញ្ញាតតាម sudo តែ root wrapper /usr/local/sbin/f2b-agent-exec មួយប៉ុណ្ណោះ។
  • បង្កើតសោហត្ថលេខារបស់ភ្នាក់ងារ នៅលើម៉ាស៊ីនមេនោះផ្ទាល់។ សោឯកជនមិនចេញទៅលើបណ្តាញទេ។
  • ក្រោយចុះឈ្មោះនៅកុងសូល វាដំណើរការជាប់ជាសេវា secumon-agent។

កុំប្រើឈ្មោះ host ដែលមានសញ្ញាគូសក្រោម (_) ក្នុងអាសយដ្ឋានកុងសូល។ Tomcat 11 បដិសេធវា ព្រោះខុសស្តង់ដារ។ សូមពិនិត្យជាមុនដោយ getent hosts <ដូមែនកុងសូល> ថាម៉ាស៊ីនមេអាចដោះស្រាយ (resolve) ដូមែនកុងសូលបាន។

បើការចុះឈ្មោះបានបញ្ចប់ ប៉ុន្តែបរាជ័យនៅជំហានបន្ទាប់ សូមកែមូលហេតុ រួចដំណើរការពាក្យបញ្ជាដដែលម្តងទៀត។ ភ្នាក់ងារដែលបានចុះឈ្មោះរួច មិនប្រើ token ម្តងទៀតទេ។

ដើម្បីដកម៉ាស៊ីនមេចេញ សូមបិទដំណើរការវានៅកុងសូល (សំណើពីភ្នាក់ងារនោះនឹងត្រូវបដិសេធភ្លាម) រួចដំណើរការ systemctl disable --now secumon-agent លើម៉ាស៊ីនមេ។

5. របៀបអានអេក្រង់

  • ផ្ទាំងគ្រប់គ្រង — ការហាមឃាត់បច្ចុប្បន្ន · ការហាមឃាត់សរុប · IP ល្មើសដដែលៗ · និន្នាការ នៃម៉ាស៊ីនមេទាំងអស់។ បើ «ទទួលចុងក្រោយ» លើកាតម៉ាស៊ីនមេ លើសពី 30 វិនាទីច្រើន សូមពិនិត្យភ្នាក់ងាររបស់ម៉ាស៊ីនមេនោះ។
  • បញ្ជីហាមឃាត់ — IP ដែលកំពុងត្រូវហាមឃាត់។ មើលកម្រិតល្មើសដដែលៗ · ពេលនៅសល់ · ប្រទេស ជាមួយគ្នា។ ប្រទេសត្រូវបានរកពីតារាងស្វែងរកដែលភ្ជាប់មកក្នុងកុងសូល។
  • ព័ត៌មានលម្អិត IP — ម៉ាស៊ីនមេដែល IP នោះជាប់ ប្រវត្តិហាមឃាត់ រយៈពេលហាមឃាត់លើកក្រោយ (ប៉ាន់ស្មាន) និងកេរ្តិ៍ឈ្មោះ AbuseIPDB។

«ការហាមឃាត់បច្ចុប្បន្ន» អានពីបញ្ជីដែល fail2ban កំពុងទប់ស្កាត់ពិតប្រាកដ ហើយ «ចំនួនល្មើសដដែលៗ» អានដាច់ដោយឡែកពីកំណត់ត្រាហាមឃាត់របស់ fail2ban។ ដូច្នេះ ការហាមឃាត់ដែលបានដោះលែងរួច មិនត្រូវបានបង្ហាញខុសថាជាការហាមឃាត់បច្ចុប្បន្នទេ។

6. ហាមឃាត់ · ដកការហាមឃាត់ · ទប់ស្កាត់ជួរ IP

  • ហាមឃាត់ · ដកការហាមឃាត់ អាចធ្វើបានដោយប្រតិបត្តិករឡើងទៅ។ អាចហាមឃាត់ IP ណាក៏បាន ហើយបើមិនជ្រើស jail ទេ គឺប្រើ sshd។
  • ទប់ស្កាត់ជួរ IP អាចធ្វើបានតែអ្នកគ្រប់គ្រងប៉ុណ្ណោះ។ វាដំណើរការតែពេលអ្នកវាយជួរ IP ម្តងទៀត ហើយបើធំជាង IPv4 /16 · IPv6 /48 នឹងត្រូវបដិសេធ។ តាមលំនាំដើម វាដោះលែងដោយខ្លួនឯងក្រោយ 30 ថ្ងៃ។
  • អាចដាក់ជួរ IP ច្រើន × ម៉ាស៊ីនមេច្រើន ក្នុងពេលតែមួយ។ ពាក្យបញ្ជាត្រូវបានចេញ លុះត្រាតែទាំងអស់ឆ្លងកាត់ការពិនិត្យ — ព្រោះស្ថានភាពដែលទប់ស្កាត់បានតែពាក់កណ្តាល គឺគ្រោះថ្នាក់បំផុត។
  • ពាក្យបញ្ជាដំណើរការ លុះត្រាតែភ្នាក់ងារលើម៉ាស៊ីនមេយកវាក្នុងរយៈពេល 60 វិនាទី។ មើលលទ្ធផលជា បានបញ្ចប់ · បរាជ័យ · ផុតកំណត់ ក្នុងប្រវត្តិពាក្យបញ្ជានៃផ្ទាំង ការអនុវត្ត។

បើទប់ស្កាត់ខុស សូមដោះតាម ការអនុវត្ត → ដកការទប់ស្កាត់ ក្នុងកុងសូល។ បើបន្ទាន់រហូតមិនអាចចូលកុងសូលបាន សូមលុបដោយផ្ទាល់លើម៉ាស៊ីនមេនោះ។

# តែជួរ IP មួយ
nft delete element inet f2b_console blocklist4 '{ 203.0.113.0/24 }'
# ការទប់ស្កាត់ទាំងអស់ដែល SecuMon បានបញ្ចូល (ច្បាប់ fail2ban នៅតារាងផ្សេង ដូច្នេះនៅដដែល)
nft delete table inet f2b_console

7. ទប់ស្កាត់ដោយស្វ័យប្រវត្តិ

ទប់ស្កាត់ IP ល្មើសដដែលៗដោយស្វ័យប្រវត្តិ

រៀងរាល់ 5 នាទី វាជ្រើស IP ដែលត្រូវហាមឃាត់សរុប 3 ដងឡើងទៅ ហើយទប់ស្កាត់ 30 ថ្ងៃលើម៉ាស៊ីនមេទាំងអស់។ ដោយសារវាជាមុខងារតែមួយគត់ដែលផ្លាស់ប្តូរជញ្ជាំងភ្លើងដោយគ្មានការអនុម័តពីមនុស្ស វាត្រូវបានដាក់កម្រិតជាច្រើនស្រទាប់។

  • ទប់ស្កាត់តែIP តែមួយ (/32 · /128) ប៉ុណ្ណោះ មិនមែនជួរ IP ទេ។
  • រំលងជួរ IP ការពារ។ ចេញពាក្យបញ្ជាអតិបរមា 20 ក្នុងមួយលើក។
  • IP ដដែលមិនត្រូវបានលើកកម្រិតពីរដងទេ ហើយអ្វីៗទាំងអស់ត្រូវកត់ទុកក្នុងកំណត់ហេតុសវនកម្ម និង Telegram។

ដើម្បីបិទ សូមកំណត់ F2B_AUTO_BLOCK_ENABLED=false ឱ្យកុងសូល ហើយចាប់ផ្តើមឡើងវិញ។ IP ដែលត្រូវទប់ស្កាត់ខុស ត្រូវដោះជាមុនដោយ ដកការទប់ស្កាត់ បន្ទាប់មកលុបកំណត់ត្រាលើកកម្រិត ទើបវាអាចត្រូវវាយតម្លៃម្តងទៀតនៅពេលក្រោយ។

docker exec secumon-db psql -U secumon -d secumon -c "DELETE FROM auto_block WHERE ip = '<IP>'"

បញ្ជីទប់ស្កាត់សាធារណៈ

បើកនៅផ្ទាំង ហ្វីដទប់ស្កាត់។ ដំបូង ទាំងពីរត្រូវបានបិទ។

  • Spamhaus DROP — ជួរ IP ដែលត្រូវបានប្លន់ (hijack) ឬប្រើតែសម្រាប់ឧក្រិដ្ឋកម្ម។ ចរាចរណ៍ធម្មតាមិនអាចមកពីទីនោះ ដូច្នេះស្ទើរតែគ្មានការព្រួយបារម្ភពីការរកឃើញខុស។
  • FireHOL level1 — អាសយដ្ឋានដែលមិនប្រើ និងជួរ IP ព្យាបាទដែលបានបញ្ជាក់។ វាមានបណ្តាញឯកជនផងដែរ ដូច្នេះកុងសូលច្រោះធាតុដែលត្រួតគ្នាជាមួយជួរ IP ការពារចេញ មុននឹងផ្ញើ។

ទាញយកឡើងវិញម្តងក្នុងមួយថ្ងៃ ហើយបើខ្លឹមសារនៅដដែល នឹងមិនផ្ញើទៅម៉ាស៊ីនមេម្តងទៀតទេ។ ជួរ IP ដែលត្រូវដកចេញពីបញ្ជី នឹងដោះលែងដោយខ្លួនឯងនៅការធ្វើបច្ចុប្បន្នភាពលើកក្រោយ។

8. ទប់ស្កាត់តាមប្រទេស — មុនពេលបើក

សេវាដែលត្រូវការការចូលពីទូទាំងពិភពលោក មិនអាចទប់ស្កាត់តាមប្រទេសបានទេ។

  • ម៉ាស៊ីនមេ authoritative DNS — ដូមែនរបស់អ្នកអាចដោះស្រាយបាន លុះត្រាតែ resolver ពីទូទាំងពិភពលោកអាចចូលមកបាន។ SecuMon តែងតែអនុញ្ញាតច្រក 53។
  • ការទទួលអ៊ីមែល (25) · VPN — បើទប់ស្កាត់ អ៊ីមែលនឹងដាច់ ហើយអ្នកមិនអាចចូលម៉ាស៊ីនមេរបស់ខ្លួនពីបរទេសបានទេ។ កុំបើកការទប់ស្កាត់តាមប្រទេសលើម៉ាស៊ីនមេប្រភេទនេះ។
  • bot ម៉ាស៊ីនស្វែងរក — បើទប់ស្កាត់ប្រទេសធំ bot ស្វែងរកក៏ត្រូវទប់ស្កាត់ដែរ ហើយគេហទំព័ររបស់អ្នកអាចបាត់ពីលទ្ធផលស្វែងរក។

ពេលជ្រើសប្រទេសក្នុងផ្ទាំង ទប់ស្កាត់តាមប្រទេស វាបង្ហាញចំនួនជួរ IP នៃប្រទេសនោះជាមុន។ ពេលអនុវត្ត វាទាញយកបញ្ជីភ្លាមៗ ហើយដាក់ចូលម៉ាស៊ីនមេទាំងអស់ក្នុង 30 វិនាទី ហើយពេលបិទ វាលុបបញ្ជីនៃប្រទេសនោះ។ ប្រទេសធំៗ អាចមានជួរ IP រាប់ម៉ឺន។

ទោះជាប្រទេសដែលមានការវាយប្រហារច្រើនក៏ដោយ តាមពិតច្រើនតែជាជួរ IP មួយចំនួនតូច ឬម៉ាស៊ីនមេជួលនៅប្រទេសនោះ។ បើទប់ស្កាត់ ពួកគេនឹងប្តូរទៅប្រើម៉ាស៊ីនមេនៅប្រទេសផ្សេង។ សូមចាត់ទុកការទប់ស្កាត់តាមប្រទេសជាមធ្យោបាយបន្ថែម ដែលប្រើរួមគ្នាជាមួយបញ្ជីទប់ស្កាត់សាធារណៈ · ការទប់ស្កាត់ IP ល្មើសដដែលៗដោយស្វ័យប្រវត្តិ។

SecuMon អនុញ្ញាតចម្លើយនៃការភ្ជាប់ដែលមានស្រាប់ នៅខាងដើមបំផុតនៃច្បាប់ជញ្ជាំងភ្លើង។ បើគ្មានច្បាប់នេះ សូម្បីតែចម្លើយនៃការភ្ជាប់ដែលម៉ាស៊ីនមេរបស់អ្នកភ្ជាប់ចេញទៅសេវានៅប្រទេសនោះ (mirror កញ្ចប់ · API ជូនដំណឹង · ការចេញវិញ្ញាបនបត្រ) ក៏ត្រូវទប់ស្កាត់ដែរ។

9. AbuseIPDB · Telegram

AbuseIPDB

ដាក់ abuseipdb.key ក្នុងថតសម្ងាត់ នោះមុខងារនឹងបើក។ សោនៅតែលើម៉ាស៊ីនមេកុងសូល ហើយមិនចេញទៅអេក្រង់ · DB · ម៉ាស៊ីនមេណាមួយឡើយ។

  • អាចរាយការណ៍បានតែ IP ដែលកំពុងត្រូវហាមឃាត់ ឬត្រូវបានហាមឃាត់ក្នុង 30 ថ្ងៃចុងក្រោយ — មិនអាចរាយការណ៍ IP ណាមួយតាមចិត្តបានទេ។
  • មិនរាយការណ៍ IP ដដែលម្តងទៀតក្នុង 15 នាទីទេ។ កុងសូលរាប់កូតាប្រចាំថ្ងៃដោយខ្លួនឯង។
  • ប្រភេទត្រូវបានកំណត់តាមឈ្មោះ jail — ssh → 18 · 22, វេប (apache · nginx) → 18 · 21, អ៊ីមែល → 18 · 11, ផ្សេងៗ → 18។

Telegram

# /srv/secumon/secrets/telegram.env
TELEGRAM_TOKEN=<token របស់ bot>
TELEGRAM_CHAT_ID=<ID ការជជែក>

ជូនដំណឹងអំពីការទប់ស្កាត់ IP ល្មើសដដែលៗដោយស្វ័យប្រវត្តិ និងការផ្លាស់ប្តូរបញ្ជីសាធារណៈ។ បញ្ជីពេញត្រូវបានផ្ញើជាឯកសារភ្ជាប់។ បើគ្មានអ្វីផ្លាស់ប្តូរ នឹងមិនជូនដំណឹងទេ — បើទទួល «គ្មានការផ្លាស់ប្តូរ» រាល់ថ្ងៃ អ្នកនឹងរំលងការជូនដំណឹងដែលសំខាន់ពិតប្រាកដ។

10. គណនី · ការផ្ទៀងផ្ទាត់ពីរជំហាន

តួនាទីអ្វីដែលអាចធ្វើបាន
VIEWER មើលប៉ុណ្ណោះមើលផ្ទាំងគ្រប់គ្រង · បញ្ជីហាមឃាត់ · ព័ត៌មានលម្អិត IP · ប្រវត្តិពាក្យបញ្ជា
OPERATOR ប្រតិបត្តិករ+ ហាមឃាត់ · ដកការហាមឃាត់ · រាយការណ៍ AbuseIPDB និងពិនិត្យកេរ្តិ៍ឈ្មោះ
ADMIN អ្នកគ្រប់គ្រង+ ទប់ស្កាត់ជួរ IP · ចុះឈ្មោះម៉ាស៊ីនមេ · ហ្វីដទប់ស្កាត់ · ទប់ស្កាត់តាមប្រទេស · អ្នកប្រើ · កំណត់ហេតុសវនកម្ម
  • ការចូលលើកដំបូង ប្រើ admin និងពាក្យសម្ងាត់ក្នុងឯកសារ admin_password។ ក្រោយចូលហើយ សូមប្តូរពាក្យសម្ងាត់នៅ គណនីរបស់ខ្ញុំ។
  • នៅ គណនីរបស់ខ្ញុំ → ការផ្ទៀងផ្ទាត់ពីរជំហាន ស្កេន QR ដោយកម្មវិធីផ្ទៀងផ្ទាត់ ឬបញ្ចូលកូដដោយផ្ទាល់។ កូដដដែលមិនអាចប្រើពីរដងបានទេ។
  • បើវាយពាក្យសម្ងាត់ខុស 5 ដង គណនីនឹងជាប់សោ 15 នាទី ហើយ IP មួយអាចព្យាយាមបានតែ 10 ដងក្នុងមួយនាទី។ បើគ្មានសកម្មភាពរយៈពេល 30 នាទី អ្នកនឹងត្រូវចាកចេញដោយស្វ័យប្រវត្តិ។

បើបាត់កម្មវិធីផ្ទៀងផ្ទាត់ មិនអាចដោះពីអេក្រង់បានទេ។ អ្នកដែលអាចចូលម៉ាស៊ីនមេកុងសូល ត្រូវដោះដោយផ្ទាល់ក្នុង DB។

docker exec secumon-db psql -U secumon -d secumon -c \
  "UPDATE app_user SET totp_enabled=false, totp_secret=NULL, totp_last_counter=0 WHERE username='admin';"

11. ការបម្រុងទុក · ការគ្រប់គ្រងសោ

# មូលដ្ឋានទិន្នន័យ — ពាក្យសម្ងាត់ជា hash ហើយ token ចុះឈ្មោះក៏រក្សាទុកតែជា hash ដែរ
docker exec secumon-db pg_dump -U secumon secumon | gzip > secumon-$(date +%F).sql.gz
# ថតសម្ងាត់ — នេះទើបជាការសម្ងាត់ពិតប្រាកដ។ ទុកវានៅកន្លែងផ្សេងពីការបម្រុងទុក DB
tar czf secumon-secrets-$(date +%F).tgz -C /srv/secumon secrets
  • បើប្តូរសោហត្ថលេខារបស់កុងសូល ភ្នាក់ងារទាំងអស់នឹងបដិសេធពាក្យបញ្ជា។ បើបានប្តូរ សូមចុះឈ្មោះម៉ាស៊ីនមេនីមួយៗឡើងវិញតាមលំដាប់៖ បិទដំណើរការ → ចេញ token ថ្មី → លុប /etc/secumon/agent.json · agent_ed25519.key លើម៉ាស៊ីនមេ → ដំឡើងម្តងទៀត។
  • អ្វីដែលត្រូវពិនិត្យជាប្រចាំ៖ រាល់ថ្ងៃ — ស្ថានភាពម៉ាស៊ីនមេ និងពាក្យបញ្ជាដែលបរាជ័យ។ រាល់សប្តាហ៍ — កំណត់ត្រាបដិសេធក្នុងកំណត់ហេតុសវនកម្ម និងគណនីដែលមិនទាន់បើកការផ្ទៀងផ្ទាត់ពីរជំហាន។

12. ដោះស្រាយបញ្ហា

សាររបស់ភ្នាក់ងារ និង console ត្រូវបានបង្ហាញជាភាសាកូរ៉េ។ សូមស្វែងរកក្នុងកំណត់ហេតុ នូវអត្ថបទដែលបង្ហាញជាទម្រង់កូដក្នុងតារាងខាងក្រោម ដូចដើមទាំងស្រុង។

អ្វីដែលឃើញមូលហេតុអ្វីដែលត្រូវធ្វើ
កំណត់ហេតុភ្នាក់ងារ 등록되지 않았거나 비활성 상태인 타겟ម៉ាស៊ីនមេត្រូវបានបិទដំណើរការនៅកុងសូលយក token ថ្មី ហើយចុះឈ្មោះឡើងវិញ
កំណត់ហេតុភ្នាក់ងារ 요청 시각 편차가 허용치를 넘습니다នាឡិកាម៉ាស៊ីនមេខុសលើស 60 វិនាទីធ្វើសមកាលកម្មនាឡិកាដោយ NTP
កំណត់ហេតុភ្នាក់ងារ 이미 사용된 nonceសំណើដដែលចូលមកម្តងទៀតជាការការពារធម្មតា។ បើកើតឡើងជាបន្តបន្ទាប់ សង្ស័យការផ្ញើស្ទួនលើបណ្តាញ
លទ្ធផលពាក្យបញ្ជា 거부: 만료된 명령ភ្នាក់ងារមិនបានយកក្នុង 60 វិនាទីពិនិត្យស្ថានភាព secumon-agent លើម៉ាស៊ីនមេ ហើយដំណើរការម្តងទៀត
លទ្ធផលពាក្យបញ្ជា 거부: 서명이 유효하지 않음បានប្តូរសោហត្ថលេខាកុងសូល ប៉ុន្តែមិនបានចុះឈ្មោះឡើងវិញចុះឈ្មោះឡើងវិញតាមលំដាប់ក្នុងជំពូក 11
ការទទួលចុងក្រោយលើកាតម៉ាស៊ីនមេឈប់ · កំណត់ហេតុដាច់ភ្នាក់ងារគាំងsystemctl restart secumon-agent
បានបើកការទប់ស្កាត់តាមប្រទេស ប៉ុន្តែម៉ាស៊ីនមេមិនទាន់អនុវត្តគ្មានបន្ទាត់នេះក្នុងកំណត់ហេតុភ្នាក់ងារ៖ 국가 차단 적용ពិនិត្យថាភ្នាក់ងារជាកំណែចុងក្រោយ ហើយមើលកំហុសក្នុងកំណត់ហេតុ
ត្រូវចាកចេញពីគណនីជាញឹកញាប់ចូលតាមអាសយដ្ឋានដែលមិនមែន HTTPSចូលតាមអាសយដ្ឋាន HTTPS របស់កុងសូល

បើមានសំណួរបន្ថែម សូមផ្ញើមក halo@levelupsoft.com។