NETWORK SERVICE NTP + SQUID 030523126 – Linux Operating System and
16 Slides234.05 KB
NETWORK SERVICE NTP SQUID 030523126 – Linux Operating System and Administration Assoc. Prof. Dr. Choopan Rattanapoka
Network Service การทำงานที่เกี่ยวข้องกับระบบเครือข่ายเป็นจุดแข็งของ Linux เนื่องจาก Linux ได้ถก ู ออกแบบมาเพื่อรองรับการทำงานบน ระบบเครือข่ายโดยเฉพาะ เช่น การเข้าถึงเครื่องแม่ขา่ ยผ่านระบบเครือข่ายด้วยช่องทางที่ปลอดภัย (SSH) NTP Proxy server, web caching server Remote file sharing DNS DHCP .etc.
NTP Server เวลาบนเครื่อง server เป็นสิง ่ ที่สำคัญมาก เวลาที่เก็บ log เพื่อค้นหาผู้กระทำผิด หรือ ผู้บุกรุกระบบ เวลาที่สง ั ่ ให้ crontab ทำงาน โดยเฉพาะอย่างยิง ่ เมื่อมีเครื่องแม่ขา่ ยหลายตัวและ ต้องการใช้เวลาของเครื่องแม่ขา่ ยทุกตัว มีเวลาที่ตรง กัน หรือใกล้กันมากที่สด ุ ปัญหาเรื่องเวลาสามารถแก้ไขได้ด้วย Network Time Protocol (NTP) NTP มีกลไลในการ synchronize เวลาในเครื่องเรากับ เครื่องแม่ขา่ ยเวลา และมีการใช้ time scale คือ Coordinated
โครงสร้าง NTP โครงสร้างของ NTP จะแบ่งในลักษณะลำดับชัน ้ เรียกว่า strata Strata ที่อยูช ่ น ั ้ บนสุดคือแหล่งกำเนิดของเวลาที่ใช้ใน การ synchronize
NTP configuration modes NTP มีการทำงานอยูด ่ ้วยกัน 5 โหมด Client-Server มีเครื่อง 1 เครื่องทำหน้าที่เป็น NTP Server และเครื่องที่เหลือจะใช้ NTP Clientดึงเวลามาจากเครื่อง server Symmetric active/passive server จะถูก config เป็นให้เป็น peer เพื่อเป็นตัว backup ให้ server หลัก โดยถ้าทุก peer ทำงานจะส่งข้อมูล update เวลาไปให้กับ เครื่องอื่นๆ ถ้ามี peer ไหนไม่สามารถให้บริการได้ ก็ยง ั เหลือ peer อื่นที่ ทำงานได้ NTP Broadcast/Multicast สำหรับเครือข่ายแบบ WAN Manycast สำหรับ NTP version 4 ให้ server ถูกค้นหาได้ ด้วย multicast Orphan ทำงานโดยไม่มี server
ติดตัง ้ NTP Client-Server mode NTP ไม่ได้ถก ู ลงมากับ CentOS โดย default แต่เราสามารถติดตัง ้ NTP ได้ด้วยคำสัง ่ yum install ntp โหมด Client-Server แก้ไขแฟ้มข้อมูล /etc/ntp.conf เพิม ่ server ที่จะใช้ในการ synchronization ในรูปแบบ server หลังจากเพิม ่ เติมแล้วให้ restart บริการใหม่ด้วย service ชื่อ NTP server ntpd restart ถ้าต้องการดู log การทำงานของ ntpd สามารถใช้คำสัง ่ ntpd –d
NTP: Symmetric Active/Passive Mode ทำได้โดยการเพิม ่ ข้อความข้างล่างลงในแฟ้มข้อมูล /etc/ntp.conf บรรทัดล่างสุด peer ip ของเครื่องที่จะแลกเปลี่ยนเวลากัน โดยทัว่ ไปจะมีการปรับแต่งต่อท้าย Client/Server mode Peer จะแลกเปลี่ยนเวลากันเมื่อไม่สามารถติดต่อกับ NTP server เมื่อปรับแต่งเสร็จเรียบร้อยแล้วจะต้อง service ntpd restart
NTP : Broadcast Mode จะต้องไม่ใช้รว่ มกับ Active/Passive mode เพิม ่ บรรทัดให้กับตัวที่ต้องการจะ broadcast เวลา broadcast ip disable auth ตัวอย่าง broadcast 192.168.1.255 disable auth สำหรับเครื่องที่ต้องการจะรับเวลาจากเครื่องที่ broadcast ให้ ใส่ broadcastclient disable auth
Squid Web Caching Server เมื่อระบบเครือข่ายขององค์กรมี bandwidth ไม่เพียงพอ ต่อความต้องการ ถึงเวลาที่ต้องใช้ Web caching หรือ Web Proxy เข้ามาช่วย Web caching ที่มใี ห้ใช้ใน CentOS คือ Squid Squid มีขอ ้ จำกัดบางประการ คือ สามารถเป็น web caching หรือ เพิม ้ ่ ความเร็วให้กับบาง protocol เท่านัน (HTTP, HTTPS by pass-through, และ FTP) Squid ไม่ได้ถก ู ติดตัง ้ มากับ CentOS โดยตรง เพราะฉ นัน ้ จึงต้องติดตัง ้ Squid เอง ด้วยคำสัง่ yum install squid
Squid Main Configuration File Config file ของ Squid จะเก็บอยูท ่ ี่ตำแหน่ง /etc/squid ใน directory /etc/squid จะมีแฟ้มข้อมูลที่สำคัญ อยูค ่ ือ squid.conf ในแฟ้มข้อมูล /etc/squid/squid.conf จะบรรจุคำ สัง่ (directive) ซึ่ง 1 บรรทัดคือ 1 คำสัง่ Directive มีรูปแบบไวยกรณ์ดังนี้ directivename given value 1 [ given value 2 given value N ]
visible hostname directive visible hostname givenhostname visible hostname เป็น directive ใช้เพื่อบันทึก ใน system log file และบอกผู้ใช้ เกี่ยวกับ ชื่อของ web cache server เมื่อเกิดปัญหา จะต้อง set ค่านี้ก่อนเรียกใช้งาน Squid ไม่เช่นนัน ้ Squid จะไม่อ่านค่า ปกติช่ อ ื host ที่ทำหน้าที่เป็น web cache จะเรียกว่า proxy ตัวอย่าง proxy.cit.kmutnb.ac.th ตัวอย่างการใช้งาน directive visible hostname proxy.cit.kmutnb.ac.th
cache dir directive cache dir เป็น directive ที่บอกกับ squid ถึง directory ที่จะใช้ใน การเก็บ cache ต่างๆ (หน้า web, files) มีรูปแบบดังนี้ cache dir storagetype targetdirectory storagesize directorycount subdirectorycount cache dir directive สำหรับการใช้งาน cache storagetype ประเภทของระบบแฟ้มข้อมูลโดยปกติจะเป็น ufs (unix file system) targetdirectory ตำแหน่งที่ต้องการใช้ Squid ใช้ในการเก็บ cache storagesize เนื้อที่ที่จะใช้ในการเก็บ cache มีหน่วยเป็น MB directorycount จำนวนของ directory ที่จะเก็บใน cache subdirectorycount จำนวนของ subdirectory ที่จะเก็บภายใน directory ตัวอย่าง cache dir ufs /var/spool/squid 100 16 256 เมื่อมีการเปลี่ยนแปลง cache dir จะต้องใช้คำสัง ่ squid -z เพื่อ ทำการ clear cache แล้วจึงใช้คำสัง่ service squid restart เพื่อให้ squid อ่านค่า config ใหม่
ACLs และ ACL-operators Access Control List (ACL) เป็น directive ที่ใช้ สำหรับจำกัดการทำงานของ Squid เช่น การอนุญาต หรือห้ามเครื่องบางเครื่องให้ใช้งานinternet ได้ Squid จะปฎิเสธการเข้าถึง internet ของทุก host โดยปริยายหลังจากการติดตัง ้ Squid เป็นครัง้ แรก ดังนัน ู ลระบบที่จะต้องเพิม ้ เป็นหน้าที่ของผู้ดแ ่ เครื่องใน network ใน ACL ให้สามารถใช้งาน internet ผ่าน Squid
ACL directive การเขียน Directive ACL อยูใ่ นรูปแบบดังนี้ ตัวอย่าง acl name type argument name ชื่อที่เป็น identity ของ ACL (ชื่ออะไรก็ได้) type อาจจะเป็น src (คุม IP ขาเข้า) หรือ password (เพื่อให้มก ี ารติดการใช้งาน password) argument เป็นค่า argument ที่ type ต้องการ acl localhost src 127.0.0.1/32 การใช้งาน ACL directive จะใช้ควบคู่กับ ACLOperation เสมอ
ACL Operation Squid จะทำงานเกี่ยวกับ web เพราะฉนัน ้ ACL operation ที่เกี่ยวข้องกับ web คือ http access operation target ตัวอย่าง ACL-Operation http access allow localhost ตัวอย่าง ถ้าต้องการให้ทก ุ เครื่องใน 192.168.1.0/24 และ 127.0.0.1 ใช้งาน internet ผ่าน Squid ได้ ที่เหลือจะปฎิเสธการเข้าใช้งาน internet สามารถทำการแก้ไข ใน /etc/squid/squid.conf ได้ดังนี้ operation ที่ใช้กันคือ allow และ deny target คือชื่อของ ACL acl localhost src acl localnet src http access allow http access allow http access deny 127.0.0.1/32 192.168.1.0/24 localhost localnet all เมื่อมีการแก้ไขแฟ้มข้อมูล config ของ Squid จะต้องใช้คำสัง่ service squid restart Client จะต้อง set proxy มายัง port 3128 เป็น port โดยปริยายของ squid
แบบฝึกหัด ถ้าเคย save การทำ nat ใน iptables ไว้เอาออกให้ หมด ติดตัง ้ squid ที่เครื่อง server อนุญาตให้ client สามารถใช้งาน web ผ่าน squid ได้