การพิสูจน์ตัวตน VNC ล้มเหลว


8

ฉันพยายามเชื่อมต่อกับ vncserver ของฉันที่ทำงานบน CentO จากคอมพิวเตอร์ที่บ้านหลังไฟร์วอลล์ ฉันได้ติดตั้ง Win7 และ Ubuntu ไว้ในเครื่องนี้แล้ว ฉันมีข้อผิดพลาด:

การรวบรวม VNC ล้มเหลว: vncserver ความปลอดภัยล้มเหลวมากเกินไป

แม้เมื่อเข้าสู่ระบบด้วยข้อมูลประจำตัวที่ถูกต้อง (ฉันรีเซ็ต passwd บน CentOs) ฉันได้รับ: การตรวจสอบล้มเหลว

ฉันสังเกตว่าฉันต้องรอทั้งวันเพื่อให้สามารถ relogin เลย

มันเกี่ยวกับการที่ฉันพยายามรูทหรือไม่? ฉันคิดว่าสำคัญก็คือฉันต้องลงชื่อเข้าใช้ Centos ระยะไกลผ่านพอร์ต 6050 - ไม่มีพอร์ตอื่นที่เหมาะกับฉัน ฉันต้องทำอะไรบางอย่างกับพอร์ตอื่นหรือไม่? ฉันเห็นว่า vncserver กำลังฟังบน 5901, 5902 หากมีการเพิ่มอีก - และฉันคิดว่าการเชื่อมต่อถูกสร้างขึ้นเพราะเวลา (นาน) พร้อมท์ passwd ปรากฏขึ้น ... ใช่ไหม?

ฉันได้สร้าง user1 เพิ่มเติมรหัสผ่านสำหรับเขาไปยัง CentOS และ VNC รวมถึง user2 ด้วย ฉันทำ:

เริ่มบริการ vncserver

และเซิร์ฟเวอร์สองเครื่องเริ่มขึ้นหนึ่ง: 1 และสองในวันที่: 2 เมื่อฉันพยายามเชื่อมต่อกับ vncserverIP: 1 ฉันได้รับสิ่งที่อธิบายข้างต้น แต่เมื่อฉันลองเชื่อมต่อกับ vncserverIP: 2 มันบอกว่าการทดลองใช้ไม่สำเร็จ

โปรดช่วยทำอะไร?

นอกจากนี้: วิธีปิดใช้งานการล็อคนี้เพื่อการทดสอบ

คำตอบ:


12

VNC ใช้ระบบรหัสผ่านแยกต่างหาก มันไม่ได้ตรวจสอบรหัสผ่านกับ / etc / passwd แต่เทียบกับ ~ / .vnc / passwd ซึ่งมีรหัสผ่านหลักเดียวและเป็นทางเลือกรองรหัสผ่านที่ช่วยให้ดูหน้าจอเท่านั้น

ในการตั้งค่ารหัสผ่าน VNC ของคุณให้ใช้คำสั่งvncpasswd รหัสผ่าน VNC จะต้องมีความยาวระหว่างห้าถึงแปดตัวอักษร - ตัวอักษรที่เกินจากที่แปดจะถูกละเว้นอย่างเงียบ ๆ ดังนั้นหากคุณใช้ VNC ผ่านทางอินเทอร์เน็ตให้เลือกรหัสผ่านแบบสุ่มที่รัดกุมเนื่องจากผู้โจมตีอาจใช้ botnets ที่มีที่อยู่ IP จำนวนมากเพื่อหลีกเลี่ยงการปิดกั้นขณะทำการถอดรหัส

หากคุณต้องใช้ VNC ผ่านอินเทอร์เน็ตให้รันบนหมายเลขพอร์ตที่เลือกแบบสุ่ม (ไม่ใช่ 5900) เพื่อหลีกเลี่ยงการตรวจจับในการสแกนพอร์ตที่ครอบคลุมเฉพาะพอร์ตทั่วไป ให้ทำการเชื่อมต่อ VNC ของคุณผ่าน SSH เพื่อป้องกันตัวคุณเองจากการดักฟังและการโจมตีจากคนกลาง หากคุณทำเช่นนี้คุณควรตั้งค่า vncserver เป็นไม่ยอมรับการเชื่อมต่อจากอินเทอร์เน็ตปิดใช้งานการรับรองความถูกต้องด้วยรหัสผ่านอย่างเดียวในบริการ SSH และใช้การตรวจสอบสิทธิ์แบบสาธารณะเพื่อป้องกันการถอดรหัสด้วยรหัสผ่าน

การรีสตาร์ท vncserver ควรรีเซ็ตการล็อก หน้าคู่มือไม่ได้กล่าวถึงวิธีการปิดการใช้งาน (ไม่เพียงพอ?) ปิดทั้งหมด


