ฉันจะตั้งค่า SSH เพื่อให้ถูก จำกัด ในเครือข่ายท้องถิ่นของฉันได้อย่างไร


33

ฉันกำลังพยายามเชื่อมโยงแล็ปท็อปเครื่องใหม่ที่ใช้งาน 11.10 กับแล็ปท็อปเครื่องเก่าที่ใช้ 8.04 ผ่านเราเตอร์โดยใช้ SSH

คำถามนี้ถูกถามและตอบใน ubuntuforums ที่นี่:

http://ubuntuforums.org/showthread.php?t=1648965

ฉันคิดว่ามันจะมีประโยชน์หากมีคำตอบที่ชัดเจนยิ่งขึ้นที่นี่

หมายเหตุ: ฉันต้องติดตั้ง openssh-server บนแล็ปท็อปก่อนฉันพยายามเชื่อมต่อและเปิดพอร์ต SSH ในไฟร์วอลล์โดยใช้ firestarter


คุณช่วยบอกเราหน่อยได้ไหมว่าคำว่า "สรุป" ไม่เพียงพอเกี่ยวกับคำตอบของสโลวโบ้วในหัวข้อนั้นหรือไม่? มิฉะนั้นคำถามของคุณดูเหมือนจะไม่ชัดเจน
d_inevitable

@d_inevitable คำตอบเดียวไม่ใช่คำตอบเดียวและไม่ได้ระบุว่าเป็นคำตอบที่ถูกต้อง มันเป็นสิ่งที่ฉันจะเลือก แต่นี่คือเหตุผลที่ฉันคิดว่ามันจะมีประโยชน์ในการโยกย้ายคำถามนี้ นอกจากนี้ยังอาจช่วยในการรวมเส้นทางทั่วไปหรือลิงค์ที่มีประโยชน์ในการกำหนดค่า SSH ระหว่างสองเครื่องท้องถิ่น
klenwell

คำตอบ:


46

คุณสามารถ จำกัด การเข้าถึงเซิร์ฟเวอร์ ssh ของคุณได้หลายวิธี

IMO ที่สำคัญที่สุดคือการใช้คีย์ ssh และปิดการใช้งานการตรวจสอบรหัสผ่าน

ดูหน้าวิกิต่อไปนี้สำหรับรายละเอียด

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

คุณสามารถ จำกัด การเข้าถึงเครือข่ายย่อยที่ระบุได้หลายวิธี ฉันจะสมมติว่าเซิร์ฟเวอร์ ssh ของคุณอยู่บนเครือข่ายย่อย 192.168.0.0/16 โดยมีที่อยู่ IP เป็น 192.168.0.10 ปรับตาม;)

Router

แนวป้องกันหนึ่งบรรทัดคือการใช้เราเตอร์ ตรวจสอบให้แน่ใจว่าได้ปิดใช้งาน UPnP และไม่อนุญาตให้ส่งต่อพอร์ต

การกำหนดค่า SSH

/etc/ssh/sshd_configคุณสามารถตั้งค่าตัวเลือกในหลาย ๆ หนึ่งคือที่อยู่ฟัง หากคุณตั้งค่าฟังที่อยู่บนซับเน็ตของคุณ ที่อยู่ IP ส่วนตัวไม่สามารถกำหนดเส้นทางผ่านอินเทอร์เน็ตได้

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

คุณยังสามารถใช้ AllowUsers

AllowUsers you@192.168.0.0/16

ค่อนข้างเกี่ยวข้องคุณสามารถเปลี่ยนพอร์ตได้

Port 1234

ดูhttp://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

TCP wrapper

ตามที่ระบุไว้ในโพสต์ฟอรัมคุณสามารถใช้ TCP Wrapper TCP wrapper ใช้ 2 ไฟล์/etc/hosts.allowและ/etc/hosts.deny

แก้ไข/etc/hosts.allowและเพิ่มซับเน็ตของคุณ

sshd : 192.168.0.

แก้ไข/etc/hosts.denyและปฏิเสธทั้งหมด

ALL : ALL

