Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
FreeBSD ส าหรบผดแลระบบเบองตน
บรรยายโดย อาจารยกตตพงษ สวรรณราช
ThaiBSD.com
BSD Solution Co.,Ltd.
วทยากร : อาจารยกตตพงษ สวรรณราช (RHCT)
Red Hat Certified Technician
ต าแหนง : ผอ านวยการศนยเทคโนโลยสารสนเทศ ผดแลระบบเครอขายของมหาวทยาลย มหาวทยาลยราชภฏพบลสงคราม จ.พษณโลก การศกษา : ปรญญาโท สาขาเทคโนโลยสารสนเทศ สถาบนเทคโนโลยพระจอมเกลาพระนครเหนอ ปรญญาตร สาขาวทยาการคอมพวเตอร (เกยรตนยมอนดบ 2) สถาบนราชภฏอบลราชธาน Email : [email protected] MSN : [email protected]
FreeBSD Course (Day 1)
• ความรทวไปเกยวกบระบบเครอขาย และ FreeBSD • FreeBSD เมอเปรยบเทยบกบระบบปฏบตการอน ๆ • เรยนร และปฏบตการตดตง FreeBSD 8.0 • เรยนรโครงสรางและไฟลระบบ (System Files) • เรยนรค าสงเบองตนบน FreeBSD • เรยนรการใชงาน Editor • การตดตง Software Package (Binary) • การยกเลกการตดตง Software Package (Binary) • การตดตง ยกเลก Package โดยใช source tree • การรวบรวมและน า Software Package ไปใชงาน • เรยนรการใชงาน Shell และประยกตใชงาน
(พกรบประทานอาหารกลางวน) • เรยนรการส ารองขอมล Backup โดยใช tar และเครองมอตาง ๆ
• เรยนรการส ารองขอมล Backup ผานเครอขาย โดยใช ssh และ rsync • เรยนรการเฝาดหนวยความจ า ซพย และสอขอมลตาง ๆ • เรยนรการจดการกบวนและเวลา (Date and Time) • เรยนรการใชงานเครองมอในการ Download ไฟล • ถามตอบปญหา (Q&A)
FreeBSD Course (Day 2)
• เรยนรการโอนยายขอมลดวย ftp command และเครองมอตาง ๆ • การดแล และจดการเซรฟเวอรระยะไกล • การบรหารจดการบญชรายชอ Users and Group (Add , Modify , Delete and Update) • การแกไขปญหาเกยวกบเซรฟเวอร หลาย ๆ กรณ • การกคนระบบ (System Recovery)
(พกรบประทานอาหารกลางวน) • การจดการกบไฟลระบบดวย sed , grep , awk และอนๆ
• เทคนคตาง ๆ เกยวกบระบบ FreeBSD ทควรร • ปญหาตาง ๆ ทพบบอยและวธแกไข • ถามตอบปญหา (Q&A)
Free = ฟร BSD =Berkeley Software Distribution
ผมชอ BSD Daemon ครบ! ปจจบนเปลยน Logo ใหมแลวนะ
มหาวทยาลย California, Berkeley
เปนผพฒนา เวบไซต http://www.freebsd.org
รจกกบระบบปฏบตการ FreeBSD
ผมรบงานหนก ๆ ไดอยางสบาย
ปลอยใหเปนหนาทของผมเอง!
FreeBSD สามารถท างานไดบนสถาปตยกรรมทหลากหลาย เชน
i386 Alpha
Sparc64 AMD-64
PPC IA-64 (Intel Itanium)
MIPS PC-98 (NEC PC98-x1)
เลนระบบปฏบตการ Linux ,Freebsd
มาตงแตเรยนป.ตร
ประสบการณดานเครอขายของผม
และระบบปฏบตการ FreeBSD เมอ เปรยบเทยบกบระบบปฏบตการอน ๆ
รจกกบการก าหนดคาตาง ๆ ดงน
Hostname : bsdxxx (xxx คอล าดบทของเครอง)
Domain : thaibsd.com
IP address :
Gateway :
Netmask :
DNS :
ขอควรปฏบต
1.ในการพมพค าสงขอใหระมดระวงตวอกษรใหญ-เลกตองพมพใหถกตอง รวมถงการเวนวรรคดวย
2.หากทานตดปญหาใด ๆ โปรดแจงใหผชวย วทยากรทราบ
FreeBSD Installation
Task: • ตดตงโปรแกรม vmware workstation • ใหผเขาอบรมตดตงระบบปฏบตการ FreeBSD 8.0 บน
โปรแกรม vmware (ดตามเอกสารการตดตง FreeBSD ทายเลมตามค าแนะน าในเอกสาร)
ความแตกตางระหวางเครองหมาย prompt ทเปน # และ $ # เปนเครองหมาย prompt ของ root (root คอ account
ของผบรหารระบบ Admin ซงจะมสทธทกอยางในการจดการกบ Server)
$ เปนเครองหมาย prompt ของ user account ทวไป
ผดแลระบบควรlogin เปน root
นะครบ!
เตรยม Software และเครองมอ
การเตรยมโปรแกรม (Packages) ตาง ๆ ใสแผน config ใน cdrom drive
# mount /cdrom
# cd /cdrom
# cd source
# cp FAMP80.tar.gz /usr/ports/distfiles
# cd /
# umount /cdrom
# cd /usr/ports/distfiles
# gzip –cd FAMP80.tar.gz | tar xvf -
การใชโปรแกรมอดเตอร (pico) งายและสะดวกด ใชค าสง # pico index.html (เพอสรางไฟลทชอ index.html)
กด CTRL+ O (Save ขอมล) กด CTRL + X (Exit โปรแกรม) กด CTRL + Y (Page Up)
กด CTRL + V (Page Down)
กด CTRL + C (แสดงหมายเลขบรรทดท Cursor อย) กด CTRL + W (คนหาค าทตองการในไฟล)
FreeBSD File Environment
• /etc/rc.conf เปนไฟลทก าหนด ip,netmask,gateway,hostname
• /etc/resolv.conf เปนไฟลทก าหนดคาของ DNS Server
• /etc/inetd.conf เปนไฟลทใชเพอเปด/ปด Service ของ Server
• /etc/hosts เปนไฟลทมไวก าหนด hostname และ ip ของ server
• /etc/passwd เปนไฟลทเกบบนทกรายชอของ user ทงระบบ
• /etc/master.passwd เปนไฟลทเกบรหสผานของuser ทงหมดทถกเขารหสแลว • /etc/rc.local เปนไฟลมไวก าหนดให service ใด ๆ ตองการรนตอนบทเครอง เหมอนกน autoexec.bat ใน windows
*** Note: ในไดเรกทอร /etc ยงมไฟลอน ๆ อกทนาสนใจหากมเวลา admin ควรศกษาใหครอบคลม เพราะจะชวยใหเรารจกระบบมากขน
เรยนรค าสงพนฐานตาง ๆ ค าสง ls (เรยกดรายชอไฟลและไดเรกทรอร) # ls
# ls -l
# ls -F
สงงานผมผานทาง
Command line (CLI) นะครบ
ค าสงตรวจสอบไดเรกทรอรปจจบน (pwd)
# pwd
/root ค าสงเปลยนไดเรกทรอรท างาน
# cd /tmp
# cd /root
เวลาทไมรวาตอนนอยทไหน ใหใชค าสง pwd ครบ
ผม!
ค าสงออกจากไดเรกทรอรปจจบน(ขนมาหนงระดบ) # cd .. ค าสงสรางไดเรกทรอร # mkdir test
# mkdir /root/example ค าสงลบไดเรกทรอร # rmdir test
ถาจะลบ
ไดเรกทรอรและไฟลตาง ๆ ใหใชค าสง rm -rf test2
ค าสง copy ไฟล # cp test.html /tmp
# cp *.* /tmp ค าสงลบไฟล # rm test.html ค าสงยายหรอเปลยนชอไฟล # mv test2.html test3.html
การลบไฟลใน
FreeBSD โปรดท าดวยความ
ระมดระวงอยางสง !!!
ค าสงดวนเวลาปจจบนในระบบ
# date
# date 201001231030 ค าสงเรยกดปฏทน
# cal 2010
# cal 01 2010 ค าสงเปลยนรหสผาน
# passwd (เปลยนรหสผานของตวเอง) # passwd kitti (เปลยนรหสผานใหกบ user : kitti)
ขอความชวยเหลอจากระบบ
# man ls
# man cp ค าสงคนหาไฟลตาง ๆ ในระบบ
# cd /
# find . –name rc.conf
การออกจากการคนหาใหกดปม
Ctrl + c
ค าสง Unzip ไฟลตาง ๆ ในระบบ
# gzip –cd filename.tar.gz | tar xvf - การเปลยนโหลดจาก user ทวไปใหเปน root
$ su ( user ใดๆ จะเปลยนสทธตวเองเปน root ไดจะตองอยในกลม ของ wheel เทานน ถาตองการให user ใด ๆ เปน root ได ตองไปเพมชอนนในไฟล /etc/group)
ไฟล /etc/passwd และไฟล
/etc/master.passwd มความส าคญมาก ๆ
เรยนรเรอง File and Directory Permission
# cd /root
# touch exam2.txt
# mkdir test4 # ls –l (สงเกต file Permission ดานซาย)
File Permission จะม 10 หลก โดยแบงเปน 1หลก
, 3 หลก (Owner),
3 หลก (Group),
3 หลก (Other)
เมอ d = directory
r = 4
w = 2
x = 1
- = 0
เรยนรเรอง File and Directory Permission
# cd /root
# chmod 755 exam2.txt
# chmod 700 test4 # ls –l (สงเกต file Permission ดานซาย)
ในการก าหนดความปลอดภยขอบระบบ เราสามารถน าเอา ค าสง chmod มาก าหนด
สทธการเขาใชงาน
ไฟลและไดเรกทรอรไดครบ !
เมอ d = directory
r = 4
w = 2
x = 1
- = 0
การเพม user ในระบบ
# adduser (แลวตอบค าถามตาง ๆ) ค าสงลบ user ในระบบ
# rmuser
ถาตองการระงบการใชงาน user นน ๆ
ใหไปใส # หนาชอ user ในไฟล /etc/passwd
การคนหา Package
1. เปด Web Browser แลวไปท http://www.freebsd.org/ports/ แลวใส keyword ทตองการคนหา พรอมอานรายละเอยดของแตละ package
2. วธท 2 คอบน Server ใหสงดงน
# cd /usr/ports/
# make search name=apache
(เมอ apache คอชอ package ทตองการคนหา)
การตดตง และเรยกด Package
• การตดตง package แบบ online ผานอนเทอรเนต # pkg_add –r apache20
# pkg_add –r –K apache20 (-K เปนการ Save package นน ๆไวท local drive ดวย)
• การตดตง package จากไฟล .tbz
# pkg_add filename.tbz • การเรยกด package ทไดตดตงไวแลว
# pkg_info | more
การลบ Package
• การลบดวย –n จะแสดงรายละเอยดทเกดขนระหวางการลบ # pkg_delete –n package_name
• การลบดวย wildcard (*)
# pkg_delete package_name* • การลบแบบตองยนยน (confirm)
# pkg_delete -i package_name*
การตดตง package โดยใช source tree
• การตดตงแบบพนฐาน (นยมใชงานมาก) # cd /usr/ports/category/packagename
(เมอ category คอ ประเภทของ package และ packagename คอ ชอ package ทตองการตดตง) # make install
• การยกเลกการตดตง package
# cd /usr/ports/category/packagename
# make deinstall
ค าสง make อน ๆ ทนาสนใจ
• การเลอก Options การตดตงเพมเตม # make config (อาจจะใชงานไดบาง package เทานนทม option)
• ท าการ download package นน ๆ มาเกบไวใน /usr/ports/distfiles เทานน
# make fetch
หรอ download package ตาง ๆ ทมการขนตอกนมาดวย # make fetch-recursive
Upgrading ports
• ตดตง package portupgrade
# pkg_add –r portupgrade
• การปรบปรง package ใหเปนปจจบน
# portupgrade –R package_name
Ports Update
เปนเทคนคในการปรบปรงโครงสรางใน /usr/ports ซงจะเปนททเกบ Packages ตางๆ ทมการแยกเปนหมวดหมไว เราจะท าการ update ขอมลทอยในไดเรอทอรดงกลาวใหทนสมย และรวมถงจะท าใหได version ใหม ๆ ของ Packages ตาง ๆ มาอกดวย และชวยแกไขปญหา error code 1 ทมกจะเกดเวลาตดตง packages ตาง ๆ หาก FreeBSD ทเราใชงานอยเกาเกนไป
การท า Port Tree Update
# cd /usr/ports/net/cvsup-without-gui
# make install (รอจนกวาจะตดตงเสรจ) # cp /usr/share/examples/cvsup/ports-supfile /root
# cd /root
# pico ports-supfile
คนหาบรรทด *default host=CHANG_THIS.FreeBSD.org
เปลยนเปน *default host=cvsup5.FreeBSD.org (ปจจบนม server : cvsup1-9) ใสเครองหมาย # หนาบรรทด ports-all
เอาเครองหมาย # หนา ports tree เฉพาะหนา ports ทตองการ update ใหม เชน # ports-security
ท าการ save ไฟลน
# rehash # cvsup ports-supfile
Packing Packages
• เปนอกเทคนคหนงทเราตองการเกบ source file ทไดมการตดตงโปรแกรมตาง ๆ ผานทาง Port tree บนเครองเซรฟเวอรเครองนนแลว เพอทจะน ามาใชงานอกในการตดตงเซรฟเวอรเครองอน ๆ จะไดไมตองเสยเวลาในการดาวนโหลดโปรแกรมเดมอกครง โดย source
file ทวานนจะถกเกบอยใน /usr/ports/distfiles โดยเราตองท าการ zip (tar.gz) ไฟลเหลานนเกบไว และเมอตองการใชงานอกครงกจะน า zip file (tar.gz) นนมาแตกใน /usr/ports/distfiles อกครง แลวกสามารถตดตงโปรแกรมเหลานนไดเลย
การท า Packing Packages
# cd /usr/ports/distfiles
# tar cvf - * | gzip > filename.tar.gz
#
(จากนนเรากจะสามารถน าไฟล filename.tar.gz นไปใชงานกบการตดตง FreeBSD เครองอนๆ ได)
/usr/ports/distfiles จะเปนทเกบโปรแกรมตาง ๆ ท
เคยตดตงไวแลว
การเขยน Shell Script เบองตน
การเขยน Shell Script เปนการน าเอาค าสงบนระบบปฏบตการนน ๆ มาเขยนตอ ๆ กนทละบรรทด รวมเปนชดค าสงจ านวนหนงทเกบไวในไฟลขอความ (Text File) อกครงหนง แลวสงใหระบบท างานทละบรรทด(ค าสง) ตามล าดบจากบนลงลาง เชน
# pico /tmp/exam1.sh
#!/bin/sh
echo “Hello World”
ls /tmp > /root/aaa.txt
Shell Script
การก าหนดสทธในการรน Shell Script เชน
# chmod 755 /tmp/exam1.sh
การรน Shell Script
# /tmp/examp1.sh หรอ # ./exam1.sh (เมอเราอยใน Directory เดยวกนกบไฟลนน
Backup ดวย tar
tar เปนค าสงทใชในการจดการกบ tape backup รวมถงไฟลขอมลตาง ๆ เพอเตรยมการส ารองขอมล โดยมกจะใชงานรวมกบค าสง gzip (เปนค าสงทใชในการบบอด หรอขยายไฟล)
ตวอยางการส ารองขอมล
# tar cf - *.* | gzip –c > backup.tar.gz
ตวอยางการขยายไฟลทไดถกบบอด
# gzip –cd backup.tar.gz | tar xvf -
Auto Backup ดวย rsync
rsync เปนเครองมอในการท า backup ระหวางเซรฟเวอรบนเครอขายทไดรบความนยมอยางมาก เราสามารถน าเอาเครองมอนมาประยกตในการท า Auto Backup โดยไมตองถามรหสผานได อกทงยงใช Protocol SSH เพอชวยในการเขารหสขอมล และใชโปรแกรม crontab ในการตงเวลาในการ backup แบบอตโนมตตามวนและเวลาทเราตองการ
(***ดขนตอนการท าในเอกสารแนบ***)
จดการวนและเวลาสากล ntp
NTP (Network Time Protocol) เปนการก าหนดเวลาและเวลาสากลใหตรงกบเวลามาตรฐานของโลก โดยอางองไปยงเซรฟเวอรทมการตดตง GPS หรอแหลงเวลาทนาเชอถอ
# ntdate clock.nectec.or.th หรอเขยนใน crontab ใหท าการ update time ทก ๆ หกโมง
เชาทกวน สามารถเขยนไดโดย ?
-----------------------------------------------
เครองมอในการ download
• ค าสง fetch ใชในการ Download file
# fetch http://pibul2.psru.ac.th/~kitti/download/putty.exe
• ค าสง wget ใชในการ Download file
# cd /usr/ports/ftp/wget
# make install ; rehash
การใชงาน wget
# wget (URL)
เครองมอใชในการ Download
ค าสง axel เปนเครองมอทใชในการ Download และมความเรวเทยบกบ flashget # cd /usr/ports/ftp/axel
# make install
# rehash
การใชงาน axel
# axel (URL)
ขอดของ axel คอ เรว และสามารถ download ตอจากทหยดไปได ไมตองโหลดใหมทงหมด
FreeBSD Course (Day 2)
• เรยนรการโอนยายขอมลดวย ftp command และเครองมอตาง ๆ • การดแล และจดการเซรฟเวอรระยะไกล • การบรหารจดการบญชรายชอ Users and Group (Add , Modify , Delete and Update) • การแกไขปญหาเกยวกบเซรฟเวอร หลาย ๆ กรณ • การกคนระบบ (System Recovery)
(พกรบประทานอาหารกลางวน) • การจดการกบไฟลระบบดวย sed , grep , awk และอนๆ
• เทคนคตาง ๆ เกยวกบระบบ FreeBSD ทควรร • ปญหาตาง ๆ ทพบบอยและวธแกไข • ถามตอบปญหา (Q&A)
ftp command
ftp (File Transfer Protocol) เปนค าสงทใชในการโอนยายไฟลบน Server
ตวอยางค าสงในการโอนยายไฟลไปยง Server
# ftp www.thaibsd.com
Username:
Password :
เมอท าการ login ไดแลว เราสามารถใชค าสงพนฐานไดเชน cd , ls
เปด ftp service
1. ในไฟล /etc/inetd.conf เอาเครองหมาย # หนาบรรทดทมค าวา ftp บรรทดแรกออก
2. ในไฟล /etc/rc.conf ใหเพมค าสงอก 1 บรรทดคอ inetd_enable=“YES”
3. ใชพมพค าสงใน CLI mode วา /usr/sbin/inetd –wW เพอ Start ftp Service (โดยทไมตอง restart server
ใหม)
TIP: การไมให user ออกนอก Home
หากเราตองการไมให user ใด ๆ ออกนอก Home Directory เรากจะใสชอ user account นนลงไปในไฟลน 1 account ตอหนงบรรทดนะ เชน pico /etc/ftpchroot kitti @student (หากมเครองหมาย @ ทหนาบรรทดจะหมายถงชอ groupนน ๆ ครบ ใครกตามอยใน group นนจะโดนกตกานดวย)
SSH service
SSH (Secure Shell) เปนบรการทใชเพอการ remote ไปยง Server ระยะไกล โดยระหวางตนทางและปลายทางจะมการเขารหสขอมลใหเปนความลบโดยอาศย SSH key ระหวางกน ซงจะท าใหขอมลทสงผานนนมความปลอดภยมาก
Server เราสามารถเปดบรการนไดอยางไร?
1. ในไฟล /etc/rc.conf ใหเพมค าสงหนงบรรทดดงน sshd_enable=“YES” 2. จากนนท าการพมพค าสง reboot ท CLI
SSH service
ตวอยางการใชงาน ssh service บน FreeBSD , Linux
# ssh [email protected]
ใน Windows เราสามารถใชโปรแกรม ssh client ไดเชน Putty.exe ซงสามารถดาวนโหลดไดจาก
http://pibul2.psru.ac.th/~kitti/download/putty.exe
การจดการ User and Group
การเพม User
# pw useradd -n kitti -s /bin/sh –m การเปลยนรหสผานใหกบ user
# passwd jojo
การลบ User พรอม Home directory จากระบบ # pw userdel -n kitti -r แสดงรายละเอยดของ user
# pw usershow kitti
การจดการ User and Group
การแกไขรายละเอยด user เชน ก าหนดวนหมดอายของ user
# pw usermod –n kitti –e 22-jan-2010 การ lock user
# pw lock kitti
การ unlock user
# pw unlock kitti
การจดการ User and Group
การเพม Group
# pw groupadd student การลบ Group # pw groupdel student แสดงรายละเอยดของ Group
# pw groupshow student
แกไขขอความดวย sed
sed เปน Text Tools ทชวยในการแกไขค าในไฟลขอความทเราตองการแบบอตโนมต ใชเมอตองการแกไขค าจ านวนมาก ๆ
ตวอยางการใชงาน
# sed s/oldtext/newtext/g < oldfile.txt > new.txt
คนหาขอความดวย grep
grep เปนเครองมอใชในการคนหาขอความในไฟลหรอจากการประมวลผลขอความ ตามทเราตองการ
ตวอยาง คนหาค าวา defaultroute ในไฟล /etc/rc.conf
# grep defaultroute /etc/rc.conf
ตวอยางการ คนหาค า และบอกหมายเลขบรรทด
# grep -n defaultroute /etc/rc.conf
เทคนค FreeBSD
การตดตามเสนทางบนเครอขายไปยงปลายทาง (route Network)
# traceroute www.thaibsd.com
(ค าถาม : จ านวน hop ทไดมานน มาก หรอนอย จะด? ……….)
การเปด ปดการท างานของ Lan card ดวย ifconfig
# ifconfig rl0 up
# ifconfig rl0 down
เทคนค FreeBSD
การ restart network service ดวยค าสง # /etc/rc.d/netif restart หรอ stop หรอ start
การดขอความในขณะ Start up
# dmesg | more
การดจ านวนเวลาในการเปด Server (uptime)
# uptime
เทคนค FreeBSD
การดสถานการณท างานของ process , cpu , mem
# top (หากตองการออกใหกด q)
การฆา Process ดวย Service Name
# killall inetd (เมอ inetd คอชอ service)
การด Disk ทใชงานอย # df -h
การตงเวลาท างาน crontab crontab เปนค าสงทใชเพอสงงานให Server ท างานใดๆ ตามวน
และเวลาทเราก าหนดใหอตโนมต เชน ท างาน reboot เครอง ตอนตหา ทกวน ซงภายใน crontab จะประกอบไปดวย 6 คาทตองใสเขาไปดงน
m h dom mon dow command • m(minute) 0-59 เวลาเปนนาท • h(hour) 0-23 เวลาเปนชวโมง • dom(day of month) 1-31 เวลาเปนวน • mon(month) 1-12 เวลาเปนเดอน • dow(day of week) 0-6 วนของแตละสปดาห
มคาดงน(อาทตย=0,จนทร=1,...,เสาร=6) • command ค าสง
การตงเวลาท างาน crontab
การสรางไฟล crontab เพอตงเวลาใหโปรแกรมท างาน
# pico /tmp/test.cron
0 5 * * * reboot สงให crontab ท างาน
# crontab /tmp/test.cron
ตรวจสอบวา crontab ไดบนทกงานใหเรา #crontab -l
FreeBSD Troubleshooting
เมอไฟลระบบมปญหา? เราตองซอมดวย fsck
(file system check) เชน
# fsck –y /dev/ad0s1d (เมอ /dev/ad0s1d คอตวอยาง Partition ของ Hard disk หากเราตองการรวาระบบม Partition ใดบาง สามารถเปดไฟล /etc/fstab ดได)
System Protection
Denyhost เปนโปรแกรมไวเพอปองกนการบกรกผานทาง Protocol SSH โดยใชการ bruce force เขา Server
ซงเมอ Denyhost ตรวจพบกจะท าการขน blacklist ทนท
การตดตง Denyhost
# cd /usr/ports/security/denyhosts
# make install ; rehash
(** การ config ดเอกสารเพมเตม***)
System Monitoring
Trafshow เปนเครองมอเพอดการใชงาน Network
Traffic ในปจจบน การตดตงโปรแกรม Trafshow
# cd /usr/ports/net/trafshow
# make install ; rehash
การใชงาน
# trafshow