Ads 468x60px

วันศุกร์ที่ 7 ตุลาคม พ.ศ. 2554

8 ขั้นตอนง่าย ๆ ในการเปลี่ยน desktop ให้เป็น Ubuntu Server

เอาไว้สำหรับเป็นโปรเจคเล็กๆ เล่นยามว่าง ในที่นี้สมมุติว่าคุณมี Ubuntu 7.10 "Gutsy" (เวอร์ชั่น desktop) ติดตั้งในเครื่องแล้วนะ แล้วจะช้าอยู่ใย ลงมือกันเลยดีกว่า
ขั้นตอนที่ 0: จะทำเองหรือเสียตังค์? - จริงๆ แล้วมีวิธีการรันเซิฟเวอร์แอปพริเคชั่นได้หลายวิธี ด้วยสนนราคาที่ไม่แพงนัก เช่น Linode หรือ Bytemark ก็สามารถนำมาทำ "virtual root" ของเซิฟเวอร์ลีนุ๊กซ์ได้ในราคาประมาณ 600 บาทต่อเดือน โดยใช้ลีนุ๊กซ์แมชชีนเช่น User-Mode Linux (UML), Xen, และ VMWare.
แต่ถ้าไม่อยากเสียตังค์ก็เอาเครื่องของเราเองนี้แห ล่ะมาทำได้ แต่ต้องเป็นโปรเจคเล็กๆ นะ วิธีการที่จะทำกันต่อจากนี้สามารถนำไปประยุกต์ใช้ได้กับ 'เวอร์ชวลรูทโฮสติ้งเซอร์วิส (virtual root hosting service)' ทั้งนี้เนื่องจากว่ายังไงคุณก็ต้องติดตั้งซอฟแวร์ของเซิฟเวอร์แบบเดียวกัน
ขั้นตอนที่ 1: หาทางเชื่อมต่อกับเซิฟเวอร์ - คุณต้องแน่ใจว่าคุณมี stable IP address และโดเมนเนมที่จะใช้ในการเชื่อมต่อไปยังเครื่องของคุณ คุณอาจต้องคุยกับผู้ดูแลระบบ หรือซื้อโดเมนของคุณเอง มีหลายๆ บริษัทให้บริการจดโดเมนในราคาไม่แพงนัก หรือคุณอาจจะหาโดเมนเนมจากบริษัทที่ให้บริการฟรีก็ได้ ถ้าคุณต้องการทราบไอพีแอดเดรสและโดเมนเนมของคุณเอง ก็สามารถใช้คำสั่งเช่น "ifconfig" และ "nslookup" หรือไปยังเวปไซต์พวก
whatismyip.com และ samspade.com ก็ได้ ถึงตอนนี้เมื่อคุณได้รับไอพีแอดเดรสและโดเมนเนมแล้ว ให้ตั้งโดเมนเนมสำหรับเครื่องของคุณโดยการแก้ไขไฟล์ /etc/hostname:
sudo nano /etc/hostname
แล้วใส่โฮสเนมในบันทัดเดียวกันหมด:
my.domain.name.th
พิมพ์ control-X เพื่อออกมาแล้ว saveไฟล์ คุณอาจเพิ่มข้อมูลอื่นๆ เกี่ยวกับไอพีแอดเดรสและโฮสเนมไปยังไฟล์ /etc/hosts เช่นถ้าไอพีของคุณคือ 123.123.123.123 ให้เพิ่มบันทัดต่อไปนี้ไปยังไฟล์ (โดยการใช้ "sudo nano /etc/hosts"):
123.123.123.123 your.domain.name.th
ขั้นตอนที่ 2: ตั้งพาสเวิร์สให้ยากๆ หน่อย - ถ้าตั้งพาสเวิอร์ดยาวๆ มีทั้งตัวเล็ก ตัวใหญ่ ผสมกับหมายเลข และสัญญลักษณ์ได้จะดีมาก เป็นเรื่องสำคัญมากที่ต้องพยายามทำให้ได้ คุณอาจทำได้ง่ายๆ โดยไปที่ System->Administration->Users and Groups หรือที่ command line (กรณีใช้ Terminal) ให้รันคำสั่ง:
passwd
ตัวเลือกเพิ่มเติม: คุณสามารถตั้งพาสเวิอร์ดสำหรับ bios ของคุณและสำหรับ grub bootloader ใน BIOS ของคุณก็เช่นกันคุณสามารถตั้งลำดับการบูทเครื่องโดยให้ใช้ฮาร์ดไดร์เป็น ลำดับแรก เพื่อเป็นการป้องกันไม่ให้คนอื่นเอา CD มาควบคุมระบบของคุณได้
ขั้นตอนที่ 3: ติดตั้งเซิฟเวอร์ SSH - เพื่อที่ว่าคุณจะได้ล๊อคอินไปยังคอมพิวเตอร์ทางไกล ผ่านการเชื่อมต่อแบบ encrypted ได้ ถ้าคุณใช้ command line ของ shell application ของ Terminal คุณสามารถติดตั้งแบบนี้ก็ได้:
apt-get install ssh openssh-server
หรือมิฉะนั้นคุณสามารถใช้ Synaptic package manager เพื่อค้นหา "ssh" และติดตั้ง package เดียวกัน
ตัวเลือกเพิ่มเติม: แก้ไขไฟล์ /etc/ssh/sshd_config เพื่อเปลี่ยนพอร์ตของ ssh ที่ใช้สำหรับเชื่อมต่อ จากค่าปกติที่ 22 เป็นค่าอื่น เปลี่ยนที่บันทัดที่มีคำว่า "Port 22" ทั้งนี้เพราะพอร์ต 22 ง่ายต่อการถูกโจมตี (แต่ยังไงก็ตามที คุณควรจะรัน firewall และหมั่นดูแลระบบให้ทันสมัย และที่สำคัญควร backed up ข้อมูลบนเซิฟเวอร์บ่อยๆ เช่นกัน)
sudo nano /etc/ssh/sshd_config
รีสตาร์ท ssh
sudo invoke-rc.d ssh restart
ทดลองใช้คอมพิวเตอร์เครื่องอื่น เชื่อมต่อไปยังเซิฟเวอร์ของคุณโดยใช้ ssh client (อาทิเช่น "ssh" บน command line หรือ Putty บน
windows เป็นต้น) เช่น ถ้าคุณเปลี่ยนค่าพอร์ตเป็น 789 และ username ของคุณคือ "superman" ดังนั้นคำสั่งสำหรับการเชื่อมต่อคือ:
ขั้นตอนที่ 4: ติดตั้ง LAMP software - Apache 2 webserver, PHP 5,
& MySQL 5 วิธีการติดตั้งแบบง่ายๆ คุณอาจทำโดยใช้ tasksel (บน command line) หรือ Synaptic ในการทำแบบ Synaptic ให้เลือก Edit->Mark
Packages by Task...และเลือก LAMP server และติดตั้ง หรือมิฉะนั้นที่ command line ให้ run
sudo tasksel
แล้วเลือก LAMP server ถ้าคุณไม่ได้ติดตั้ง tasksel ก็ให้ run "sudo apt-get install tasksel" ตอนนี้ก็จะเห็นว่ามีการติดตั้ง Apache, MySQL, และ PHP และควรมีการถามหา root password เพื่อใช้กับ MySQL ก็เช่นเดียวกันควรเลือกพาสเวิร์ดที่ดี ดังที่กล่าวไว้แล้วในขั้นตอนที่ 2 และก็ควรตั้งค่า MySQL ไม่ให้ตอบรับการติดต่อใดๆ
ยกเว้นจากเครื่องของคุณ (local machine) ตัวไฟล์หลักในการจัดการ Apache อยู่ที่:
/etc/apache2/apache2.conf

