บทที่ 5 การติดตั้ง Application บน Linux ทีม่ า : www.spo.moph.go.th/userfiles/file/ict/linux5.doc
I. การ Set Up PROXY / CACHE SERVER ในปัจจุบัน Proxy/Cache Server มีการใช้งานที่แพร่หลายมากขึ้น เพราะการติดตั้ง Proxy/ Cache Server ในแต่ละองค์กรจะช่วยในการประหยัดงบประมาณที่ต้องเสียไปกับค่าเช่าวงจรสื่อสาร และยังทำาให้ผู้ใช้เรียกดูได้เร็วขึ้น เนื่องจาก Proxy/Cache Server จะทำาหน้าที่ไปเอาข้อมูลที่เครื่องลูก ข่ายต้องการแทนที่เครื่องลูกข่ายแต่ละเครื่องจะ ไปเอาข้อมูลเอง และจะเก็บสำาเนาข้อมูลเหล่านี้เอาไว้ใน เครื่องด้วย ดังนั้นถ้ามีเครื่องลูกข่ายเครื่องอื่นๆ มาเรียนข้อมูล เหล่านี้อีก Proxy/Cache Server ก็จะนำา ข้อมูลที่อยู่แล้วส่งให้กับเครื่องลูกข่ายนั้นฯ ไม่ต้องออกไปเอามาใหม่ หาก ผู้ใช้ต้องการข้อมูลที่ใหม่ เนื่องจากเป็นเว็บที่อัพเดตบ่อยมาก ก็สามารถกดปุ่ม RELOAD จาก Browser ได้ ส่วนในบทนี้จะกล่าวถึง หลักการ Proxy/Cache, คุณสมบัติของ Squid, วิธีการติดตั้ง squid การตั้งค่า โปรแกรม Squid ให้สามารถใช้งานได้, วิธีการใช้งาน, การแก้ไขปัญหาและแหล่งข้อมูลเพิ่ม เติม หลั กการ ขอ ง Pro xy/ Ca ch e S erv er 1. ความแตกต่างระหว่างคำาว่า Proxy กับ Cache คำาว่า Proxy แสดงถึงการไปเอามาให้ ยกตัวอย่างเช่น การที่เครื่องแม่ข่ายไปเอาข้อมูลทีไ่ ซด์ (site) จริงมาให้เครื่องลูกข่าย แทนที่เครื่องลูกข่ายจะไปเอาเอง เครื่องแม่ข่ายจะทำาหน้าที่เป็น Proxy Server ส่วนคำาว่า Cache แสดงถึง การทำาสำาเนาข้อมูลที่เคยเรียกไปแล้วไว้กับตัวเอง ยกตัวอย่างเช่น เมื่อเครื่องแม่ข่ายไปเอามาครั้งแรกให้เครื่องลูกข่าย ตัวมันเองจะทำาสำาเนาเก็บไว้ด้วยเพื่อที่ว่าครั้งต่อไป จะได้ไม่ ต้องไปเอามาจากไซด์จริงอีก บางทีเรามักใช้ปนกันแล้วแต่จะเรียก ทีถ่ ูกแล้วก็น่าจะเรียกเป็น Proxy/Cache Server หรือ Proxy Caching Server แต่บางผลิตภัณฑ์ก็เรียกว่า Proxy หรือ Cache ทีน่ ี้ขอใช้คำาว่า Cache Server ตัวอย่างโปรแกรมที่ทำาหน้าที่เป็น Cache Server เช่น Squid, CERN Httpd, Harvest, NetCache, Microsoft Proxy และ Netscape Proxy 2. Parent & Sibling Parent และ Sibling เป็นการระบุถึงความสัมพันธ์ซึ่งกันและกันของ Cache Server แต่ละ เครื่อง โดยความสัมพันธ์ทั้งสองแบบสามารถอธิบายได้ดังนี้ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-1
• ถ้าเครื่อง Cache Server A มีความสัมพันธ์แบบ Parent-Child กับเครื่อง Cache Server B โดย A เป็น Parent ของ B ถ้าเครื่องลูกข่ายขอข้อมูลมายัง B แต่ B ไม่มีข้อมูลนั้น B ก็จะไปถาม A ถ้า A มีก็จะส่งข้อมูลนั้นให้กับ B แต่ถา้ ไม่มี A จะไปหาข้อมูลนัน้ และส่งต่อมาให้ B • ถ้าเครื่อง Cache Server A มีความสัมพันธ์แบบ Sibling กับเครื่อง Cache Server B ถ้า เครื่องลูกข่ายขอข้อมูลมายัง B แต่ B ไม่มีข้อมูลนั้น B ก็จะไปถาม A ถ้า A มีก็จะส่งข้อมูลนั้นให้กับ B แต่ถา้ ไม่มี B จะต้องไปหาข้อมูลนัน้ เอง A จะไม่วิ่งไปหาให้ 3. Hit และ Miss คำาว่า Hit กับ Miss จะเป็นคำาตอบของคำาถามที่ว่า มีข้อมูลอยูใ่ น Cache Server หรือไม่ใช่คือ Hit และไม่ใช่คือ Miss ข้อมูลที่ Hit หมายความว่า เมื่อเครื่องลูกข่ายขอข้อมูลเข้ามา แล้วข้อมูลนั้นมีอยู่ ใน Cache Server ส่วนข้อมูลที่ Miss เป็นไปในทางตรงข้ามคือ Cache Server ไม่มีข้อมูลนั้นอยู่ Squid Squid (http://squid.nlanr.net) เป็นซอฟต์แวร์ Proxy/Cache Server ที่ประสิทธิภาพสูง สนับสนุน HTTP, FTP, Gopher โพรโตคอล Squid สามารถจัดได้ว่าเป็นซอฟต์แวร์ Proxy/Cache Server ทีใ่ ช่กันแพร่หลายที่สุดใน ปัจจุบัน วิ ธีกา รติดต ั้ง 1. ดาวน์โหลดได้ที่ ftp://squid.nlanr.net/pub ได้ไฟล์ที่มีนามสกุล .tar.gz นำามาใช้ได้โดยใช้คำาสั่ง # tar xvfz squid-version.tar.gz
# version เป็นเลขเวอร์ชัน
2. เข้าไปยังไดเรคทอรีที่ตามที่ขยายมาตามข้อ 1 และใช้คำาสั่งในการ compile # cd squid-version # ./configure –prefix=/usr/local/etc/squid –enable-icmp
Option –prefix เป็นการบอกไดเรกทอรีที่ Squid จะทำาการติดตั้ง ส่วน --enable-icmp จะเป็น บอกให้ Squid สนับสนุนการใช้ ICMP ด้วย ยังมี option อื่นฯ อีกมาก สามารถอ่านรายละเอียดเพื่อ เติมได้โดยใช่คำาสั่ง ./configure --help 3. ใช้คำาสั่ง # make all # make install # make install-pinger
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-2
4. หลังจากนี้เราจะได้โปรแกรม Squid ติดตั้งในไดเรกทอรี /usr/local/etc/squid จะมีไดเรกทอรี ย่อยคือ bin สำาหรับเก็บตัวโปรแกรม มีไฟล์เช่น squid, pinger etc สำาหรับเก็บ Configuration File เช่น squid.conf log สำาหรับเก็บ Log file แสดงรายละเอียดการทำางาน cache สำาหรับเก็บ Cache เราอาจ Link ไดเรกทอรีนี้ไปยังที่อื่นได้ ควรเผื่อขนาด ของไดเรกทอรีนี้ไว้อย่างตำ่า 800 Mb. สำาหรับหน่วยงานขนาดเล็ก 5. แก้ไขไฟล์ etc/squid.conf ซึ่งจะกล่าวในหัวข้อต่อไป ไฟล์ที่ควบคุมการทำางานของ Squid คือไฟล์ squid.conf ซึ่งอยู่ในไดเรกทอรี /usr/local/etc/squid/etc มีคา่ ต่างๆ ที่ต้องติดตั้งดังนี้ HTTP และ ICP Ports ตัวแปร http_port คือ ทีค่ อยรับการเชื่อมต่อกันระหว่าง Cache server กับ เครื่องลูกข่าย และทำาการส่งข้อมูลที่เป็น HTTP Protocol ซึ่งมีรูปแบบดังนี้ http_port 8080
ค่าที่ใช้ส่วนใหญ่จะเป็น 8080 หรือ 3128 ตัวแปร icp_port คือ port ทีเ่ ครื่อง cache server ใช้แลกเปลี่ยนข้อมูล ระหว่างกันซึ่งมีรูปแบบดังนี้ Icp_port 3130
ค่า 3130 เป็นค่ามาตรฐานที่ใช้ การเ ชื ่อ มต่ อกั บ Cac he se rv er เค รื่ องอ ื่น ตัวแปร cache_peer ใช้ในการกำาหนดความสัมพันธ์ในการเชื่อมต่อกับเครื่อง Cache server เครื่องอื่น ซึ่งสามารถมีได้มากกว่าหนึ่งเครื่อง มีรูปแบบดังนี้ cache_peer hostname type http_port icp_port options
hostname คือ ชื่อหรือ IP ของเครื่อง Cache server ทีเ่ ราจะเชื่อมต่อด้วยถ้าเป็น ชื่อจะต้องมีทั้ง forward และ reverse name หมายความว่า ถ้ารู้ IP สามารถระบุ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-3
เป็นชื่อได้และถ้ารู้ชื่อก็สามารถระบุ IP ได้เช่นกัน จากตัวอย่างเป็นเครื่อง proxy.somewhere.com type มีคา่ ได้เป็น parent, sibling, multicast http_port คือ port ทีท่ ำาการส่งข้อมูล HTTP ของเครื่อง proxy.somewhere.com icp_port คือ port ทีใ่ ช้แลกเปลี่ยนข้อมูลระหว่างกันของเครื่อง proxy.somewhere.com options จะระบุหรือไม่ก็ได้ ตัวอย่างเช่น weight = n เป็นการกำาหนดว่าต้องการไป หา parent ตัวไหนก่อน ค่าของ n แทนตัวเลข ค่าไหนมากว่าก็ไปหา parent ตัวนั้น ก่อน ตัวอย่างเช่น ถ้าต้องการชี้เครื่อง proxy.somewhere.com ให้เป็น parent สามารถกำาหนด ได้ดังนี้ cache_peer proxy.somewhere.com parent 8080 3130
การ กำาหนด Loc al Do ma in เป็นการกำาหนด Domain หรือ IP ทีไ่ ม่ต้องให้ Cache Server ไปถามข้อมูลจากเครื่องที่เป็น Parent หรือ Sibling ส่วนใหญ่ชื่อที่กำาหนดจะเป็น Domain ภายในองค์กรตัวอย่าง acl local_domain dstdomain somewhere.com always_direct allow local_domain
การ กำาหนด ขนาดแล ะไดเ รคท อรี ข้ อม ูลที ่จ ะใช้ เก ็บ ข้ อม ูล ใช้คำาว่า cache_dir ตามด้วย ไดเรคทอรี,ขนาด (MB), จำานวนไดเรคทอรีย่อยภายในตัวอย่าง cache_dir /cache/disk1 500 16 256 cache_dir /cache/disk2 500 16 256
การ กำาหนด ชื่ อข อง Lo g fi le s log files ของ squid จะมีอยู่ 3 ชนิดซึ่งแทนด้วยตัวแปร cache_access_log,cache_log และ cache_store_log โดย cache_access_log จะเก็บข้อมูลว่าเครื่องลูกข่ายมีการขอข้อมูลอะไรบ้าง ส่วน cache_log จะเก็บ error message ถ้า Cache server มีข้อผิดพลาดไม่สามารถทำางานได้ ผู้ควบคุม ระบบก็สามารถตรวจสอบ ได้จากไฟล์นี้ว่ามีข้อผิดพลาดอย่างไร และ cache_store_log จะเก็บข้อมูล สำำนักเทคโนโลยีสำรสนเทศ สป.
5-4
การทำางานของ squid ว่าเก็บหรือลบข้อ มูลอะไรบ้าง หรือลบข้อมูลอะไรบ้างซึ่งข้อมูลเหล่านี้อาจจะไม่ จำาเป็นสำาหรับผู้ควบคุมระบบ ซึ่งตัวแปรทั้ง 3 ชนิด มีรูปแบบดังนี้
cache_access_log /usr/local/etc/squid/logs/access.log cache_log /usr/local/etc/squid/logs/cache.log cache_store_log /usr/local/etc/squid/logs/store.log
การ กำาหนด ชื่ อไฟล์ท ี่ เก็ บ Pr oc ess id ทุกครั้งที่มีการ Start Squid, squid จะสร้างไฟล์ที่เก็บ Process id เพื่อให้ง่ายต่อการ restart หรือ shutdown Squid โดยมีรูปแบบดังนี้ pid_filename /usr/local/etc/squid/logs/squid.pid
ตัวแปรอื่นๆ
ตัวแปร cache_effective_user และ cache_effective_group จะระบุ user id และ group id ที่ Squid จะทำางาน ตัวอย่างเช่น cache_effective_user nobody cache_effective_group nogroup
ตัวแปร cache_mgr ใช้ระบบ email address ของผู้ควบคุมระบบ มีรูปแบบดังนี้ cache_mgr
[email protected]
การอนุญาตให้เครื่องลูกข่ายมาเชื่อมต่อ
การอนุญาตให้เครื่องลูกข่ายมาเชื่อมต่อมีตัวแปรที่ใช้ร่วมกันทั้งหมด 3 ตัวคือ acl, http_acceess และ icp_access ตัวแปร acl ใช้ในการกำาหนด ชื่อ, IP หรือ วง LAN ของเครื่องลูกข่ายที่จะมาเชื่อมต่อ, aclname คือ การกำาหนดชื่อที่ไว้ใช้อ้างถึงในตัวแปร http_access ซึ่งสามารถใช้ชื่อซำ้าได้ มีรูปแบบ ดังนี้ acl aclname src ip-address/netmask acl aclname src addr1-addr2/netmask acl aclname srcdomain hostname สำำนักเทคโนโลยีสำรสนเทศ สป.
5-5
ตัวแปร http_access ใช้กำาหนดว่า aclname ใดที่สามารถเชื่อมต่อเพื่อรับข้อมูล HTTP จาก เครื่อง Cache server มีการกำาหนด 2 แบบ คือ allow (อนุญาต) หรือ deny (ปฏิเสธ) เครื่อ งหมาย ! แทนการยกเว้น มีรูปแบบดังนี้ http_access allow/deny [ ! ] aclname
ตัวแปร icp_access ใช้กำาหนดว่า aclname ใดที่สามารถเชื่อมต่อเพื่อรับข้อมูล ICP จาก เครื่อง Cache icp_access allow/deny [ ! ] aclname
ตัวอย่างที่ 1 ต้องการอนุญาต ให้เครื่องลูกข่ายที่มี IP 204.150.154.20 และ IP 202.150.153.0 สามารถเชื่อมต่อกับ Cache server ได้ และต้องการอนุญาตให้เครื่อง cache.mychild.co.th มาใช้เครื่องเราเป็น parent หรือ sibling ได้ acl client_ip src 204.150.154.20
acl local_ip src 202.150.153.0-202.150.153.255/255.255.255.0 acl child_name srcdomain cache.mychild.co.th http_access allow client_ip http_access allow local_ip http_access allow child_name icp_access allow child_name http_access deny all icp_access deny all การกำาหนด icp_access จำาเป็นต้อกำาหนดสำาหรับเครื่องลูกข่ายที่เป็น Cache server เท่านั้น เพราะ การรับส่งข้อมูลแบบ ICP จะสามารถทำาได้เฉพาะเครื่องที่เป็น Cache server ส่วนสองบรรทัด ล่าง คือการปฏิเสธ ไม่ให้เครื่องที่เราไม่ได้กำาหนดไว้มาเชื่อมต่อ เพื่อเป็นการป้องกันไม่ให้เครื่องคนอื่นมา แอบใช้ เนื่องจากค่าเริ่มต้นที่ Squid กำาหนดมาให้จะอนุญาตทุกเครื่องสามารถเข้าถึงได้ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-6
ถ้าต้องการให้เครื่องลูกข่ายสามารถเป็นได้เฉพาะ sibling ไม่สามารถชี้เราเป็น parent ได้ใช้ ตัวแปร miss_access ซึ่งมีตัวอย่างการใช้ดังนี้ acl sibling_only src 203.150.154.20 miss_access allow !sibling_only
การ กำาหนดให้ Ca ch e m an age r สามาร ถใช้ งานได้ Cache manager คือ โปรแกรม CGI ทีช่ ่วยในการตรวจสอบการทำางานของ Squid โดยจะให้ ข้อมูลทีส่ ำาคัญๆ เช่น การใช้ CPU, การใช้ Memory เป็นต้น ซึ่งโปรแกรมนี้ชื่อว่า cachemgr.cgi จะมา พร้อมกับ Squid อยู่แล้ว การที่จะทำาให้ cachemgr.cgi สามารถทำางานได้จะต้องรันผ่าน Web server เพราะฉะนั้นต้องทำาสำาเนาไฟล์นี้ไปเก็บไว้ยังไดเรกทอรี cgi_bin ของเครื่อง Web server และต้อง กำาหนดให้เครื่อง Web server เครื่องนั้นสามารถเข้าถึงได้ โดยกำาหนดได้ดังนี้ acl webmgr src 202.150.154.20 acl manager proto cache_object http_access deny manager !webmgr
กำาหนด acl ที่ชื่อว่า webmgr แทน ip ของ Web Server กำาหนด protocol ทีใ่ ช้ กำาหนดให้ปฏิเสธไม่ให้ทุกเครื่องเข้าถึงยกเว้น เครื่องที่มี IP 202.150.154.20 เท่านั้น
หมายเหตุ การเติมเครื่องหมาย # หน้าบรรทัดใดๆ หมายความว่า บรรทัดนั้นจะไม่ถูกอ่าน (เสมือน เป็นคำาบรรยาย) วิธีการใช้งาน
1. หลังจากที่แก้ไขค่าในไฟล์ squid.conf ให้เป็นตามต้องการเรียบร้อยแล้ว ก่อนจะให้ Squid ทำางาน จะต้องสั่งคำาสั่งเพื่อสร้างไดเรกเทอรีทใี่ ช้เก็บข้อมูลซึ่งอาจใช้เวลานานถ้าต้องใช้เนื้อที่เก็บข้อมูล มาก มีคำาสั่งดังนี้ # /usr/local/etc/squid/bin/squid -z
2. สั่งคำาสั่งให้โปรแกรม Squid ทำางาน # /usr/local/etc/squid/bin/RunCache & สำำนักเทคโนโลยีสำรสนเทศ สป.
5-7
3. ตรวจสอบการทำางานของ Squid ใช้คำาสั่ง client ซึ่งอยู่ในไดเรกทอรี bin ของ Squid โดย ผลลัพธ์ที่ได้คือไฟล์ test ที่มี เนื้อความตรงกับหน้า Homepage ของ www.nectec.or.th # client -p 8080 http://www.nectec.or.th/ > test
4. หยุดการทำางานของ Squid # /usr/local/etc/squid/bin/squid -k shutdown
5. เมื่อมีการเปลี่ยนแปลงไฟล์ squid.conf ทุกครั้งจะต้อง restart โปรแกรม squid ใหม่โดยใช้ คำาสั่ง # /urs/local/etc/squid/bin/squid -k reconfigure
6. สั่งให้โปรแกรม squid ทำางานทุกครั้งที่มีการ reboot # /chmod +x /etc/rc.d/rc.squid
7. ตั้งค่า Browser ให้ชี้มายัง Cache server การแก้ไขปัญหา
1. ถ้าใช้คำาสั่ง squid –z แล้วมีข้อความบอกว่า Permission denied แสดงว่า Permission ของ ไดเรกทอรีที่ระบุ ไว้ในตัวแปร cache_dir ไม่ถูกต้อง Owner ของไดเรกทอรีนั้นจะต้องตรงกับผู้ใช้ตามที่ ระบุไว้ในตัวแปร cache_effective_user 2. เช่นเดียวกันกับข้อ 1 Permission ของ log files ต้องระบุให้ถูกต้อง 3. ถ้าเนื้อที่ดิสก์ที่เก็บ log files เต็ม Squid จะไม่สามารถทำางานได้
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-8
II. การ Set Up WE B SER VER WEB Server คือ ซอฟต์แวร์ที่ให้บริการระบบ World Wide Web (WWW) WEB Server ให้ บริการโอนถ่ายข้อมูลเอกสาร HTML (Hypertext Markup Language) โดยรับการร้องขอจาก Browser เช่น Netscape หรือ Internet Explorer ข้อมูลที่ถา่ ยโอนได้ทั้งตัวอักษร ภาพ และข้อมูลมัลติมีเดียอื่น ๆ Server และ Browser จะติดต่อกันผ่าน Protocol (HTTP: Hypertext Transfer Protocol) การติดตั้ง บริการ WEB Server จึงเป็นการติดตั้งเพื่อให้บริการ Protocol HTTP Web Server ดั้งเดิมเป็นที่รู้จักและนิยมใช้อย่างแพร่หลายได้แก่ Server ของ NCSA (National Center for Supercomputing Applications) ซึ่งนิยมเรียกว่า NCSA httpd ศูนย์ NCSA ตั้ง อยู่ที่ มหาวิทยาลัยอิลลินอยส์ (เออร์บานา-แชมเปญ) ทีน่ ี่เป็นที่กำาเนิดของโมเสอิค (Mosaic) ซึ่งเป็นต้น แบบ ของ Netscape NCSA httpd ทีใ่ ช้อยู่เดิมมีข้อผิดพลาดในโปรแกรมและปัญหาการรักษาความปลอดภัย แต่ ก็ได้ แก้ไขตลอดมา จนกระทั่งเกิดโครงการอาปาเช (Apache Project) เพื่อปรับปรุงเป็น Server ชุดใหม่ ชื่อ อาปาเชที่มาจาก “A PatCHy server” สื่อความหมายที่ใช้แก้ไข Server เดิม และแผลงคำาให้ อ่าน ว่า อาปาเช Fil e a nd D ire ct or y การติดตั้งอาปาเชมีขั้นตอนที่ไม่สลับซับซ้อน สำาหรับผู้ที่เริ่มตั้งแต่กระบวนการติดตั้งลีนุกซ์ สามารถกำาหนดให้ติดตั้ง Server แบบไบนารี โดยไม่ต้องคอมไพล์โปรแกรม WEB Server จะทำางานเป็น Unix แดมอน โดยใช้ชื่อว่า Httpd และ Server จะทำางานในทันทีเมื่อติดตั้งลีนุกซ์เสร็จสิ้น ผู้ดูแลระบบ เพียง แต่ปรับแต่งแฟ้มระบบ และนำาข้อมูลที่ต้องการให้บริการสู่ Directory ทีก่ ำาหนด Mandarke จะดำาเนินการติดตั้ง Server ให้พร้อมใช้งานได้ทันที ดังนั้นจึงข้ามขั้นตอนการคอม ไพล์ แฟ้มระบบทั้งหมดจะอยู่ภายใต้ Directory /etc/httpd และมี Sub-Directory ตามตารางที่ 1 ส่วน ของแดมอมซึ่งจะทำาหน้าที่เป็น Server คือ httpd เก็บอยู่ใน /usr/sbin ตารางที ่ 1 แฟ ้ม และ ไดเ รคทอ รี ไดเร คทอร ี การใ ช้ งาน cgi-bin/ เก็บสคริปต์ cgi conf/ เก็บแฟ้มติดตั้งค่าตัวแปรต่าง ๆ ทีใ่ ช้ในการควบคุมการทำางานของ Server ได้แก่ httpd.conf , srm.conf และ access.conf /home/httpd/html เก็บเว็บเพจ icons/ เก็บไอคอนที่ใช้ในการแสดงรายการของไดเรคทอรี logs/ เก็บแฟ้มบันทึกการทำางาน สำำนักเทคโนโลยีสำรสนเทศ สป.
5-9
src/ เก็บโปรแกรมต้นฉบับที่ยังไม่ได้คอมไฟล์ การ ปร ับ แต ่งแ ฟ้ มร ะบ บ อาปาเชจะทำางานโดยอ่านแฟ้มกำาหนดการทำางานระบบ 3 แฟ้มจากไดเรคทอรี conf คือ access.conf , httpd.conf และ srm.conf ทั้ง 3 แฟ้มประกอบด้วยค่าไดเรคทอรีต่าง ๆ เพื่อ กำาหนดการทำางานดังนี้ httpd.conf สำาหรับปรับตั้งระบบทั่วไปของ Server เช่น เลขพอร์ท ชื่อเจ้าของโปรเซส เมื่อมี การร้องขอบริการเป็นต้น srm.conf ใช้จัดการเกี่ยวกับจุดเริ่มต้นของโฮมเพจหน้าแรกที่จะแสดงออกมาและ ฟังก์ชัน พิเศษต่าง ๆ เช่น imagemap เป็นต้น access.conf ใช้กำาหนดข้อจำากัดการเข้าใช้บริการ Server โดยปกติแล้วอาปาเชจะสร้างแฟ้มต้นแบบไว้ได้แก่ access.conf-dist , srm.conf-dist และ httpd.conf-dist ผูต้ ิดตั้งเพียงแต่คัดลอกแฟ้มทั้งสามใหม่ ตามคำาสั่งต่อไปนี้ # cd /etc/httpd/conf # cp access.conf-dist access.conf # cp httpd.conf-dist http.conf # cp srm.conf-dist srm.conf
การ ปร ับ ตั้ ง ht tp d. co nf ServerType standalone User nobody Group nobody ServerRoot /etc/httpd ServerName www.moph.go.th การ ปร ับ ตั้ ง sr m. co nf DocumentRoot /home/httpd/html UserDir pulic_html
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-10
การ เร ิ่ มต้นท ำางานข อง Ser ve r Mandarke สั่งงานให้ httpd ทำางานโดยอัตโนมัติผ่านสคริปต์ etc/rc.d/init.d/httpd หาก ต้องการตรวจสอบโปรเซสให้ใช้คำาสั่งต่อไปนี้ # ps aux | grep httpd Nobody Nobody nobody nobody nobody nobody nobody nobody nobody nobody nobody nobody nobody nobody nobody
6056 6153 6164 6195 6196 6197 6198 6199 6200 6201 6203 6204 6205 6206 287
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.1 2.0 2.1 2.0 2.1 2.0 1.7
2080 2080 2068 2068 2080 2080 2068 2068 2080 2052 2080 2052 2080 2052 1884
1352 1344 1336 1336 1352 1352 1340 1340 1352 1316 1352 1316 1352 1316 1124
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
S S S S S S S S S S S S S S S
13:46 14:01 14:03 14:05 14:06 14:06 14:06 14:06 14:06 14:06 14:06 14:06 14:06 14:06 Mar 31
0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00
httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd httpd
หากไม่พบโปรเซสดังกล่าว ผู้ดูแลระบบสามารถเรียกใช้ httpd ให้ทำางานได้ 2 ภาวะ คือ แด มอนอิสระ (Standalone Server) และแดมอนภายใต้ inetd เมื่อสั่งงานให้ httpd ทำางานเป็นแดมอนอิสระ จะเกิดโปรเซสที่ root เป็นเจ้าของ เมื่อใดที่มีการ ขอใช้บริการจาก Browser httpd ก็จะแตกลูก (fork) เพื่อสร้างโปรเซสลูกขึ้นมาให้บริการติดต่อกับ Browser โปรเซสลูกจะเจ้าของและสังกัดกลุ่มตามที่กำาหนดด้วยไดเรคทีฟ User และ Group ใน srm.conf โปรเซสแม่ httpd ที่ root เป็นเจ้าของจะไม่ติดต่อกับ Browser โดยตรง หากแต่คอยควบคุม การ สร้างโปรเซสลูก และกำาจัดทิ้งเมื่อหมดความจำาเป็น รูปแบบนี้ช่วยให้โปรเซสแม่มีระบบคุ้มครอง ความ ปลอดภัยดีขึ้น หมายเหต ุ การเลือกแบบการทำางานของ httpd ขึ้นอยู่กับสภาพการใช้งานเป็นหลัก หากโฮสต์ ทำาหน้าที่ให้บริการเว็บเพียงอย่างเดียว ควรสั่งงานให้ httpd ทำางานเป็นแดมอนอิสระ แต่ถา้ โฮสต์นั้นมีบริการอื่น โดยไม่ได้ให้บริการเว็บเป็นหลักและไม่ได้เน้นสมรรถะการให้บริการก็ ให้ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-11
ติดตั้งภายใต้ inetd ได้ การท ำางานแ บบ แด มอน อิส ระ ผูด้ ูแลระบบจะเรียกใช้ httpd จากบรรทัดคำาสั่ง ดังตัวอย่าง # /etc/httpd –f /etc/httpd/conf/httpd.conf ค่าตัวแปร –f ใช้สำาหรับกำาหนดตำาแหน่งแฟ้ม httpd.conf หากการสั่งงานไม่มีปัญหาจะกลับ ไปสู่ บรรทัดคำาสั่งทันที ถ้ามีข้อผิดปกติในการเรียกใช้ ซึ่งมักเกิดจากการปรับตั้งแฟ้มระบบไม่ถูกต้อง จะปรากฏ ข้อความ ผิดพลาดออกมา ข้อความผิดพลาดนี้จะบันทึกไว้ในแฟ้ม logs/error_log การท ำางานแ บบ ภา ยใต้ in et d ขั้นตอนการสั่งงาน httpd ภายใต้ inetd ให้ดำาเนินการดังนี้ 1. ตรวจสอบว่าแฟ้ม /etc/services มีการกำาหนด port httpd หรือไม่ หากไม่พบการกำาหนด Protocol ให้เพิ่มบรรทัดกำาหนด Protocol ตามตัวอย่างนี้แล้วเก็บบันทึกแฟ้ม http
80/tcp
2. แก้ไขแฟ้ม /etc/inetd.conf โดยเพิ่มคำาสั่งต่อไปนี้ http stream tcp nowait nobody /etc/httpd httpd – f /etc/httpd/conf/httpd.conf ทุกครั้งที่มีการแก้ไขแฟ้ม inetd.conf ต้องสั่งงานให้ inetd อ่านแฟ้มนี้ใหม่โดยส่งสัญญาณ –HUP ไปยังโปรเซส inetd การ ตรวจ สอบ เมื่อติดตั้งระบบตามขั้นตอนทุกประการแล้ว ให้ทดสอบการทำางานโดยใช้ Browser เชื่อมต่อ ไปยัง Hosts ภายใน /home/httpd/html จะมีโฮมเพจ index.html เพื่อทดสอบ หากการติดตั้งถูกต้อง Browser จะแสดงหน้าจอดังรูปที่
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-12
รูป โฮมเพจแสดงทดสอบของอาปาเช การ เป ลี ่ยนตำา แหน่ง โฮ มเ พจ แฟ้ม srm.conf จะบรรจุไดเรคทีฟกำาหนดชื่อไดเรคทอรี และชื่อแฟ้มที่เป็นโฮมเพจหน้าแรก ค่าที่ กำาหนดเริ่มต้นให้โดยปริยาย คือ ไดเรคทอรี /home/httpd/html และแฟ้ม index.html หรือ index.htm เช่นตัวอย่างต่อไปนี้ DocumentRoot UserDir DirectoryIndex
/home/httpd/html public_html index.html homepage.html
index.htm
DocumentRoot เป็นตัวบอกว่า WEB Page แรกอยู่ที่ /home/httpd/html และ DirectoryIndex กำาหนดชื่อแฟ้มทีใ่ ห้บริการเป็นได้ทั้ง index.html, homepage.html หรือ index.htm หากมีทั้งสามแฟ้มอยู่พร้อมกัน เซอร์ฟเวอร์จะเลือกอ่านแฟ้มแรกทีก่ ำาหนดชื่อไว้ตามลำาดับก่อนหลัง ตัวอย่างเช่นเมื่อ browser เรียกไปยัง http://www.somewhere.com เซอร์ฟเวอร์จะแทรก ไดเรกทอรีและชื่อแฟ้มเป็น http://www.somwhere.com/home/httpd/html/index.html การติดตั้ง เว็บ เพจอื่นๆ ก็ทำาได้โดยการนำาแฟ้มมาเก็บภายใต้ไดเรกทอรี /home/httpd/html นี้
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-13
หากต้องการเปลี่ยนตำาแหน่งไดเรกทอรีหรือชื่อแฟ้มที่เป็นเว็บเพจแรกก็เพียงแต่แก้ไข srm.conf เช่นต้องการเก็บเว็บเพจไว้ใน /wwwroot ก็เพียงเปลี่ยนดังนี้ DocumentRoot
/wwwroot
กำาหนด โฮ มเ พจ ผู้ใ ช้งาน โฮมเพจของผูใ้ ช้ทั่วไปจะอยู่ภายใต้ home directory ของผู้ใช้นั้นๆ เซอร์ฟเวอร์จะใช้ตวั แปร Userdir เพื่อหาไดเรกทอรีที่เก็บโอมเพจ โดยทั่วไปนิยมกำาหนดเป็นไดเรกทอรี public_html ดังนั้นผู้ใช้งานจะต้องสร้างไดเรกทอรี public_html และสร้างเว็บเพจตามตัวบ่งชี้ DirectorIndex เมื่อเรียกด้วย http://www.somewhere.com/~user1 เซอร์ฟเวอร์จะอ่านแฟ้ม index.html ทีม่ าจาก public_html โดย อัตโนมัติ ข้อควร ระ วัง : ผูใ้ ช้งานมักสร้างไดเรกทอรี public_html โดยไม่ได้กำาหนดสิทธิ์อนุญาตการอ่าน ทำาให้ไม่สามารถให้บริการได้ ผู้ดูแลระบบจึงควรให้คำาแนะนำาในการสร้างไดเรกทอรีโดย ต้องให้ผู้ใช้งานสามารถใช้งานไดเรกทอรีได้ด้วยคำาสั่ง chmod ดังนี้ # mkdir public_html # chmod 755 public_html
แฟ้ มบ ันทึก การทำา งาน เซอร์ฟเวอร์จะบันทึการทำางานไว้ภายใต้ไดเรกทอรี logs เพื่อสามารถตรวจสอบได้ดังนี้ แฟ้มบันทึกข้อผิดพลาด (error_log) แฟ้มบันทึกการเข้าใช้งาน (access_log) แฟ้มบันทึกชนิด browser (agent_log) แฟ้ ม sr m. co nf ServerType standalone กำาหนดแบบการทำางานของเซอร์ฟเวอร์ได้ 2 ประเภทคือ standalone และ inetd Port 80 หมายเลข port ทีใ่ ห้บริการ (สามารถเปลี่ยนเป็น port อื่นได้) HostnameLookups สำำนักเทคโนโลยีสำรสนเทศ สป.
on 5-14
กำาหนดให้มีการเก็บบันทึกโฮสต์ที่เข้ามาใช้งาน on หมายถึงให้บันทึกเป็นชื่อ เช่น luchifur.hell.net โดยให้สอบถามจาก DNS หากเป็น off หมายถึงให้เก็บเป็น ip เช่น 203.157.2.55 User nobody Group nobody การตั้ง user,group ซึ่งจะเป็นเจ้าของโปรเซสที่เกิดขึ้นเมื่อมีการเรียกใช้งาน ServerAdmin
[email protected] กำาหนดที่อยู่จดหมายอิเลคทรอนิคส์ของผู้ดูแลระบบ ServerRoot /etc/httpd ไดเรกทอรีซึ่งเก็บ configuration ของเซอร์ฟเวอร์ PidFile /var/run/httpd.pid กำาหนดชื่อแฟ้มที่จะใช้บันทึกหมายเลขโปรเซสของ httpd ServerName www.somewhere.com กำาหนดชื่อโฮสต์ในการให้บริการเว็บ MaxClients 100 จำากัดจำานวน clients ทีเ่ ข้ามาใช้บริการ แฟ้ ม ht tp d. co nf DocumentRoot /home/httpd/html กำาหนดไดเรกทอรีของโฮมเพจแรก UserDir public_html ไดเรกทอรีเก็บโฮมเพจของผูใ้ ช้งานทั่วไป DirectoryIndex index.html homepage.html index.cgi กำาหนดชื่อแรกของโฮมเพจ DefaultType text/plain กำาหนดประเภทแฟ้มที่เซอร์ฟเวอร์ไม่สามารถตีความได้ว่าเป็นแฟ้มประเภทใด สำำนักเทคโนโลยีสำรสนเทศ สป.
5-15
แฟ้ ม ac ce ss. con f แฟ้มนี้ใช้กำาหนดสิทธิ์ในการเข้าใช้บริการวิธีกำาหนดใช้
และ ล้อม รอบกลุ่มไดเรคทีฟอื่นเพื่อกำาหนดข้อจำากัดในการเข้าใช้ไดเรกทอรี เช่นไดเรกทอรี /home/httpd/html ตัวอย่างกำาหนดให้เซอร์ฟเวอร์ไม่บริการโฮมเพจกับโฮสต์ใดๆ ยกเว้นที่อยู่ในโดเมน .moph.go.th และ โฮสต์ที่มี ip address ขึ้นต้นด้วย 203.157
order allow,deny deny from all allow from .moph.go.th allow from 203.157.
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-16
III. การ Set Up SAMBA Samba เป็นชุดของ Software ทีช่ ่วยให้ Client สามารถเข้าถึงทรัพยากรของ Server ได้เช่น การใช้แฟ้มข้อมูลและการใช้เครื่องพิมพ์ โดยถูกสร้างให้ทำางานผ่าน SMB Protocol (Server Message Block) และ CIFS Protocol (Common Internet File System) ในปัจจุบันมีผใู้ ช้งานจำานวนมากได้ติดตั้ง Samba เป็น File Server และ Printer Server ซึ่ง ส่วนมากนำามาแทน Windows NT Server และ NetWare Server ด้วยเหตุผลที่ว่า Linux Server และ Samba มีความเชื่อถือได้สูงมาก และสามารถติดตั้งกับ Hardware ทีม่ ี Spec. ไม่สูงมาก เช่น 486 หรือ Pentium 75 ก็สามารถทำางานได้ดีและที่สำาคัญที่สุดคือ ฟรี ! Sam ba ทำาอ ะไ รได้บ ้างก ับ ระ บบ Win do ws ของ Mic ro sof t? เนื่องจากระบบ Windows ของ Microsoft ได้แก่ Windows 3.11 for Workgroup, Windows 95/98 และ Windows NT ก็ได้นำาเอา SMB Protocol ไปใช้เป็นมาตรฐาน เพื่อแชร์ข้อมูลและเครื่องพิมพ์ เหมือนกันดังนั้นเราสามารถใช้ Samba ในการแชร์เครื่อง Linux หรือ Unix เข้ากับระบบ Windows ได้ ทัง้ หมดด้วย โดยจะมีลักษณะการใช้งานแบ่งออกได้เป็น 4 ลักษณะดังนี้ ใช้แชร์ดิสก์ของ Linux Server ให้กับเครื่องทีใ่ ช้ Windows ใช้แชร์ดิสก์ของเครื่องทีใ่ ช้ Windows ให้กับ Linux Server ใช้แชร์เครื่องพิมพ์ของ Linux Server ให้กับเครื่องทีใ่ ช้ Windows ใช้แชร์เครื่องพิมพ์ของเครื่องที่ใช้ Windows ให้กับ Linux Server จะหา So ftw ar e Sa mb a ได้จากท ี่ไหน ? คุณสามารถดาวน์โหลด Samba เวอร์ชันล่าสุดได้ที่ www.samba.org หรือตาม mirror site ต่างๆ จะอยู่ที่ /pub/samba โดยจะใช้ชื่อไฟล์ว่า samba-latest.tar.gz ชุดโป รแ กร ม Sam ba ประ กอ บด ้วยอ ะไร บ้า ง? Samba แตกต่างจาก Applications บน Linux โดยทั่วไปซึ่งส่วนใหญ่จะเป็นโปรแกรมเพียง โปรแกรมเดียวที่สามารถเรียกใช้ได้โดยตรงและครอบคลุมหน้าที่การทำางานทั้งหมด แต่ Samba จะ ประกอบด้วยชุดโปรแกรมย่อยหลายโปรแกรมรวมเข้าด้วยกันทำาหน้าที่ตา่ ง ๆ กัน ดังนี้ sm bd ใช้เป็น SMB Server ทำาหน้าที่ควบคุมการติดต่อระหว่าง เครื่อง client กับ server จัดการเรื่องการรับส่งไฟล์, permission และ username สำำนักเทคโนโลยีสำรสนเทศ สป.
5-17
nm bd
ใช้รันเป็น NetBIOS name server ทำาหน้าที่ช่วยให้เครื่องลูก ข่ายสามารถ browse หาเครื่อง server พบและคอยจัดการ เกี่ยวกับการทำางานแบบโดเมนให้กับ Samba Server sm bc li ent โปรแกรมสำาหรับให้เครื่อง Linux หรือ Unix ทำางานเป็นเครื่อง ลูกข่ายเพื่อเรียกใช้ดิสก์หรือเครื่องพิมพ์ของ Samba Server หรือ SMB Server อื่น ๆ sm br un โปรแกรมเล็ก ๆ มีหน้าที่เป็นตัวเชื่อมให้เครื่อง Server สามารถเรียกรันโปรแกรมภายนอกได้ te st pr ns โปรแกรมทดสอบการทำางานระหว่างเครื่องพิมพ์กับเครื่อง Server ทีร่ ัน Samba te st pa rm โปรแกรมตรวจสอบความถูกต้องของ Configuration File (smb.conf) sm b. co nf configuration file ของ Samba SWA T โปรแกรมแก้ไข smb.conf เพื่อควบคุมการทำางานของระบบ Samba ทำางานในระบบ GUI ผ่านทาง WEB Browser มีอยู่ ใน Samba เวอร์ชั่น 2.0 ขึ้นไป sm bp as swd มีหน้าที่กำาหนดรหัสผ่านผู้ใช้งาน sm bs ta tus มีหน้าที่สำาหรับแสดงสถานะ การเชื่อมต่อ sm bm oun t แล ะ smb un mou nt โปรแกรมเล็กๆ ทำาหน้าที่ mount / unmount ดิสก์ ของ Windows 95/98/NT ให้กับเครื่อง Linux เตรี ยม แฟ ้ม กำาหนดกา รติดต ั้ง SA MB A Samba ใช้แฟ้ม /etc/smb.conf เป็นแฟ้มกำาหนดการทำางานระบบ เรดแฮทจะสร้างแฟ้มนี้โดย อัตโนมัติ ผู้ดูแลระบบเพียงแต่ปรับแต่งเฉพาะบางบรรทัดที่สำาคัญดังนี้ security = share encrypt password = yes smb passwd file = /etc/smbpasswd [home] comment = Home Directories browseable = no writable = yes สำำนักเทคโนโลยีสำรสนเทศ สป.
5-18
จากตัวอย่างจะเป็นการอนุญาตให้ผู้ใช้ทีมีชื่ออยู่ในระบบ สามารถใช้ชื่อ Login และรหัสผ่าน ของตนเอง เพื่อเข้าถึง Home Directory ของตนเองได้ ตรว จสอ บแ ฟ้ ม เมื่อปรับแต่งแฟ้มเสร็จสิ้นแล้ว ให้ตรวจสอบความถูกต้องด้วยคำาสั่ง testparm หากตรวจสอบ แล้วไม่พบข้อผิดพลาด โปรแกรมจะแสดงรายละเอียดของบริการทีไ่ ด้กำาหนดไว้ แต่หากมีข้อผิดพลาด โปรแกรมจะแสดงข้อผิดพลาดที่ตรวจพบ สั ่งงาน SA MB A SERV ER เรียกโปรแกรม sm bd และ nmb d เพื่อให้โอสต์ทำาหน้าที่เป็นแซมบาเซอร์ฟเวอร์ ตามที่ กล่าวมา ว่าเรดแฮทจะติดตั้งและเรียกใช้งานแซมบาโดยอัตโนมัติ ผูด้ ูแลระบบสามารถตรวจสอบได้ว่า ขณะนั้นมีแดมอนทั้งสองทำางานอยู่หรือไม่โดยใช้คำาสั่ง # ps aux | grep smbd # ps aux | grep nmbd
หากพบว่าทำางานอยู่แล้ว จะต้องสั่งงานให้เริ่มทำางานใหม่ เพื่ออ่านแฟ้มกำาหนดค่าติดตั้งใหม่ โดยการส่งสัญญาณ HUP ไปยังโปรเซสแดมอน หากไม่พบแดมอนทั้งสอง ให้เรียกใช้งาน โดยพิมพ์ คำา สั่งดังต่อไปนี้ # smbd -D # nmbd –D
หมายเหต ุ เรดแฮทสร้างสคริปต์ startsmb บรรจุอยู่ใน /etc/rc.d/rc.local เพื่อให้เรียกใช้แซม บา ทุกครั้งที่เปิดเครื่องใช้งาน สั ่งงานผ ่าน in et d การสั่งงานแซมบาเซอร์ฟเวอร์อาจเรียกผ่าน /etc/inetd.conf ได้ วิธีสั่งงานผ่าน inetd ให้ตรวจ แฟ้มข้อมูล /etc/services โดยตรวจสอบพอร์ต 137/udp และ 139/tcp หากยังไม่มีให้เพิ่มลงดังนี้ /etc/services Netbios-ns netbios-ssn
137/udp 139/tcp
จากนั้นแก้ไขแฟ้มข้อมูล /etc/inetd.conf โดยเพิ่มข้อความต่อไปนี้ และ Reset inetd ใหม่ โดยการส่งสัญญาณ HUP ไปยังโปรเซส inetd สำำนักเทคโนโลยีสำรสนเทศ สป.
5-19
/etc/inetd.conf netbios-ssn stream tcp nowait root /usr/local/sam,ba/bin/smbd smbd netbios-ns dgram udp wait root/usr/local/samba/bin/nmbd nmbd
จัดเต รี ยม รหัส ผ่าน ผูด้ ูแลเซอร์ฟเวอร์จะต้องสร้างบัญชีผใู้ ช้แซมบาบนเซอร์ฟเวอร์ทใี่ ห้บริการ บัญชีนี้จะเก็บอยู่ที่ etc/smbpasswd การสร้างบัญชีให้ใช้คำาสั่ง sambapasswd เช่น สร้างบัญชีสำาหรับ user1 ด้วยคำาสั่ง # smbpasswd –a pom New SMB password: Retype new SMB password: Password changed บัญชีทีสร้างขึ้นจะต้องมีชื่อตรงกับชื่อบัญชีที่มีใน /etc/passwd แต่ไม่จำาเป็นต้องใช้รหัสผ่าน เดียวกัน เพราะแซมบาแยกเก็บบัญชีไว้ใน etc/smbpasswd ซึ่งมีฟอร์แมตเฉพาะตัว ดังเช่นตัวอย่าง บัญชี ของ user1 ต่อไปนี้ # grep pom /etc/smbpasswd pom:503:6089B6316B3577C4944E2DF489A880E4:68365827D79C4F5CC9B52B688495F D51:pom:/home/bin/bash คำาสั่ง smbpasswd ยังเป็นคำาสั่งให้ผู้ใช้บริการแซมบาเปลี่ยนแปลงรหัสผ่านได้เองต้องการ ภาย หลังที่ root ได้รั้งรหัสผ่านเริ่มต้นให้ดังเช่น # smbpasswd Old SMB password: New SMB password: Retype new SMB password: Password changed สร ้าง แซ มบาไคล เอ ็นต์ บนวินโดวส ์ ผูใ้ ช้งานวินโดวส์ สามารถเข้าถึงแฟ้มข้อมูลลีนุกซ์เซอร์ฟเวอร์ผ่านแซมบาได้ ผูใ้ ช้งานที่มี บัญชี อยูใ่ นเซอร์ฟเวอร์จะเห็นไดเรคทอรีในลีสุกซ์เป็นเสมือนไดรฟ์หนึ่ง ๆ ในวินโดวส์ โดยการทำา drive mapping ตามขั้นตอนต่อไปนี้ - จัดเตรียมแฟ้มข้อมูล LM HOST S (สำาหรับ Windows for Workgroup และ Windows95/98 จะต้อง เก็บไว้ในไดเรคทอรี \w in do ws สำาหรับวินโดวส์เอ็นทีจะอยู่ในได เรคทอรี %sy ste mr oo t% \d ri ve rs \e tc แฟ้มนี้ใช้ในการแม็พจากชื่อ เน็ตไบออสเป็น สำำนักเทคโนโลยีสำรสนเทศ สป.
5-20
ไอพีแอดเดรส โดยไม่ต้องมีการบรอดคาสต์ หรือขอบริการจาก WINS โครงสร้างของแฟ้มเป็น แฟ้มข้อมูลอักขระแอสกี 2 คอลัมน์ โดยคอลัมน์แรก กำาหนดไอพีแอดเดรสและคอลัมน์ที่สอง จะเป็นชื่อเน็ตไบออสเซอร์ฟเวอร์ c:\>cd windows c:\windows>type lmhosts # beginnig of LMHOSTS files # end of LMHOSTS files 203.157.41.7 omega - เปิด Window Explorer และ Click Mouse ไปที่ Map Drive ดังนี้ (หากใช้วินโดวส์ 95 ให้ เลือกเปิดเมนู Tools/ Map Network Drive)
- เมื่อปรากฏหน้าต่าง mapping drive ผูใ้ ช้จะต้องใส่ข้อความใน “Path” โดยใช้รูปแบบ คือ \ \ชื่อเซิร์ฟเวอร์\ชื่อบัญชี ตัวอย่างเช่น เมื่อลีนุกซ์โฮสต์คือ omega และชื่อบัญชีคือ pom ให้ ป้อนค่าดังนี้ (สังเกตว่าชื่อไดร์ฟจะปรากฏอัตโนมัติ โดยขึ้นกับชื่อไดร์ฟที่ว่างอยู่ หากคลิก ที่ ช่อง Reconnect at logon จะทำาให้ทุกครั้งที่เปิดเครื่องใช้งานจะมีหน้าต่าง เพื่อล๊อกอิน โดย อัตโนมัติ)
- ระบบจะถามรหัสผ่านประจำาชื่อบัญชี ให้ใส่รหัสผ่านของบัญชี สำำนักเทคโนโลยีสำรสนเทศ สป.
5-21
- หากบัญชีและรหัสผ่านถูกต้อง จะแสดงไดร์ฟที่ mapping ได้
IV. กา ร Set U p T CP Wrap pe r เป็นโปรแกรมช่วยงานด้านการรักษาความปลอดภัย โดยควบคุมการให้บริการ ทีซีพีแดมอนที่ อยู่ ภายใต้ inetd การติดตั้ง TCPWrapper ช่วยเพิ่มฟังก์ชันรักษาความปลอดภัยในกับ Server และ ช่วยให้ สามารถบันทึกการเข้าใช้บริการ เพื่อตรวจสอบปัญหาในภายหลัง โดยไม่มีผลกระทบต่อผู้ใช้ บริการทัว่ ไป อีกทั้งไม่ต้องเปลี่ยนแปลงซอฟต์แวร์ใด ๆ ของระบบ TCPWrapper สามารถติดตั้งบน Unix ทุกประเภท Application ส่วนใหญ่ของ TCP/IP ทำางานตามแบบ Client-Server ตัวอย่าง เช่น เมื่อ Telnet เพื่อขอติดต่อไปยัง Host หนึ่ง Telnet Server จะเริ่มต้นทำางานที่เครื่องปลายทาง เพื่อจะเริ่มกระบวนการ Login โดยมีแดมอน inetd รอรับและอยู่ภายใต้การควบคุมของ inetd เพื่อให้สามารถดูแลควบคุมความปลอดภัยของแต่ละแดมอนใน inetd ได้สะดวกขึ้น TCPWrapper จะเข้ามาช่วยในการกำาหนดสิทธิ์ และบันทึกการขอเข้าใช้บริการแดมอนใด ๆ ภายใต้ inetd เพื่อตรวจสอบภายหลังได้ง่าย การ ติดตั ้ง โดยปกติ TCPWrapper จะมาพร้อมกับ Mandarke แต่หากต้องการติดตั้งใหม่หรือต้องการ เปลี่ยนรุ่น สามารถทำาได้โดยตรวจจากคำาสั่ง # rpm –i –precenr tcp_wrapper-7_6-5_i386.rpm แฟ้ม inetd.conf ที่ผา่ นการติดตั้ง TCPWrapper จะมีแดมอน /usr/sbin/tcpd ควบคุมการ ทำางาน แดมอนอื่นอีกขึ้นหนึ่ง ดังตัวอย่าง ftp stream tcp nowait root /usrsbin/tcpd in.ftpd –l –a telnet stream tcp nowait root /usrsbin/tcpd in.telnetd Shell stream tcp nowait root /usrsbin/tcpd in.rshd Login stream tcp nowait root /usrsbin/tcpd in.rlogind Finger stream tcp nowait root /usrsbin/tcpd in.fingerd pop-3 stream tcp nowait root /usrsbin/tcpd ipop3d การ จำาก ัดกา รให้บ ริ การ แดมอนแต่ละตัวจะทำางานภายใต้ข้อกำาหนดของแฟ้ม /etc/hostss.allow และ /etc/hosts.deny เมื่อต้องการจำากัดการใช้งานแดมมอนใด ให้ปรับแต่งแฟ้มทั้งสองดังนี้ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-22
แฟ้ม /etc/host.allow กำาหนดว่ามี Client ใดที่อนุญาตให้ใช้แดมอนใดบ้าง ส่วนแฟ้ม /etc/hosts.deny ทำาหน้าที่ตรงกันข้าม คือ ห้าม Client เข้าใช้แดมอน รูปแบบเบื้องต้นของแฟ้มทั้งสองมี ลักษณะเดียวกัน คือ แยกเป็นบรรทัดทีก่ ำากับด้วย 3 ฟิลด์ คือ ชื่อแดมอน : ไคลเอนต์ : คำาสั่ง ฟิลด์ที่บรรจุคำาสั่งใด ๆ ทีต่ ้องการให้ทำางาน เมื่อตรวจสอบมาตรงกับการสั่งงานในบรรทัดนั้น ภายในแฟ้มสามารถใช้คีย์เวิร์ด ALL เป็นไวล์คาร์ดแทนค่าใด ๆ ในฟิลด์ได้ หากมีแฟ้มทั้งสองนี้ปรากฏ อยู่พร้อมกัน TCPWrapper จะตรวจสอบ /etc/hosts.allow ก่อน แล้วจึงตรวจ /etc/hosts.deny และ หากตรวจไม่พบเงื่อนไขใดก็จะถือว่าอนุญาต แนวทางการจำากัดสิทธิ์อาจแบ่งออกได้เป็น 2 ทาง คือ แบบปิด และแบบเปิด แบบ ปิ ด แบบปิดหมายถึงการปิดบริการส่วนใหญ่ที่มีอยู่หรือไม่อนุญาตให้ใช้ ยกเว้นเฉพาะบางบริการ เท่านั้นที่เปิดให้ใช้ การปรับแต่งแฟ้มทั้งสองจะมีลักษณะดังนี้คือ /etc/hosts.deny จะปิดบริการโดยใช้ คำาสั่ง /etc/hosts.deny ALL : ALL ส่วน /etc.hosts.allow จะให้บริการเฉพาะเจาะจงเท่านั้น ให้เทลเน็ตในเครือข่าย 157.109 ดังเช่น /etc/hosts.allow in.telnetd : 157.109 แบบ เป ิด แบบเปิดหมายถึง บริการส่วนที่มีอยู่จะเปิดใช้งานและปิดบางบริการการเท่านั้น การปรับแต่ง แฟ้มจะกำาหนดจุดปิดบริการใน /etc/hosts.deny และไม่ต้องมีแฟ้ม /etc/hosts.allow ดังเช่นอนุญาต การใช้งานจากทุกแห่งยกเว้นจาก crack.com นี้ /etc/hosts.deny in.telnetd : crack.com ตัวอย่างแฟ้ม การใช้ /etc/hosts.allow และ /etc.hosts.deny เพื่อจำากัดการให้บริการ /etc/hosts.allow # in.telnetd, in.ftpd : LOCAL, ac.th, 150.100 สำำนักเทคโนโลยี fingerdสำรสนเทศ สป.: omega alph beta gamma cc in.rshd, inrlogin : LOCAL EXCEPT cc
5-23
/etc.hosts.deny # tftpd : ALL : /usr/sbin/safe_finger –l @%h l \ /usrmail –s %d-%h root)& ALL : ALL คำาสั่งบรรทัดแรกของ /etc/hosts.allow อนุญาตให้ Local Host และ โฮสต์ในโดเมน .ac.th รวมทั้งโฮสต์ที่มี IP ขึ้นต้นด้วย 150.100 สามารถเทลเน็ตและ Ftp เข้ามาได้ บรรทัดถัดมา ให้เฉพาะ โล คอลโฮสต์ที่มีรายชื่อในรายการเท่านั้นที่ใช้ finger ได้ รายชื่อโฮศต์อาจคั่นด้วยช่องว่างหรือจุดภาคก็ได้ บรรทัดสุดท้ายอนุญาตให้ทุกโลคอลโฮสต์สามารถรีโมตล็อกอินด้วย rsh และ rlogin ได้ยกเว้นโฮสต์ cc แฟ้ม /etc/hosts.deny ข้างต้นกำาหนดว่า หากตรวจพบว่ามีการขอใช้ tftp ระบบจะเรียก โปรแกรม safe_finger เพื่อย้อนกลับไปตรวจสอบหาโฮสต์ที่มาขอบริการแะส่งเมล์ไปแจ้ง root สำาหรับ บริการนอก เหนือจากนั้น ให้ปฏิเสธการเข้าใช้งาน หมายเหตุ
ก่อนการใช้คำาสั่งประจำาฟิลด์ที่สามใน hosts.deny จะต้องติดตั้งให้ TCPWrapper ทำางานกับ ฟังก์ชันส่วนขยายนี้ในขั้นการคอมไฟล์ มิฉะนัน้ TCPWrapper จะไม่ทำางาน และรายงานข้อผิดพลาดซึ่ง สามารถตรวจได้ใน /var/log/secure ดังเช่น Ma y 2 14 :2 2: 18 i n. fi ng er d[1 80 37] : er ro r /e tc /h os ts. de ny, li ne 2: B ad o pt io n na me : / us r/ sb in /s afe _f ing er วิธีการแก้ไขต้องปรับแต่ง Makefile ของ TCPWrapper ใหม่ โดยให้มีออพชั่นการทำางานด้วย บรรทัด คำาสั่งต่อไปนี้ก่อนสั่งคอมไพล์ STYLE = -DPROCESS_OPTION # Enable language entensions. แฟ้ มตรว จสอ บกา รทำางาน TCPWrapper ใช้ syslogd บันทึกการขอใช้บริการ ผู้ดูแลระบบสามารถตรวจสอบแฟ้ม /var/log/secure เพื่อดูวา่ มีความพยายามเข้ามาเจาะระบบ หรือผูใ้ ดที่ขอใช้บริการบ้าง ตัวอย่าง ต่อไปนี้เป็นส่วนหนึ่งที่แสดงความพยายามเข้าใช้ Ftp อย่างต่อเนื่องจากโฮสต์ที่ไม่ได้ รับสิทธิ์ให้บริการ Apr 22 14:39:58 omega in.ftpd[6269]: refused connect from 130.14.25.44 Apr 22 19:18:59 omega in.ftpd[6813]: refused connect from 168.10.11.31 Apr 23 05:12:03 omega in.ftpd[7507]: refused connect from 130.85.78.16 Apr 23 15:05:07 omega in.ftpd[10388]: refused connect from 203.15.24.1 สำำนักเทคโนโลยีสำรสนเทศ สป.
5-24
Apr 23 22:56:18 omega in.ftpd[10902]: refused connect from 168.12.1.33 Apr 24 06:06:57 omega in.ftpd[11418]: refused connect from 200.18.16.1 Apr 24 07:18:09 omega in.ftpd[11465]: refused connect from 200.18.66.1
V. การ Set Up FIREWALL : IPCHAINS ipchains เป็นคำาสั่งที่มีลักษณะคล้ายกับ ipfwadm คือระบบที่สร้างขึน้ เพื่อใช้ในการก รองข้อมูลที่ผ่าน ไปมาในตำาแหน่งที่เป็น gateway ทีใ่ ช้ในการเชื่อมต่อ Network ภายในและ ภายนอก และยังทำาหน้าที่สำาคัญ ในการป้องกันเครือข่ายคอมพิวเตอร์และข้อมูลสำาคัญๆ จากผูไ้ ม่ได้รับ อนุญาติ ที่แอบเข้าในระบบเครือข่าย ของเรา หน้าที่สำาคัญของ ipchain ทีต่ ้องทำา คือ • ให้สทิ ธิข้อมูลที่ได้รับอนุญาติให้เข้ามาถึงที่หมายได้และปฏิเสธข้อมูลทีไ่ ม่ได้รับสิทธิ ให้ เข้ามาในเครือข่ายหรือเครื่องคอมพิวเตอร์ในเครือข่าย • ให้บริการในลักษณะของยามรักษาการอิเล็กทรอนิกส์ (Watchdog) ทีค่ อยหยุด ความ พยายามของแฮกเกอร์ (Hacker) หรือใครก็ตามที่จะพยายามเจาะเข้ามายังเครือข่าย ของเรา เองที่เชื่อใจได้ (Home หรือ Trusted network) จากเครื่องคอมพิวเตอร์ทไี่ ม่รู้จัก (Entrusted Computer) บนอินเตอร์เน็ตภายนอก สำาหรับ Linux นั้นมีความสามารถในการทำาระบบรักษาความปลอดภัยของระบบเครื่อข่าย ได้ในระดับที่ ค่อนข้างดีโดยที่ไม่จำาเป็นต้องหา software มาเพิ่มเติม ซึ่งในการทำาระบบรักษาความ ปลอดภัยของเครือข่าย นั้นจะอาศัย Firewall ซึ่งจะทำาได้โดยการใช้ความสามารถของ ipchains ซึ่งมีมากับ package ของ Linux อยู่แล้ว (kernel ตั้งแต่ 2.2 เป็นต้นไป) ในการทำางานของ ipchains นัน้ สามารถทำางานพื้นฐาน 3 รูปแบบ ได้แก่ 1. ipchains input 2. ipchains output 3. ipchains forwarding สำาหรับ ipchains สามารถกำาหนดได้ว่าจะทำาการกรองในส่วนของข้อมูลขาเข้า/ขาออก หรือทั้ง 2 ทาง นอกจากนี้แล้วสำาหรับเครื่องที่เป็น gateway นัน้ ยังสามารถทำา forwarding firewall ได้เพราะตัวเองทำาหน้าที่ เป็น forwarding gateway อยู่แล้ว การใ ช้ งาน ipchains 1. ให้พิจารณารูปแบบการเชื่อมต่อของระบบเครือข่ายนั้นๆ ว่าเป็นไปในลักษณะใด 2. พิจารณาว่าต้องการให้ระบบเครือข่ายวงใดถูกกันออกจากการเข้าถึงของเครื่องใน ระบบ เครือข่ายอื่นๆ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-25
3. ให้ใช้เครื่อง Linux เครื่องหนึ่งเป็น Gateway สำาหรับ ระบบเครือข่าย ที่ต้องการ Security แล้วสร้าง Firewall โดยใช้ ipchains 4. ทำาการกำาหนดนโยบายต่างๆ ทีเ่ ห็นสมควร การใ ช้คำา สั่ งในการใช ้งาน การปฏิบัติการของ ipchains ประกอบด้วยการจัดการกับ chains และ packet ที่ เรียกว่า rule โดยที่เรา สามารถแบ่งคำาสั่งออกได้เป็น 2 ลักษณะใหญ่ๆ คือ การปฏิบัติการที่เกี่ยวกับ chains -N สร้าง chains ขึ้นมาใหม่ เช่น # ipchains -N test จะเป็นการสร้าง chains ทีม่ ีชื่อว่า test ขึ้นมาโดยสามารถเรียกใช้ chains ที่ สร้างใหม่ได้โดยใช้ -j ตามด้วยชื่อ chains ทีไ่ ด้สร้างขึ้น ดังนี้ # ipchains -A input -j test -X ลบ chains ทีว่ ่างทิ้งโดยจะสามารถลบได้ก็ต่อเมื่อไม่มีการกำาหนดกฏภายใน chains ซึ่งเราสามารถดูว่ามีหรือไม่จากคำาสั่ง ipchains -L ตัวอย่างเช่น # ipchains -X test -P เปลี่ยน policy สำาหรับ chains -L แสดง rule ทั้งหมดใน chains โดยมีลักษณะคำาสั่งดังนี้ # ipchains -L -F ลบ rule ทัง้ หมดใน chains การจัดการ rule ภายใน chain -A สร้าง rule ใหม่ต่อท้าย chains เช่น # ipchains -A input … จะเป็นการเพิ่ม rule ในส่วนของ input # ipchains -A test … จะเป็นการเพิ่ม rule ลงไปใน chains ที่มีชื่อว่า test (เป็น chains ที่เราสร้างขึ้นมา) -I แทรก rule ใหม่ไปที่ตำาแหน่งที่ต้องการ สำำนักเทคโนโลยีสำรสนเทศ สป.
5-26
-R แทนที่ rule ใหม่ไปที่ตำาแหน่งที่ต้องการ -D ลบ rule ทีต่ ำาแน่งที่ต้องการหรือตำาแหน่งแรกใน chains ทำาได้ 2 กรณี คือ บอกตัวที่จะลบในลักษณะของตำาแหน่งบน chains เช่น # ipchains -D input 1 บอกตัวที่จะลบในลักษณะของ rule บน chain เช่น # ipchains -D input -s 10.10.110.70/24 -d 0.0.0.0/0 -j DENY -s [sourse] เป็นการกำาหนดต้นทางในการส่งข้อมูลว่าส่งมาจากที่ใด -d [destination] เป็นการกำาหนดปลายทางที่ใช้ในการรับข้อมูลที่ส่งมาจากต้นทาง -p [service name or port number] เป็นการกำาหนดลักษณะ ทีใ่ ช้ในการรับส่งข้อมูล เช่น tcp , icmp,utp # ipchains -A input -p tcp -d 10.10.110.60/32 23 หรือ # ipchains -A input -p tcp -d 10.10.110.60/32 telnet โดยทั้ง 2 คำาสั่งนี้จะมีค่าเท่ากัน -I เป็นส่วนของคำาสั่งที่ใช้กำาหนด interface -j เป็นการกำาหนดลักษณะการทำางานของ rule ว่าจะให้มีลักษณะเป็นเช่นใด ประกอบไป ด้วย ACCEPT เป็นการอนุญาติให้ข้อมูลผ่านได้ DENY เป็นการไม่อนุญาตให้ข้อมูลผ่าน REJECT เป็นการไม่อนุญาตให้ข้อมูลผ่านแต่มีการตอบกลับต่อคำาขอนั้น MASQ เป็นการใช้งานกับ ip Masquerading Chains ที่เราสร้างขึ้น ข้ อควรจ ำา ลำาดับการทำางานของ rule ใน chain ต่างๆ จะมีลำาดับทีต่ รงข้ามกับคำาสั่ง ipfwadm คือ ลำาดับการทำางานจะให้ rule ที่อยู่ด้านล่างของ chain ได้ทำางานก่อน rule ที่อยู่ด้านบน เช่น # ipchains -A input -p tcp -d 203.146.57.141 -j DENY ------- 1 # ipchains -I input -p tcp -d 203.146.57.141 ftp -j ACCEPT -------2 - ในสมการที่ 1 เป็นการปิดทุกข้อมูลที่มีการส่งแบบ tcp ไปที่เครื่อง 203.146.57.141 - ในสมการที่ 2 เป็นการเปิดให้ใช้ ftp ที่เครื่อง 203.146.57.141 สำำนักเทคโนโลยีสำรสนเทศ สป.
5-27
- ถ้ารวมสมการ 1 และ 2 ก็จะเป็นการอนุญาตให้ใช้ ftp ได้เพียงอย่างเดียวที่เครื่อง 203.146.57.141 ข้ อแตก ต่าง ระหว ่าง ipchains กับ ipfwadm คื อ 1.
มีการเปลี่ยน arguments มากมาย อย่างตัวอักษรตัวใหญ่จะแทนคำาสั่ง ส่วนอักษรตัวเล็ก จะแทน option
แหล่ง packet ทีม่ าจากหลายต้นทางกับพอร์ตของปลายทางจะไม่มีการสนับสนุนอีกต่อไป 3. ipchains สามารถที่จะใช้ชื่อที่เต็มๆได้เช่น ใช้คำาว่า input แทน - I 4. Interface ต่างๆ จะถูกอ้างอิงด้วยชื่อเท่านั้น ( ใช้ Address ไม่ได้ ) 5. Fragment จะต้องมีการตรวจสอบ ไม่สามารถใช้ได้อัตโมมัติ 6. <การใช้ Syn และ Ack ใน rule ที่ไม่ได้เกี่ยวกับโปรโตคอล TCP จะไม่มี Syn ให้เรียก ใช้ 7. จะมี Counter เป็น 64 bit บนเครื่องที่ใช้ระบบปฏิบัติการ 32 bit 8. Inverse option สามารถใช้ได้ 9. สนับสนุน ICMP 10. สนับสนุนการใช้ Wildcard Interface 11. ipchains จะ return error ถ้าเกิดมีการพยายามที่จะกำาหนด rule ที่ไม่ถูกต้อง 2.
203.157.41.1 Netmask 255.255.255.254 203.157.41.3
203.157.41.2
Gateway 1
Gateway 2 10.0.2.1 Netmask 255.255.255.0
203.157.41.50 Netmask 255.255.255.254
203.157.41.51
203.157.41.52
10.0.2.2
10.0.2.3
ตัวอย ่างที ่ 1 คำาสั่งอนุญาตให้เครื่องลูกข่ายในวง 10.0.2.0 ซึ่งเป็น ip ปลอมสามารถติดต่อกับระบบ เครือข่าย ภายนอกได้ ( ทำาที่เครื่อง Gateway 2 ) สำำนักเทคโนโลยีสำรสนเทศ สป.
5-28
# ipchains -A forword -s 10.0.2.0/255.255.255.0 -d 0.0.0.0/0 -j MASQ ตัวอย ่างที ่ 2 คำาสั่งอนุญาตให้เครื่องลูกข่ายในวง 203.157.41.2 ไม่สามารถติดต่อกับเครื่อง 203.157.41.3 ได้ (ทำาที่ เครื่อง Gaetway 1) #ipchains -A input -s 203.157.41.2/255.255.255.224 -d 203.157.41.3/255.255.225.255 - j DENY ตัวอย ่างที ่ 3 คำาสั่งให้เครื่อง 10.0.2.3 ไม่สามารถติดต่อกับเครื่อง 203.157.41.52 ได้ # ipchains -A input -s 10.0.2.3/32 -d 203.157.41.52/32 -j DENY -หมายเหตุ สามารถแทน netmask ได้ด้วยเลขฐานสิบ ตัวอย ่างที ่ 4 คำาสั่งป้องกันไม่ให้เครื่องลูกข่ายในวง 10.0.2.0 ทำาการ Ping เครื่องในวง 203.157.41.2 (ทำาที่ Gateway 2) กรณีที่มองในลักษณะที่เป็น input #ipchains -A input -p icmp -s 10.0.2.0/255.255.255.0 -d 203.157.41.2/255.255.255.224 -j DENY กรณีที่มองในลักษณะที่เป็น output # ipchains -A output -p icmp -s 203.157.41.2/27 -d 10.0.2.0/24 -j DENY ( แต่สามารถใช้ บริการ อื่นๆ ได้อยู่ไม่ว่าจะเป็น FTP , TELNET , WEB ) ตัวอย ่างที ่ 5 คำาสั่งป้องกันไม่ให้เครื่องลูกข่ายในวง 10.0.2.0 ทำาการ FTP ไปยังเครื่อง 203.157.41.51 # ipchains -A input -p tcp -s 10.0.2.0/24 -d 203.157.41.51/32 21 -j DENY หรือ # ipchains -A input -p tcp -s 10.0.2.0/24 -d 203.157.41.51/32 ftp -j DENY หรือ # ipchains -A input -p tcp -d 203.157.41.51/32 21 -j DENY สำำนักเทคโนโลยีสำรสนเทศ สป.
5-29
ตัวอย ่างที ่ 6 คำาสั่งป้องกันไม่ให้เครื่องลูกข่ายในวง 10.0.2.0 ทำาการ TELNET ไปยังเครื่อง 203.157.41.51 # ipchains -A input -p tcp -s 10.0.2.0/24 -d 203.157.41.51/32 23 -j DENY หรือ # ipchains -A input -p tcp -s 10.0.2.0/24 -d 203.157.41.51/32 telnet -j DENY หรือ # ipchains -A input -p tcp -d 203.157.41.51/32 23 -j DENY ตัวอย ่างที ่ 7 คำาสั่งป้องกันไม่ให้เครื่องลูกข่ายในวง 10.0.2.0 เล่นอินเตอร์เน็ตได้ # ipchains -A input -p tcp -s 10.0.2.0/24 80-j DENY หรือ # ipchains -A input -p tcp -s 10.0.2.0/24 www -j DENY หรือ # ipchains -A output -p tcp -d 10.0.2.0/24 www -j DENY ตัวอย ่างที ่ 8 คำาสั่งให้เครื่องลูกข่ายในวง 10.0.2.0 ใช้บริการ FTP ได้อย่างเดียวเท่านั้น # ipchains -A input -j DENY # ipchains -I input -p tcp -s 10.0.2.0/24 -d 0.0.0.0/0 ftp -j ACCEPT ตัวอย ่างที ่ 9 คำาสั่งให้เครื่อง 10.0.2.2 ใช้บริการ TELNET ได้เพียงอย่างเดียวเท่านั้น # ipchains -A input -s 10.0.2.2/32 -j DENY # ipchains -I -p tcp -s 10.0.2.2/32 -d 0.0.0.0/0 telnet -j ACCEPT ตัวอย ่างที ่ 10 เป็นการแบ่งคำาสั่งไปเก็บไว้ใน chain ทีส่ ร้างขึ้นเอง พร้อมทั้งเรียก chain ที่สร้างขึ้นให้ทำางาน # ipchains -N new_chain # ipchains -A new_chain -s 10.0.2.0/255.255.255.0 -j DENY จะเป็นคำาสั่งไม่อนุญาตให้เครื่องในวง 10.0.2.0/24 ติดต่อกับวงภายนอกได้ โดยนำา rule นี้ไป เก็บใน chain ที่ชื่อ new_chain สำำนักเทคโนโลยีสำรสนเทศ สป.
5-30
# ipchains -A input -j new_chain เป็นการเรียกให้ chain ทำางาน ในส่วน input
ภาคผ นวก การบ อก netmark ในลักษ ณะ ที่ เป ็นตัว เล ข ดูจากจำานวน bit ของ netmark ทีใ่ ช้ ว่าที่ตำาแหน่งใดเป็น "1" ในระบบเลขขฐาน 2 จาก จำานวน bit ทั้งหมด 32 bit เช่น 255.255.255.0 เขียนเป็นเลขฐาน 2 ได้ 11111111111111111111110000000000 ถ้านับจะได้ทั้งหมด 24 ตัว จึงแทน 255.255.255.0 คือ 24
สำำนักเทคโนโลยีสำรสนเทศ สป.
5-31