ปัญหา เว็บไซต์ ติด virus, malware, exploit, hacked ทางแก้ปัญหา root@netway19 [~]# cd /root root@netway19 [~]# git clone https://github.com/Hestat/lw-yara.git แล้วทำการ scan ด้วยคำสั่ง root@netway19 [~]# clamscan -ir -d /root/lw-yara/lw-rules_index.yar /home/$user/public_html/ ในส่วนนี้มันจะ list file ขึ้นมาว่าไฟล์ไหนที่เป็นปัญหา ก็ให้เข้าไปแก้ไขไฟล์ที่เป็นปัญหาตาม list นี้ครับ สาเหตุปัญหา เว็บไซต์ ถูก hacked แล้วอัพโหลด script ที่ไม่พึงประสงค์ ขึ้นมา อ้างอิง : https://laskowski-tech.com/2018/04/26/eitest-cleanup-part-2-using-clamav-and-custom-yara-rules/
ปัญหา ไม่สามารถ run คำสั่ง yum ได้ Error ที่พบ [root@vps ~]# yum --helperror: rpmdb: BDB0113 Thread/process 9618/140007521281856 failed: BDB1507 Thread died in Berkeley DB libraryerror: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recoveryerror: cannot open Packages index using db5 - (-30973)error: cannot open Packages database in /var/lib/rpmCRITICAL:yum.main: Error: rpmdb open failed วิธีการแก้ไขปัญหา 1. ssh to server and go to /var/lib/rpm [root@vps ~]# cd /var/lib/rpm/ 2. ตรวจสอบไฟล์ที่ชื่อ __db.00? [root@vps rpm]# ls -altotal 105036drwxr-xr-x 2 root root 4096 May 14 04:18 .drwxr-xr-x 25 root root 4096 Aug 24 2017 ..-rw-r--r-- 1 root root 5947392 May 30 04:32 Basenames-rw-r--r-- 1 root root 16384 May 30 04:32 Conflictname-rw-r--r-- 1 root root 270336 Aug 27 11:48 __db.001-rw-r--r-- 1 root root 81920 Aug 27 11:48 __db.002-rw-r--r-- 1 root root 1318912 Aug 27 11:48 __db.003-rw-r--r-- 1 root root 0 Apr 1 2015 .dbenv.lock-rw-r--r-- 1 root root 2990080 May 30 04:32 Dirnames-rw-r--r-- 1 root root 40960 May 30 04:32 Group-rw-r--r-- 1 root root 36864 May 30 04:32 Installtid-rw-r--r-- 1 root root 188416 May 30 04:32 Name-rw-r--r-- 1 root root 32768 May 30 04:32 Obsoletename-rw-r--r-- 1 root root 90755072 May 30 04:32 Packages-rw-r--r-- 1 root root 4976640 May 30 04:32 Providename-rw-r--r-- 1 root root 593920 May 30 04:32 Requirename-rw-r--r-- 1 root root 0 Apr 1 2015 .rpm.lock-rw-r--r-- 1 root root 253952 May 30 04:32 Sha1header-rw-r--r-- 1 root root 139264 May 30 04:32 Sigmd5-rw-r--r-- 1 root root 8192 May 30 04:31 Triggername 3. ทำการลบไฟล์ __db.00? [root@vps rpm]# rm __db.00*rm: remove regular file ‘__db.001’? yrm: remove regular file ‘__db.002’? yrm: remove regular file ‘__db.003’? y 4.รันคำสั่ง Rebuild DB [root@vps rpm]# rpm --rebuilddb 5. รันคำสั่ง clean [[root@vps rpm]# yum clean allLoaded plugins: fastestmirror, universal-hooksCleaning repos: EA4 cpanel-addons-production-feed base extras updatesCleaning up everythingMaybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed reposCleaning up list of fastest mirrors 6. ทดสอบรันคสั่ง yum อีกครั้ง [root@vps rpm]# yum --helpLoaded plugins: fastestmirror, universal-hooksUsage: yum [options] COMMAND List of Commands: check Check for problems in the rpmdbcheck-update Check for available package updatesclean Remove cached datadeplist List a package's dependenciesdistribution-synchronization Synchronize installed packages to the latest available versionsdowngrade downgrade a packageerase Remove a package or packages from your systemfs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.groups Display, or use, the groups informationhelp Display a helpful usage messagehistory Display, or use, the transaction historyinfo Display details about a package or group of packagesinstall Install a package or packages on your systemlist List a package or groups of packagesload-transaction load a saved transaction from filename ....
รายละเอียดปัญหา -มีการเรียกใช้งานจำนวนมากๆ พร้อมๆกันไม่ได้ หรือ ทำการ Refresh บ่อยครั้งแล้วเกิด Error จุดสังเกตุ 1. ตรวจสอบที่ /usr/local/apache/logs/error_log จะพบ ตัวอย่าง [Thu Jul 05 13:43:55.837466 2018] [:error] [pid 23213:tid 140573633652480] [client 14.207.100.60:50892] client denied by server configuration: /home/gandhi326/public_html/admin/notics_manager, referer: http://www.gandhi326.com/admin/stockout_rt/ [Thu Jul 05 13:43:56.068488 2018] [:error] [pid 23213:tid 140573574903552] [client 14.207.100.60:21109] client denied by server configuration: /home/gandhi326/public_html/admin/notics_manager, referer: http://www.gandhi326.com/admin/stockout_rt [Thu Jul 05 13:43:57.644161 2018] [:error] [pid 23213:tid 140573490976512] [client 14.207.100.60:51650] client denied by server configuration: /home/gandhi326/public_html/admin/notics_manager, referer: http://www.gandhi326.com/admin/whitelist_ips/ 2.ตรวจสอบเพิ่มเติมที่ ls -alt /var/log/apache2/mod_evasive/ ตัวอย่าง [root@server5 ~]# ls -alt /var/log/apache2/mod_evasive/ total 96 drwxrwx--- 2 root nobody 4096 Jul 5 10:19 . -rw-r--r-- 1 nobody nobody 6 Jul 5 10:19 dos-124.120.192.189 -rw-r--r-- 1 nobody nobody 6 Jul 5 10:17 dos-14.207.97.80 -rw-r--r-- 1 nobody nobody 6 Jul 5 10:12 dos-27.130.99.38 -rw-r--r-- 1 nobody nobody 6 Jul 5 10:04 dos-101.108.254.245 -rw-r--r-- 1 nobody nobody 6 Jul 5 09:26 dos-14.207.100.60 -rw-r--r-- 1 nobody nobody 6 Jul 5 07:11 dos-188.20.8.70 -rw-r--r-- 1 nobody nobody 6 Jul 4 22:24 dos-198.58.75.9 -rw-r--r-- 1 nobody nobody 4 Jul 4 17:21 dos-115.87.103.7 -rw-r--r-- 1 nobody nobody 4 Jul 4 14:17 dos-110.169.242.62 -rw-r--r-- 1 nobody nobody 4 Jul 4 13:52 dos-171.96.191.198 -rw-r--r-- 1 nobody nobody 4 Jul 4 12:42 dos-120.27.107.165 -rw-r--r-- 1 nobody nobody 4 Jul 4 10:00 dos-203.78.98.10 -rw-r--r-- 1 nobody nobody 4 Jul 4 09:53 dos-101.108.245.240 การแก้ปัญหาชั่วคราว - ลบไฟล์ที่เป็น IP ลูกค้าออก การแก้ที่ถูกต้อง - ปรับ config ให้เหมาะสม เพราะค่าที่ cpanel ให้มามันไม่เหมาะกับเว็บไซต์ที่มี dynamic มาก ๆ เช่น wordpress , stock /etc/apache2/conf.d/300-mod_evasive.conf
ปัญหา เมื่อทำการ login webmail แล้วสามารถเข้าถึงการทำ forwarders ได้ที่ระดับ Account สิ่งที่แสดง วิธีการแก้ไข 1. ทำการ Login ไปยังเครื่องเซิร์ฟเวอร์ที่พบปัญหานี้ 2. เข้าไปยัง Folder : /usr/local/cpanel/base/webmail/paper_lantern/_assets [root@system ~]# cd /usr/local/cpanel/base/webmail/paper_lantern/_assets 3. ทำการ Backup ไฟล์ user_preferences.html.tt ไว้ก่อน [root@sytem _assets]# cp -a user_preferences.html.tt user_preferences.html.tt_original 4. ทำการ Edit ไฟล์ user_preferences.html.tt [root@sytem _assets]# nano -w user_preferences.html.tt แล้ว ลบบรรทัดต่อไปนี้
ในกรณีของ VPS ที่มีความผิดปกติจากการ force reboot ทำให้ partion /tmp ไม่สามารถเขียนได้ กลายเป็น read only systems มีผลทำให้เกิดความผิดปกติต่างๆเช่น เข้า webmail ไม่ได้ เพราะไม่สามาถเขียน session ในการทำงานได้ และปัญหาอื่นๆ หากตรวจสอบจาก log จะพบ error ดังนี้ Mar 30 12:35:00 vps14 kernel: EXT3-fs error (device loop0): ext3_lookup: unlinked inode 6486 in dir #2 Mar 30 12:35:00 vps14 kernel: Aborting journal on device loop0. Mar 30 12:35:00 vps14 kernel: __journal_remove_journal_head: freeing b_committed_data Mar 30 12:35:00 vps14 kernel: __journal_remove_journal_head: freeing b_committed_data Mar 30 12:35:00 vps14 kernel: EXT3-fs error (device loop0): ext3_lookup: unlinked inode 6486 in dir #2 Mar 30 12:35:00 vps14 last message repeated 3 times Mar 30 12:35:00 vps14 kernel: ext3_abort called. ปัญหาเกิดจากไฟล์ /usr/tmpDSK มี error inode สามารถแก้ไขโดยทำการ scandisk โดยใช้คำสั่ง fsck ใน vps บางระบบอาจจะเป็น filesystem ext2 หรือ ext3 แตกต่างกันไป สามารถตรวจสอบชนิดของ filesystem โดยใช้คำสั่งดังต่อไปนี้ # file /usr/tmpDSK /usr/tmpDSK: Linux rev 1.0 ext3 filesystem data (needs journal recovery) << แสดงผลเป็น filesystem ext3 หรือตรวจสอบโดยใช้คำสั่ง df # df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 ext3 39549536 30980724 6527368 83% / /dev/xvda1 ext3 101086 27104 68763 29% /boot tmpfs tmpfs 524288 0 524288 0% /dev/shm /usr/tmpDSK ext3 495844 26713 443531 6% /tmp << แสดงผลเป็น filesystem ext3 วิธีแก้ปัญหาทีม TS- หากพบความผิดปกติในการใช้งาน webmail และพบ logs ที่เป็นปัญหาให้ส่งให้ Level2 ทันที วิธีแก้ปัญหาทีม SYSNOC หรือ ITS วิธีการขั้นตอนในการแก้ไขปัญหา 1. สร้างไฟล์ disable secure tmp # touch /var/cpanel/version/securetmp_disabled 2. restart system เพื่อให้ระบบยกเลิกการ mount partition /tmp #reboot 3. ทำการ scandisk file และ fix error inode # fsck.ext3 -f /usr/tmpDSK -y 4. mount loopback filesystem /usr/tmpDSK ไปไว้ที่ /tmp # mount -o loop /tmp 5. ยกเลิกการ disable secure tmp # rm /var/cpanel/version/securetmp_disabled