ขอบคุณที่ฉันบอกว่าฉันได้สร้างผู้ใช้และตั้งรหัสผ่านทั้งใน terminal (passwd) และ VNC (vncpasswd) เพื่อตั้งรหัสผ่านแล้ว แต่ฉันได้เลือกรหัสผ่านตัวอักษร 9 ตัว คุณบอกว่า VNC ไม่สนใจตัวอักษรตัวสุดท้าย แต่ตัวดู VNC จะไม่สนใจมันเช่นกันเมื่อฉันใส่รหัสผ่านที่ยาว 9 ตัวอักษรเมื่อทำการบันทึก? รีสตาร์ทโดย: บริการ vncserver รีสตาร์ทไม่ได้เอาล็อค: ยังมีความล้มเหลวในการตรวจสอบโดยไม่ต้องตัวเลือกในการเข้าสู่ระบบ ดังนั้นฉันควรพยายามเข้าสู่ระบบ (เมื่ออนุญาตอีกครั้ง) โดยใช้รหัสผ่านที่ถูกตัดทอน (ใช้ตัวอักษร 8 ตัวแรกเท่านั้น) หรือฉันต้องตั้งค่าอีกครั้งหรือไม่
4pie0

คำถามอื่น: วิธีการเข้าสู่ระบบในฐานะ root? เป็นไปได้ไหม? เมื่อเข้าสู่ระบบคุณจะถูกถามเฉพาะเกี่ยวกับ IP และรหัสผ่านดังนั้นวิธีการเข้าสู่ระบบในฐานะที่เป็นรากเพื่อดูเซสชั่นรูท?
4pie0

@ cf16: คำตอบง่ายๆ (ถึง "วิธีการเข้าสู่ระบบด้วยรูท?") คือการเรียกใช้ vncserver ในฐานะผู้ใช้รูท หากคุณต้องการลงชื่อเข้าใช้บัญชีผู้ใช้หลายบัญชีโดยไม่ต้องใช้ su หรือ sudo คุณจะต้องตั้งค่าX display managerเช่น LightDM
PleaseStand

ฉันเริ่มต้นด้วยรูทดังนั้นจึงบอกฉันว่าเซิร์ฟเวอร์สำหรับ user1 และ user2 ถูกสร้างขึ้นแล้ว คำขอรหัสผ่านปรากฏขึ้นเมื่อพยายาม IP: 1 เท่านั้นเมื่อพยายามเชื่อมต่อกับ IP: 2 จะไม่เชื่อมต่อเลย
4pie0

@ cf16: ลองใช้ IP: 0 สิ่งนี้ควรเชื่อมต่อกับพอร์ต 5900
PleaseStand

0

ฉันมีปัญหาการปิด VNC นี้ ฉันจะแก้ไขได้โดยการติดตั้งไฟร์วอลล์ gufw


1
คุณช่วยบอกฉันเพิ่มเติมเกี่ยวกับการตั้งค่าไฟร์วอลล์นี้ได้ไหม ขอบคุณ
zeflex

ฉันต้องการโซลูชันสำหรับการปิด VNC นี้ด้วย
ผู้สร้าง

เพียงติดตั้ง gufw และเพิ่มรายการสำหรับพอร์ตที่คุณต้องการใช้ ตัวอย่างเช่นสำหรับ SSH เพิ่มรายการสำหรับพอร์ต 22
H2ONaCl

0

การเพิ่มคำตอบให้แล้ว:

คุณไม่ได้กล่าวถึงสิ่งนี้อย่างชัดเจนในโพสต์ของคุณ แต่คำอธิบายปัญหาของคุณหมายความว่าคุณถูกบล็อกหลังจากพยายามเข้าสู่ระบบไม่สำเร็จหลายครั้งเกินไป ฉันพบปัญหานี้เมื่อไม่นานมานี้ที่ผู้ร่วมงานไม่สามารถเข้าสู่ระบบหลังจากลองรหัสผ่านไม่ถูกต้องหลายครั้งเกินไป ฉันเจอโพสต์นี้ที่ SOLVEOPTIMIZED ซึ่งอธิบายวิธีแก้ปัญหา

คุณต้องกำหนดกฎไฟร์วอลล์เพื่ออนุญาตการเชื่อมต่อขาเข้าที่พอร์ตที่เซิร์ฟเวอร์ VNC ใช้อยู่ เซิร์ฟเวอร์ VNC ใช้พอร์ต 5900 + N โดยที่ N หมายถึงทุกอินสแตนซ์ใหม่ ดังนั้นสมมติว่าเซิร์ฟเวอร์ VNC ของคุณทำงานที่พอร์ต 5901 คุณจะต้องอนุญาตการเชื่อมต่อเข้ากับพอร์ตนี้ในการตั้งค่าไฟร์วอลล์ของคุณ คุณสามารถค้นหาหมายเลขพอร์ตของอินสแตนซ์ทั้งหมดด้วย

$ vncserver -l

หลังจากเปลี่ยนกฎไฟร์วอลล์แล้วคุณต้องรอให้เซิร์ฟเวอร์หมดเวลาและคุณจะสามารถลงชื่อเข้าใช้ได้อีกครั้ง

อีกทางเลือกหนึ่งถ้าคุณไม่ต้องการรอหรือหากคุณไม่ต้องการยุ่งกับการตั้งค่าไฟร์วอลล์ของคุณคุณสามารถรีสตาร์ทเซิร์ฟเวอร์ VNC โดยการฆ่าทุกกรณี มันแตกต่างจากการรีสตาร์ทบริการเหมือนที่คุณทำ คุณทำการรีสตาร์ทอย่างหนักโดยการ grepping ครั้งแรกสำหรับ PID ของ VNC

$ pgrep vnc

แล้วฆ่าทุกกรณีด้วย

$ kill pid

ตรวจสอบให้แน่ใจว่าได้ฆ่าอินสแตนซ์ทั้งหมดหาก pgrep ส่งคืน PID หลายรายการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.