การรันSSH
บนพอร์ตอื่นจะไม่ถือว่าปลอดภัย มันเพิ่มความสับสนเล็กน้อยและเพิ่มความซับซ้อนให้กับผู้ใช้ของคุณ มันจะเพิ่มสิ่งกีดขวางให้เป็นศูนย์สำหรับผู้ที่ต้องการทำลายเครือข่ายของคุณซึ่งกำลังใช้เครื่องสแกนพอร์ตอัตโนมัติและไม่สนใจว่าพอร์ตใดที่ทำงานอยู่
หากคุณต้องการสนับสนุนการรักษาความปลอดภัยบนระบบที่อนุญาตให้ใช้ SSH ขาเข้าบนอินเทอร์เน็ตระยะไกลให้ควบคุมผู้ใช้ของคุณsshd_config
ตามที่ @Athon ระบุและยังนำการรักษาความปลอดภัยมาใช้โดยตรงใน PAM
สร้างสองกลุ่มและlusers
rusers
เพิ่มผู้ใช้มือถือระยะไกลให้กับrusers
กลุ่ม ใช้โมดูลpam_succeed_if.so PAM เพื่ออนุญาตการเข้าถึงผู้ใช้เหล่านั้น เพิ่มบรรทัดลงใน pam config ของคุณสำหรับ ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
บางโมดูล pam_succeed_if.so group = lusers
อาจทำให้คุณต้องใช้ไวยากรณ์ที่แตกต่างกันเล็กน้อยเช่น
จากนั้นไม่เพียง แต่sshd
จำกัด ผู้ใช้ที่สามารถเชื่อมต่อได้ แต่ในกรณีที่มีข้อบกพร่องsshd
คุณยังคงได้รับการป้องกันตามข้อ จำกัด ของ PAM
อีกหนึ่งขั้นตอนสำหรับผู้ใช้ระยะไกลคือการบังคับให้ใช้ ssh_keys ด้วยข้อความรหัสผ่าน ดังนั้นผู้ใช้ภายในสามารถลงชื่อเข้าใช้ด้วยรหัสหรือรหัสผ่าน แต่ผู้ใช้ระยะไกลต้องมีรหัสและถ้าคุณสร้างรหัสสำหรับพวกเขาคุณสามารถตรวจสอบให้แน่ใจว่ากุญแจนั้นมีรหัสผ่านที่เกี่ยวข้อง ดังนั้นการ จำกัด การเข้าถึงสถานที่ที่มีคีย์ SSH และวลีรหัสผ่านอยู่จริง และ จำกัด การโจมตีเวกเตอร์ที่อาจเกิดขึ้นหากรหัสผ่านของผู้ใช้นั้นถูกคอมไพล์
ในsshd_config
:
เปลี่ยนการตั้งค่า 2:
ChallengeResponseAuthentication yes
และ
PasswordAuthentication yes
ถึง:
ChallengeResponseAuthentication no
และ
PasswordAuthentication no
ดังนั้นค่าเริ่มต้นคือตอนนี้อนุญาตให้ใช้การตรวจสอบสิทธิ์คีย์เท่านั้น จากนั้นสำหรับผู้ใช้ท้องถิ่นคุณสามารถผู้ใช้การmatch
ตั้งค่าการตั้งค่าเพื่อเปลี่ยนค่าเริ่มต้นสำหรับผู้ใช้ท้องถิ่น สมมติว่าเครือข่ายส่วนตัวในพื้นที่ของคุณคือ 192.168.1.0/24 ให้เพิ่มไปที่sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
ตอนนี้ผู้ใช้ภายในสามารถเชื่อมต่อกับรหัสผ่านหรือกุญแจและผู้ใช้ระยะไกลจะถูกบังคับให้ใช้กุญแจ มันขึ้นอยู่กับคุณที่จะสร้างกุญแจด้วยวลีรหัสผ่าน
ในฐานะที่เป็นประโยชน์เพิ่มเติมคุณจะต้องจัดการเพียงครั้งเดียวsshd_config
และคุณจะต้องเรียกใช้ ssh บนพอร์ตเดียวซึ่งช่วยให้การจัดการของคุณง่ายขึ้น
แก้ไข 2017-01-21 - การ จำกัด การใช้authorized_keys
ไฟล์
หากคุณต้องการให้แน่ใจว่าผู้ใช้ไม่สามารถสร้างคีย์ ssh ด้วยตนเองและใช้กับauthorized_keys
ไฟล์เพื่อเข้าสู่ระบบคุณสามารถควบคุมได้โดยการตั้งค่าตำแหน่งเฉพาะสำหรับ sshd จะค้นหาคีย์ที่ได้รับอนุญาต
ใน/etc/ssh/sshd_config
การเปลี่ยนแปลง:
AuthorizedKeysFile %h/ssh/authorized_keys
เพื่อสิ่งที่ชอบ:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
การชี้ไปยังไดเรกทอรีที่ควบคุมซึ่งผู้ใช้ไม่มีสิทธิ์ในการเขียนหมายความว่าพวกเขาไม่สามารถสร้างรหัสของตนเองและใช้เพื่อแก้ไขกฎที่คุณวางไว้
lusers
กลุ่ม แต่ไม่ใช่ในrusers
กลุ่มจะสร้าง keypair และอัปเดตพวก~/.ssh/authorized_keys
เขาพวกเขาจะสามารถเข้าสู่ระบบจากระยะไกล