คำแนะนำในการใช้ SSH
SSH เป็นโปรโตคอลเครือข่ายที่ทำงานในคอนโซล ไคลเอ็นต์ SSH ที่ใช้บ่อยที่สุดคือ PuTTy ภาพด้านล่างแสดงเซสชั่น SSH ที่สร้างขึ้น ใช้งานง่ายและรวดเร็ว ส่วนใหญ่ของ IT Professional จัดการเครือข่ายทั้งหมดเพียงอย่างเดียวผ่าน SSH เนื่องจากความปลอดภัยและการเข้าถึงอย่างรวดเร็ว / ง่ายในการดำเนินงานด้านการจัดการและการจัดการบนเซิร์ฟเวอร์ เซสชันทั้งหมดใน SSH ถูกเข้ารหัส - โปรโตคอลหลักสำหรับ SSH คือ SSH1 / SSH-1 และ SSH2 / SSH-2 SSH-2 เป็นรุ่นหลังปลอดภัยกว่า SSH-1 Linux OS มียูทิลิตีที่เรียกว่า Terminal เพื่อเข้าถึงคอนโซลและเครื่อง Windows ต้องมี SSH Client (เช่น PuTTy)
การเข้าถึงโฮสต์ระยะไกลโดยใช้ SSH
ในการเข้าถึงโฮสต์ / เครื่องระยะไกลโดยใช้ SSH คุณต้องมีสิ่งต่อไปนี้:
a) PuTTy (ลูกค้า SSH ฟรี)
b) ชื่อผู้ใช้เซิร์ฟเวอร์ SSH
c) รหัสผ่านเซิร์ฟเวอร์ SSH
d) พอร์ต SSH ซึ่งโดยปกติจะเป็น 22 แต่ตั้งแต่เริ่มต้น 22 ก็ควรเปลี่ยนเป็นพอร์ตอื่นเพื่อหลีกเลี่ยงการโจมตีพอร์ตนี้
ใน Linux Machine ชื่อผู้ใช้ root จะเป็นผู้ดูแลระบบโดยค่าเริ่มต้นและมีสิทธิ์การดูแลระบบทั้งหมด
ใน Terminal คำสั่งต่อไปนี้จะเริ่มต้นการเชื่อมต่อกับเซิร์ฟเวอร์
ssh [email protected]
โดยที่ root คือชื่อผู้ใช้และ 192.168.1.1 คือที่อยู่โฮสต์
นี่คือลักษณะของเทอร์มินัล:
คำสั่งของคุณจะถูกพิมพ์หลังจาก สัญลักษณ์ $ สำหรับความช่วยเหลือเกี่ยวกับคำสั่งใน terminal / putty ให้ใช้ไวยากรณ์:
man ssh
คำสั่งของมนุษย์
man ตามด้วยคำสั่งใด ๆ จะแสดงคำแนะนำคำสั่งบนหน้าจอ
ดังนั้นสิ่งที่ฉันจะทำตอนนี้คือ SSH ใช้ PuTTy ใน Debian OS ของฉันทำงานบน VMWare
แต่ก่อนที่ฉันจะทำฉันต้องเปิดใช้งาน SSH โดยเข้าสู่ Debian VM ของฉัน - หากคุณเพิ่งซื้อเซิร์ฟเวอร์จาก บริษัท ให้บริการพื้นที่คุณสามารถขอให้เปิดใช้ SSH สำหรับคุณได้
เมื่อต้องการเปิดใช้งาน ssh ให้ใช้
sudo /etc/init.d/ssh restart
ตั้งแต่ฉันใช้ Ubuntu และ ssh ไม่ได้ติดตั้งดังนั้น
การติดตั้ง ssh ใช้คำสั่งเหล่านี้
sudo apt-get ติดตั้ง openssh-client
sudo apt-get ติดตั้ง openssh-server
และนี่คือสิ่งที่ฉันได้เข้าสู่ SSH ผ่าน PuTTy:
ตอนนี้เป็นสิ่งที่ต้องใช้ในการตั้งค่า SSH และสร้างเซสชันผ่าน PuTTy - ด้านล่างนี้จะกล่าวถึงคุณลักษณะขั้นสูงขั้นพื้นฐานบางอย่างที่จะเริ่มต้นให้คุณดูภาพรวมของสถานการณ์ทั้งหมดอย่างรวดเร็ว
ไฟล์คอนฟิกูเรชัน ssh เริ่มต้นอยู่ที่: / etc / ssh / sshd_config
เมื่อต้องการดูการใช้แฟ้มการกำหนดค่า: cat / etc / ssh / sshd_config
เมื่อต้องการแก้ไขการใช้ไฟล์การกำหนดค่า: vi / etc / ssh / sshd_config หรือ nano / etc / ssh / sshd_config
หลังจากแก้ไขไฟล์แล้วให้ใช้ CTRL + X และกดปุ่ม Y เพื่อบันทึกและออกจากโปรแกรม (nano editor)
พอร์ต SSH สามารถเปลี่ยนได้จากไฟล์คอนฟิกูเรชันพอร์ตเริ่มต้นคือ 22 คำสั่งพื้นฐาน cat, vi และ nano จะทำงานกับข้อมูลอื่น ๆ เช่นกัน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งพิเศษให้ ใช้ Google Search
ถ้าคุณทำการเปลี่ยนแปลงแฟ้มการกำหนดค่าใด ๆ จำเป็นต้องมีการรีสตาร์ทสำหรับบริการนั้น ย้ายเพิ่มเติมสมมติว่าตอนนี้เราต้องการเปลี่ยนพอร์ตของเราดังนั้นสิ่งที่เราจะทำคือการแก้ไขไฟล์ sshd_config และฉันจะใช้
nano / etc / ssh / sshd_config
คุณต้องล็อกอินด้วย admin หรือใช้ sudo nano / etc / ssh / sshd_config เพื่อแก้ไขไฟล์ หลังจากที่ได้รับการแก้ไขแล้วให้เริ่มต้นบริการ ssh ใหม่คือ sudo /etc/init.d/ssh restart
หากคุณกำลังเปลี่ยนพอร์ตโปรดอย่าลืมอนุญาตใน IPTABLES ของคุณหากคุณใช้ไฟร์วอลล์เริ่มต้น
iptables -I INPUT -p tcp -dport 5000 -j ยอมรับ/etc/rc.d/init.d/iptables save
สอบถาม iptables เพื่อยืนยันว่ามีการเปิดพอร์ตหรือไม่
iptables -n | | grep 5000
มีคำสั่งหลายอย่างในไฟล์การกำหนดค่าตามที่กล่าวไว้ก่อนหน้านี้มีสองโปรโตคอลสำหรับ SSH (1 และ 2) หากตั้งค่าเป็น 1 ให้เปลี่ยนเป็น 2
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่ด้านล่างนี้เป็นไฟล์การกำหนดค่าของฉัน:
# แพคเกจสร้างไฟล์การกำหนดค่า
# ดูรายละเอียดใน manpage sshd_config (5)
# พอร์ตอะไร IP และโปรโตคอลที่เรารับฟัง
Port 5000 แทนหมายเลข 22 พร้อมพอร์ต
# ใช้ตัวเลือกเหล่านี้เพื่อ จำกัด การเชื่อมต่อ / โปรโตคอลที่ sshd จะผูกไว้
#ListenAddress ::
#ListenAddress 0.0.0.0
พิธีสาร 2 แทนที่โปรโตคอล 1 กับ 2
อย่าลืมรีสตาร์ทเซอร์วิสหลังจากทำการเปลี่ยนแปลง
Root เป็นผู้ดูแลระบบและขอแนะนำให้ปิดใช้งานมิฉะนั้นถ้าคุณเปิดการเชื่อมต่อระยะไกลคุณอาจกลายเป็นเรื่องของการโจมตีด้วยความแรงแบบเดรัจฉานหรือช่องโหว่ ssh อื่น ๆ - เซิร์ฟเวอร์ Linux เป็นกล่องที่คนที่คุณรักมากที่สุดโดยแฮกเกอร์, LoginGraceTime กำหนดระยะเวลาสำหรับผู้ใช้เพื่อเข้าสู่ระบบและตรวจสอบความถูกต้องหากผู้ใช้ไม่ได้ทำาการเชื่อมต่อจะปิดลง - ปล่อยให้เป็นค่าดีฟอลต์
# การตรวจสอบสิทธิ์:
LoginGraceTime 120
PermitRootLogin no
StrictModes ใช่
คุณลักษณะที่น่าสนใจคือการ ตรวจสอบคีย์ (PubkeyAuthentication) - คุณลักษณะนี้ช่วยให้คุณตั้งค่าการตรวจสอบสิทธิ์ตามคีย์ได้ตามที่เราเห็นในเซิร์ฟเวอร์ Amazon EC3 คุณสามารถเข้าถึงเซิร์ฟเวอร์โดยใช้คีย์ส่วนตัวเท่านั้น แต่มีความปลอดภัยสูง เพื่อให้การทำงานนี้คุณต้องสร้างคู่คีย์และเพิ่มคีย์ส่วนตัวนั้นลงในเครื่องระยะไกลและเพิ่มคีย์สาธารณะไปยังเซิร์ฟเวอร์เพื่อให้สามารถเข้าถึงได้โดยใช้คีย์ดังกล่าว
PubkeyAuthentication ใช่
AuthorizedKeysFile .ssh / authorized_keys
RSAAuthentication ใช่
หมายเลข PasswordAuthentication no
การดำเนินการนี้จะปฏิเสธรหัสผ่านและจะอนุญาตให้ผู้ใช้เข้าถึงด้วยคีย์เท่านั้น
ในเครือข่ายแบบมืออาชีพคุณมักจะแจ้งให้ผู้ใช้ของคุณทราบว่าพวกเขาได้รับอนุญาตให้ทำอะไรบ้างรวมถึงข้อมูลที่จำเป็นอื่น ๆ
ไฟล์คอนฟิกูเรชันที่จะแก้ไขสำหรับแบนเนอร์คือ: / etc / motd
เมื่อต้องการเปิดไฟล์ในโปรแกรมแก้ไขให้พิมพ์: nano / etc / motd หรือ sudo / etc / motd
แก้ไขไฟล์เช่นเดียวกับที่คุณทำใน notepad
นอกจากนี้คุณยังสามารถวางแบนเนอร์ในไฟล์และอ้างอิงใน / etc / motd
เช่น: nano banner.txt จะสร้างไฟล์ banner.txt และเปิดโปรแกรมแก้ไขทันที
แก้ไขแบนเนอร์และ ctrl + x / y เพื่อบันทึก จากนั้นให้อ้างอิงไฟล์ motd โดยใช้
แบนเนอร์ /home/users/appualscom/banner.txt หรือว่าเส้นทางของไฟล์คืออะไร
เช่นเดียวกับแบนเนอร์คุณสามารถเพิ่มข้อความก่อนเข้าสู่ระบบได้ด้วยไฟล์สำหรับแก้ไขคือ / etc / issue
SSH Tunneling
SSH Tunneling ช่วยให้คุณสามารถเจาะเส้นทางจากเครื่องท้องถิ่นของคุณไปยังเครื่องระยะไกล มันถูกสร้างขึ้นผ่านทางโปรโตคอล SSH และถูกเข้ารหัส ดูบทความเกี่ยวกับ SSH Tunneling
เซสชันแบบกราฟิกผ่าน SSH Tunnel
เปิดใช้งานเซสชันกราฟิก / gui โดยยกเลิกการติดตั้งบรรทัดต่อไปนี้X11Forwarding ใช่
ในตอนท้ายของลูกค้าคำสั่งจะเป็น:
ssh-X [email protected]
คุณสามารถเรียกใช้โปรแกรมเช่น firefox ฯลฯ โดยใช้คำสั่งง่ายๆ:
Firefox
หากคุณได้รับข้อผิดพลาดในการแสดงผลจากนั้นตั้งที่อยู่:
export DISPLAY = IPaddressofmachine: 0.0
TCP Wrappers
หากคุณต้องการอนุญาตให้โฮสต์ที่เลือกและปฏิเสธข้อมูลบางอย่างไฟล์เหล่านี้คือไฟล์ที่คุณต้องแก้ไข
1. /etc/hosts.allow
2. /etc/hosts.deny
เพื่อให้มีโฮสต์ไม่กี่
sshd: 10.10.10.111
หากต้องการบล็อกทุกคนจาก sshing ในเซิร์ฟเวอร์ของคุณให้เพิ่มบรรทัดต่อไปนี้ใน /etc/hosts.deny
sshd: ALL
SCP - สำเนาที่ปลอดภัย
SCP - สำเนาความปลอดภัยเป็นยูทิลิตีการถ่ายโอนไฟล์ คุณจะต้องใช้คำสั่งต่อไปนี้เพื่อคัดลอก / ถ่ายโอนไฟล์ผ่าน ssh
คำสั่งด้านล่างจะคัดลอก myfile ไปที่ / home / user2 เมื่อ 10.10.10.111
scp / home / user / myfile [email protected]: / home / user2
ไวยากรณ์ปลายทางของแหล่งที่มา scp
การคัดลอกโฟลเดอร์
scp-r / home / user / myfolder [email protected]: / home / user2
การค้นหาไฟล์บนเครื่องระยะไกล
การค้นหาไฟล์บนเครื่องระยะไกลทำได้ง่ายมากและดูผลลัพธ์ในระบบของคุณ หากต้องการค้นหาไฟล์บนเครื่องระยะไกล
ssh [email protected] ค้นหา / home / user -name '* .jpg'คำสั่งจะค้นหาใน / home / user directory สำหรับไฟล์ * .jpg ทั้งหมดคุณสามารถเล่นด้วยได้ find / -name จะค้นหาไดเรกทอรีทั้งหมด / ราก
SSH การรักษาความปลอดภัยเพิ่มเติม
iptables ช่วยให้คุณกำหนดข้อ จำกัด ด้านเวลา คำสั่งด้านล่างจะบล็อกผู้ใช้เป็นเวลา 120 วินาทีหากไม่สามารถตรวจสอบได้ คุณสามารถใช้พารามิเตอร์ / second / hour / minute หรือ / day ในคำสั่งเพื่อระบุช่วงเวลาได้
ขีด จำกัด เวลาiptables -A INPUT -p tcp -m รัฐ -syn -state ใหม่ -dport 22 -m จำกัด -limit 120 / second -limit-burst 1 -j ACCEPT
iptables -A INPUT -p tcp -m state -syn -state ใหม่ -dport 5000 -j DROP
5000 เป็นพอร์ตให้เปลี่ยนตามการตั้งค่าของคุณ
อนุญาตให้มีการตรวจสอบสิทธิ์จาก IP เฉพาะ
iptables -A INPUT-tcp -m state -state NEW -source 10.10.10.111 -dport 22 -j ยอมรับ
คำสั่งที่เป็นประโยชน์อื่น ๆ
แนบหน้าจอผ่าน SSH
ssh -t [email protected] หน้าจอ -r
เช็คความเร็วในการรับส่ง SSH
ใช่ | pv | ssh [email protected] cat> / dev / null
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่