ÄãµÄͻȻÏÝÈë̱»¾£º·þÎñÆ÷¿¨¶Ù¡¢Íæ¼ÒÊý¾Ý¶ªÊ§¡¢ºǫ́³öÏÖδ֪¹ÜÀíÔ±¡¢ÉõÖÁÊÕµ½ÀÕË÷ÐÅÏ¢... Õâ²»ÊǹÊÕÏ£¬¶øÊǶñÒâ¹¥»÷£¡ºÚ¿Í¡¢ÑÛºìµÄͬÐС¢µ·ÂÒÕßÕýÓø÷ÖÖÊÖ¶ÎÈëÇÖÄãµÄÐÄѪ½á¾§¡£±¾ÎĽÒ¶ ÕæÊµ¹¥»÷°¸Àý ²¢Ìṩ ÆóÒµ¼¶°²·À·½°¸£¬ÈÃÄãÔÚ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
🔥 ¸ß·¢¹¥»÷ÀàÐÍÓëÓ¦¼±´¦Àí·½°¸
💻 ³¡¾°Ò»£ºÍøÕ¾ºǫ́/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

