ວິທີການຄວາມປອດໄພແລະຄວາມປອດໄພຂອງ OpenSSH Server


ເມື່ອເວົ້າເຖິງການເຂົ້າເຖິງອຸປະກອນຫ່າງໄກສອກຫຼີກເຊັ່ນ server, routers ແລະ switch, ໂປໂຕຄອນ SSH ແມ່ນແນະ ນຳ ໃຫ້ສູງເພາະວ່າຄວາມສາມາດຂອງມັນໃນການເຂົ້າລະຫັດການຈະລາຈອນແລະຫລີກລ້ຽງຜູ້ທີ່ອາດຈະພະຍາຍາມຟັງຢູ່ໃນການເຊື່ອມຕໍ່ຂອງທ່ານ.

ເປັນເຊັ່ນນັ້ນ, ການຕັ້ງຄ່າເລີ່ມຕົ້ນຂອງ SSH ແມ່ນບໍ່ສາມາດຄວບຄຸມໄດ້ແລະມີການປັບແຕ່ງເພີ່ມເຕີມເພື່ອເຮັດໃຫ້ອະນຸສັນຍາມີຄວາມປອດໄພກວ່າ. ໃນຄູ່ມືນີ້, ພວກເຮົາຄົ້ນຫາວິທີທີ່ແຕກຕ່າງກັນທີ່ທ່ານສາມາດໃຊ້ເພື່ອຮັບປະກັນການຕິດຕັ້ງ OpenSSH ທີ່ປອດໄພແລະແຂງໃນເຄື່ອງແມ່ຂ່າຍ.

1. ຕັ້ງ SSH ລະຫັດຜ່ານທີ່ບໍ່ຖືກຕ້ອງ

ໂດຍຄ່າເລີ່ມຕົ້ນ, SSH ຮຽກຮ້ອງໃຫ້ຜູ້ໃຊ້ຕັ້ງລະຫັດຜ່ານຂອງເຂົາເຈົ້າເມື່ອເຂົ້າສູ່ລະບົບ. ເພື່ອໃຫ້ຢູ່ໃນດ້ານທີ່ປອດໄພ, ການ ນຳ ໃຊ້ລະຫັດການກວດສອບຄວາມຖືກຕ້ອງແບບບໍ່ມີລະຫັດຜ່ານຂອງ SSH ແມ່ນຖືກຊຸກຍູ້ຢ່າງສູງ.

ຂັ້ນຕອນ ທຳ ອິດແມ່ນການສ້າງ SSH key-pair ເຊິ່ງປະກອບດ້ວຍຄີລັດແລະຄີສ່ວນຕົວ. ຄີສ່ວນຕົວແມ່ນຢູ່ໃນລະບົບໂຮດຂອງທ່ານໃນຂະນະທີ່ລະຫັດສາທາລະນະຈະຖືກຄັດລອກໄປທີ່ server ຫ່າງໄກສອກຫຼີກ.

ເມື່ອ ສຳ ເນົາສາທາລະນະຖືກ ສຳ ເລັດແລ້ວ, ດຽວນີ້ທ່ານສາມາດ SSH ເຂົ້າໄປທີ່ server ຫ່າງໄກສອກຫຼີກໂດຍບໍ່ ຈຳ ເປັນຕ້ອງໃຫ້ລະຫັດຜ່ານ.

ຂັ້ນຕອນຕໍ່ໄປແມ່ນການປິດການກວດສອບລະຫັດຜ່ານ, ເພື່ອບັນລຸເປົ້າ ໝາຍ ດັ່ງກ່າວ, ທ່ານ ຈຳ ເປັນຕ້ອງດັດແປງເອກະສານການຕັ້ງຄ່າ SSH.

$ sudo vim /etc/ssh/sshd_config

ພາຍໃນເອກະສານການຕັ້ງຄ່າ, ເລື່ອນແລະຊອກຫາ ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້. ຄວາມບໍ່ລົງລອຍກັນແລະປ່ຽນຕົວເລືອກ ແມ່ນແລ້ວ ເປັນ ບໍ່

PasswordAuthentication no

ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນ daemon SSH.

# sudo systemctl restart sshd

ໃນຈຸດນີ້, ທ່ານຈະສາມາດເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍຫ່າງໄກສອກຫຼີກເທົ່ານັ້ນໂດຍໃຊ້ລະຫັດການກວດສອບລະຫັດ SSH.

2. ປິດການຮ້ອງຂໍການເຊື່ອມຕໍ່ແບບບໍ່ມີລະຫັດ SSH ຂອງຜູ້ໃຊ້

