មគ្គុទ្ទេសក៍ឥតគិតថ្លៃ 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_URL | jdbc:postgresql://…:5432/secumon | អាសយដ្ឋាន DB។ សរសេរដោយប្រើឈ្មោះ container។ |
F2B_CANONICAL_HOST | ត្រូវដាក់តម្លៃរបស់អ្នក | ដូមែនកុងសូលរបស់អ្នក។ បើចូលមកតាម HTTP ធម្មតា ឬអាសយដ្ឋានផ្សេង វានឹងបញ្ជូនបន្តទៅ HTTPS នៃអាសយដ្ឋាននេះ។ |
F2B_PROTECTED_CIDRS | ត្រូវដាក់តម្លៃរបស់អ្នក | ជួរ IP ដែលមិនត្រូវទប់ស្កាត់ជាដាច់ខាត — VPN របស់អ្នក · បណ្តាញខាងក្នុង · IP សាធារណៈរបស់ម៉ាស៊ីនមេ។ បណ្តាញឯកជន · loopback តែងតែត្រូវបានការពារ ដោយមិនគិតពីតម្លៃនេះ។ |
F2B_BLOCK_TTL_DAYS | 30 | រយៈពេលលំនាំដើមនៃការទប់ស្កាត់ជួរ IP (ថ្ងៃ)។ 0 = អចិន្ត្រៃយ៍។ |
F2B_AUTO_BLOCK_ENABLED | true | បើក ឬបិទការទប់ស្កាត់ IP ល្មើសដដែលៗដោយស្វ័យប្រវត្តិ។ |
F2B_AUTO_BLOCK_THRESHOLD | 3 | ចាប់ពីការហាមឃាត់លើកទីប៉ុន្មាន ទើបទប់ស្កាត់ស្វ័យប្រវត្តិ។ |
F2B_AUTO_BLOCK_TTL_DAYS | 30 | រយៈពេលទប់ស្កាត់ស្វ័យប្រវត្តិ (ថ្ងៃ)។ |
F2B_FEED_REFRESH_HOURS | 24 | ចន្លោះពេលទាញយកបញ្ជីទប់ស្កាត់សាធារណៈ · បញ្ជីប្រទេស ឡើងវិញ (ម៉ោង)។ |
F2B_BAN_MULTIPLIERS | 1 2 4 8 16 32 64 168 | កំណត់ឱ្យដូចមេគុណក្នុងការកំណត់ jail។ |
F2B_ABUSE_DAILY_LIMIT | 1000 | កូតាប្រើប្រាស់ AbuseIPDB ក្នុងមួយថ្ងៃ។ |
ពិនិត្យស្ថានភាពក្រោយចាប់ផ្តើម។ បើឃើញ "db":"ok" មានន័យថាដំណើរការធម្មតា។
curl -s https://<អាសយដ្ឋានកុងសូល>/api/health
4. ចុះឈ្មោះម៉ាស៊ីនមេ — ភ្នាក់ងារ
- ចូលកុងសូលជា
adminបញ្ចូលឈ្មោះម៉ាស៊ីនមេក្នុងផ្ទាំង គោលដៅ រួចចុច ចុះឈ្មោះ + ចេញ token។ - អេក្រង់បង្ហាញ ID គោលដៅ និង token ប្រើតែម្តង។ token បង្ហាញតែម្តងនេះប៉ុណ្ណោះ ហើយផុតកំណត់ក្រោយ 15 នាទី។
- ដំណើរការស្គ្រីបដំឡើងជា 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។
fail2ban · nftables · AbuseIPDB · Spamhaus · FireHOL · Telegram · Let's Encrypt ជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន ហើយ SSem SecuMon មិនមានទំនាក់ទំនងជាដៃគូ ឬទទួលការគាំទ្រពីពួកគេទេ។