SlideShare a Scribd company logo
1 of 24
Download to read offline
NETWORK SERVICE
OPENSSH + NTP + SQUID
 357362 – Special Problems in Electronics
 Choopan Rattanapoka
Network Service
   การทางานที่เกี่ยวข้องกับระบบเครือข่ายเป็ นจุดแข็งของ Linux
   เนื่ องจาก Linux ได้ถกออกแบบมาเพื่อรองรับการทางานบนระบบเครือข่าย
                         ู
    โดยเฉพาะ เช่น
     การเข้าถึงเครื่องแม่ขายผ่านระบบเครือข่ายด้วยช่องทางที่ปลอดภัย (SSH)
                           ่
     NTP
     Proxy server, web caching server
     Remote file sharing
     DNS
     DHCP
     ..etc..
OpenSSH
   SSH เป็ น 1 ในวิธีที่ผดแลระบบจะใช้ในการติดต่อกับเครื่องแม่ขายเมื่อไม่
                          ู้ ู                                 ่
    สามารถเข้าถึงเครื่องแม่ขายได้โดยตรง
                               ่
   SSH ได้เข้ามาแทนที่การใช้งาน telnet เนื่ องจาก telnet ไม่มีการ
    เข้ารหัสข้อมูลในการรับ-ส่ง ทาให้เสี่ยงต่อความปลอดภัย
   OpenSSH configuration File
     แฟ้ มข้อมูลในการปรับแต่งบริการ   ssh คือแฟ้ มข้อมูลชื่อ sshd_config
                  /etc/ssh
     อยูที่ตาแหน่ ง
         ่
     รูปแบบของการปรับแต่ง คือ directive_name value

     หลังจากแก้ไขค่าต่างๆแล้ว ต้องพิมพ์ service sshd restart
การเชื่อมต่อกับ OpenSSH Server
   คาสังใน Linux เพื่อเชื่อมต่อกับ OpenSSH server คือ
        ่
     ssh user@remote_machine [-p port_number]
     ssh    เป็ นคาสังที่ใช้เชื่อมต่อกับ OpenSSH server
                      ่
     user   ชื่อบัญชีที่มีอยูในเครื่องที่ตองการเชื่อมต่อ
                              ่            ้
     remote_machine                ชื่อเครื่องปลายทาง
   ตัวอย่าง
     ssh root@localhost
     ssh choopan@ect.cit.kmutnb.ac.th
     ssh ect.cit.kmutnb.ac.th (บัญชีชื่อเดียวกันทั้ง 2 เครื่อง)
การ copy แฟ้ มข้อมูลระหว่างเครื่องแบบปลอดภัย
   ในการโอนถ่ายแฟ้ มข้อมูลจากเครื่องหนึ่ งไปยังอีกเครื่องหนึ่ ง สามารถทาผ่าน
    ช่องทางปลอดภัยได้ โดยใช้คาสัง scp
                                ่
scp [-P port_number] [-r] yourfile user@remotemachine:target_directory
       -r ถ้าต้องการ copy directory
   ตัวอย่าง
       ถ้าต้องการ copy แฟ้ มข้อมูลชื่อ /var/log/message ไปที่บญชี root ใน
                                                               ั
        เครื่อง ect.cit.kmutnb.ac.th ที่ตาแหน่ ง /tmp
           scp /var/log/message root@ect.cit.kmutnb.ac.th:/tmp
       ถ้าต้องการ copy แฟ้ มข้อมูลชื่อ /root/myfile.txt ของบัญชี root จากเครื่อง
        cit.kmutnb.ac.th มายังเครื่องและบัญชีที่เราใช้งานอยู่
           scp root@cit.kmutnb.ac.th:/root/myfile.txt .
