Server

Server

Make Ubuntu as a server

โดย Little Bear on 17 พ.ค. 53 21:25

ติดตั้ง Ubuntu Server ให้เรียบร้อย พร้อมอัพเดตให้เป็นล่าสุด

sudo apt-get update

หากต้องการใช้งาน Ubuntu desktop ให้ติดตั้ง

sudo apt-get install ubuntu-desktop

ขั้นตอนการติดตั้ง Samba

1.ติดตั้ง Ubuntu Server โดยไม่ต้องติดตั้ง package ใด ๆ เราจะมาติดตั้ง Samba กันตอนหลัง

2.ติดตั้ง Samba

sudo apt-get install samba

3.แก้ไขคอนฟิกของ Samba

sudo nano /etc/samba/smb.conf

4.เปลี่ยนค่าใน global ของคอนฟิก อย่าลืมสร้าง share directory ด้วยนะ ส่วนกลุ่ม Sharing หากยังไม่มีก็ป้อนเข้าไปใหม่ทั้งหมด

[global]
workgroup = YOUR_WORK_GROUP
netbios name = YOUR_COMPUTER_NAME
security = SHARE
auth methods = guest
domain master = No
wins support = Yes

[Sharing]
comment=My Ubuntu
path = /home/your_home_directory/Sharing
read only = No
guest ok = Yes

5.บันทึกให้เรียบร้อย แล้วสั่ง restart Samba

smbd restart

ติดตั้ง VirtualBox สำหรับลง Windows

เพิ่มบรรทัดด้านล่างไว้ใน /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian lucid non-free

The Sun public key for apt-secure can be downloaded here. You can add this key with

wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

The key fingerprint is

AF45 1228 01DA D613 29EF  9570 DCF9 F87B 6DFB CBAE Sun Microsystems, Inc. (xVM VirtualBox archive signing key) info@virtualbox.org

To install VirtualBox, do

sudo apt-get update
sudo apt-get install virtualbox-3.1

Replace virtualbox-3.1 by

  • virtualbox-3.0 to install VirtualBox 3.0.14
  • virtualbox-2.2 to install VirtualBox 2.2.4
  • virtualbox-2.1 to install VirtualBox 2.1.4
  • virtualbox-2.0 to install VirtualBox 2.0.12
  • virtualbox to install VirtualBox 1.6.6

สร้าง GuestOS โดยกำหนด Network ให้เป็น Bridge และลง OS ให้เรียบร้อย

Mount share folder ให้กับ GuestOS ได้มาจาก HOWTO: Use Shared Folders

sudo mount -t vboxsf share ~/host

หรือ Mount ให้กับผู้ใช้งานปัจจุบัน

sudo mount -t vboxsf -o uid=1000,gid=1000 share ~/host



ทำให้ GuestOS เปิดอัตโนมัตเมื่อเปิดเครื่อง

อ้างอิง

20 Linux System Monitoring Tools Every SysAdmin Should Know

โดย Little Bear on 29 พ.ย. 52 19:58

เครื่องมือสำหรับตรวจสอบการทำงานของ server ที่ SysAdmin ควรมีและควรรู้

ตามไปดูได้ที่ http://www.cyberciti.biz นะครับ

Advanced Bash-Scripting Guide

โดย Little Bear on 3 ก.ย. 52 18:29

อาจจะต้องเขียน bash scripting มากขึ้น หลังจากต้องดูแล server เอง เลยขอเก็บคู่มือ - reference ของการเขียน bash scripting มาเก็บไว้เพื่อศึกษาในภายหลัง

อยู่ที่ Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting

เก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน

โดย Little Bear on 25 ส.ค. 52 13:55

พรบ.คอมพิวเตอร์บังคับให้เก็บ log ไว้อย่างน้อย 90 วัน

ขอเก็บรายละเอียดการทำไว้ก่อน ได้มาจาก แนะนำเก็บ log httpd ของ DirectAdmin Control Panel ให้เก็บได้ 90 วัน แบบง่าย ๆ

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้

โดย Little Bear on 23 ส.ค. 52 21:04

dir ที่สามารถ upload file ได้ให้ทำการป้องกันไม่ให้ php perl ทำงานได้ เพราะว่าถ้าเกิดหลุดขึ้นมา จะอันตรายมาก ๆ วิธีการป้องกันก็คือ ไปกำหนดเพิ่ม ใน httpd.conf ดังต่อไปนี้ สมมติว่า /home/webmaster/public_html/webboard/file เป็นส่วนที่ใช้เก็บรูปของบอร์ดเวลา post ขึ้นไป ผมก็จะกำหนดเพิ่มดังนี้

<Directory "/home/webmaster/public_html/webboard/file">
Options Indexes MultiViews -ExecCGI
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off
</Directory>

เท่านี้ก็ปลอดภัยอีกระดับนึงครับ ถ้าเกิด script เราหลุด hacker สามารถ upload file ขึ้นไปได้ แต่เค้าก็จะไม่สามารถสั่งให้ทำงานได้ครับ ..

ขั้นตอนทำ /tmp ให้ Security (How-to from www.directadmin)

โดย Little Bear on 3 ส.ค. 52 18:32

Step 1: Securing /tmp

Step 1.1: Backup your fstab file

cp /etc/fstab /etc/fstab.bak

Step 1.2: Creating tmpmnt partition file (Around 1Gb in size)

cd /var
dd if=/dev/zero of=tmpMnt bs=1024 count=1048576

Step 1.3: Format the new partition

mkfs.ext3 -j /var/tmpMnt

