Topic List
VPS ที่เจียเช่าจากคุณเสกถูก hack เมื่อเดือนที่แล้ว (มิ.ย.) ซึ่งคาดว่าจะถูกขโมยรหัสผ่านของ ftp แล้วมีการแก้ไขไฟล์ index.html , index.php ซึ่งจากการตามหารายละเอียด ขั้นตอนน่าจะเป็น
มีโทรจันมาฝังอยู่ในเครื่องที่ใช้สำหรับ upload file ด้วย ftp
โทรจันส่งรหัสผ่านของ ftp ไปให้คนเขียน
เมื่อได้รหัสผ่านของ ftp ไป ก็จะใช้ script ในการเข้าไปค้นหาไฟล์ที่ชื่อขึ้นต้นด้วย index.* จากทุก ๆ folder ใน server
ทำการ download ไฟล์ index.* มาแล้วทำการแก้ไขโดยแทรกคำสั่ง tag iframe ไว้หลัง tag body ให้ไปดึง script มาจาก server ของตนเองให้มา run ในเครืองที่เปิดเข้าไปดูเว็บนั้น โดยกำหนด style ให้ visibility:hidden ซึ่งจะทำให้มองไม่เห็นใน browser
ทำการ upload ไฟล์ที่ได้แก้ไขกลับขึ้นไปที่ server เหมือนเดิม
วิธีสังเกตุว่าเว็บเราติดเข้าไปแล้ว
ตอนเปิดเว็บสังเกตุที่ status bar จะมีการ request ไปยังเว็บไซท์อื่นที่เราไม่เคยใส่ code ไว้
ลอง view source ดู จะเจอคำสั่ง iframe ที่ src เป็นเว็บที่ต้องสงสัย ซึ่งที่เจอจะระบุหมายเลข port เป็น 8080
หาก ssh เข้าไปที่ server แล้วสั่ง
find /home/*/domains/*/public_html/ -maxdepth 100 -name *index* -exec grep -H "iframe" {} ";" > iframe.txt
ลองดูผลลัพท์ในไฟล์ iframe.txt
ถ้าจะให้ดีก็ตั้งคำสั่งนี้ให้เป็น cron job ให้ค้นหาทุกวัน หากต้องการค้นหาเฉพาะไฟล์ที่มีการเปลี่ยนแปลงภายใน 24 ช.ม. ให้เพิ่ม option -mtime -1 ไปด้วย
ผลกระทบอีกอย่างที่ผมก็คาดว่ามันน่าจะเกิดขึ้น คือถ้ามีการ hack เข้ามา server ได้ ก็น่าจะมีการส่งโปรแกรมอะไรมาไว้ที่ server ด้วย เพื่อวัตถุประสงค์อื่น ๆ ที่อาจจะเป็นไปได้ เช่นการส่ง spam mail , การขโมยรหัสหรือข้อมูลอื่น ๆ ซึ่งช่วงก่อนผมหาไม่เจอ
3-4 วันที่ผ่านมา ก็สังเกตุเป็นว่ามี process ของ apache run perl และใช้ cpu เยอะมาก ลอง kill precess แล้ว ไม่นานก็มี process กลับมาใหม่
วันนี้ลองค้นหาดูใน cgi-bin ปรากฎว่ามี perl script อยู่จริง ๆ ด้วย อยู่ใน /home/ * /domains/ * /public_html/cgi-bin/ จึงลบมันทิ้งไป และ stop service apache กับ proftpd ไว้ก่อน
วิธี kill perl ทุก process ใช้คำสั่ง
for pl in `ps -A | grep perl | cut -c 1-6`; do kill -9 $pl;done
หลังจาก kill httpd ทั้งหมดแล้ว สักพัก process httpd ก็มาอีก คาดว่าน่าจะมาจาก crontab เลยลองเช็ค crontab ของทุก user ดูด้วยคำสั่ง
for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done
ก็ไม่เจออะไรผิดปกติ คงมีตัวไหนสักตัวที่สั่ง run httpd ขึ้นมา แต่ยังหาไม่เจอ
ตอนนี้ก็หลายนาทีแล้ว เจ้า perl script ยังไม่มา ไม่รู้ว่าจะหายไปตลอดกาลหรือเปล่า พรุ่งนี้เข้าค่อยมาดูอีกที
บาย... ไปนอนก่อนครับ.
Update 2009-07-18 08.28 PM process ของ perl มาอีกแล้ว มาเพียบด้วย สรุปว่ายังแก้ไม่ผ่าน
Update 2009-07-19 10.20 PM วันก่อนลืมเปลี่ยนรหัสผ่าน เข้ามาดูอีกทีปรากฎว่ามีการส่งไฟล์ .pl เข้ามาอีก แถม run script สัก 400 process ได้ กว่าจะ ssh เข้าไปได้ นานมาก ๆ เลยเปลี่ยนรหัสผ่านของทุก user (เท่าที่หาเจอ) เสียเลย
Update 2009-07-20 06.43 PM เข้าไปค้นหาใน log ยังคงมีการ upload ไฟล์เข้ามาในชื่อ sator4u (ไม่แน่ใจว่าได้เปลี่ยนรหัสผ่านหรือยัง) จึงเปลี่ยนรหัสผ่านใหม่ ดูเหมือนกับว่าจะมีไฟล์ .pl อยู่ในโฟลเตอร์ของ sator4u ด้วย จึงทำการเปลี่ยนชื่อ home folder เป็นชื่ออื่น ไปก่อน ป้องกันไม่ให้เรียก script มาทำงาน (ยังไม่ได้ลบทิ้ง)
Update 2009-07-21 06.36 AM หลังจากตามดูอยู่ 2 วัน ตอนนี้เหตุการณ์ทุกอย่างเป็นปกติแล้ว
เหตุเริ่มเกิดมาได้สัก 2-3 วันแล้ว แรก ๆ ก็เกิดกับบางเว็บ เช่น www.psu.ac.th แล้วก็เริ่มหลายเว็บมากขึ้น จนมาวันนี้ ping ไปทุกเว็บก็เป็นเหมือนกันหมด แม้กระทั่ง google.com
อาการ : เวลา ssh ไปที่ Server@CAT-HY แล้ว ping ไปที่ google.com จะเกิด error ดังนี้
ping: unknown host google.com
ก็พยายามหาทางดู ลอง reboot server แล้วก็ไม่หาย (เสียดายอุตส่าห์เปิดมาตั้ง 30 วันแล้ว) ลอง ssh เข้าไปทุก vps แล้ว ping ดู ก็เป็นเหมือนกัน เลยคิดว่าน่าจะมีปัญหาที่ proxmox-ve เลย ssh ไปที่ proxmox-ve แล้ว ping ดู ก็มีอาการเหมือนกัน
เลยตั้งเป้าว่า น่าจะเกิดจาก DNS ของ CAT (202.129.27.134 , 202.129.27.135) มีปัญหา คิดว่าพรุ่งนี้จะโทรไปหา CAT ให้เขาเช็คดูเสียหน่อยว่ามีปัญหาอะไรบ้างไหม?
ระหว่างนั้นก็คิดว่า หากเราเปลี่ยน DNS ไปใช้ของที่อื่น จะเกิดอะไรขึ้นบ้าง ก็เลยลองเสี่ยงดู โดยเพิ่ม nameserver 208.67.222.222 ซี่งเป็นของ OpenDNS เข้าไปใน /etc/resolv.conf โดยการแก้ไขไฟล์ /etc/resolv.conf เป็น/เพิ่ม
nameserver 208.67.222.222 nameserver 208.67.220.220
It's work!!!!!!
ขอบคุณ OpenDNS แล้วพรุ่งนี้ค่อยโทรไปสอบถาม CAT-HY อีกที.
ปล. Thank for idea from configuring DNS
มีการรวบรวมคำสั่ง(เครื่องมือ)สำหรับผู้ดูแล server/website ควรรู้เอาไว้ พร้อมทั้งรายละเอียดและตัวอย่างการใช้งาน บางคำสั่งก็สามารถใช้งานได้เลย บางคำสั่งต้องติดตั้งเพิ่มเติม
คำสั่งทั้งหมดคือ
- top - Process Activity Command
- vmstat - System Activity, Hardware and System Information
- w - Find Out Who Is Logged on And What They Are Doing
- uptime - Tell How Long The System Has Been Running
- ps - Displays The Processes
- free - Memory Usage
- iostat - Average CPU Load, Disk Activity
- sar - Collect and Report System Activity
- mpstat - Multiprocessor Usage
- pmap - Process Memory Usage
- netstat - Network Statistics
- ss - Network Statistics
- iptraf - Real-time Network Statistics
- tcpdump - Detailed Network Traffic Analysis
- strace - System Calls
- /Proc file system - Various Kernel Statistics
- Nagios - Server And Network Monitoring
- Cacti - Web-based Monitoring Tool
- KDE System Guard - Real-time Systems Reporting and Graphing
- Gnome System Monitor - Real-time Systems Reporting and Graphing
ดูรายละเอียดการใช้ได้จากที่มานะครับ
ที่มา 20 Linux System Monitoring Tools Every SysAdmin Should Know
เพื่อป้องกันปัญหาโดน hack จากต่างประเทศ มีคำแนะนำให้ block การเข้าถึงจากต่างประเทศด้วยการ block IP จากต่างประเทศไม่ให้เข้าใช้บริการบางอย่างเช่น FTP , SSH
วิธีการดูได้จาก ThaiHostTalk นะครับ
ขออนุญาตคุณ icez และ ems นำมาเก็บไว้ก่อนนะครับ แล้วจะหาเวลามานั่งศึกษาดูอีกที
- ทำสำเนาไฟล์มาก่อน
wget -r --ftp-user=youusername --ftp-password=youpassword --preserve-permissions ftp://ftp.your.domain/your/home/folder/*
- Dump old sql database to file
mysqldump -u sqluser -psqlpassword sqltable > sqlfile.sql
- สำเนาไฟล์ข้อมูลมาจากโฮสต์เดิใ
wget http://domain.name/sqlfile.sql
- dump sql to database
mysql -u username -ppassword database < sqldata.sql
- เปลี่ยนค่า nameserver ของโดเมน
วันนี้เริ่มย้ายเว็บ http://softganz.com ไปอยู่บ้านใหม่ ซึ่งคงจะเป็นบ้านถาวรแล้ว ครานี้ย้ายมาอยู่ที่หาดใหญ่เลย ซึ่ง CAT-IDC Hatyai เพิ่งเปิดให้บริการ ผมเป็นลูกค้ารายที่ 2
ลง server DELL R200 1 เครื่อง กำลังทยอยย้ายเว็บอื่น ๆ มาในภายหลัง
เพิ่งรู้ว่า Hosting Control Panel นั้นมีมากมายมหาศาลตอนที่เริ่มมี server เป็นของตนเอง ทำให้ต้องตัดสินใจเลือกว่าจะใช้ตัวไหนดี ซึ่งต้องลองดูหลาย ๆ ตัว ปวดหัวมาก ๆๆๆๆๆๆๆๆๆๆ
แบบที่ต้องจ่ายตังส์
แบบฟรี
- ISPConfig
- VHCS
- Raven Core
- GPLHost
- WEB-CP
- WebMin
- BlueQuartz Try a demo
- SysCP Server Management
- Open Panel
- ispCP Omega
เพิ่มเติมนิดหน่อยเป็นความรู้
ช่วงนี้เป็นช่วงที่ต้องตัดสินใจในเรื่องการตั้ง server ของตนเอง ซึ่งแนวทางล่าสุดคือการซื้อ server สักเครื่องและหาที่วางสักแห่ง งานที่ยากก็คือการติดตั้ง software และ configuration ซึ่งเป็นงานที่ยังไม่เคยทำเลย อาจจะถึงเวลาที่ได้ศึกษาเรื่องนี้อย่างจริงจังเสียที
ลำดับของงานที่ต้องเตรียมการ
- หา server สักเครื่อง
- หาที่ตั้งเครื่อง ซึ่งมีตัวเลือกทั้งที่กรุงเทพ และหาดใหญ่ (หาดใหญ่จะเริ่มใช้งานได้ประมาณกลางเดือนมีนาคม 52)
- ติดตั้ง virtual environment ซึ่งอาจจะใช้ Proxmox VE ที่ดูเหมือนว่าจะติดตั้งง่ายเพราะการกำหนดค่าต่าง ๆ ผ่านหน้าเว็บเสียเป็นส่วนใหญ่ มีวิธีการติดตั้งจาก howtoforge หรือจะเป็น Virtualization With Xen 3.3.1 On Debian Etch ซึ่งดูออกจะยากไปนิด ทุกอย่างอยู่บน command line หมดเลย
- หาเครื่องมาจำลองและติดตั้งเพื่อทดลองศึกษาก่อนใช้งานจริง
- ติดตั้ง control panel
- ตอนนี้กำลังใช้งาน DirectAdmin อยู่ ซึ่งก็ดูน่าใช้งานดี (แต่ต้องซื้อนะ ไม่มีของฟรี)
- เจออีกตัวหนึ่ง เป็น open source คือ ISPConfig ลองดูวิธีการใช้งานแล้ว ก็น่าจะพอใช้งานได้
มีปัญหาเรื่อง Hosting ตั้งแต่ต้นปี เลยจำเป็นต้องโยกย้ายกันเสียหน่อย
thaisouthtoday.com ->eBoundHost : Process.
khoakmuang.com -> eBoundHost : Moved.
- tambonprik.com -> eBoundHost : Moved.
- tonprik.org -> eBoundHost : Moved.
- songkhlahealth -> AppServ : Moved.
- napradu -> eBoundHost : Moved.
- khaomeekeat.com -> eBoundHost : Moved.
- khlongngae.org -> eBoundHost : Moved.
คงใช้เวลาหลายวันอยู่