ดูเพิ่มเติมที่http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

ไฟร์วอลล์

สุดท้ายคุณสามารถไฟร์วอลล์เซิร์ฟเวอร์ของคุณ คุณสามารถใช้ iptables, ufw หรือ gufw

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

กรุณาอย่าใช้ DROP ใน iptables ดูที่http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw มีส่วนต่อประสานกราฟิก

GUFW

ดู https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo


เครือข่ายบางเครือข่ายใช้ 10.0.0.0 เป็นที่อยู่ IP ในกรณีนั้นจะใช้แทน 192.168.0.0/24 สำหรับ 10.0.0.0/8 เพื่ออนุญาตช่วง 10.0.0.0-10.255.255.255 หากคุณต้องการอนุญาต IP เดียวเท่านั้นให้ใช้บางอย่างเช่น 192.168.1.2/32 คำอธิบายที่ละเอียดมากสามารถพบได้ใน [ serverfault.com/q/49765/51929เหมือนกัน (Subnetting ทำงานอย่างไร?)
Lekensteyn

1
โปรดอย่าใช้ DROP ใน iptables - ดูchiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther

หน้านั้นไม่ได้กล่าวถึง IP ปลอมแปลงเป็นเหตุผลที่เป็นไปได้ที่จะใช้ DROP แทนการปฏิเสธ คำตอบเกี่ยวกับ Sec.SE นี้อธิบายว่าทำไมมันจึงไม่เกี่ยวข้องกันจริงๆ
Lekensteyn

@Lekensteyn - ฉันไม่เห็นการสนทนาสำหรับการปลอมแปลง IP ในลิงค์นั้น ตามที่คุณแนะนำ DDoS และ IP ที่ถูกหลอกนั้นอยู่นอกเหนือการสนทนานี้และฉันไม่เชื่อว่า DROP นั้นเหนือกว่า REJECT สำหรับทุกสิ่ง DDos นั้นซับซ้อนและไม่มีข้อมูลเกี่ยวกับสาเหตุของ DDos มันเป็นไปไม่ได้ที่จะปกป้อง ตัวอย่างเช่นฉันได้เห็น WP ที่ใช้เป็น DDoS และการแก้ปัญหาอยู่ในการกำหนดค่าที่เหมาะสมของ WP และน้อยหรือไม่มีอะไรจะทำกับ iptables
Panther

ListenAddressดูเหมือนจะเป็นทางออกที่ง่ายและสง่างามที่สุด
code_monk

1

ssh (secure shell) ใช้เพื่อเข้าถึงและถ่ายโอนข้อมูลอย่างปลอดภัย (ใช้คู่ RSA_KEYS) คุณสามารถเข้าถึงข้อมูลโดยใช้ ssh ได้สองวิธีคือ 1. บรรทัดคำสั่ง 2. ใช้ไฟล์เบราว์เซอร์

Command Line: สำหรับสิ่งนี้คุณไม่จำเป็นต้องติดตั้งอะไรเลย งานแรกคือล็อกอินเข้าสู่คอมพิวเตอร์เครื่องอื่น

ssh other_computer_username@other_computer_ip

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

เบราว์เซอร์ไฟล์: คุณต้องติดตั้ง openssh-server

sudo apt-get install openssh-server

เพื่อเข้าสู่ระบบไปที่ไฟล์ -> connectToServer

ป้อนคำอธิบายรูปภาพที่นี่


ทิศทางของบรรทัดคำสั่งเป็นสิ่งแรกที่ฉันลอง ฉันสามารถ ping คอมพิวเตอร์เครื่องอื่นของฉันที่ LAN IP แต่เมื่อฉันพยายาม SSH มันแฮงค์ ดังนั้นฉันคิดว่าฉันต้องกำหนดค่าคอมพิวเตอร์เครื่องอื่นของฉันให้อนุญาตการเข้าถึง SSH ก่อน
klenwell

ตรวจสอบให้แน่ใจว่าเราเตอร์ของคุณไม่ได้บล็อกพอร์ต 22 หรือ ssh
shantanu

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