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

Topic: 
 

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

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

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

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

    (ดังนั้น เวลาติดตั้ง ควรให้มีเนื้อที่มากที่สุด)
    ตั้งชื่อใน /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 pciutils rsync lynx
แต่ง vim เล็กน้อย
# vi /etc/vim/vimrc.local

syntax on
set tabstop=4

ปรับให้ vim เป็นค่าปริยายของ editor และ vi
# update-alternatives --config editor

<--- เลือก vim.basic

# update-alternatives --config vi

<--- เลือก vim.basic
 

Syndicate

Subscribe to Syndicate

Who's online

There is currently 1 user online.

  • wd