/etc/apache2/sites-enabled/000-default
ในกรณีที่คุณอยากแก้ไขใดๆ
root folder สำหรับเอกสาร HTML ของ webserver HTML ของคุณคือ:
/var/www
แก้ไขไฟล์ index.html ตัวอย่างเช่นคุณต้องการเปลี่ยนค่า homepage
ให้ตรวจดูเวปเซิฟเวอร์ของคุณที่ http://your.domain.name.th/
ขั้นตอนที่ 5: ติดตั้ง Firewall - อันนี้เป็นสิ่งจำเป็นเช่นเดียวกัน คุณสามารถบล๊อกการติดต่อทั้งหมดจากภายนอกได้ ยกเว้นพอร์ตที่คุณต้องการจะเปิดไว้ เวปเซิฟเวอร์จะใช้พอร์ต 80 และ ssh ใช้ พอร์ต อะไรก็ได้ที่คุณตั้งใน /etc/ssh/sshd_config (ค่าปกติอคือ 22 )

สำหรับ firewall ใน Ubuntu จะมีให้เลือกอยู่ 2 ตัว ถ้าคุณยังคงใช้เครื่องนี้เป็น desktop ต่อไปด้วย คุณอาจใช้ FireStarter เป็น graphical firewall manager แต่ถ้าคุณใช้เครื่องนี้เป็นเซิฟเวอร์อย่างเดียว คุณอาจเลือก Shorewall เพราะคุณสามารถแก้ไขจาก command line (ไม่แน่ใจว่า Firestarter จะสามารถใช้ command line ได้หรือเปล่าไม่เคยลอง) ในการติดตั้ง Shorewall ให้พิมพ์บันทัดต่อไปนี้:
sudo apt-get install shorewall
จากนั้นพิมพ์คำสั่งต่อไปนี้:
cd /usr/share/doc/shorewall/default-config sudo cp interfaces /etc/shorewall/ sudo cp policy /etc/shorewall/ sudo cp rules /etc/shorewall/ sudo cp zones /etc/shorewall/
โดย การใช้คำสั่งในการแก้ไข (เช่น sudo nano หรือ sudo gedit) คุณต้องแก้ไขไฟล์ 4 ไฟล์ ให้เพิ่มบันทัดนี้ก่อนบันทัดสุดท้ายของ /etc/shorewall/interfaces:
net eth0 detect
เพิ่มบันทัดนี้ก่อนบันทัดสุดท้ายของ /etc/shorewall/zones:
net ipv4
คุณจะต้องมีบันทัดที่เขียนว่า "fw firewall" อยู่ใน zones file ให้ใส่บันทัดต่อไปนี้ก่อนบันทัดสุดท้ายของ /etc/shorewall/policy:
fw net ACCEPT net all DROP info all all REJECT info
และเพิ่มบันทัดเหล่านี้ไปยังไฟล์ /etc/shorewall/rules ของคุณหลังจาก SECTION NEW line:
#change "22" to the port you used for ssh if not the default one: ACCEPT net fw tcp 22 ACCEPT net fw tcp www,https
เปลี่ยนจาก 22 ไปเป็นพอร์ตที่คุณจะใช้สำหรับ ssh ให้เอาคำว่า ",https" ออก ถ้าคุณไม่คิดว่าจะติดตั้ง ssh module ใดๆ สำหรับ apache
webserver (เพื่อความปลอดภัยในการทำธุรกรรมซื้อขาย) สุดท้ายแก้ไขไฟล์ /etc/default/shorewall โดยเปลี่ยนบันทัดที่มีคำว่า startup=0 เป็น:
startup=1
คุณสามารถเปิด firewall โดยใช้คำสั่ง:
sudo invoke-rc.d shorewall start
ส่วนตัวเลือกอื่นๆ คุณสามารถผ่านไปยัง invoke-rc.d รวมถึงการ start, stop, และ restart
ขั้นตอนที่ 6: รักษาระบบให้ทันสมัยอยู่เสมอ - Run คำสั่ง
sudo apt-get update sudo apt-get upgrade
เพื่อให้ซอฟแวร์ update สม่ำเสมอ จำเป็นมากทีเดียวเพราะโดยทั่วไปแล้วตัวที่ update จะมีการแก้ไขข้อผิดพลาดด้านความปลอดภัยของระบบ คุณสามารถ run คำสั่งข้างต้นได้ทุกวัน หรือแม้แต่ใช้ crontab ก็ได้ มีเวป สอนการใช้ crontabอยู่หลายๆ เวป
ขั้นตอนที่ 7: หมั่นดูแลตรวจสอบ Site ของคุณ - มีเครื่องไม้เครื่องมือมากมายที่คุณสามารถติดตั้ง และใช้ในการตรวจสอบ site ของคุณเช่น webalizer (apache
statistics), webmin (ตัวนี้ใช้ เป็นweb-based control panel สำหรับเซิฟเวอร์ของคุณ) เป็นต้น ตัว crontab ผสมผสานกับ shell scripts (ใน bash, python, perl, และอื่นๆ) สามารถนำมาใช้ในการส่งอีเมล์ถึงคุณเมื่อเซิฟเวอร์มีปัญหาหรือล่ม หรือคุณอาจสั่งให้รีสตาร์ทอัตโนมัติได้
ขั้นตอนที่ 8: Backup backup และก็ยัง backup นั่นแหล่ะ - คุณควรทำการเก็บ backups ไฟล์บนเซฟเวอร์ของคุณอย่างสม่ำเสมอ คุณอาจ backup ไปยังฮาร์ดไดร์สำรอง หรือรีโมทคอมพิวเตอร์ก็ได้ คุณสามารถตกแต่ง RAID configuration เผื่อว่าการทำไดร์หลายๆ ไดร์จะช่วยเก็บข้อมูลซ้ำๆ กันได้ โดยการ copy และ compress backup ไปยังอีกไดร์ คุณสามารถ run คำสั่งดังต่อไปนี้เช่น:
sudo tar cpzf /media/path/to/backup/folder/my-backup.tar.gz
--exclude=/proc/* --exclude=/lost+found/* --exclude=/dev/*
--exclude=/mnt/* --exclude=/media/* --exclude=/sys/* --exclude=/tmp/*
--exclude=/var/cache/apt/* /
สำหรับ ในแง่เซิฟเวอร์ จะเป็นการดีถ้าใช้บางอย่างที่เหมือน rsync สามารถจัดแต่งเพื่อใช้ในการ backup อะไรก็ตามที่มีการเปลี่ยนแปลง แม้เพียงครั้งเดียวหลังจากครั้งสุดท้ายที่คุณทำการ back up (incremental backups) โปรดดูตัวอย่างได้ที่:
ควรเรียนรู้การกู้ไฟล์จาก backup ของคุณด้วยเช่นกัน รายละเอียดเพิ่มเติม ดูได้ที่:
แหล่งข้อมูล Quickly Setting Up and Securing an Ubuntu Server

0 ความคิดเห็น: