µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡Ä§Á¦±¦±´¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

ħÁ¦±¦±´±»¹¥»÷Ôõô°ì£¿DDOS/ÈëÇÖ/Êý¾Ý¿â´Û¸ÄµÄÖÕ¼«·ÀÓùÊÖ²á

Èȶȣº
ÄãµÄͻȻÏÝÈë̱»¾£º·þÎñÆ÷¿¨¶Ù¡¢Íæ¼ÒÊý¾Ý¶ªÊ§¡¢ºǫ́³öÏÖδ֪¹ÜÀíÔ±¡¢ÉõÖÁÊÕµ½ÀÕË÷ÐÅÏ¢... Õâ²»ÊǹÊÕÏ£¬¶øÊǶñÒâ¹¥»÷£¡ºÚ¿Í¡¢ÑÛºìµÄͬÐС¢µ·ÂÒÕßÕýÓø÷ÖÖÊÖ¶ÎÈëÇÖÄãµÄÐÄѪ½á¾§¡£±¾ÎĽÒ¶ ÕæÊµ¹¥»÷°¸Àý ²¢Ìṩ ÆóÒµ¼¶°²·À·½°¸£¬ÈÃÄãÔÚ48СʱÄÚ¹¹½¨¹ÌÈô½ðÌÀµÄ·ÀÓùÌåϵ£¡

🔥 ¸ß·¢¹¥»÷ÀàÐÍÓëÓ¦¼±´¦Àí·½°¸

💻 ³¡¾°Ò»£ºÍøÕ¾ºǫ́/admin.phpÔⱩÁ¦ÆÆ½â
¹¥»÷ÌØÕ÷

ºǫ́³öÏÖİÉú¹ÜÀíÔ±Õ˺Å

Íæ¼Ò·´À¡µÀ¾ß/½ð±ÒÒì³£±ä¶¯

ApacheÈÕÖ¾´óÁ¿POST /admin.phpÇëÇó£¨Ã¿5ÃëÊý°Ù´Î£©

½ô¼±Ó¦¶ÔÁ÷³Ì£º

Á¢¼´·âËøIP¶Î

iptables -A INPUT -s 112.85.42.* -j DROP
ÖØÖÃËùÓйÜÀíÔ±ÃÜÂ루MySQL²Ù×÷£©

UPDATE admin_users SET password=MD5(CONCAT('salt','ÐÂÃÜÂë')) WHERE id>0;
¹Ø±Õºǫ́Èë¿Ú£¨ÁÙʱ£©

mv /www/admin.php /www/admin_backup_$(date +%Y%m%d).php

🌪 ³¡¾°¶þ£º·Ö²¼Ê½¾Ü¾ø·þÎñ¹¥»÷£¨DDOS£©
¹¥»÷ÌØÕ÷

·þÎñÆ÷´ø¿íÅÜÂú£¨100Mbps+³ÖÐøÁ÷Á¿£©

topÃüÁîÏÔʾSYN_RECV״̬Á¬½Ó±©Ôö

·þÎñÆ÷¿¨ËÀµ«CPU/ÄÚ´æÎ´´ïÆ¿¾±

µÍ³É±¾·ÀÓù·½°¸£º

Nginx²ã·ÀÓùÅäÖã¨nginx.conf£©