ทดลอง
   สร้างแฟ้ มข้อมูลเป็ นรหัสนักศึกษาขึ้ นมา 1 แฟมข้อมูล (touch)
                                                    ้
   ส่งแฟ้ มข้อมูลนี้ ไปยังบัญชี ect ที่เครื่อง ect.cit.kmutnb.ac.th ที่
    ตาแหน่ ง /home/ect
   ใช้ ssh เข้าไปดูวาแฟ้ มข้อมูลนั้นถูก copy เข้าไปจริงหรือไม่
                        ่
   จากนั้นให้กลับมายังเครื่องของนักศึกษาแล้ว copy แฟ้ มข้อมูลชื่อ
    downloadme.txt ที่อยูในตาแหน่ ง /home/ect ในบัญชี ect ที่
                                   ่
    เครื่อง ect.cit.kmutnb.ac.th มายังเครื่องนักศึกษา
   Copy ทั้ง directory ชื่อ downloadME ที่อยูในตาแหน่ ง   ่
    /home/ect ในบัญชี ect ที่เครื่อง ect.cit.kmutnb.ac.th มายัง
    เครื่องนักศึกษา
OpenSSH Key
   การทางานผ่าน OpenSSH จะปลอดภัยเนื่ องจากมีการเข้ารหัส โดยการใช้
    key ซึ่งจะมี key 2 ชนิ ดคือ
       private key
         ใช้สาหรับเข้าและถอดรหัสของข้อมูลบนเครื่องแม่ข่าย key ตัวนี้ จะเป็ นความลับและไม่มีการ
          แจกจ่าย
         ssh_host_dsa_key และ ssh_host_rsa_key เป็ นแฟ้ มข้อมูล private key ที่ถก              ู
          เข้ารหัสด้วย DSA, และ RSA ตามลาดับ
       public key
         ใช้สาหรับเครื่องที่ติดต่อกับเครื่องแม่ข่าย จะเข้ารหัสข้อมูลด้วย public key ที่ได้มา และจะถูก
          ถอดรหัสได้เมื่อใช้ private key ของเครื่องแม่ขายเท่านั้น
                                                              ่
         ssh_host_dsb_pub.key และ ssh_host_rsa_pub.key เป็ น public key

   CentOS จะเก็บ key ทั้ง 2 ของเครื่องไว้ใน /etc/ssh
OpenSSH Fingerprints
   เมื่อมีการเชื่อมต่อครั้งแรกของเครื่องเราสูเครื่องคอมพิวเตอร์แม่ขายผ่าน
                                             ่                      ่
    SSH
   ตัว client จะถูกถามถึงการยอมรับหรือปฎิเสธ fingerprint ของเครื่อง
    แม่ขาย เนื่ องจาก fingerprint นี้ ไม่เคยรูจกมาก่อน
         ่                                      ้ั




     Fingerprint จริงๆแล้วก็คือ public key ที่ใช้ในการติดต่อ
     Fingerprint จะถูกเก็บใน directory .ssh ใน home ในแฟ้ มข้อมูลที่ชื่อ
      known_hosts
แฟ้ มข้อมูล ~/.ssh/known_hosts
   เมื่อมีการเชื่อมต่อกันด้วย ssh แล้ว fingerprint ของเครื่องที่ทาการ
    เชื่อมต่อด้วยจะถูกเก็บไว้ในแฟ้ มข้อมูล known_hosts
   จากนั้นครั้งต่อไปเมื่อมีการเชื่อมต่อกันอีกจะไม่มีการถามถึง fingerprint
    อีกต่อไป
   ยกเว้นกรณีเครื่องที่เราเคยติดต่อไป ได้ลงระบบปฎิบติการใหม่ ทาให้
                                                        ั
    fingerprint เปลี่ยนไป ซึ่งเมื่อเราไปเชื่อมต่อจะเกิด warning ขึ้ น
   ดังนั้นเราจึงต้องไปลบ fingerprint เก่าออกจากแฟ้ มข้อมูล
    known_hosts ก่อนถึงจะเชือมต่อกันได้
                                    ่
NTP Server
   เวลาบนเครื่อง server เป็ นสิ่งที่สาคัญมาก
     เวลาที่เก็บlog เพื่อค้นหาผูกระทาผิด หรือ ผูบุกรุกระบบ
                                 ้               ้
     เวลาที่สงให้ crontab ทางาน
              ั่
   โดยเฉพาะอย่างยิงเมื่อมีเครื่องแม่ขายหลายตัวและต้องการใช้เวลาของเครื่อง
                     ่                  ่
    แม่ขายทุกตัว มีเวลาที่ตรงกัน หรือใกล้กนมากที่สุด
        ่                                 ั
   ปั ญหาเรื่องเวลาสามารถแก้ไขได้ดวย Network Time Protocol (NTP)
                                      ้
   NTP มีกลไลในการ synchronize เวลาในเครื่องเรากับเครื่องแม่ขายเวลา
                                                                  ่
   และมีการใช้ time scale คือ Coordinated Universal Time (UTC)