ອີກວິທີ ໜຶ່ງ ທີ່ແນະ ນຳ ໃນການເພີ່ມຄວາມປອດໄພໃຫ້ກັບ server ຂອງທ່ານແມ່ນການປິດການເຂົ້າໃຊ້ SSH ຈາກຜູ້ໃຊ້ໂດຍບໍ່ຕ້ອງໃຊ້ລະຫັດຜ່ານ. ນີ້ຟັງຄືວ່າແປກແຕ່ບາງຄັ້ງຜູ້ບໍລິຫານລະບົບສາມາດສ້າງບັນຊີຜູ້ໃຊ້ແລະລືມການມອບ ໝາຍ ລະຫັດຜ່ານ - ເຊິ່ງເປັນຄວາມຄິດທີ່ບໍ່ດີ.

ເພື່ອປະຕິເສດ ຄຳ ຮ້ອງຂໍຈາກຜູ້ໃຊ້ໂດຍບໍ່ມີລະຫັດຜ່ານ, ອີກເທື່ອ ໜຶ່ງ, ໃຫ້ຂ້າມໄປຫາເອກະສານການຕັ້ງຄ່າທີ່ /etc/ssh/sshd_config ແລະຮັບປະກັນວ່າທ່ານມີທິດທາງຂ້າງລຸ່ມນີ້:

PermitEmptyPasswords no

ຫຼັງຈາກນັ້ນ, ໃຫ້ບໍລິການ SSH ຄືນ ໃໝ່ ເພື່ອການປ່ຽນແປງຈະມີຜົນ.

$ sudo systemctl restart sshd

3. ປິດການ ນຳ ໃຊ້ລະບົບຮາກຖານ SSH

ມັນບໍ່ມີຄວາມຄິດຫຍັງເລີຍທີ່ສາມາດເກີດຂື້ນໄດ້ຖ້າແຮກເກີຄວບຄຸມການໃຊ້ລະຫັດລັບຂອງທ່ານ. ການອະນຸຍາດໃຫ້ເຂົ້າສູ່ລະບົບຮາກຫ່າງໄກສອກຫຼີກແມ່ນຄວາມຄິດທີ່ບໍ່ດີເຊິ່ງອາດຈະເປັນຜົນກະທົບຕໍ່ຄວາມປອດໄພຂອງລະບົບຂອງທ່ານ.

ດ້ວຍເຫດຜົນນີ້, ຂໍແນະ ນຳ ໃຫ້ທ່ານປິດການເຂົ້າໃຊ້ລະບົບເຂົ້າສູ່ລະບົບຫ່າງໄກສອກຫຼີກຂອງ SSH ແລະແທນທີ່ຈະເປັນຜູ້ ນຳ ໃຊ້ທີ່ບໍ່ມີຮາກ. ອີກເທື່ອ ໜຶ່ງ, ໃຫ້ຂ້າມໄປຫາເອກະສານການຕັ້ງຄ່າແລະດັດແປງເສັ້ນນີ້ຕາມທີ່ສະແດງ.

PermitRootLogin no

ເມື່ອທ່ານເຮັດ ສຳ ເລັດແລ້ວ, ໃຫ້ບໍລິການ SSH ຄືນ ໃໝ່ ເພື່ອການປ່ຽນແປງຈະມີຜົນ.

$ sudo systemctl restart sshd

ຈາກນີ້, ການເຂົ້າສູ່ລະບົບຮາກຫ່າງໄກສອກຫຼີກຈະຖືກປິດການ ນຳ ໃຊ້.

4. ໃຊ້ SSH Protocol 2

SSH ແມ່ນມາໃນສອງຮຸ່ນ: SSH ອະນຸສັນຍາ 1 ແລະໂປໂຕຄອນ 2. ໂປແກຼມ SSH 2 ຖືກ ນຳ ສະ ເໜີ ໃນປີ 2006 ແລະມີຄວາມປອດໄພກ່ວາໂປໂຕຄອນທີ 1 ຍ້ອນການກວດສອບລະຫັດລັບທີ່ເຂັ້ມແຂງ, ການເຂົ້າລະຫັດສ່ວນຫຼາຍແລະສູດການຄິດໄລ່ທີ່ເຂັ້ມແຂງ.

ໂດຍຄ່າເລີ່ມຕົ້ນ, SSH ໃຊ້ໂປໂຕຄອນ 1.

Protocol 2

ດັ່ງທີ່ເຄີຍເຮັດ, ໃຫ້ເລີ່ມ SSH ໃໝ່ ເພື່ອການປ່ຽນແປງຈະມີຜົນບັງຄັບໃຊ້.

$ sudo systemctl restart sshd

