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 ได ้