NTP - Choopan Rattanapoka
Download
Report
Transcript NTP - Choopan Rattanapoka
NETWORK SERVICE
NTP + SQUID
030513249 – Computer Practice II
Asst. 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 Universal Time
โครงสร ้าง NTP
ั ้ เรียกว่า
โครงสร ้างของ NTP จะแบ่งในลักษณะลาดับชน
strata
ั ้ บนสุดคือแหล่งกาเนิดของเวลาทีใ่ ชใน
้
Strata ทีอ
่ ยูช
่ น
การ synchronize
NTP configuration modes
NTP มีการทางานอยูด
่ ้วยกัน 5 โหมด
Client-Server
มีเครือ
่ ง 1 เครือ
่ งทาหน ้าทีเ่ ป็ น NTP Server และเครือ
่ งทีเ่ หลือจะใช ้
NTP Clientดึงเวลามาจากเครือ
่ ง server
Symmetric active/passive
NTP server จะถูก config เป็ นให ้เป็ น peer เพือ
่ เป็ นตัว backup ให ้
server หลัก โดยถ ้าทุก peer ทางานจะสง่ ข ้อมูล update เวลาไป
ให ้กับเครือ
่ งอืน
่ ๆ ถ ้ามี peer ไหนไม่สามารถให ้บริการได ้ ก็ยงั เหลือ
peer อืน
่ ทีท
่ างานได ้
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
ื่ NTP server
ชอ
หลังจากเพิม
่ เติมแล ้วให ้ restart บริการใหม่ด ้วย
service ntpd restart
ntpd –d
ถ ้าต ้องการดู log การทางานของ ntpd สามารถใชค้ าสงั่
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 เข ้ามาชว่ ย
้ CentOS คือ Squid
Web caching ทีม
่ ใี ห ้ใชใน
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 ใชเพื
่ บันทึกใน
ื่ ของ web
system log file และบอกผู ้ใช ้ เกีย
่ วกับ ชอ
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
storagetype
system)
targetdirectory
storagesize
directorycount
subdirectorycount
้
directive สาหรับการใชงาน
cache
ประเภทของระบบแฟ้ มข ้อมูลโดยปกติจะเป็ น ufs (unix file
้
ตาแหน่งทีต
่ ้องการใช ้ Squid ใชในการเก็
บ cache
้
เนือ
้ ทีท
่ จ
ี่ ะใชในการเก็
บ cache มีหน่วยเป็ น MB
จานวนของ directory ทีจ
่ ะเก็บใน cache
จานวนของ 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
ื่ ทีเ่ ป็ น identity ของ ACL (ชอ
ื่ อะไรก็ได ้)
name
ชอ
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
ื่ ของ ACL
target คือชอ
acl localhost src 127.0.0.1/32
acl localnet src 192.168.1.0/24
http_access allow localhost
http_access allow localnet
http_access deny all
เมือ
่ มีการแก ้ไขแฟ้ มข ้อมูล config ของ Squid จะต ้องใชค้ าสงั่ service squid
restart
Client จะต ้อง set proxy มายัง port 3128 เป็ น port โดยปริยายของ squid
แบบฝึ กหัด
ถ ้าเคย save การทา nat ใน iptables ไว ้เอาออกให ้
หมด
ติดตัง้ squid ทีเ่ ครือ
่ ง server อนุญาตให ้ client
้
สามารถใชงาน
web ผ่าน squid ได ้