openssh + basic network security

37
OPENSSH + BASIC NETWORK SECURITY 357362 – Special Problems in Electronics Asst. Prof. Dr. Choopan Rattanapoka

Upload: aysel

Post on 08-Feb-2016

71 views

Category:

Documents


0 download

DESCRIPTION

OpenSSH + Basic Network Security. 357362 – Special Problems in Electronics Asst. Prof. Dr. Choopan Rattanapoka. Network Service. การทำงานที่เกี่ยวข้องกับระบบเครือข่ายเป็นจุดแข็งของ Linux เนื่องจาก Linux ได้ถูกออกแบบมาเพื่อรองรับการทำงานบนระบบเครือข่ายโดยเฉพาะ เช่น - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OpenSSH  +  Basic  Network  Security

OPENSSH + BASIC NETWORK SECURITY

357362 – Special Problems in Electronics Asst. Prof. Dr. Choopan Rattanapoka

Page 2: OpenSSH  +  Basic  Network  Security

Network Service การทำางานทเกยวของกบระบบเครอขายเปนจดแขงของ Linux เนองจาก Linux ไดถกออกแบบมาเพอรองรบการทำางานบน

ระบบเครอขายโดยเฉพาะ เชน การเขาถงเครองแมขายผานระบบเครอขายดวยชองทางทปลอดภย

(SSH) NTP Proxy server, web caching server Remote file sharing DNS DHCP ..etc..

Page 3: OpenSSH  +  Basic  Network  Security

OpenSSH SSH เปน 1 ในวธทผดแลระบบจะใชในการตดตอกบเครองแมขายเมอไมสามารถเขาถงเครองแมขายไดโดยตรง

SSH ไดเขามาแทนทการใชงาน telnet เนองจากtelnet ไมมการเขารหสขอมลในการรบ- สง ทำาใหเสยงตอความปลอดภย

OpenSSH configuration File แฟมขอมลในการปรบแตงบรการ ssh คอแฟมขอมลชอ

sshd_config อยทตำาแหนง /etc/ssh รปแบบของการปรบแตง คอ directive_name

value หลงจากแกไขคาตางๆแลว ตองพมพ service sshd

restart

Page 4: OpenSSH  +  Basic  Network  Security

การเชอมตอกบ OpenSSH Server คำาสงใน Linux เพอเชอมตอกบ OpenSSH server คอ

ssh user@remote_machine [-p port_number]

ssh เปนคำาสงทใชเชอมตอกบ OpenSSH server user ชอบญชทมอยในเครองทตองการเชอมตอ remote_machine ชอเครองปลายทาง

ตวอยาง ssh root@localhost ssh [email protected] ssh ect.cit.kmutnb.ac.th ( บญชชอเดยวกนทง 2 เครอง)

Page 5: OpenSSH  +  Basic  Network  Security

การ copy แฟมขอมลระหวางเครองแบบปลอดภย ในการโอนถายแฟมขอมลจากเครองหนงไปยงอกเครองหนง

