8 ขั้นตอนง่าย ๆ ในการเปลี่ยน desktop ให้เป็น Ubuntu Server
posted on 28 Sep 2009 10:19 by immortalpao in Knowledgeเอาไว้สำหรับเป็นโปรเจคเล็กๆ เล่นยามว่าง ในที่นี้สมมุติว่าคุณมี Ubuntu 7.10 "Gutsy" (เวอร์ชั่น desktop) ติดตั้งในเครื่องแล้วนะ แล้วจะช้าอยู่ใย ลงมือกันเลยดีกว่า
ขั้นตอนที่ 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
apt-get install ssh openssh-server
sudo nano /etc/ssh/sshd_config
รีสตาร์ท ssh
sudo invoke-rc.d ssh restart
ทดลองใช้คอมพิวเตอร์เครื่องอื่น เชื่อมต่อไปยังเซิฟเวอร์ของคุณโดยใช้ ssh client (อาทิเช่น "ssh" บน command line หรือ Putty บน
windows เป็นต้น) เช่น ถ้าคุณเปลี่ยนค่าพอร์ตเป็น 789 และ username ของคุณคือ "superman" ดังนั้นคำสั่งสำหรับการเชื่อมต่อคือ:
ssh superman@my.domain.name.th -p789
& 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
/var/www
สำหรับ 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
statistics), webmin (ตัวนี้ใช้ เป็นweb-based control panel สำหรับเซิฟเวอร์ของคุณ) เป็นต้น ตัว crontab ผสมผสานกับ shell scripts (ใน bash, python, perl, และอื่นๆ) สามารถนำมาใช้ในการส่งอีเมล์ถึงคุณเมื่อเซิฟเวอร์มีปัญหาหรือล่ม หรือคุณอาจสั่งให้รีสตาร์ทอัตโนมัติได้
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) โปรดดูตัวอย่างได้ที่:
- Time Machine-like Backup for Linux Computers
- Easy Automated Snapshot-Style Backups with Rsync
- Backups using rync
แหล่งข้อมูล Quickly Setting Up and Securing an Ubuntu Server

