"Linux SSH хандалт Public/Private Keys ашиглах"-ны өөр хувилбарууд
(Хэрэглэгчид 2 дундын хувилбарууд харагдахгүй) | |||
6-р мөр: | 6-р мөр: | ||
Debian (Ubuntu) суурьтай системүүд дээр | Debian (Ubuntu) суурьтай системүүд дээр | ||
− | <pre>sudo apt-get install openssh<pre> | + | <pre>sudo apt-get install openssh</pre> |
RedHat (Centos/Fedora) суурьтай системүүд дээр | RedHat (Centos/Fedora) суурьтай системүүд дээр | ||
− | <pre>sudo yum install | + | <pre>sudo yum install openssh</pre> |
86-р мөр: | 86-р мөр: | ||
'''Стандарт бус портоор хандахдаа:''' | '''Стандарт бус портоор хандахдаа:''' | ||
<pre>ssh -p 25000 username@123.45.67.890</pre> | <pre>ssh -p 25000 username@123.45.67.890</pre> | ||
+ | |||
+ | Мөн ssh холболтыг [[bruteforce халдлага]]ас fail2ban, denyhosts зэрэг хэрэгслүүдийг ашиглан хамгаалж болдог ч энэ нь нэг IP хаягнаас биш [[Botnet сүлжээ]] ашигласан үед хамгаалж чадахгүй болдог. | ||
+ | |||
+ | [[Ангилал:Linux]][[Ангилал:Сисадмин]][[Ангилал:Зааварчилгаа]] |
16:06, 20 Зургаадугаар сар 2015-ий байдлаарх одоогийн засвар
Линукс серверүүд рүү алсаас хандаж удирдахад SSH холболтыг өргөн ашигладаг. Энэ холболт нь нууцлалын шифрлэлттэй хийгддэг холболт юм. Заримдаа ашиглахын тулд сервер дээрээ суулгах шаардлага гардаг.
Гарчиг
Суулгах
Debian (Ubuntu) суурьтай системүүд дээр
sudo apt-get install openssh
RedHat (Centos/Fedora) суурьтай системүүд дээр
sudo yum install openssh
Аюулгүй байдлын зарим нэмэлт тохиргоо
ssh хандалтаар сервер рүү хандахдаа нууц үг ашиглахаас илүүтэйгээр public/private түлхүүр ашиглахаар тохируулах нь аюулгүй байдлын хувьд илүү байдаг. Мөн байнга хэрэглэдэг компьютераасаа нэвтрэх бүртээ нууц үг хийхгүй холбогдох давуу талыг олгодог.
Хэрэглэгчийн компьютер дээр тохиргоо хийх:
~/.ssh хавтсанд хэрэв түлхүүр байхгүй бол дараах тушаалаар шинэ түлхүүр үүсгэж болно.
ssh-keygen -t rsa
Хэдийгээр анхнаасаа хандалтын эрх (permission) тохиргоо нь хийгдсэн байдаг ч мөн та тохируулж болно.
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
Мөн дараах тушаалыг өгөөрэй. "Agent admitted failure to sign using the key" гэсэн алдаа заах үед энэ тушаалыг өгсний дараа хэвийн ажилладаг.
ssh-add
Түлхүүр файлаа сервер рүү хуулна. Зарим системд ssh-copy-id тушаалыг ашиглаад амархан хуулж болдог
ssh-copy-id user@hostname.example.com
Сервер дээр хийгдэх тохиргоо
root эрхээр хандах нь эрсдэлтэй тул шинэ хэрэглэгч үүсгэж шинэ хэрэглэгчээрээ нэвтэрдэг байх хэрэгтэй:
adduser username passwd username
Шинэ хэрэглэгчдээ root хандалтын эрх өгөх:
/usr/sbin/visudo
тушаалаар нээгээд
# User privilege specification root ALL=(ALL) ALL
гэсэн хэсгийг хайж олоод доор нь өөрийн шинэ хэрэглэгчид мөн адил бичиж үүсгэж өгнө.
# User privilege specification root ALL=(ALL) ALL username ALL=(ALL) ALL
id_rsa.pub файлыг компьютераасаа сервер рүүгээ хуулаад хандах хэрэглэгчийнхээ хавтасны .ssh/authorized_keys файл руу нэмж өгнө. (ssh-copy-id ашигласан бол ингэх шаардлагагүй)
cat id_rsa.pub >> ~/.ssh/authorized_keys
SELinux идэвхтэй ашиглаж байгаа бол дараах тушаалыг өгнө:
restorecon -Rv ~/.ssh
/etc/ssh/sshd_config файлд тохиргоо хийж өгнө.
sudo vim /etc/ssh/sshd_config
Жишээ өөрчлөлтүүд:
Port 25000 Protocol 2 PermitRootLogin no UseDNS no
Үндсэн 22-р портыг солих нь аюулгүй байдлыг нэмэгдүүлдэг. Мөн SSH protocol 1 ашиглахгүй байх хэрэгтэй.
Зөвхөн тодорхой хэрэглэгчдийн л хандалтыг зөвшөөрөх тохиргоо хийж өгч болно:
AllowUsers username1 username2гэх мэт
Нууц үгээр нэвтрэхийг бүрэн хориглох, Auth public key ашигладаг болгох зэрэг тохиргоонуудыг мөн энэ файлд хийж өгч болно.
Үүний дараа хадгалж гараад хийсэн тохиргоогоо идэвхжүүлнэ:
service sshd restart
Стандарт бус портоор хандахдаа:
ssh -p 25000 username@123.45.67.890
Мөн ssh холболтыг bruteforce халдлагаас fail2ban, denyhosts зэрэг хэрэгслүүдийг ашиглан хамгаалж болдог ч энэ нь нэг IP хаягнаас биш Botnet сүлжээ ашигласан үед хамгаалж чадахгүй болдог.