SlideShare a Scribd company logo
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

PDF
Cent OS-book
PAGES
คำสั่ง ลินุกซ์ (Linux)
PDF
PPTX
ระบบ UNIX
PPTX
การใช้เครื่องมือต่างๆ1
PPTX
การใช้เครื่องมือต่างๆ
PPTX
การใช้เครื่องมือต่างๆ1
Cent OS-book
คำสั่ง ลินุกซ์ (Linux)
ระบบ UNIX
การใช้เครื่องมือต่างๆ1
การใช้เครื่องมือต่างๆ
การใช้เครื่องมือต่างๆ1

What's hot (7)

PPTX
การใช้เครื่องมือต่างๆ12
ODP
Ch05 name-services
PDF
Set up rubytech fgs 2924 r กับ tacacs
ODP
Ch02 administrators-tasks
PPTX
ยูนิต ไลบรารี 01
PDF
การใช้เครื่องมือต่างๆ12
Ch05 name-services
Set up rubytech fgs 2924 r กับ tacacs
Ch02 administrators-tasks
ยูนิต ไลบรารี 01
Ad

Similar to NETWORK SERVICEOPENSSH + NTP + SQUID (20)

PDF
Ch07 bind9-part2
PDF
คู่มือการติดตั้ง Cent os
PPTX
การใช้เครื่องมือต่างๆ
PDF
Ch15 elastic hosts-svradmin
PDF
07เครือข่ายอินเตอร์เน็ต
PDF
Home network
PDF
Manual mikrotik
PDF
Proxy fc4 web
PDF
การติดต่อสื่อสารทางอินเทอร์เน็ต
PDF
Internet 54
PDF
PDF
คู่มือ+Dl.
ODP
Ch04 linux-hosting-vps
PDF
Clear o smanual
PDF
เอกสารนวัตกรรมบทที่ 1
PDF
Network
PPT
การเชื่อมต่ออินเทอร์เน็ต
Ch07 bind9-part2
คู่มือการติดตั้ง Cent os
การใช้เครื่องมือต่างๆ
Ch15 elastic hosts-svradmin
07เครือข่ายอินเตอร์เน็ต
Home network
Manual mikrotik
Proxy fc4 web
การติดต่อสื่อสารทางอินเทอร์เน็ต
Internet 54
คู่มือ+Dl.
Ch04 linux-hosting-vps
Clear o smanual
เอกสารนวัตกรรมบทที่ 1
Network
การเชื่อมต่ออินเทอร์เน็ต
Ad

More from Ploynatcha Akkaraputtipat (6)

PPTX
nsx overview with use cases 1.0
PDF
Platform administration guide-nos_v3_5
PDF
Setup guide nos-v3_5
PDF
Command reference nos-v3_5
PPTX
Sangfor ngfw 修订版
PDF
Book software-ex-series-system-monitoring
nsx overview with use cases 1.0
Platform administration guide-nos_v3_5
Setup guide nos-v3_5
Command reference nos-v3_5
Sangfor ngfw 修订版
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 ได้