Upload
chatchai-jantaraprim
View
164
Download
0
Embed Size (px)
Citation preview
Linux Server Admin
ElastichostsServer Admin 3
Chatchai J
2013-02-04
กอนอน● ผมเคยทำำใหคณดเปนตวอยำง● กำรใชงำน MySQL กำำหนด password สำำหรบ
MySQL admin account
login: root
password: root
● นนเปนสงทผด
กอนอน (ตอ)
● เปนตวอยำงทไมด เปนสงทไมสมควรทำำ● เปนควำมผดของผมเอง● ขอโทษดวยครบ
Password
● นบแตนเปนตนไป● ขอใหใช secure password
● สำำหรบ ทกกรณ
ปญหำของ secure password
● ถำใชควำมจำำ สำำหรบจำำ password โดยตรงSecure password จะจำำยำกทำำใหเลอก password ทจำำงำยทำำใหถกโจมตไดงำย
● เพรำะ ฉะนน ใหจดลงใน เศษกระดำษ● เกบไวในกระเปำสตำงค (หลกเลยงกำรเกบเปนไฟล/email)
วธกำรสรำงและเกบ password
● เครองมอ pwgen, sharutils
$ sudo aptget install pwgen sharutils
● สรำง password ยำว 12 ตวอกษร โดยใช pwgen
$ pwgen s 12 1
● จะได string ขนำด 12 ตวอกษร ซงสำมำรถเอำไปใชเปน password ไดทนท
password (cont)
● ซง ไมแนะนำำ ใหใช อยำงนน● เรำตองกำร password จำำนวนหลำยชด
– root's password
– admin's (e.g. – cj) password
– mysql admin's password
● ทงหมดควรจะเปน password คนละตวกน● ถำเกด password ตวใดตวหนง หลดรอดไป (ถำไมใช root
password) ทเหลอกจะยงปลอดภย
password (cont)
● แตถำจะสรำง password ใหมทงหมด สำำหรบ แตละ account กจะตองกำร กำรจดบนทก จำำนวนมำก (password อะไร สำำหรบ อะไร)
● หรอไม หลำยคน กจะเลอกใช password
เดยวกน สำำหรบแกปญหำ ซงไมด
password (cont)
● วธกำร ใช string ทไดมำ เปนชด string ตงตน● แลวสรำง password ทเหลอ จำก string ชดนน● โดยใชวธกำรรวมกน กำรจดบนทก● แนะนำำใหใช string เรมตนขนำด 16 อกษร● แตถำยำวกวำนนไดกยงด$ pwgen s 16 1
password (cont)
$ pwgen 16 1
sie3ooF5ahWei0ee
● วธกำรจด ใน กระดำษs i e 3o o F 5a h W ei 0 e e
password (cont)
● สำำหรบกำรปองกนโจมตแบบ brute force attack
ปจจบน ควำมยำวไมควรตำำกวำ 10
● สมมตเลอก password ยำว 12 ตวอกษร สำำหรบ ทกกรณ
● เลอก pattern ของ password สำำหรบ แตละ account
password (cont)
password (cont)
● จะไดroot's password = “sie35eee0iao”
admin's password = “sie35FooahWe”
mysql's password = “sie3FhiOeewo”
● Password จะมควำม secure สงขน ถำ– ไมไดเรมตนทบรรทดแรก– ไมไดเรยงจำกซำยไปขวำ
และทสำำคญ● อยำทำำกระดำษทจดเอำไวหำย● password ทสรำงขนดวย pwgen เปนแบบ pseudo-random
● ซงในกรณน เทยบเทำกบ true random
● ไมสำมำรถกคนมำไดอก● ถำกระดำษทจดไวหำย และ ลม password
● กจะไมมทำงกคนมำได
ถำตองกำรกคน● เปลยนวธกำรสรำง string เรมตนจำกกำรใช pwgen
● เปนวธกำรอน ซง – สำมำรถทำำซำำได และ – ไดผลเหมอนเดม
● แตผลลพธจะตองใกลเคยงกบกำร● random เพอสรำง string
message digest
● เครองมอบน linux สำำหรบ digest message
– md5sum
– shasum -a {1,224,256,384,512}
● สรำง sum string จำก message ใดๆ● ถำ message เปลยนไปผล sum จะเปลยนไป
ทดลอง● กำรทดลอง ทงหมด ใหทำำบน 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 (เปนตน)
message digest
$ echo "a" | md5sum60b725f10c9c85c70d97880dfe8191b3 $ echo "a" | sha1sum3f786850e387550fdab836ed7e6dc881de23001b $ echo "a" | shasum a 25687428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7 $ echo "a" | shasum a 512162b0b32f02482d5aca0a7c93dd03ceac3acd7e410a5f18f3fb990fc958ae0df6f32233b91831eaf99ca581a8c4ddf9c8ba315ac482db6d4ea01cc7884a635be
$ echo "hello" | md5sumb1946ac92492d2347c6235b4d2611184 $ echo "Hello" | md5sum09f7e02f1290be211da707a266f153b3
เพม security
● ตวอกษรทไดจำก XXXsum จะม 'a'-'z','0'-'9'
● ถำมควำมยำวมำกพอ กจะเพม security ได● แตเรำสำมำรถสรำง output string ทมตวอกษร หลำกหลำยมำกขนได โดยกำรใช เครองมออนเพม– base64– uuencode
เพม 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.#)D6%C83!AV,Y,V1D,#C96%C,V%C9#=E#$P835FM,3AF,V9B.3DP9F,Y3AA93!D9C9F,S(R,SB.3$X,S%E868Y.6A3@Q83ACJ&1D9CEC.&)A,S$U86,T.#)D8C9D&5A,#%C8S<X.#1AC,U8F4@("T*`end
วธกำรเอำไปใช● เกบ “string” เรมตน (“a”, “hello”) เปนควำมลบ สงสด● เกบ วธกำร digest และ encode ทเลอกใชเปนควำมลบ● เลอกตำำแหนงเรมตนของ output string ทเอำมำใชเปนควำมลบ (ไมจำำเปนจะตองเรมท 1)
● แตทงหมดนน จะตองไมลม● ถำลม วธกำรทวำมำทงหมด กไมมประโยชน ใหกลบไปใช
pwgen -s 16 1 แทนกจะไมเสยเวลำ
วธกำรเอำไปใช (ตอ)
● ถำจำำเปน● แยกจด / แยกเกบ● string เรมตน, วธกำร sum, วธกำร encode
จดใสกระดำษ เกบรวมกบ ใบสตบตร, เอกสำร สำำคญอนๆ ท “หำยไมได” แต นำนๆใชท
วธกำรเอำไปใช (ตอ)
● output string สำำหรบ password
จดใสกระดำษ เกบในกระเปำสตำงค เกบบตรประจำำตวประชำชน หรอ เอกสำรสำำคญ ชนดอนๆ ทใชงำนบอย
● pattern ของกำรเลอก password จำก output string ทเกบในกระเปำสตำงค
จำำ – ใชงำนบอย ไมจำำเปนตองเปลยนบอย จะจำำไดเอง
หมำยเหต:● ทกคำำสงทคณพมพ บน linux และใชงำน bash
เปน shell จะเกบอยใน .bash_history
● เมอ logout
● กำำหนดโดย HISTFILE
$ echo $HISTFILE
หมำยเหต: (cont)
● วธกำรไมใหบนทก$ HISTFILE=/dev/null$ exit
● เพอให string เรมตน, วธกำร digest, วธกำร encode เปนควำมลบ
กำรเปลยน password
● password root และ admin account ใช$ sudo passwd root
$ sudo passwd admin
กำรเปลยน password (cont)
● สำำหรบ mysql admin's password
term1:~$ sudo service mysql stopterm1:~$ sudo mysqld –skipgranttables
term2:~$ mysqlterm2 mysql> update mysql.user set password=PASSWORD('*************') where user='root';term2 mysql> exit;
term1:~$ CTRL+'\'
กำรเปลยน password (cont)
● คำำสงทใชบน mysql client จะเกบไวใน .mysql_history
$ cat .mysql_history$ rm f .mysql_history