โครงสร้าง 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
       ถ้าต้องการดู 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 จะใช้ควบคู่กบ ACL-Operation เสมอ
                                        ั
ACL Operation
   Squid จะทางานเกี่ยวกับ web เพราะฉนั้น ACL operation ที่เกี่ยวข้องกับ web คือ
                           http_access operation target
       operation ที่ใช้กนคือ allow และ deny
                         ั
       target คือชื่อของ ACL
   ตัวอย่าง ACL-Operation
       http_access allow localhost
   ตัวอย่าง ถ้าต้องการให้ทุกเครื่องใน 192.168.1.0/24 และ 127.0.0.1 ใช้งาน internet ผ่าน
    Squid ได้ ที่เหลือจะปฎิเสธการเข้าใช้งาน internet สามารถทาการแก้ไขใน
    /etc/squid/squid.conf ได้ดงนี้      ั
       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
Log Server
   ของแถมเตือนความจา การทางานหลายอย่างของ Linux จะมีการบันทึกการ
    ทางานเรียกว่า log ซึ่งโปรแกรมที่ทางานในส่วนนี้ คือ syslog
   ถ้าจาได้ syslog สามารถตั้งให้ส่ง log ข้ามเครือข่ายมาเก็บที่เครื่องอื่นได้ดวย
                                                                              ้
    เครื่องหมาย @ชื่อserver ในส่วนของ action
   การติดตั้งเครื่อง Log server จาเป็ นจะต้องเปิ ดบริการให้รบข้อมูลจากเครื่อง
                                                             ั
    อื่นได้ก่อน
     แก้ไขแฟ้ มข้อมูล /etc/sysconfig/syslog โดยการเพิ่ม “-r” ในตัวแปรชื่อ
      SYSLOGD_OPTION
     ใช้คาสัง service syslog restart เพื่อให้ syslog อ่าน config ใหม่
             ่
     ถ้ามีการติดตั้ง firewall ในเครื่อง server จะต้องอนุ ญาต port ของ syslog
           -A RH-Firewall-1-INPUT -i eth1 -s 192.168.1.0/24 –p udp –m
            udp --dport 514 -j ACCEPT
แบบฝึ กหัด
   ถ้าเคย save การทา nat ใน iptables ไว้เอาออกให้หมด
   ทาให้ client เก็บ log ของ facility : authpriv มาที่เครื่อง
    server
   ติดตั้ง squid ที่เครื่อง server อนุ ญาตให้ client สามารถใช้งาน web
    ผ่าน squid ได้

More Related Content

What's hot (7)

การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12การใช้เครื่องมือต่างๆ12
การใช้เครื่องมือต่างๆ12
 
Ch05 name-services
Ch05 name-servicesCh05 name-services
Ch05 name-services
 
Set up rubytech fgs 2924 r กับ tacacs
Set up rubytech fgs 2924 r กับ tacacsSet up rubytech fgs 2924 r กับ tacacs
Set up rubytech fgs 2924 r กับ tacacs
 
Ch02 administrators-tasks
Ch02 administrators-tasksCh02 administrators-tasks
Ch02 administrators-tasks
 
B3
B3B3
B3
 
ยูนิต ไลบรารี 01
ยูนิต ไลบรารี 01ยูนิต ไลบรารี 01
ยูนิต ไลบรารี 01
 
Ch06 bind9
Ch06 bind9Ch06 bind9
Ch06 bind9
 

Similar to NETWORK SERVICEOPENSSH + NTP + SQUID

การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆguest3f77f6
 
Operating System Chapter 4
Operating System Chapter 4Operating System Chapter 4
Operating System Chapter 4Nuth Otanasap
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05Jenchoke Tachagomain
 
Basic linux
Basic linuxBasic linux
Basic linuxtaggi
 
