openssh + basic network security

Post on 08-Feb-2016

73 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

OPENSSH + BASIC NETWORK SECURITY

357362 – Special Problems in Electronics Asst. Prof. Dr. 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 แฟมขอมลระหวางเครองแบบปลอดภย ในการโอนถายแฟมขอมลจากเครองหนงไปยงอกเครองหนง

สามารถทำาผานชองทางปลอดภยได โดยใชคำาสง 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 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 กอนถงจะเชอมตอกนได

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

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

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

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

(intranet, internet) คอ Cracker

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

Hacker Cracker

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

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

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

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

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

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

Hardware-based Software-based

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

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

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

Closed Firewall VS Opened Firewall

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

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

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

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

Firewall GUI System Administrator Firewall

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การเขยนกฎใน 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 ทตองการจะกรองไดดวย

การเขยนกฎใน 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 ทไมตองการ

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

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

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

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

ตวอยาง กฎ ของ 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

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

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

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

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

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

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

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

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

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

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

วธท 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

แบบฝกหด จงเขยนคำาสงเพอ 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

วธท 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 ทนท

วธท 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

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

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

การใชงาน 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 ใหม

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

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 เทานน

การตงคา 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

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

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

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

top related