28
Linux Server Admin Elastichosts Server Admin 3 Chatchai J 2013-02-04

Ch17 secure-password

Embed Size (px)

Citation preview

Page 1: Ch17 secure-password

Linux Server Admin

ElastichostsServer Admin 3

Chatchai J

2013-02-04

Page 2: Ch17 secure-password

กอนอน● ผมเคยทำำใหคณดเปนตวอยำง● กำรใชงำน MySQL กำำหนด password สำำหรบ

MySQL admin account

login: root

password: root

● นนเปนสงทผด

Page 3: Ch17 secure-password

กอนอน (ตอ)

● เปนตวอยำงทไมด เปนสงทไมสมควรทำำ● เปนควำมผดของผมเอง● ขอโทษดวยครบ

Page 4: Ch17 secure-password

Password

● นบแตนเปนตนไป● ขอใหใช secure password

● สำำหรบ ทกกรณ

Page 5: Ch17 secure-password

ปญหำของ secure password

● ถำใชควำมจำำ สำำหรบจำำ password โดยตรงSecure password จะจำำยำกทำำใหเลอก password ทจำำงำยทำำใหถกโจมตไดงำย

● เพรำะ ฉะนน ใหจดลงใน เศษกระดำษ● เกบไวในกระเปำสตำงค (หลกเลยงกำรเกบเปนไฟล/email)

Page 6: Ch17 secure-password

วธกำรสรำงและเกบ password

● เครองมอ pwgen, sharutils

$ sudo apt­get install pwgen sharutils

● สรำง password ยำว 12 ตวอกษร โดยใช pwgen

$ pwgen ­s 12 1

● จะได string ขนำด 12 ตวอกษร ซงสำมำรถเอำไปใชเปน password ไดทนท

Page 7: Ch17 secure-password

password (cont)

● ซง ไมแนะนำำ ใหใช อยำงนน● เรำตองกำร password จำำนวนหลำยชด

– root's password

– admin's (e.g. – cj) password

– mysql admin's password

● ทงหมดควรจะเปน password คนละตวกน● ถำเกด password ตวใดตวหนง หลดรอดไป (ถำไมใช root

password) ทเหลอกจะยงปลอดภย

Page 8: Ch17 secure-password

password (cont)

● แตถำจะสรำง password ใหมทงหมด สำำหรบ แตละ account กจะตองกำร กำรจดบนทก จำำนวนมำก (password อะไร สำำหรบ อะไร)

● หรอไม หลำยคน กจะเลอกใช password

เดยวกน สำำหรบแกปญหำ ซงไมด

Page 9: Ch17 secure-password

password (cont)

● วธกำร ใช string ทไดมำ เปนชด string ตงตน● แลวสรำง password ทเหลอ จำก string ชดนน● โดยใชวธกำรรวมกน กำรจดบนทก● แนะนำำใหใช string เรมตนขนำด 16 อกษร● แตถำยำวกวำนนไดกยงด$ pwgen ­s 16 1

Page 10: Ch17 secure-password

password (cont)

$ pwgen 16 1

sie3ooF5ahWei0ee 

● วธกำรจด ใน กระดำษs i e 3o o F 5a h W ei 0 e e

Page 11: Ch17 secure-password

password (cont)

● สำำหรบกำรปองกนโจมตแบบ brute force attack

ปจจบน ควำมยำวไมควรตำำกวำ 10

● สมมตเลอก password ยำว 12 ตวอกษร สำำหรบ ทกกรณ

● เลอก pattern ของ password สำำหรบ แตละ account

Page 12: Ch17 secure-password

password (cont)

Page 13: Ch17 secure-password

password (cont)

● จะไดroot's password = “sie35eee0iao”

admin's password = “sie35FooahWe”

mysql's password = “sie3FhiOeewo”

● Password จะมควำม secure สงขน ถำ– ไมไดเรมตนทบรรทดแรก– ไมไดเรยงจำกซำยไปขวำ

Page 14: Ch17 secure-password

และทสำำคญ● อยำทำำกระดำษทจดเอำไวหำย● password ทสรำงขนดวย pwgen เปนแบบ pseudo-random

● ซงในกรณน เทยบเทำกบ true random

● ไมสำมำรถกคนมำไดอก● ถำกระดำษทจดไวหำย และ ลม password

● กจะไมมทำงกคนมำได

Page 15: Ch17 secure-password

ถำตองกำรกคน● เปลยนวธกำรสรำง string เรมตนจำกกำรใช pwgen

● เปนวธกำรอน ซง – สำมำรถทำำซำำได และ – ไดผลเหมอนเดม

● แตผลลพธจะตองใกลเคยงกบกำร● random เพอสรำง string

Page 16: Ch17 secure-password

message digest

● เครองมอบน linux สำำหรบ digest message

– md5sum

– shasum -a {1,224,256,384,512}

● สรำง sum string จำก message ใดๆ● ถำ message เปลยนไปผล sum จะเปลยนไป

Page 17: Ch17 secure-password

ทดลอง● กำรทดลอง ทงหมด ใหทำำบน VM บน local (notebook)