Basic Linux
Basic LinuxBasic Linux
Basic Linuxminafaw2
 
คู่มือการติดตั้ง Cent os
คู่มือการติดตั้ง  Cent osคู่มือการติดตั้ง  Cent os
คู่มือการติดตั้ง Cent osPacharin Ngowpradit
 
Ftp rss mashup gedget widget ai phishing
Ftp rss mashup gedget widget ai phishingFtp rss mashup gedget widget ai phishing
Ftp rss mashup gedget widget ai phishingItt Bandhudhara
 
Ubuntu office server-10.04-x64
Ubuntu office server-10.04-x64Ubuntu office server-10.04-x64
Ubuntu office server-10.04-x64apichat_L
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการRawiwan Kashornchan
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการokbeer
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการvgame_emagv
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการwannuka24
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการwannuka24
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการwannuka24
 
Operating System Chapter 1
Operating System Chapter 1Operating System Chapter 1
Operating System Chapter 1Nuth Otanasap
 

Similar to NETWORK SERVICEOPENSSH + NTP + SQUID (20)

การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆการใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆ
 
Operating System Chapter 4
Operating System Chapter 4Operating System Chapter 4
Operating System Chapter 4
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 05
 
Hotspotubuntu8
Hotspotubuntu8Hotspotubuntu8
Hotspotubuntu8
 
Cent os
Cent osCent os
Cent os
 
Basic linux
Basic linuxBasic linux
Basic linux
 
Basic Linux
Basic LinuxBasic Linux
Basic Linux
 
คู่มือการติดตั้ง Cent os
คู่มือการติดตั้ง  Cent osคู่มือการติดตั้ง  Cent os
คู่มือการติดตั้ง Cent os
 
Ftp rss mashup gedget widget ai phishing
Ftp rss mashup gedget widget ai phishingFtp rss mashup gedget widget ai phishing
Ftp rss mashup gedget widget ai phishing
 
Ubuntu office server-10.04-x64
Ubuntu office server-10.04-x64Ubuntu office server-10.04-x64
Ubuntu office server-10.04-x64
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
Protocol
ProtocolProtocol
Protocol
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
ความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการความรู้เกี่ยวกับระบบปฏิบัติการ
ความรู้เกี่ยวกับระบบปฏิบัติการ
 
งานจารทรงศักดิ์
งานจารทรงศักดิ์งานจารทรงศักดิ์
งานจารทรงศักดิ์
 
Operating System Chapter 1
Operating System Chapter 1Operating System Chapter 1
Operating System Chapter 1
 
Ch15 elastic hosts-svradmin
Ch15 elastic hosts-svradminCh15 elastic hosts-svradmin
Ch15 elastic hosts-svradmin
 

More from Ploynatcha Akkaraputtipat

More from Ploynatcha Akkaraputtipat (6)

nsx overview with use cases 1.0
nsx overview with use cases 1.0nsx overview with use cases 1.0
nsx overview with use cases 1.0
 
Platform administration guide-nos_v3_5
Platform administration guide-nos_v3_5Platform administration guide-nos_v3_5
Platform administration guide-nos_v3_5
 
Setup guide nos-v3_5
Setup guide nos-v3_5Setup guide nos-v3_5
Setup guide nos-v3_5
 
Command reference nos-v3_5
Command reference nos-v3_5Command reference nos-v3_5
Command reference nos-v3_5
 
Sangfor ngfw 修订版
Sangfor ngfw 修订版Sangfor ngfw 修订版
Sangfor ngfw 修订版
 
Book software-ex-series-system-monitoring
Book software-ex-series-system-monitoringBook software-ex-series-system-monitoring
Book software-ex-series-system-monitoring
 

