บันทึกการติดตั้งเซิร์ฟเวอร์เดเบียน etch all-in-one แบบลูกทุ่ง

ควรสงสัยไว้ก่อนว่า ข้อเขียนนี้ต้องมีที่ผิดพลาดแน่นอน หากจะทำตาม ควรมีความรู้เรื่องลินุกซ์พอควรที่จะแก้ปัญหาที่เกิดจากการผิดพลาดในข้อเขียนได้

  • เป็นการบันทึกขั้นตอนการทำงานในระหว่างการเปลี่ยนฮาร์ดดิสก์ของเซิร์ฟเวอร์
  • บางรายการใช้แพกเกจที่มีความสามารถมากไป เรียกว่าขี่ช้างจับตั๊กแตน (บางรายการก็น้อยไป)
  • บางรายการมีแพกเกจอยู่แล้ว แต่ดันมาเขียนสคริปต์เอง (อ้างว่าเพื่อเพิ่มความยืดหยุ่น)
  • เรื่องความปลอดภัยจัดอยู่ในระดับ "ตายดาบหน้า"
  • ทั้งหมดมาจากเพราะภาษาอังกฤษไม่ดีครับ อ่านเอกสารไม่ค่อยเข้าใจ เลยทำเท่าที่ทำได้ครับ

จะติดตั้งเซิร์ฟเวอร์แบบ all-in-one สำหรับใช้ในหน่วยงานเล็ก ๆ โดย

  • เพื่อให้ประหยัด จะใช้บริการ dynamic dns
  • พยายามให้แพกเกจน้อย ๆ และทันสมัยที่สุดเท่าที่เป็นไปได้
  • แยกไดเรกทอรีของข้อมูลออกมา เพื่อสะดวกในการสำรองข้อมูลแบบใช้ rsync โดยจะแยกไปรวมไว้ที่ /sys1 และจะย่อยออกเป็น
    • /sys1/sysb (b คือ backup) สำหรับต้องสำรองข้อมูลทุกวัน เช่น apache2, samba, database-backup, /home และไฟล์คอนฟิกทั้งหลาย
    • /sys1/syst (t คือ temporary) อาจไม่ต้องสำรองข้อมูลก็ได้ แต่แยกไว้ให้สะดวกในการย้ายข้อมูลเมื่อปรับปรุงระบบ เช่น apt-proxy

    (ดังนั้น เวลาติดตั้ง ควรให้ /sys1 มีเนื้อที่มากที่สุด)
    ตั้งชื่อใน /sys1 ให้เลียนแบบกับไดเรกทอรี่จริง เช่น /var/www ต้องสำรองข้อมูลทุกวัน ก็เป็น /sys1/sysb/var/www เป็นต้น

รายการที่ต้องทำคือ

  • เตรียมไดเรกทอรี /sys1
  • ติดตั้งแพกเกจเบื้องต้น ssh + screen + vim + less
  • ปรับไฟล์เน็ตเวิร์ก
  • ทำ iptables + portsentry
  • ทำ apt-proxy และ squid3 เพื่อประหยัดแบนด์วิดท์
  • ทำเรื่อง dynamic dns client
  • ทำ dns server สำหรับเครือข่ายภายใน โดยใช้ bind9
  • ทำ web server และ database server ใช้ apache2 + mysql + postgresql
  • ทำ mail server ใช้ postfix + Courier
  • ทำ ftp ใช้ proftpd
  • ทำ samba สำหรับแชร์ไฟล์
  • ปรับแต่งขั้นสุดท้าย

สมมุติว่า

  • เครือข่ายภายในมี 2 ชุดคือ 192.168.1.0/24-eth0 และต่อภายนอกผ่านเราเตอร์ด้วย 192.168.5.0/24-eth1
  • เครื่องที่กำลังติดตั้งชื่อ server1.example.com ไอพี 192.168.1.1 และ 192.168.5.3
  • เครื่องนี้อยู่หลังเราเตอร์ซึ่งมีไอพี 192.168.5.1 โดยตั้งให้เราเตอร์ฟอร์เวิรด์ทุกแพ็กเก็ตมาที่ server1 (dmz-host)
  • มีการจดโดเมน 2 ชื่อว่า example.com และ example.org มีไอพีเดียวกัน โดยสมัครเป็นสมาชิก dynamic dns ไว้ที่ zonedit.com และ everydns.net ทั้งสองโดเมน

เตรียมไดเรกทอรี /sys1

หลังจากผ่านการติดตั้งแบบ Net Install หรือแบบ debootstrap มาแล้ว
เราจะเตรียมไดเรกทอรี่เก็บค่าต่าง ๆ ไว้ที่ /sys1 เพื่อให้สะดวกในการสำรองข้อมูล
สำหรับการนี้ ควรแยก /sys1 ออกมาเป็นอีกพาร์ทิชั่นหนึ่ง โดยให้มีเนื้อที่มากที่สุด

# mkdir -p /sys1/{sysb,syst}
# mkdir -p /sys1/sysb/{etc,var}

ย้าย /home

#  mv /home /sys1/sysb
#  ln -sf /sys1/sysb/home /

ย้าย /usr/local/{bin,sbin}

# mkdir -p /sys1/sysb/usr/local
# mv /usr/local/{bin,sbin} /sys1/sysb/usr/local
# ln -sf /sys1/sysb/usr/local/{bin,sbin} /usr/local

ย้าย crontab

# mkdir -p /sys1/sysb/var/spool/cron
# mv /var/spool/cron/crontabs /sys1/sysb/var/spool/cron
# ln -sf /sys1/sysb/var/spool/cron/crontabs /var/spool/cron

แพกเกจเบื้องต้น

มี ssh screen และ vim

#  aptitude install ssh screen vim less

แต่ง vim เล็กน้อย

#  vi /etc/vim/vimrc.local
syntax on
set tabstop=4

ปรับให้ vim.basic เป็นค่าปริยายของ editor

#  update-alternatives --config editor
<<<--- เลือก vim.basic

ปรับ ให้ vim.basic เป็นค่าปริยายของ vi

#  update-alternatives --config vi
<<<--- เลือก vim.basic
Topic: 

Comments

หมายเหตุจาก webmaster:

ใครที่เคยถามคำถามแบบครอบจักรวาลเกี่ยวกับ "การติดตั้ง internet server" คงได้คำตอบแบบจุใจในบทความชุดนี้

แต่สำหรับผู้ที่จะเขียนบทความในลักษณะรวมมิตรแบบนี้ ขอแนะนำว่าควรแยกเป็นตอน ๆ เพื่อความสะดวกในการอ่านของผู้อ่าน รวมทั้งไม่ทำให้หนักกระบวนการตรวจทานด้วยครับ บทความชุดนี้ ใช้เวลาตรวจทานกว่าสองอาทิตย์ เพราะ webmaster ธาตุไฟแตกซ่านเสียก่อน แต่ก็ยังไม่ได้ตรวจทานละเอียดนัก ฉะนั้น พึงใช้ด้วยความระมัดระวังอย่างที่คุณ wd ได้กล่าวไว้ตอนต้น

เนื้อหาบางส่วนอาจมีการดัดแปลงเฉพาะกิจ ไม่ใช่วิธีปกติของ debian ก็พึงใช้วิจารณญาณก่อนใช้ด้วยเช่นกัน

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้