สามารถทำาผานชองทางปลอดภยได โดยใชคำาสง scpscp [-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 [email protected]:/tmp

ถาตองการ copy แฟมขอมลชอ /root/myfile.txt ของบญช root จากเครอง cit.kmutnb.ac.th มายงเครองและบญชทเราใชงานอย

scp [email protected]:/root/myfile.txt .

Page 6: OpenSSH  +  Basic  Network  Security

ทดลอง สรางแฟมขอมลเปนรหสนกศกษาขนมา 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 มายงเครองนกศกษา

Page 7: OpenSSH  +  Basic  Network  Security

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

Page 8: OpenSSH  +  Basic  Network  Security

OpenSSH Fingerprints เมอมการเชอมตอครงแรกของเครองเราสเครองคอมพวเตอร

แมขายผาน SSH ตว client จะถกถามถงการยอมรบหรอปฎเสธ fingerprint

ของเครองแมขาย เนองจาก fingerprint นไมเคยรจกมากอน

Fingerprint จรงๆแลวกคอ public key ทใชในการตดตอ Fingerprint จะถกเกบใน directory .ssh ใน home ในแฟม

ขอมลทชอ known_hosts

Page 9: OpenSSH  +  Basic  Network  Security

แฟมขอมล~/.ssh/known_hosts เมอมการเชอมตอกนดวย ssh แลว fingerprint ของเครองททำาการเชอมตอดวยจะถกเกบไวในแฟม

ขอมล known_hosts จากนนครงตอไปเมอมการเชอมตอกนอกจะไมมการ

ถามถง fingerprint อกตอไป ยกเวนกรณเครองทเราเคยตดตอไป ไดลงระบบปฎบต

การใหม ทำาให fingerprint เปลยนไป ซงเมอเราไป เชอมตอจะเกด warning ขน

ดงนนเราจงตองไปลบ fingerprint เกาออกจากแฟม ขอมล known_hosts กอนถงจะเชอมตอกนได

Page 10: OpenSSH  +  Basic  Network  Security

Introduction Network Security ตามทฤษฏแลวเครอง Server ทตดตง CentOS จะมความปลอดภยตอผบกรกทมาจากระบบเครอขาย ถาเครองนนไมไดตดตงบรการ นอกเหนอจากบรการทมมากบ

CentOS แตในความเปนจรง มหลายบรการทผดแลระบบจะตองมาตดตงเพมเตมเอง

ความปลอดภยทางระบบเครอขาย (Network Security) คอ การอนญาต (authorize) ใหผมสทธเขาถงบรการ และ

ปฎเสธ (deny) การใหบรการสำาหรบผทไมมสทธ ภยอนตรายของเครองคอมพวเตอรทตอกบระบบเครอขาย

(intranet, internet) คอ Cracker

Page 11: OpenSSH  +  Basic  Network  Security

Hacker VS Cracker คำาศพททเหนบอยครงเกยวของกบการเจาะระบบคอ

Hacker Cracker

2 คำานคนปกตจะใชกนผด ทำาใหคดวา Hacker กคอCracker

Hacker บคคลทมความสนใจกบระบบเปนพเศษ ตองการเรยนร

เกยวกบระบบ สวนใหญจะเปนพวก programmer Cracker

บคคลทเจาะเขาสระบบ เพอหากำาไร หรอทำาลายระบบ

Page 12: OpenSSH  +  Basic  Network  Security

Firewall เปนสงทสามารถปรบแตงเพอกำาจดการเขาใชบรการ

ตางๆ ในเครองแมขาย Firewall มหลายประเภท

Hardware-based Software-based

ในCentOS จะม software-based firewall มาใหใชงานเรยกวา netfilter

เครองมอหลกทใชปรบแตงการทำางานของ netfilter เรยกวา iptables

ทำาใหสวนใหญผใชจะเรยก firewall นวา iptables แทน netfilter

Page 13: OpenSSH  +  Basic  Network  Security

Closed Firewall VS Opened Firewall

Mostly closed firewall เปน firewall ทปกตจะปดกนการทำางานของทกบรการ ผดแลระบบจะตองเปดการใหบรการทละรายการ

Mostly opened firewal เปน firewall ทปกตจะไมมการปดกนการทำางานของทกบรการ ผดแลระบบจะตองปดการใหบรการทละรายการ

ปกตการใชงานของ firewall ผดแลระบบนยมใชแบบ Mostly closed เนองดวยบรการทตองการจะเปดใหบรการจะนอยกวาบรการทตองการจะปดกน

CentOS เปน software-based firewall ชนด mostly closed

Page 14: OpenSSH  +  Basic  Network  Security

Firewall GUI System Administrator Firewall

Page 15: OpenSSH  +  Basic  Network  Security

ตวอยาง : แฟมขอมล /etc/sysconfig/iptables

Page 16: OpenSSH  +  Basic  Network  Security

การปรบแตง firewall ผดแลระบบสามารถปรบแตง firewall ในระบบสงขน

สามารถทำาได 3 วธ พมพคำาสงปรบแตงใน shell ซง firewall จะปรบรการเปลยนแปลงโดยทนทแตจะการปรบแตงจะหายไปเมอม

การ reboot ใชบรการของ iptables เพอปรบแตงคา firewall และ

คาทปรบแตงจะถกบนทกลงในแฟมขอมล ทำาใหเมอมการreboot กยงคงคาเดมอย

แกไขแฟมขอมล iptables โดยตรง

Page 17: OpenSSH  +  Basic  Network  Security

Netfilter Netfilter จะทำางานในสวนของ Kernel เพอตรวจจบขอความของ

network ทเขา- ออก เครอง ซงแบงเปนจดตรวจสอบขอมล 5 จด INPUT ขอมลขาเขา OUTPUT ขอมลขาออก FORWARD การสงตอขอมล PREROUTING, POSTROUTING สำาหรบเปลยนขอมลของ packet

การตรวจสอบขอมลจะแบงออกเปน 3 ตารางคอ filter (INPUT, OUTPUT, FORWARD) nat (PREROUTING, POSTROUTING, OUTPUT) mangle (ทกจดตรวจสอบ) ทำา traffic classification, shaping

Page 18: OpenSSH  +  Basic  Network  Security

Chain (กฎ) แตละตารางจะประกอบดวย chain (รายการของกฎตางๆ)

Chain ใชในการอนญาต(allow) หรอทง(drop) ขอมลทง หรอจะสงขอมลตอไปยง chain อนๆ

Chain ในตารางจะถกใชงานตามลำาดบตงแต chain แรกถง chain สดทาย แตถาพบ Chain ทตรงกบ

ลกษณะของขอมลจะหยดการทำางาน chain ตอไป

Page 19: OpenSSH  +  Basic  Network  Security

ดสถานะปจจบนของ Firewall ใชคำาสง iptables –L -n

-L ด chain ( สามารถเขยนชอ chain ทตองการดโดยเฉพาะตอหลงได)

-n ขามการทำางานของ DNS เพอแสดงหมายเลข IP

Page 20: OpenSSH  +  Basic  Network  Security

ดรายละเอยดใหมากขน ใช option –v เพมในคำาสง iptables เพอดรายละเอยดทมากขน

ตวอยาง : iptables –L –n -v

Page 21: OpenSSH  +  Basic  Network  Security

การเขยนกฎใน Netfilter (1) สวนใหญการปรบแตง firewall พนฐานจะเปนการกำาหนด

source IP (-s) และ destination IP (-d)

ตวอยาง -s 192.168.3.20 เปนการกำาหนดขอมลทมาจาก IP เดยว -s 192.168.3.0/24 เปนการกำาหนดขอมลทมาจาก subnet -s ! 10.0.0.0/8 เปนการกำาหนดทก IP ยกเวน subnet

10.0.0.0 แตในบางครงการกำาหนดกฎดวยหมายเลข IP ยงไมพอตอความ

ตองการ เราสามารถจะกำาหนด protocol ทตองการจะกรองไดดวย

Page 22: OpenSSH  +  Basic  Network  Security

การเขยนกฎใน Netfilter (2) Protocol สวนใหญทใชในระบบเครอขายคอ TCP

และ UDP การสรางกฎเพอกรอง protocol นนจะใชoption -p

การกรอง port ดวย Netfiler จะตองใชควบคกบmodule ซงจะใชชอเดยวกบ protocol ดวยoption –m

เมอมการโหลด module แลวเราสามารถกรอง ละเอยดถงหมายเลข port ไดดวย --sport (port

ผสง) --dport (port ผรบ) หมายเลข port ทเปน parameter จะเปนเลขตวเดยว

เชน 22 หรอ เปนชวง portตำา:port สง ได หรอใช ! แทนหมายเลข port ทไมตองการ

Page 23: OpenSSH  +  Basic  Network  Security

การเขยนกฎใน Netfilter (3) ถาตองการจบถง สถานะ การทำางานของ protocol

จะตองโหลด module state ( ดวย option -m state)

จากนนจะสามารถกรอง สถานะไดดวย option --state NEW เมอมการ request ขอการเชอมตอ ESTABLISHED สถาปนาการเชอมตอ RELATED กรณทการเชอมตอใหมเกยวของกบการเชอมตอทตออยแลว

ใชไดเฉพาะกบ TCP เทานน

Page 24: OpenSSH  +  Basic  Network  Security

ตวอยาง กฎ ของ netfilter ตวอยาง

-m state --state NEW –m tcp –p tcp --dport 80 -m state --state NEW –m tcp –p tcp --dport 5900:5999 -m udp –p udp --dport 514 -m udp –p udp --sport 123 --dport 123 -m tcp –p tcp ! 22

ความรพนฐาน TCP/Port 80 http TCP/Port 5900:5999 VNC UDP/Port 514 syslog UDP/Port 123 ntp TCP/Port 22 ssh

Page 25: OpenSSH  +  Basic  Network  Security

ขนตอนสดทายของการกำาหนดกฎ ขนตอนสดทายของการกำาหนดกฎกคอการเลอก

target (เปาหมาย) Target กคอจะให netfilter ทำาอยางไรกบ packet

ทตรงกบกฎทสรางไว ( กำาหนด target ดวย option –j) ACCEPT ยอมรบ packet น DROP ทง packet น ผสงจะไมไดรบการตอบรบใดๆ

แตจะ timeout หลด REJECT ปฎเสธการตอบรบ แตผสงจะไดรบคำาตอบทนท

การตงกฎจะม default target ซงเอาไวดกpacket ทไมตรงกบกฎใดๆเลยวาจะใหทำาอยางไร ดวย(option –P)

Page 26: OpenSSH  +  Basic  Network  Security

ทำาให iptables รบรถงกฎ ในการใสกฎจำาเปนตองกำาหนด Chain ทจะใสกฎ ยำาอกรอบ การอานกฎใน Chain จะอานจากกฎบนมาลาง เมอ

packet ตรงกบกฎไหน การทำางานจะหยดลงแลวจะทำาตาม target ของกฎนน

คำาสง iptables –A chain กฎ จะเปนการเพมกฎทขอสดทายของ chain แตสวนใหญจะใช iptables –I chain หมายเลขกฎ กฎ เพอใสกฎลง

ตำาแหนงหมายเลขกฎ (ถาไมระบหมายเลขกฎจะแทรกทขอแรก) iptables –R chain หมายเลขกฎ กฎ เปนการทบกฎทหมายเลขกฎนนๆ

iptables –D chain หมายเลขกฎ เปนการลบกฎทหมายเลขกฎนน

Page 27: OpenSSH  +  Basic  Network  Security

วธท 1 : ทดลอง iptables –I INPUT –s 192.168.3.20 –j

ACCEPT เปนการเพมกฎวาอนญาตให 192.168.3.20 สามารถใชบรการไดทกอยางในเครองแมขายน

iptables –L INPUT –n ตรวจสอบกฎของ firewall

iptables –D INPUT 1 เอากฎทเพมเขาไปออก

สรางกฎเพอกน (REJECT) การเชอมตอ ssh ของ IP ของ Client

Page 28: OpenSSH  +  Basic  Network  Security

แบบฝกหด จงเขยนคำาสงเพอ ACCEPT การเชอมตอมายง web server

iptables –I INPUT –m state --state NEW –m tcp –p tcp --dport 80 –j ACCEPT

จงเขยนคำาสงเพอ ACCEPT การเชอมตอผาน ssh (tcp/22) สำาหรบเครองทม IP : 192.168.5.10

จงเขยนคำาสงเพอ ACCEPT การทำางานของ DNS (udp/53) สำาหรบเครองทอยใน subnet

192.168.100.0/255.255.255.0 จงเขยนคำาสงเพอ DROP การทำางานทกอยางทมาจาก

IP:10.10.5.5 จงเขยนคำาสงเพอ REJECT การเขาใชงาน ssh ของเครองทอยใน

subnet 202.44.0.0/255.255.0.0

Page 29: OpenSSH  +  Basic  Network  Security

วธท 2: การบนทกกฎของ iptables เมอตงกฎตางๆ เรยบรอยแลว เพอจะมนใจวากฎเหลานนจะยงคงอยเมอมการ

reboot เครอง ใชใหคำาสง service iptables save

ปกตแลวบรการของ iptables จะถกเรยกขนมาตงแตตอน boot เครอง แตเราสามารถปรบแตการทำางานนไดทแฟมขอมล

/etc/sysconfig/iptables-config ในแฟมขอมล /etc/sysconfig/iptables-config จะมตวแปรทสำาคญคอ

IPTABLES_SAVE_ON_STOP “ถาตงเปน yes” เมอมการใชคำาสง service iptables stop, หรอ

shutdown,reboot เครอง กฎจะถกบนทกลงใน /etc/sysconfig/iptables ทนท IPTABLES_SAVE_ON_RESTART

“ถาตงเปน yes” เมอมการใชคำาสง service iptables restart กฎจะถกบนทกลงใน/etc/sysconfig/iptables ทนท

Page 30: OpenSSH  +  Basic  Network  Security

วธท 3 : การปรบแตงแฟมขอมล iptables โดยตรง

การใช iptables วธท 1 และ วธท 2 สงทหายไปกคอ comment เราไมสามารถแทรก comment เอาไวไดทำาใหเมอมกฎเยอะๆจะสบสน

เมอใชวธท 3 นควรตง IPTABLES_SAVE_ON_STOP และIPTABLES_SAVE_ON_RESTART “เปน no”

การแกไขแฟมขอมลโดยตรงคอเขาไปแกไขทแฟมขอมล /etc/sysconfig/iptables

การแทรก comment ในแฟมขอมล iptables ทำาไดโดยการใส‘#’ ไวทบรรทดทตองการจะ comment

เมอแกไขแฟมขอมลเรยบรอยแลวตองใชคำาสง service iptables start

Page 31: OpenSSH  +  Basic  Network  Security

แฟมขอมล/etc/sysconfig/iptables

Page 32: OpenSSH  +  Basic  Network  Security

ตวอยางการเขยน comment

Page 33: OpenSSH  +  Basic  Network  Security

การใชงาน CentOS เปน Router เครองแมขายทม network interface มากกวา 1 บางครงจะ

เรยกวา multihomed Network interface ปกตกคอ network card เชน

Ethernet card ใน Linux จะมองเปน devices ชอ eth0, eth1,...

การตงคาสำาหรบ multihomed มหลายแบบ วธทงายทสดคอ การกำาหนด IP ใหกบ interface แตละตวเปน IP ทอยคนละวง

กน การให CentOS เปน router ทำาได 2 วธ

เพมความสามารถในการ forward ขอมลจาก subnet หนงไปยงอกsubnet หนงได

ทำา IP masquerading (NAT) ให private IP ออกไปวงนอกดวย หมายเลข IP เดยว

เพอใหสามารถ forward packet ไดจะตองแกทแฟมขอมล/etc/sysctl.conf แก net.ipv4.ip_forward = 1

ใชคำาสง sysctl –p เพอใหอาน config ใหม

Page 34: OpenSSH  +  Basic  Network  Security

iptables บน multihomed ถามหลาย interface คำาสง iptables สามารถระบ

interface สำาหรบกฎไดดวย option -i ชอinterface สำาหรบ interface ทรบขอมลเขา -o ชอinterface สำาหรบ interface ทเปน output

iptables –I FORWARD –i eth0 –s 202.44.36.0/24 –o eth1 –d 192.168.10.0/24 –j ACCEPT

iptables –I FORWARD –i eth1 –s 192.168.10.0/24 –o eth0 –d 202.44.36.0/24 –j ACCEPT

Page 35: OpenSSH  +  Basic  Network  Security

IP masquerading การเพมกฎ 2 ขอใหกบ iptables เพอทำาการ forward ขอมลจะ

ทำางานไดเฉพาะ ถา IP ของทง 2 วงทเชอมตอเปน IP จรงเทานน ถาเรามเครองทเชอมตอกนดวย private IP แลวตองการจะใช

งาน Internet จำาเปนตองมการทำา IP masquerading ดวย IP masquerading สวนใหญจะถกเรยกวา NAT

แตตางกบ NAT ตรงท ทงเครอขายภายในใช IP เพยง IP เดยว ตางจากการ forward packet ธรรมดาคอมการเปลยนขอมลใน

packet การจะใชงาน IP masquerading จะตองใช target คอ

MASQUERADE ซงสามารถจะใชไดกบ POSTROUTING chain, ในตาราง nat เทานน

Page 36: OpenSSH  +  Basic  Network  Security

การตงคา IP masquerading การจะใช iptables ใสกฎในตาราง nat จะใช option –t ชอ

ตาราง (-t nat) เมอม target เปน masquerade จะตองม output

interface กำาหนดดวยเสมอ IP ทอยบน output interface จะเปน IP ททำา masquerade ตวอยาง

iptables -t nat -A POSTROUTING –o eth0 –j MASQUERADE

Page 37: OpenSSH  +  Basic  Network  Security

แบบฝกหด จาก VM ใน VirtualBox ทเคยใหสราง

ปรบแตง iptables ใหเครอง Client สามารถใชงานinternet ใหได

ตรวจสอบดวย การเขา web