ฉันอยากจะแนะนำให้คุณใช้บัญชีรูทตั้งแต่แรก หากคุณตั้งค่าเช่นนี้:
- การกำหนดค่าของคุณบนเครื่องเป้าหมาย
sshd_config
PermitRootLogin without-password
- ใช้
ssh-keygen
บนเครื่องที่ดึงข้อมูลสำรองเพื่อสร้างคีย์ส่วนตัว SSH (เฉพาะในกรณีที่คุณยังไม่มีคีย์ SSH) อย่าตั้งข้อความรหัสผ่าน สอน Google ถ้าคุณต้องการรายละเอียดสิ่งนี้ควรมีมากมาย
- ผนวกเนื้อหาของ
/root/.ssh/id_rsa.pub
เครื่องสำรองข้อมูลเข้ากับ/root/.ssh/authorized_keys
เครื่องเป้าหมายของคุณ
- ตอนนี้เครื่องสำรองข้อมูลของคุณมีการเข้าถึงรูทไปยังเครื่องเป้าหมายโดยไม่ต้องใช้การตรวจสอบสิทธิ์ด้วยรหัสผ่าน
ดังนั้นการตั้งค่าที่ได้นั้นน่าจะปลอดภัย
sudo
รวมกับNOPASSWD
คำแนะนำในความคิดเห็นโดยเฉพาะอย่างยิ่งไม่มีประโยชน์ด้านความปลอดภัยมากกว่าเพียงแค่ใช้บัญชีรูท ตัวอย่างเช่นคำแนะนำนี้:
เพิ่มสิ่งต่อไปนี้ใน/etc/sudoers
ไฟล์ของคุณ:rsyncuser ALL= NOPASSWD:/usr/bin/rsync
เป็นหลักให้rsyncuser
สิทธิ์รูตอย่างไรก็ตาม คุณถาม:
@MartinvonWittich ง่ายที่จะได้รับเปลือกรากเต็มเพราะrsync
ดำเนินการด้วยsudo
? เดิน [m] e [ผ่าน] ที่โปรด
ง่ายดี ด้วยการกำหนดค่าที่แนะนำrsyncuser
ตอนนี้อาจทำงานrsync
เป็นรูทโดยไม่ต้องถามรหัสผ่าน rsync
เป็นเครื่องมือที่มีประสิทธิภาพมากในการจัดการไฟล์ดังนั้นตอนนี้rsyncuser
มีเครื่องมือที่มีประสิทธิภาพมากในการจัดการไฟล์ที่มีสิทธิ์รูท การหาวิธีที่จะใช้ประโยชน์จากสิ่งนี้ทำให้ฉันใช้เวลาเพียงไม่กี่นาที (ทดสอบบน Ubuntu 13.04, ต้องการdash
, bash
ไม่ทำงาน):
martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::
อย่างที่คุณเห็นฉันได้สร้างเปลือกรูตขึ้นเอง whoami
ระบุบัญชีของฉันเป็น root ฉันสามารถสร้างไฟล์ใน/etc
และฉันสามารถอ่าน/etc/shadow
ได้ การหาประโยชน์ของฉันคือการตั้งค่าsetuidบิตบนdash
ไบนารี มันทำให้ Linux รันไบนารีนั้นเสมอโดยได้รับอนุญาตจากเจ้าของในกรณีนี้รูท
การมีรูทจริงนั้นไม่แนะนำให้ทำด้วยเหตุผลที่ดี - redanimalwar 15 ชั่วโมงที่ผ่านมา
ไม่การทำงานกับบัญชีรูทในสถานการณ์ที่เหมาะสมอย่างยิ่งที่จะใช้งานนั้นไม่ใช่เหตุผลที่ดี นี่เป็นอีกรูปแบบหนึ่งของการเขียนโปรแกรมลัทธิคาร์โก้ - คุณไม่เข้าใจแนวคิดที่อยู่เบื้องหลัง sudo vs root คุณเพียงแค่ใช้ความเชื่อ "root is bad, sudo is good" เพราะคุณอ่านสิ่งนั้น
ในอีกด้านหนึ่งมีสถานการณ์ที่sudo
เป็นเครื่องมือที่เหมาะสมสำหรับงาน ตัวอย่างเช่นเมื่อคุณทำงานแบบโต้ตอบบนเดสก์ท็อป Linux แบบกราฟิกสมมติว่า Ubuntu แล้วการใช้งานsudo
จะทำได้ดีในบางกรณีที่คุณจำเป็นต้องเข้าถึงรูท อูบันตูตั้งใจใช้บัญชีรูทที่ปิดการใช้งานและบังคับให้คุณใช้เป็นsudo
ค่าเริ่มต้นเพื่อป้องกันผู้ใช้จากการใช้บัญชีรูทเพื่อเข้าสู่ระบบเสมอเมื่อผู้ใช้เพียงต้องการใช้งานเช่นเว็บเบราว์เซอร์จากนั้นเข้าสู่ระบบ ดังนั้นจึงไม่มีบัญชีผู้ใช้รูทโดยค่าเริ่มต้นป้องกันไม่ให้คนโง่ทำเช่นนี้
ในทางกลับกันมีบางสถานการณ์ที่เป็นของคุณเช่นที่สคริปต์อัตโนมัติต้องการการอนุญาตรูทกับบางอย่างเช่นทำการสำรองข้อมูล ตอนนี้การใช้sudo
เพื่อหลีกเลี่ยงบัญชีรูทไม่เพียง แต่ไร้ประโยชน์เท่านั้น แต่ยังเป็นอันตรายด้วย: เมื่อมองอย่างรวดเร็วครั้งแรกrsyncuser
ดูเหมือนว่าบัญชีธรรมดาที่ไม่มีสิทธิพิเศษ แต่อย่างที่ฉันได้อธิบายไปแล้วมันจะง่ายมากสำหรับผู้โจมตีที่จะเข้าถึงรูทแบบเต็มถ้าเขาได้รับrsyncuser
การเข้าถึงแล้ว ตอนนี้คุณมีบัญชีรูทเพิ่มเติมที่ไม่เหมือนกับบัญชีรูทเลยซึ่งไม่ใช่สิ่งที่ดี
root
บัญชีในตอนแรกsudo
เมื่อรวมกับNOPASSWD
คำแนะนำในความคิดเห็นโดยเฉพาะอย่างยิ่งไม่ได้ปรับปรุงความปลอดภัยของเครื่องของคุณ