http {
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 50; # µ¥IP×î´óÁ¬½ÓÊý
limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; # ÿÃëÇëÇóÊýÏÞÖÆ

server {
listen 9030;
location / {
limit_req zone=req burst=20 nodelay;
limit_conn perip 5; # ÓÎÏ·¶Ë¿Ú¸üÑϸñ
}

🛡 ËÄά·ÀÓùÌåϵ´î½¨Ö¸ÄÏ

ά¶ÈÒ»£ºÍøÂç²ã·âËø —— µÚÒ»µÀ»¤³ÇºÓ
¹¤¾ß ·À»¤ÄÜÁ¦ ÅäÖÃÒªµã

Cloudflare Ãâ·Ñ5ÃëÈË»úÑéÖ¤ ÆôÓÃ"Under Attack Mode"²¢ÉèÖ÷À»ðǽ¹æÔòÀ¹½Ø·Ç³£¹æUAÍ·
°¢ÀïÔÆ¶Ü ×ÔÖ÷CC·À»¤ ÅäÖþ«×¼°×Ãûµ¥£º½ö·ÅÐеǼÆ÷MD5УÑéÖµ£¨¿ÉÖ´ÐÐÎļþÌØÕ÷£©
Fail2Ban ʵʱ·âËø±¬ÆÆIP ¼à¿ØSSH/MySQLÈÕÖ¾£¬1´Îʧ°Ü¼´·âËø24Сʱ
IPºÚÃûµ¥¿â À¹½ØÒÑÖªºÚ¿ÍIP ×Ô¶¯Í¬²½ https://www.firehol.org/ Êý¾Ý

ά¶È¶þ£º·þÎñ¶Ë¼Ó¹Ì —— ºËÐÄϵͳ·À»¤

ħÁ¦±¦±´·þÎñ¶Ë°²È«ÅäÖÃʾÀý (gmsv.conf)

[Security]
enable_client_crc_check = 1 # ÆôÓÿͻ§¶ËÎļþCRCУÑé
packet_key_rotation = 3600 # ÿ60·ÖÖÓ¸ü»»Í¨ÐÅÃÜÔ¿
max_connections_per_ip = 3 # µ¥IP×î´óÁ¬½ÓÊý

[Database]
db_proxy_ip = 127.0.0.1 # Ç¿ÖÆÊý¾Ý¿â±¾µØÁ¬½Ó
use_db_encrypt = 1 # ÆôÓÃÃô¸ÐÊý¾ÝAES¼ÓÃÜ

ά¶ÈÈý£ºÊý¾Ý°²È« —— ÊØ»¤Íæ¼Ò×ʲú
ʵʱÈȱ¸·Ý·½°¸

MySQLÿ10·ÖÖÓÔöÁ¿±¸·Ý /

CREATE EVENT backup_event
ON SCHEDULE EVERY 10 MINUTE
DO BEGIN
BACKUP DATABASE crossgate
TO DISK = '/backups/diff_$(date +%H%M).bak'
WITH DIFFERENTIAL, COMPRESSION;
END

·ÀË¢ÎïÆ·ÈýÖØÐ£Ñé

!https://i.imgur.com/encrypted/5tGh7.png
(¹¤×÷Á÷³Ì£º¿Í»§¶ËÇëÇó → ȨÏÞУÑé → ¸±±¾Ëø¶¨¼ì²â → ÈÕÖ¾¼Ç¼ → Ö´ÐвÙ×÷)

ά¶ÈËÄ£º°²È«¼à¿Ø —— È«ÌìºòÖµÊØ

¿ªÔ´¼à¿ØÕ»´î½¨·½°¸£º
°²×°Prometheus + Grafana + Alertmanager

docker-compose up -d prometheus grafana alertmanager

ħÁ¦±¦±´×¨ÓÃ¼à¿ØÖ¸±ê²É¼¯Æ÷

wget https://gmsv-exporter.com/v2/gmsv_exporter.sh && chmod +x *.sh

¹Ø¼ü¼à¿Ø¿´°åÅäÖãº
Òì³£µÇ¼Ԥ¾¯£ºÍ¬Ò»Õ˺Å10·ÖÖÓÄÚ3µØµÇ¼ → ´¥·¢¶ÌП澯

Îï×ÊÒ춯¾¯±¨£ºµ¥Íæ¼Ò1Сʱ»ñµÃ³¬1000Íòħ±Ò → ×Ô¶¯¶³½áÕ˺Å

ȨÏÞ±ä¸ü×·×Ù£º¹ÜÀíÔ±²Ù×÷ÈÕÖ¾ÊµÊ±ÍÆË͵½Telegram

⚔️ ·´Íâ¹Òʵս£º·âɱÄÚ´æÐÞ¸ÄÆ÷/¼ÓËÙ³ÝÂÖ

Íâ¹ÒÀàÐͼì²â·½°¸
×÷±×ÊÖ¶Î ¼ì²â¼¼Êõ ·´»÷´ëÊ©

±äËÙ³ÝÂÖ ÐÄÌø°üʱ¼ä´ÁУÑé Ê״ξ¯¸æ → ¶þ´Î·âºÅ30Ìì
ÄÚ´æÐÞ¸ÄÆ÷ ¹Ø¼üµØÖ·CRCУÑé ¼´Ê±·âºÅ + É豸IDÀ­ºÚ
×Ô¶¯½Å±¾ ÐÐΪģʽAI·ÖÎö ÏÞÖÆ¸±±¾ÊÕÒæ → ÀÛ·¸ÓÀ¾Ã·â½û
·â°ü´Û¸Ä Ë«ÃÜÔ¿¶¯Ì¬Ç©Ãû ¶Ï¿ªÁ¬½Ó²¢¼Ç¼¹¥»÷ÌØÕ÷

·´Íâ¹ÒÄ£¿éºËÐÄ´úÂ루C++Ƭ¶Î£©:
// ±äËÙ¹Ò¼ì²âÏß³Ì
void CheckSpeedHack() {
auto curr_time = GetSystemTime();
if (abs(curr_time - last_packet_time) < 50ms) {
TriggerSuspicion(PLAYER_SPEED_HACK);
last_packet_time = curr_time;

// ÄÚ´æÐ£Ñ麯Êý

bool ValidateMemoryCRC() {
DWORD base_addr = 0x00400000;
DWORD crc = CalculateCRC(base_addr, 0xFFFF);
return (crc == EXPECTED_CRC); // Òì³£¼´ÄÚ´æ±»ÐÞ¸Ä

🔐 ȨÏÞ¹ÜÀíÖÆ¶È¹æ·¶£¨GMÍŶӱØÊØ×¼Ôò£©
ȨÏÞ·Ö¼¶¿ØÖÆ

graph LR
A[ËùÓÐÕß] -->ÊÚȨ
B[³¬¼¶¹ÜÀíÔ±]
--> C[Êý¾Ý¹ÜÀíÔ±]

--> D[¿Í·þ¾­Àí]

--> E[ÆÕͨ¿Í·þ]


¸ßΣ²Ù×÷Ë«È˸´ºË

ÎïÆ··¢·Å > 100Íò½ð±ÒÐèÁ½Ãû¹ÜÀíԱȷÈÏ

IP°×Ãûµ¥±ä¸üÐèÊÓÆµ»áÒéÈ·ÈÏ

·â½ûÕ˺ÅÐ踽ÍêÕûÖ¤¾ÝÁ´
²Ù×÷ÈÕÖ¾ÔÆ¶ËÉó¼Æ

ʹÓÃhttps://www.jumpserver.org/¼Ç¼ËùÓÐSSHºÍÊý¾Ý¿â²Ù×÷

×îºóµÄ·ÀÓù¼¼ÊõÕ»ÍÆ¼ö
WEB·À»ðǽ£º Cloudflare Pro ($20/ÔÂ)

·þÎñÆ÷·À»¤£º °¢ÀïÔÆ°²ÆïÊ¿£¨Ô¼¥500/Ô£©

Êý¾Ý¿â¼ÓÃÜ£º MySQL TDE + ×Ô¶¯ÃÜÔ¿ÂÖ»»

! ×Ô½¨¼à¿ØÏµÍ³£º Prometheus + Grafana£¨Áã³É±¾£©
¸ßΣ×é¼þ£º Á¢¼´Ð¶ÔØphpMyAdmin