NETWORK SERVICEOPENSSH + NTP + SQUID

  • 1. NETWORK SERVICE OPENSSH + NTP + SQUID 357362 – Special Problems in Electronics Choopan Rattanapoka
  • 2. Network Service  การทางานที่เกี่ยวข้องกับระบบเครือข่ายเป็ นจุดแข็งของ Linux  เนื่ องจาก Linux ได้ถกออกแบบมาเพื่อรองรับการทางานบนระบบเครือข่าย ู โดยเฉพาะ เช่น  การเข้าถึงเครื่องแม่ขายผ่านระบบเครือข่ายด้วยช่องทางที่ปลอดภัย (SSH) ่  NTP  Proxy server, web caching server  Remote file sharing  DNS  DHCP  ..etc..
  • 3. OpenSSH  SSH เป็ น 1 ในวิธีที่ผดแลระบบจะใช้ในการติดต่อกับเครื่องแม่ขายเมื่อไม่ ู้ ู ่ สามารถเข้าถึงเครื่องแม่ขายได้โดยตรง ่  SSH ได้เข้ามาแทนที่การใช้งาน telnet เนื่ องจาก telnet ไม่มีการ เข้ารหัสข้อมูลในการรับ-ส่ง ทาให้เสี่ยงต่อความปลอดภัย  OpenSSH configuration File  แฟ้ มข้อมูลในการปรับแต่งบริการ ssh คือแฟ้ มข้อมูลชื่อ sshd_config /etc/ssh  อยูที่ตาแหน่ ง ่  รูปแบบของการปรับแต่ง คือ directive_name value  หลังจากแก้ไขค่าต่างๆแล้ว ต้องพิมพ์ service sshd restart
  • 4. การเชื่อมต่อกับ OpenSSH Server  คาสังใน Linux เพื่อเชื่อมต่อกับ OpenSSH server คือ ่ ssh user@remote_machine [-p port_number]  ssh เป็ นคาสังที่ใช้เชื่อมต่อกับ OpenSSH server ่  user ชื่อบัญชีที่มีอยูในเครื่องที่ตองการเชื่อมต่อ ่ ้  remote_machine ชื่อเครื่องปลายทาง  ตัวอย่าง  ssh root@localhost  ssh choopan@ect.cit.kmutnb.ac.th  ssh ect.cit.kmutnb.ac.th (บัญชีชื่อเดียวกันทั้ง 2 เครื่อง)
  • 5. การ copy แฟ้ มข้อมูลระหว่างเครื่องแบบปลอดภัย  ในการโอนถ่ายแฟ้ มข้อมูลจากเครื่องหนึ่ งไปยังอีกเครื่องหนึ่ ง สามารถทาผ่าน ช่องทางปลอดภัยได้ โดยใช้คาสัง scp ่ scp [-P port_number] [-r] yourfile user@remotemachine:target_directory  -r ถ้าต้องการ copy directory  ตัวอย่าง  ถ้าต้องการ copy แฟ้ มข้อมูลชื่อ /var/log/message ไปที่บญชี root ใน ั เครื่อง ect.cit.kmutnb.ac.th ที่ตาแหน่ ง /tmp  scp /var/log/message root@ect.cit.kmutnb.ac.th:/tmp  ถ้าต้องการ copy แฟ้ มข้อมูลชื่อ /root/myfile.txt ของบัญชี root จากเครื่อง cit.kmutnb.ac.th มายังเครื่องและบัญชีที่เราใช้งานอยู่  scp root@cit.kmutnb.ac.th:/root/myfile.txt .
  • 6. ทดลอง  สร้างแฟ้ มข้อมูลเป็ นรหัสนักศึกษาขึ้ นมา 1 แฟมข้อมูล (touch) ้  ส่งแฟ้ มข้อมูลนี้ ไปยังบัญชี ect ที่เครื่อง ect.cit.kmutnb.ac.th ที่ ตาแหน่ ง /home/ect  ใช้ ssh เข้าไปดูวาแฟ้ มข้อมูลนั้นถูก copy เข้าไปจริงหรือไม่ ่  จากนั้นให้กลับมายังเครื่องของนักศึกษาแล้ว copy แฟ้ มข้อมูลชื่อ downloadme.txt ที่อยูในตาแหน่ ง /home/ect ในบัญชี ect ที่ ่ เครื่อง ect.cit.kmutnb.ac.th มายังเครื่องนักศึกษา  Copy ทั้ง directory ชื่อ downloadME ที่อยูในตาแหน่ ง ่ /home/ect ในบัญชี ect ที่เครื่อง ect.cit.kmutnb.ac.th มายัง เครื่องนักศึกษา
  • 7. OpenSSH Key  การทางานผ่าน OpenSSH จะปลอดภัยเนื่ องจากมีการเข้ารหัส โดยการใช้ key ซึ่งจะมี key 2 ชนิ ดคือ  private key  ใช้สาหรับเข้าและถอดรหัสของข้อมูลบนเครื่องแม่ข่าย key ตัวนี้ จะเป็ นความลับและไม่มีการ แจกจ่าย  ssh_host_dsa_key และ ssh_host_rsa_key เป็ นแฟ้ มข้อมูล private key ที่ถก ู เข้ารหัสด้วย DSA, และ RSA ตามลาดับ  public key  ใช้สาหรับเครื่องที่ติดต่อกับเครื่องแม่ข่าย จะเข้ารหัสข้อมูลด้วย public key ที่ได้มา และจะถูก ถอดรหัสได้เมื่อใช้ private key ของเครื่องแม่ขายเท่านั้น ่  ssh_host_dsb_pub.key และ ssh_host_rsa_pub.key เป็ น public key  CentOS จะเก็บ key ทั้ง 2 ของเครื่องไว้ใน /etc/ssh
  • 8. OpenSSH Fingerprints  เมื่อมีการเชื่อมต่อครั้งแรกของเครื่องเราสูเครื่องคอมพิวเตอร์แม่ขายผ่าน ่ ่ SSH  ตัว client จะถูกถามถึงการยอมรับหรือปฎิเสธ fingerprint ของเครื่อง แม่ขาย เนื่ องจาก fingerprint นี้ ไม่เคยรูจกมาก่อน ่ ้ั  Fingerprint จริงๆแล้วก็คือ public key ที่ใช้ในการติดต่อ  Fingerprint จะถูกเก็บใน directory .ssh ใน home ในแฟ้ มข้อมูลที่ชื่อ known_hosts
  • 9. แฟ้ มข้อมูล ~/.ssh/known_hosts  เมื่อมีการเชื่อมต่อกันด้วย ssh แล้ว fingerprint ของเครื่องที่ทาการ เชื่อมต่อด้วยจะถูกเก็บไว้ในแฟ้ มข้อมูล known_hosts  จากนั้นครั้งต่อไปเมื่อมีการเชื่อมต่อกันอีกจะไม่มีการถามถึง fingerprint อีกต่อไป  ยกเว้นกรณีเครื่องที่เราเคยติดต่อไป ได้ลงระบบปฎิบติการใหม่ ทาให้ ั fingerprint เปลี่ยนไป ซึ่งเมื่อเราไปเชื่อมต่อจะเกิด warning ขึ้ น  ดังนั้นเราจึงต้องไปลบ fingerprint เก่าออกจากแฟ้ มข้อมูล known_hosts ก่อนถึงจะเชือมต่อกันได้ ่
  • 10. NTP Server  เวลาบนเครื่อง server เป็ นสิ่งที่สาคัญมาก  เวลาที่เก็บlog เพื่อค้นหาผูกระทาผิด หรือ ผูบุกรุกระบบ ้ ้  เวลาที่สงให้ crontab ทางาน ั่  โดยเฉพาะอย่างยิงเมื่อมีเครื่องแม่ขายหลายตัวและต้องการใช้เวลาของเครื่อง ่ ่ แม่ขายทุกตัว มีเวลาที่ตรงกัน หรือใกล้กนมากที่สุด ่ ั  ปั ญหาเรื่องเวลาสามารถแก้ไขได้ดวย Network Time Protocol (NTP) ้  NTP มีกลไลในการ synchronize เวลาในเครื่องเรากับเครื่องแม่ขายเวลา ่  และมีการใช้ time scale คือ Coordinated Universal Time (UTC)
  • 11. โครงสร้าง NTP  โครงสร้างของ NTP จะแบ่งในลักษณะลาดับชั้นเรียกว่า strata  Strata ที่อยูช้นบนสุดคือแหล่งกาเนิ ดของเวลาที่ใช้ในการ synchronize ่ ั
  • 12. 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
  • 13. ติดตั้ง 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  ถ้าต้องการดู log การทางานของ ntpd สามารถใช้คาสัง ่  ntpd –d
  • 14. NTP: Symmetric Active/Passive Mode  ทาได้โดยการเพิ่มข้อความข้างล่างลงในแฟ้ มข้อมูล /etc/ntp.conf บรรทัดล่างสุด peer ip ของเครื่องที่จะแลกเปลี่ยนเวลากัน  โดยทัวไปจะมีการปรับแต่งต่อท้าย Client/Server mode ่  Peer จะแลกเปลี่ยนเวลากันเมื่อไม่สามารถติดต่อกับ NTP server  เมื่อปรับแต่งเสร็จเรียบร้อยแล้วจะต้อง  service ntpd restart
  • 15. NTP : Broadcast Mode  จะต้องไม่ใช้ร่วมกับ Active/Passive mode  เพิ่มบรรทัดให้กบตัวที่ตองการจะ broadcast เวลา ั ้  broadcast ip  disable auth  ตัวอย่าง  broadcast 192.168.1.255  disable auth  สาหรับเครื่องที่ตองการจะรับเวลาจากเครื่องที่ broadcast ให้ใส่ ้  broadcastclient  disable auth
  • 16. 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
  • 17. 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 ]
  • 18. 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
  • 19. 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 ่ ใหม่
  • 20. ACLs และ ACL-operators  Access Control List (ACL) เป็ น directive ที่ใช้สาหรับจากัดการ ทางานของ Squid เช่น การอนุ ญาตหรือห้ามเครื่องบางเครื่องให้ใช้งาน internet ได้  Squid จะปฎิเสธการเข้าถึง internet ของทุก host โดยปริยายหลังจาก การติดตั้ง Squid เป็ นครั้งแรก  ดังนั้ นเป็ นหน้าที่ของผูดแลระบบที่จะต้องเพิ่มเครืองใน network ้ ู ่ ใน ACL ให้ สามารถใช้งาน internet ผ่าน Squid
  • 21. 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 จะใช้ควบคู่กบ ACL-Operation เสมอ ั
  • 22. ACL Operation  Squid จะทางานเกี่ยวกับ web เพราะฉนั้น ACL operation ที่เกี่ยวข้องกับ web คือ http_access operation target  operation ที่ใช้กนคือ allow และ deny ั  target คือชื่อของ ACL  ตัวอย่าง ACL-Operation  http_access allow localhost  ตัวอย่าง ถ้าต้องการให้ทุกเครื่องใน 192.168.1.0/24 และ 127.0.0.1 ใช้งาน internet ผ่าน Squid ได้ ที่เหลือจะปฎิเสธการเข้าใช้งาน internet สามารถทาการแก้ไขใน /etc/squid/squid.conf ได้ดงนี้ ั  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
  • 23. Log Server  ของแถมเตือนความจา การทางานหลายอย่างของ Linux จะมีการบันทึกการ ทางานเรียกว่า log ซึ่งโปรแกรมที่ทางานในส่วนนี้ คือ syslog  ถ้าจาได้ syslog สามารถตั้งให้ส่ง log ข้ามเครือข่ายมาเก็บที่เครื่องอื่นได้ดวย ้ เครื่องหมาย @ชื่อserver ในส่วนของ action  การติดตั้งเครื่อง Log server จาเป็ นจะต้องเปิ ดบริการให้รบข้อมูลจากเครื่อง ั อื่นได้ก่อน  แก้ไขแฟ้ มข้อมูล /etc/sysconfig/syslog โดยการเพิ่ม “-r” ในตัวแปรชื่อ SYSLOGD_OPTION  ใช้คาสัง service syslog restart เพื่อให้ syslog อ่าน config ใหม่ ่  ถ้ามีการติดตั้ง firewall ในเครื่อง server จะต้องอนุ ญาต port ของ syslog  -A RH-Firewall-1-INPUT -i eth1 -s 192.168.1.0/24 –p udp –m udp --dport 514 -j ACCEPT
  • 24. แบบฝึ กหัด  ถ้าเคย save การทา nat ใน iptables ไว้เอาออกให้หมด  ทาให้ client เก็บ log ของ facility : authpriv มาที่เครื่อง server  ติดตั้ง squid ที่เครื่อง server อนุ ญาตให้ client สามารถใช้งาน web ผ่าน squid ได้