Press Y when asked

Step 1.4: Making backup of old /tmp

cp -Rp /tmp /tmp_backup

Step 1.5: Mount the tmp filesystem

mount -o loop,noexec,nosuid,rw /var/tmpMnt /tmp

Step 1.6: Set the right permissions

chmod 0777 /tmp

Step 1.7: Copy the files back to new tmp folder

cp -Rp /tmp_backup/* /tmp/

Step 1.8: Adding new /tmp filesystem to fstab

echo "/var/tmpMnt /tmp ext3 loop,rw,noexec,nosuid,nodev 0 0" >> /etc/fstab

Step 2: No need for 2 tmp filesystems, so we symlink /var/tmp to /tmp

rm -rf /var/tmp/
ln -s /tmp/ /var/tmp

ปล.ลองทำแล้ว แต่ติดอยู่ที่ step 1.5 มีแจ้งว่า "mount: no permission to look at /dev/loop#" พอทำต่อ เหมือนกับไม่สำเร็จ

ผลกระทบจากที่ VPS ของเจียถูก hack

โดย Little Bear on 17 ก.ค. 52 03:38

VPS ที่เจียเช่าจากคุณเสกถูก hack เมื่อเดือนที่แล้ว (มิ.ย.) ซึ่งคาดว่าจะถูกขโมยรหัสผ่านของ ftp แล้วมีการแก้ไขไฟล์ index.html , index.php ซึ่งจากการตามหารายละเอียด ขั้นตอนน่าจะเป็น

  1. มีโทรจันมาฝังอยู่ในเครื่องที่ใช้สำหรับ upload file ด้วย ftp

  2. โทรจันส่งรหัสผ่านของ ftp ไปให้คนเขียน

  3. เมื่อได้รหัสผ่านของ ftp ไป ก็จะใช้ script ในการเข้าไปค้นหาไฟล์ที่ชื่อขึ้นต้นด้วย index.* จากทุก ๆ folder ใน server

  4. ทำการ download ไฟล์ index.* มาแล้วทำการแก้ไขโดยแทรกคำสั่ง tag iframe ไว้หลัง tag body ให้ไปดึง script มาจาก server ของตนเองให้มา run ในเครืองที่เปิดเข้าไปดูเว็บนั้น โดยกำหนด style ให้ visibility:hidden ซึ่งจะทำให้มองไม่เห็นใน browser

  5. ทำการ upload ไฟล์ที่ได้แก้ไขกลับขึ้นไปที่ server เหมือนเดิม

วิธีสังเกตุว่าเว็บเราติดเข้าไปแล้ว

  1. ตอนเปิดเว็บสังเกตุที่ status bar จะมีการ request ไปยังเว็บไซท์อื่นที่เราไม่เคยใส่ code ไว้

  2. ลอง view source ดู จะเจอคำสั่ง iframe ที่ src เป็นเว็บที่ต้องสงสัย ซึ่งที่เจอจะระบุหมายเลข port เป็น 8080

  3. หาก 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 วัน ตอนนี้เหตุการณ์ทุกอย่างเป็นปกติแล้ว

Ping จาก server แล้วขึ้น unknown host

โดย Little Bear on 13 ก.ค. 52 00:32

เหตุเริ่มเกิดมาได้สัก 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

20 คำสั่งลินุกซ์ที่แอดมินควรรู้ไว้

โดย Little Bear on 7 ก.ค. 52 11:33

มีการรวบรวมคำสั่ง(เครื่องมือ)สำหรับผู้ดูแล server/website ควรรู้เอาไว้ พร้อมทั้งรายละเอียดและตัวอย่างการใช้งาน บางคำสั่งก็สามารถใช้งานได้เลย บางคำสั่งต้องติดตั้งเพิ่มเติม

คำสั่งทั้งหมดคือ

  1. top - Process Activity Command
  2. vmstat - System Activity, Hardware and System Information
  3. w - Find Out Who Is Logged on And What They Are Doing
  4. uptime - Tell How Long The System Has Been Running
  5. ps - Displays The Processes
  6. free - Memory Usage
  7. iostat - Average CPU Load, Disk Activity
  8. sar - Collect and Report System Activity
  9. mpstat - Multiprocessor Usage
  10. pmap - Process Memory Usage
  11. netstat - Network Statistics
  12. ss - Network Statistics
  13. iptraf - Real-time Network Statistics
  14. tcpdump - Detailed Network Traffic Analysis
  15. strace - System Calls
  16. /Proc file system - Various Kernel Statistics
  17. Nagios - Server And Network Monitoring
  18. Cacti - Web-based Monitoring Tool
  19. KDE System Guard - Real-time Systems Reporting and Graphing
  20. Gnome System Monitor - Real-time Systems Reporting and Graphing

ดูรายละเอียดการใช้ได้จากที่มานะครับ

ที่มา 20 Linux System Monitoring Tools Every SysAdmin Should Know

Block IP ต่างประเทศ

โดย Little Bear on 5 ก.ค. 52 20:27

เพื่อป้องกันปัญหาโดน hack จากต่างประเทศ มีคำแนะนำให้ block การเข้าถึงจากต่างประเทศด้วยการ block IP จากต่างประเทศไม่ให้เข้าใช้บริการบางอย่างเช่น FTP , SSH

วิธีการดูได้จาก ThaiHostTalk นะครับ

ขออนุญาตคุณ icez และ ems นำมาเก็บไว้ก่อนนะครับ แล้วจะหาเวลามานั่งศึกษาดูอีกที