ไม่คุณไม่มีเทคนิค แต่ไม่ว่าคุณจะสามารถเข้าสู่โหมดเปิดใช้งานโดยไม่มีใครขึ้นอยู่กับว่าคุณเข้าสู่ระบบหรือไม่
นี่คือเวอร์ชั่นความพึงพอใจทันที:
คุณสามารถป้อนผ่านคอนโซลโดยไม่ต้องเปิดใช้งานรหัสผ่าน แต่คุณจะติดอยู่ในโหมดผู้ใช้หากคุณใช้รหัสผ่านการเข้าสู่ระบบ vty อย่างง่ายโดยไม่ต้องเปิดใช้งานการตั้งค่ารหัสผ่าน
นี่เป็นเวอร์ชั่นของผู้ตอบ StackExchange ที่ยืดยาว:
การรับรองความถูกต้องของ Cisco เป็นสิ่งที่ยุ่งยากสำหรับผู้เริ่มต้น มีสัมภาระมากมายที่นั่น ให้ฉันลองทำลายสิ่งนี้ลงในโลกแห่งความเป็นจริง
ทุกคนที่มีธุรกิจใด ๆ ที่ลงชื่อเข้าใช้เราเตอร์หรือเปลี่ยนไปใช้โหมดสิทธิพิเศษ (เปิดใช้งาน) โดยตรง โหมดผู้ใช้นั้นเป็นล็อบบี้ด้านหน้าและมีจุดประสงค์เล็ก ๆ น้อย ๆ มากกว่าที่จะกันไม่ให้ร่างจดหมายออกมา ในองค์กรขนาดใหญ่ที่คุณมีเครือข่ายมากมายและมีแรงงานจำนวนมากพอสมควรคุณอาจมีคนที่สามารถเคาะประตูหน้าและทำให้แน่ใจว่ามีบางคนยังอยู่ที่นั่น (นั่นคือการเข้าสู่ระบบและเรียกใช้คำสั่งที่เล็กน้อยที่สุดเพียงเพื่อดูว่าอุปกรณ์ดังกล่าวในความเป็นจริงการตอบสนองและไม่ได้อยู่ในไฟ.) แต่ในทุกสภาพแวดล้อมที่ผมเคยทำงานในกองทุนชั้นที่ 1 มีอย่างน้อยบางส่วนความสามารถในการ ทำลายสิ่งต่าง ๆ
ดังนั้นโดยเฉพาะอย่างยิ่งในสถานการณ์เช่นของคุณการรู้รหัสผ่านการเปิดใช้งานนั้นเป็นสิ่งจำเป็น คุณสามารถพูดได้ว่านี่คือการรักษาความปลอดภัยระดับที่สอง - รหัสผ่านหนึ่งอันเพื่อเข้าสู่อุปกรณ์อีกอันเพื่อเลื่อนระดับเป็นสิทธิ์ระดับผู้ดูแลระบบ - แต่ดูเหมือนว่าฉันจะโง่เล็กน้อย
ตามที่ระบุไว้แล้วคุณสามารถ (และหลาย ๆ คนทำ) ใช้รหัสผ่านเดียวกันซึ่งไม่ได้ช่วยอะไรมากนักถ้ามีคนเข้าถึง telnet / ssh โดยไม่ได้รับอนุญาต การมีรหัสผ่านร่วมกันทั่วโลกโดยทุกคนนั้นคงเป็นปัญหามากกว่าการมีโทเค็นเดียวที่ต้องป้อน ในที่สุดระบบอื่น ๆ (บริการอุปกรณ์ ฯลฯ ) ส่วนใหญ่ไม่ต้องการการรับรองความถูกต้องเลเยอร์ที่สองและโดยทั่วไปจะไม่ถือว่าไม่ปลอดภัยเนื่องจากสิ่งนี้
ตกลงนั่นเป็นความเห็นของฉันในหัวข้อ คุณจะต้องตัดสินใจด้วยตัวเองว่าเหมาะสมกับท่าทางความปลอดภัยของคุณหรือไม่ มาลงมือทำธุรกิจกันเถอะ
Cisco (อย่างชาญฉลาด) กำหนดให้คุณตั้งรหัสผ่านการเข้าถึงระยะไกลตามค่าเริ่มต้น เมื่อคุณเข้าสู่โหมดกำหนดค่าสาย ...
router> enable
router# configure terminal
router(config)# line vty 0 15
router(config-line)#
... คุณสามารถบอกให้เราเตอร์ข้ามการรับรองความถูกต้องได้:
router(config-line)# no login
... และถูกแฮ็กโดยทันที แต่ผู้โจมตีของคุณจะอยู่ในโหมดผู้ใช้ ดังนั้นหากคุณมีการเปิดใช้งานการตั้งรหัสผ่านอย่างน้อยคุณได้ค่อนข้างจำกัด ความเสียหายที่สามารถทำได้ (ในทางเทคนิคแล้วคุณไม่สามารถดำเนินการต่อไปได้หากไม่มีรหัสผ่านเปิดใช้งานเพิ่มเติมในอีกสักครู่ ... )
โดยธรรมชาติแล้วไม่มีใครทำเช่นนี้ในชีวิตจริง ความต้องการขั้นต่ำของคุณโดยค่าเริ่มต้นและโดยสามัญสำนึกคือการตั้งค่ารหัสผ่านง่าย ๆ :
router(config-line)# login
router(config-line)# password cisco
ตอนนี้คุณจะถูกถามถึงรหัสผ่านและคุณจะสิ้นสุดในโหมดผู้ใช้อีกครั้ง หากคุณเข้ามาในคอนโซลคุณสามารถพิมพ์enable
เพื่อเข้าถึงโดยไม่ต้องป้อนรหัสผ่านอื่น แต่สิ่งต่าง ๆ ผ่าน telnet ซึ่งคุณอาจได้รับสิ่งนี้แทน:
$ telnet 10.1.1.1
Trying 10.1.1.1...
Connected to 10.1.1.1.
Escape character is '^]'.
User Access Verification
Password: *****
router> enable
% No password set
router>
กำลังดำเนินการ ... คุณอาจรู้อยู่แล้วว่ารหัสผ่านที่กำหนดค่าไว้ทั้งหมดของคุณจะแสดงเป็นข้อความธรรมดา:
router# show run | inc password
no service password-encryption
password cisco
นี่คือหนึ่งในสิ่งเหล่านั้นที่กระชับกล้ามเนื้อหูรูดของความปลอดภัยที่ใส่ใจ ไม่ว่าจะเป็นความวิตกกังวลที่ชอบธรรมเป็นอีกสิ่งที่คุณต้องตัดสินใจด้วยตัวเอง ในแง่หนึ่งถ้าคุณมีสิทธิ์เพียงพอที่จะดูการกำหนดค่าคุณอาจมีสิทธิ์เพียงพอที่จะเปลี่ยนการกำหนดค่า ในทางตรงกันข้ามถ้าคุณเกิดขึ้นที่จะมีการเปิดเผยลวกกำหนดค่าของคุณกับคนที่ไม่ได้หมายถึงตัวเองแล้ว ... ดีตอนนี้พวกเขาทำมีวิธีการ
โชคดีที่บรรทัดแรกในตัวอย่างด้านบนno service password-encryption
เป็นกุญแจสำคัญในการเปลี่ยนแปลง:
router(config)# service password-encryption
router(config)# line vty 0 15
router(config-line)# password cisco
ตอนนี้เมื่อคุณดูการกำหนดค่าคุณจะเห็นสิ่งนี้:
router(config-line)# do show run | begin line vty
line vty 0 4
password 7 01100F175804
login
line vty 5 15
password 7 01100F175804
login
!
!
end
นี่คือเล็กน้อยดีกว่ารหัสผ่านข้อความธรรมดาเพราะสตริงที่แสดงไม่น่าจดจำพอที่จะท่องไหล่ อย่างไรก็ตามมันเป็นการง่ายที่จะถอดรหัส - และฉันใช้คำนั้นอย่างหลวม ๆ ที่นี่ คุณสามารถวางสตริงที่ด้านบนลงในแคร็กเกอร์รหัสผ่าน JavaScript หนึ่งในโหลบนหน้าผลลัพธ์แรกของ Google และรับข้อความต้นฉบับกลับมาทันที
รหัสผ่านที่เรียกว่า "7" เหล่านี้มักถือว่า "obfuscated" มากกว่า "เข้ารหัส" เพื่อเน้นความจริงที่ว่ามันแทบจะดีกว่าไม่มีอะไรเลย
อย่างไรก็ตามปรากฏว่าpassword
คำสั่งเหล่านั้นทั้งหมดถูกคัดค้าน (หรือหากไม่มีก็ควรเป็น) นั่นคือเหตุผลที่คุณมีสองตัวเลือกต่อไปนี้:
router(config)# enable password PlainText
router(config)# enable secret Encrypted
router(config)# do show run | inc enable
enable secret 5 $1$sIwN$Vl980eEefD4mCyH7NLAHcl
enable password PlainText
รุ่นลับถูกแฮชด้วยอัลกอริทึมแบบทางเดียวซึ่งหมายถึงวิธีเดียวที่จะได้รับข้อความต้นฉบับกลับมาได้คือการบังคับใช้เดรัจฉานนั่นคือพยายามป้อนสตริงที่เป็นไปได้ทั้งหมดจนกว่าคุณจะสร้างแฮชที่รู้จัก
เมื่อคุณป้อนรหัสผ่านที่พรอมต์มันจะผ่านอัลกอริทึมการแฮชเดียวกันและดังนั้นจึงควรสร้างแฮชเดียวกันซึ่งจะถูกเปรียบเทียบกับรหัสในไฟล์กำหนดค่า หากตรงกันรหัสผ่านของคุณจะได้รับการยอมรับ ด้วยวิธีนี้เราเตอร์ไม่ทราบข้อความธรรมดายกเว้นในช่วงเวลาสั้น ๆ เมื่อคุณกำลังสร้างหรือป้อนรหัสผ่าน หมายเหตุ: มีโอกาสที่อินพุตอื่นบางตัวสามารถสร้างแฮชเดียวกันได้ แต่สถิติความน่าจะเป็นที่ต่ำมาก (อ่าน: มีน้อยมาก)
หากคุณต้องใช้การกำหนดค่าข้างต้นด้วยตนเองเราเตอร์จะอนุญาตให้ทั้งสองenable password
และenable secret
บรรทัดมีอยู่ แต่ความลับชนะจากพรอมต์รหัสผ่าน นี่เป็นหนึ่งในบรรดา Cisco-isms ที่ไม่เข้าท่ามากนัก แต่เป็นวิธีที่เป็นอยู่ นอกจากนี้ยังไม่มีsecret
คำสั่งเทียบเท่าจากโหมดการตั้งค่าบรรทัดดังนั้นคุณจึงติดอยู่กับรหัสผ่านที่สับสน
เอาล่ะตอนนี้เรามีรหัสผ่านที่ไม่สามารถกู้คืนได้ (อย่างง่ายดาย) จากไฟล์กำหนดค่า - แต่ยังคงมีปัญหาหนึ่ง มันถูกส่งเป็นข้อความธรรมดาเมื่อคุณเข้าสู่ระบบผ่าน telnet ไม่ดี. เราต้องการ SSH
SSH ได้รับการออกแบบโดยคำนึงถึงความปลอดภัยที่เข้มงวดยิ่งขึ้นต้องใช้งานเพิ่มเติมเล็กน้อย - และอิมเมจ IOS พร้อมชุดคุณลักษณะบางอย่าง ความแตกต่างที่สำคัญอย่างหนึ่งคือรหัสผ่านแบบง่าย ๆ นั้นไม่ดีพอ คุณต้องเปลี่ยนไปใช้การรับรองความถูกต้องตามผู้ใช้ และในขณะที่คุณกำลังอยู่ให้ตั้งค่าคู่คีย์การเข้ารหัส:
router(config)# username admin privilege 15 secret EncryptedPassword
router(config)# line vty 0 15
router(config-line)# transport input ssh
router(config-line)# no password
router(config-line)# login local
router(config-line)# exit
router(config)# ip ssh version 2
router(config)# crypto key generate rsa modulus 1024
ตอนนี้คุณกำลังปรุงอาหารด้วยแก๊ส! ขอให้สังเกตคำสั่งนี้ใช้secret
รหัสผ่าน (ใช่คุณสามารถทำได้ แต่ไม่ควรใช้password
) privilege 15
ส่วนช่วยให้คุณสามารถใช้โหมดบายพาสทั้งหมด เมื่อคุณเข้าสู่ระบบคุณจะเข้าสู่โหมดพิเศษ:
$ ssh admin@10.1.1.1
Password: *****
router#
ในสถานการณ์สมมตินี้ไม่จำเป็นต้องใช้รหัสผ่านที่เปิดใช้งาน (หรือเป็นความลับ)
หากคุณยังไม่ได้คิดว่า "ว้าว ... สิ่งที่ clusterfudge ว่าเป็น" หมีในใจมีทั้งโพสต์ยืดยาวอื่น ๆ ยังคงซุ่มซ่อนอยู่เบื้องหลังคำสั่งaaa new-model
ที่คุณจะได้รับการดำน้ำในสิ่งที่ต้องการเซิร์ฟเวอร์การตรวจสอบภายนอก (RADIUS , TACACS +, LDAP, ฯลฯ ) รายการการตรวจสอบ (ซึ่งกำหนดแหล่งที่จะใช้และตามลำดับ) ระดับการอนุญาตและการบัญชีกิจกรรมผู้ใช้
บันทึกทุกสิ่งในช่วงเวลาที่คุณรู้สึกอยากถูกล็อคออกจากเราเตอร์ของคุณสักครู่
หวังว่าจะช่วย!