ກ້າວໄປຂ້າງ ໜ້າ, SSH ຈະໃຊ້ Protocol 2 ໂດຍຄ່າເລີ່ມຕົ້ນ.

ເພື່ອທົດສອບວ່າໂປແກຼມ SSH ອະນຸສັນຍາ 1 ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ຫຍັງອີກ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງ:

$ ssh -1 [email 

ທ່ານຈະໄດ້ຮັບຂໍ້ຜິດພາດທີ່ອ່ານວ່າ“ v.1 ອະນຸສັນຍາ SSH ບໍ່ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ອີກຕໍ່ໄປ”.

ໃນກໍລະນີນີ້, ຄຳ ສັ່ງແມ່ນ:

$ ssh -1 [email 

ນອກຈາກນັ້ນ, ທ່ານພຽງແຕ່ສາມາດລະບຸໂຄດ -2 ພຽງແຕ່ເພື່ອໃຫ້ແນ່ໃຈວ່າໂປໂຕຄອນ 2 ແມ່ນໂປໂຕຄອນເລີ່ມຕົ້ນໃນການ ນຳ ໃຊ້.

$ ssh -2 [email 

5. ຕັ້ງຄ່າຄ່າໃຊ້ຈ່າຍບໍ່ເຮັດວຽກຂອງ SSH Connection Timeout Idle

ການປ່ອຍໃຫ້ຄອມພິວເຕີຂອງທ່ານບໍ່ໄດ້ຮັບການເບິ່ງແຍງເປັນເວລາດົນໂດຍການເຊື່ອມຕໍ່ SSH ບໍ່ສາມາດເຮັດໃຫ້ເກີດຄວາມສ່ຽງດ້ານຄວາມປອດໄພ. ບາງຄົນພຽງແຕ່ສາມາດຜ່ານແລະເຂົ້າຮັບ ໜ້າ ທີ່ SSH ຂອງທ່ານແລະເຮັດໃນສິ່ງທີ່ພວກເຂົາພໍໃຈ. ເພື່ອແກ້ໄຂບັນຫາດັ່ງກ່າວ, ມັນຄວນຈະລະມັດລະວັງໃນການ ກຳ ນົດເວລາບໍ່ເຮັດວຽກເຊິ່ງເມື່ອເກີນ ກຳ ນົດ, ກອງປະຊຸມ SSH ຈະຖືກປິດ.

ອີກເທື່ອ ໜຶ່ງ, ເປີດເອກະສານການຕັ້ງຄ່າ SSH ຂອງທ່ານແລະຊອກຫາ ຄຳ ສັ່ງທີ່ວ່າ“ ClientAliveInterval”. ໃຫ້ຄ່າທີ່ສົມເຫດສົມຜົນ, ຍົກຕົວຢ່າງ, ຂ້ອຍໄດ້ ກຳ ນົດຂອບເຂດເຖິງ 180 ວິນາທີ.

ClientAliveInterval 180

ນີ້ ໝາຍ ຄວາມວ່າກອງປະຊຸມ SSH ຈະຖືກລຸດລົງຖ້າບໍ່ມີກິດຈະ ກຳ ລົງທະບຽນຫຼັງຈາກ 3 ນາທີເຊິ່ງເທົ່າກັບ 180 ວິນາທີ.

ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນ daemon SSH ເພື່ອໃຫ້ມີການປ່ຽນແປງ.

$ sudo systemctl restart sshd

6. ຈຳ ກັດການເຂົ້າເຖິງ SSH ສຳ ລັບຜູ້ໃຊ້ບາງຄົນ

ສຳ ລັບຊັ້ນຄວາມປອດໄພທີ່ເພີ່ມເຂົ້າມາ, ທ່ານສາມາດ ກຳ ນົດຜູ້ໃຊ້ທີ່ຕ້ອງການໂປໂຕຄອນ SSH ເຂົ້າສູ່ລະບົບແລະປະຕິບັດວຽກງານຫ່າງໄກສອກຫຼີກໃນລະບົບ. ສິ່ງນີ້ຈະເຮັດໃຫ້ຜູ້ໃຊ້ອື່ນໃດທີ່ເຂົ້າໄປໃນລະບົບຂອງທ່ານໂດຍບໍ່ໄດ້ຮັບການອະນຸມັດຈາກທ່ານ.

ດັ່ງທີ່ເຄີຍເຮັດ, ເປີດເອກະສານການຕັ້ງຄ່າແລະຕື່ມໃສ່ ຄຳ ສັ່ງ“ AllowUsers” ຕາມດ້ວຍຊື່ຂອງຜູ້ໃຊ້ທີ່ທ່ານຕ້ອງການໃຫ້. ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ຂ້ອຍໄດ້ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ 'tecmint' ແລະ 'james' ມີການເຂົ້າເຖິງລະບົບຫ່າງໄກສອກຫຼີກຜ່ານທາງ SSH. ຜູ້ໃຊ້ອື່ນໆທີ່ພະຍາຍາມທີ່ຈະເຂົ້າເຖິງໄລຍະໄກຈະຖືກບລັອກ.

AllowUsers tecmint james

ຫລັງຈາກນັ້ນເລີ່ມ SSH ຄືນ ໃໝ່ ສຳ ລັບການປ່ຽນແປງທີ່ຈະຄົງຕົວ.

$ sudo systemctl restart sshd

7. ກຳ ນົດຂອບເຂດ ຈຳ ກັດ ສຳ ລັບການພະຍາຍາມລະຫັດຜ່ານ

ອີກວິທີ ໜຶ່ງ ທີ່ທ່ານສາມາດເພີ່ມລະດັບຄວາມປອດໄພແມ່ນໂດຍການ ຈຳ ກັດ ຈຳ ນວນການເຂົ້າສູ່ລະບົບ SSH ເຊັ່ນວ່າຫຼັງຈາກຄວາມພະຍາຍາມລົ້ມເຫລວ ຈຳ ນວນ ໜຶ່ງ, ການເຊື່ອມຕໍ່ຈະລຸດລົງ. ດັ່ງນັ້ນອີກເທື່ອ ໜຶ່ງ ທີ່ທ່ານ ກຳ ລັງຊອກຫາເອກະສານການຕັ້ງຄ່າແລະຊອກຫາ ຄຳ ສັ່ງ“ MaxAuthTries” ແລະ ກຳ ນົດຄ່າ ສຳ ລັບຄວາມພະຍາຍາມສູງສຸດ.

ໃນຕົວຢ່າງນີ້, ຂີດ ຈຳ ກັດໄດ້ຖືກ ກຳ ນົດເປັນ 3 ຄວາມພະຍາຍາມດັ່ງທີ່ສະແດງໄວ້.

MaxAuthTries 3

ແລະສຸດທ້າຍກໍ່ເລີ່ມໃຫ້ບໍລິການ SSH ຄືກັບສະຖານະການກ່ອນ ໜ້າ ນີ້.

ທ່ານຍັງອາດຈະເຫັນບົດຄວາມທີ່ກ່ຽວຂ້ອງກັບ SSH ຕໍ່ໄປນີ້ທີ່ເປັນປະໂຫຍດ:

  • ວິທີການຕິດຕັ້ງ OpenSSH 8.0 Server ຈາກແຫຼ່ງຂໍ້ມູນໃນ Linux
  • ວິທີການຕິດຕັ້ງ Fail2Ban ເພື່ອປົກປ້ອງ SSH ໃນ CentOS/RHEL 8
  • ວິທີການປ່ຽນ Port SSH ໃນ Linux
  • ວິທີການສ້າງອຸໂມງ SSH ຫຼືການສົ່ງຕໍ່ Port ໃນ Linux
  • 4 ວິທີການເລັ່ງການເຊື່ອມຕໍ່ SSH ໃນ Linux
  • ວິທີການຊອກຫາຄວາມພະຍາຍາມເຂົ້າສູ່ລະບົບ SSH ທີ່ລົ້ມເຫລວໃນ Linux
  • ວິທີການຕັດການເຊື່ອມຕໍ່ທີ່ບໍ່ມີປະສິດຕິພາບຫຼືບໍ່ເຮັດວຽກ SSH ໃນ Linux

ນັ້ນແມ່ນບັນດາມາດຕະການທີ່ທ່ານສາມາດປະຕິບັດໄດ້ເພື່ອຮັບປະກັນການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກ SSH ຂອງທ່ານ. ມັນເປັນສິ່ງ ສຳ ຄັນທີ່ຈະຕື່ມວ່າທ່ານຄວນຕັ້ງລະຫັດຜ່ານທີ່ເຂັ້ມແຂງໃຫ້ກັບຜູ້ໃຊ້ທີ່ມີການເຂົ້າເຖິງຫ່າງໄກສອກຫຼີກໃນການໂຈມຕີດ້ວຍແຮງ. ພວກເຮົາຫວັງວ່າທ່ານໄດ້ພົບຄູ່ມືແນະ ນຳ ນີ້ຢ່າງເລິກເຊິ່ງ. ຄຳ ຕິຊົມຂອງທ່ານຍິນດີຕ້ອນຮັບຫຼາຍ.