$ echo “a” | md5sum$ echo “hello” | md5sum$ echo “Hello” | md5sum$ echo “How are you doing?” | md5sum$ cat /etc/passwd | md5sum

● เปลยนจำก md5sum เปน shasum ­a 1● หรอ shasum ­a 224 (เปนตน)

Page 18: Ch17 secure-password

message digest

$ echo "a" | md5sum60b725f10c9c85c70d97880dfe8191b3  ­$ echo "a" | sha1sum3f786850e387550fdab836ed7e6dc881de23001b  ­$ echo "a" | shasum ­a 25687428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7  ­$ echo "a" | shasum ­a 512162b0b32f02482d5aca0a7c93dd03ceac3acd7e410a5f18f3fb990fc958ae0df6f32233b91831eaf99ca581a8c4ddf9c8ba315ac482db6d4ea01cc7884a635be  ­

$ echo "hello" | md5sumb1946ac92492d2347c6235b4d2611184  ­$ echo "Hello" | md5sum09f7e02f1290be211da707a266f153b3  ­

Page 19: Ch17 secure-password

เพม security

● ตวอกษรทไดจำก XXXsum จะม 'a'-'z','0'-'9'

● ถำมควำมยำวมำกพอ กจะเพม security ได● แตเรำสำมำรถสรำง output string ทมตวอกษร หลำกหลำยมำกขนได โดยกำรใช เครองมออนเพม– base64– uuencode

Page 20: Ch17 secure-password

เพม security (ตอ)

$ echo “a” | shasum ­a 256 | base64$ echo “a” | shasum ­a 512 | uuencode x

$ echo "a" | shasum ­a 256 | base64ODc0MjhmYzUyMjgwM2QzMTA2NWU3YmNlM2NmMDNmZTQ3NTA5NjYzMWU1ZTA3YmJkN2EwZmRlNjBjNGNmMjVjNyAgLQo=$ echo "a" | shasum ­a 512 | uuencode xbegin 644 xM,38R8C!B,S)F,#(T.#)D­6%C83!A­V,Y,V1D,#­C96%C,V%C9#=E­#$P835FM,3AF,V9B.3DP9F,Y­3AA93!D9C9F,S(R,S­B.3$X,S%E868Y.6­A­3@Q83ACJ­&1D9CEC.&)A,S$U86,T.#)D8C9D­&5A,#%C8S<X.#1A­C,U8F4@("T*`end

Page 21: Ch17 secure-password

วธกำรเอำไปใช● เกบ “string” เรมตน (“a”, “hello”) เปนควำมลบ สงสด● เกบ วธกำร digest และ encode ทเลอกใชเปนควำมลบ● เลอกตำำแหนงเรมตนของ output string ทเอำมำใชเปนควำมลบ (ไมจำำเปนจะตองเรมท 1)

● แตทงหมดนน จะตองไมลม● ถำลม วธกำรทวำมำทงหมด กไมมประโยชน ใหกลบไปใช

pwgen -s 16 1 แทนกจะไมเสยเวลำ

Page 22: Ch17 secure-password

วธกำรเอำไปใช (ตอ)

● ถำจำำเปน● แยกจด / แยกเกบ● string เรมตน, วธกำร sum, วธกำร encode

จดใสกระดำษ เกบรวมกบ ใบสตบตร, เอกสำร สำำคญอนๆ ท “หำยไมได” แต นำนๆใชท

Page 23: Ch17 secure-password

วธกำรเอำไปใช (ตอ)

● output string สำำหรบ password

จดใสกระดำษ เกบในกระเปำสตำงค เกบบตรประจำำตวประชำชน หรอ เอกสำรสำำคญ ชนดอนๆ ทใชงำนบอย

● pattern ของกำรเลอก password จำก output string ทเกบในกระเปำสตำงค

จำำ – ใชงำนบอย ไมจำำเปนตองเปลยนบอย จะจำำไดเอง

Page 24: Ch17 secure-password

หมำยเหต:● ทกคำำสงทคณพมพ บน linux และใชงำน bash

เปน shell จะเกบอยใน .bash_history

● เมอ logout

● กำำหนดโดย HISTFILE

$ echo $HISTFILE

Page 25: Ch17 secure-password

หมำยเหต: (cont)

● วธกำรไมใหบนทก$ HISTFILE=/dev/null$ exit

● เพอให string เรมตน, วธกำร digest, วธกำร encode เปนควำมลบ

Page 26: Ch17 secure-password

กำรเปลยน password

● password root และ admin account ใช$ sudo passwd root

$ sudo passwd admin

Page 27: Ch17 secure-password

กำรเปลยน password (cont)

● สำำหรบ mysql admin's password

term1:~$ sudo service mysql stopterm1:~$ sudo mysqld –skip­grant­tables

term2:~$ mysqlterm2 mysql> update mysql.user       set password=PASSWORD('*************')      where user='root';term2 mysql> exit;

term1:~$ CTRL+'\'

Page 28: Ch17 secure-password

กำรเปลยน password (cont)

● คำำสงทใชบน mysql client จะเกบไวใน .mysql_history

$ cat .mysql_history$ rm ­f .mysql_history