2007-06-11

Secure Shell Protocol-гэн үү?

Би ягаад энэ талаар бичих болсон бэ? гэхээр өнөөдөр сүлжээгээр дамжуулан мэдээлэл солилцоход уг дамжуулж байгаа мэдээлэл маань ямар нэг алдаагүй очих газраа очих ёстой байдаг.Тэгэхээр үүнд ямар нэгэн зүйл туслах нь зайлшгүй хэрэг юм. Миний энэхүү тавиж байгаа мэдээлэл маань SSH-н талаар бөгөөд үүнийг Лхагваа гэдэг найз маань орчуулсан юмлдаа. Өөрийнх нь зөвшөөрсөний дагуу хэн нэгэнд нь хэрэг болох болов гэсэн үүднээс тавьлаа. Алдаа мадаг байвал уучилж бас хэлэх юм байвал зөвлөнө гэж найдаж байна.

Secure Shell Protocol or SSH

Тооцоолох машинд, алсын болон дотоод компьютерийн хооронд хамгаалалтын шугамын гол үндэс нь network protocol-той хамтаран ажиллдаг ssh (secure shell protocol) юм. Жинхэнэ хэрэглэгч нь алсын компюьтераа сонгон өөрөө л мэдэх нууц кодыг ашигладаг. SSH протокол нь мэдээлэлийн үнэмлэх код (message authentication codes-MACs) ба хоёр компьютерийн хоорондох шифр буюу нууцлал ба өгөглийн бүрэн бүтэн байдлыг хангадаг. SSH нь ердийн үедээ алсын компьютеруудын командуудыг шалгаж байдаг, гэвч бас хонгилыг(tunnel) дэмжиж байдаг ба TCP порт ба Х11 холболтуудаар илгээдэг. Файлуудыг дамжуулахдаа SFTP эсвэл SCP протоколуудтай хамтран ажиллдаг. SSH сервер нь ажиллаагүй байхдаа TCP 22-р портыг чагнаж байдаг. SSH – н хэрэглээний програм нь ердийн үедээ алсын холболтуудыг элсүүлэн өөртөө нэгтгэж байдаг.
Ерөнхийдөө одоо үед Unix-н тархац системүүдэд, SSH-н орчин үеийн unix-н системүүдэд маш сайн хэрэгжинэ хөгжиж байна. Үүнд: Sun OS, Mac OS, Linux-based түгээлтүүд, Microsoft Windows, BSD operating systems (including Mac OS X), and OpenVMS. үнэтэй, үнэгүй хувилбаруудын зарим нэг түвшингүүдэд бүрэн дүүрэн хэрэгжиж байна.

SSH-н түүх

1995 онд Тату Юлонэн, Финланд-н “Helsinki” технологийн их сургуулийн судлаач протоколийн анхны хувилбарийг загварчилж(одоо дуудагдаж байгаа SSH-1) өөрийн сургуулийн сүлжээний пасспортыг шинжлэхийг хатгаж сүлжээрүү довтолсон.Өөр хостоос тухайн сүлжээрүү нэвртэх нь түүний зорилго байсан ба TELNET ба rsh протоколууд нь гадны халдлагаас урьдаас баталгаа өгч хамгаалж чадахгүй байлаа. Юлонэн өөрийн хамгаалалтаа үнэгүй суулгаж, түүний үнэгүй хамгаалалтын биелэлт нь 1995 оны 7 сард гэхэд түүний багаж маш түргэн хурдтай нэрд гарч байв. 1995 оны эцэст гэхэд SSH хэрэглэгч нар 50 оронд 20000-р өсчээ.
1995-12 сард Юлонэн “SSH харилцаа холбооны нууцлалын” зах зээл ба SSH хөгжүүлэлтийн үндэсийг тавьсан. SSH-н програмын оргинал хувилбар нь free software-д ашиглагдаж, GNU libgmp, гэвч дараагийн хувилбарууд нь лиценцтэй болсон нь SSH харилцаа холбооны нууцлал нь хөгжил нь улам бүр өмчтөний програмруу талруу орсон. SSH харилцаа холбооны нууцлал нь дараа дараагийнх нь лиценц-г SSH F-secure-д(formerly known as Data Fellows), WRQ-д зарсан нь түүний зах зээл дээрх нэрэнд хар толбо үлдээсэн юм. SSH харилцаа холбооны нуудлалд Америкийн Калифорн-н Пауло Алто тусламж үзүүлсэн.
1996 онд тухайн протоколд засвар хийж
SSH-2-г загварчилсан. SSH-1 SSH-2 хоорондоо нийцдэггүй. SSH-2 нь ирээдүйн харилцаан холбооны нууцлалыг сайжруулах ба SSH-1 төгсгөл ирсэн. Илүү хамгаалалт, дээр жишээ, Diffie-Hellman кодыг өөрчилсөн ба бүхэл бүтэн МАСs-г шалгадаг болсон нь хүчилхэгжүүлсэн. SSH-2-н шинэ ирээдүй нь бүрхүүлийн ангийн тоонуудыг ажиллуулах чадвартай болсон ба энэ нь ганцаараа шууд холбогддог болсон.
1999 он, хөгжүүлэгчдийн хүсэж байсан зүйл нь хүчинтэй байгаа Free software 1,2,12-г лиценцлэх явдал байсан, дараа нь open source-д лиценцэлсэн юм. Björn Grönvall's нь дараа дараагийн хөгжүүлэлтийн кодыг үндэслэгч. Цөөн үгээр хэлхэд түүнээс хойш, OPENBSD хөгжүүлүэгчид хуваагдсан, Björn's code ба OPENBSD гэж. Björn's code нь OPENSSH-г хийсэн ба энэ нь OPENBSD 2,6-с эхлэн 2 хуваагдан хөгжсөн. Энэ хувилбар нь авсаархан салбарлсан ба OPENSHH ба бусад үйлчилгээний системүүд.
2000 он гэхэд ойролцоогоор 2,000,000 SSH хэрэглэгчидтэй болсон.
2005 он гэхэд OpenSSh маш алдаршсан ба хэрэглэгчид нь маш том тоогоор хэмжэгдэх болсон. 2006 онд
SSH-2 нь Internet standart-д орсон.

SSH-г ашиглах

SSH-тай хэрэглэгч нь төгсгөлийн протоколыг дэмжин ажилдаг, SSH-тай компьютертай алсын админ нь төгсглөийн via-р удирдан (өөр толгойгүй серверийг ашигладаг).
SFTP хослолоор, нууцлалын FTP-г сонгон суулгана, public key дэд бүтэц болон X.509 certificates-гүйгээр өшөө амархан ашиглана.
Нөөц rsync-тай хослол, хуулах ба толин файл үүсгэх болон хамгаалалттай.
SCP-тай хослол, хамгаалалтын rcp файлыг сонгон дамжуулах- энэ нь маш их UNIX-д ашиглагддаг.

Портоор дамжуулах эсвэл туннелээр, дахин дахин VPN сонгон бэлэн болдог. Энэ төрлийг ашиглахдаа (хамгаалалтгүй), SSH (хэрэглэгч эсвэл сервер) програм TCP/IP холболтын гадаад хавтасруу дахин чиглүүлж өгнө. SSH-н бусад бүлгийг дамжуулна(хэрэглэгч эсвэл сервер), дараа нь дараалалаараа хүссэн тодорхойлогдсон хоструугаа илгээгдэнэ. Илгээгдэх үед зөвхөн SSH хэрэглэгч болон серверийн хооронд нууцлалтай болон хамгаалалтай зам үүснэ. SSH дамжуулалтын портыг ашиглах үед database servers, email servers, securing X11, Windows Remote Desktop and VNC хандалтын холболтууд багтсан байдаг ба эсвэл энэтэй тэнцхүүц Windows file shares ашиглан дамжуулдаг. Энэ нь гол ашиглалт нь firewall-тай үед туннелэн холболт хийж холбогдоход хэрэглэгддэг ба нууцлалтай протоколд зориулагдсан байдаг ба энэ нь ердийн нууцлалтай биш байдаг. (VNC г.м)

SSH ба rdesktop. 3-н компьютер байх ба SSH ба rdesktop ажиллаж байна. 1 компьютер алсын сүлжээг хандалт хийж олж авахад ашиглагдах ба сүүлд нь чиний хүссэн rdesktop-г дэлгэцэнд гаргана. "ssh -L3389:<компьютерийн нэрийг> :3389 <компьютерийн алсын сүлжээндэх хандалтыг>". Дундах компьютер юу ч хийхгүй хэвийн байдалд байна. Эхний компьютер SSH-г ажиллуулан өөр нэг бүрхүүлийг нээх ба rdesktop төрөл нь дотоод сүлжээнийх байна.

Заримдаа чиний дотоод сүлжээрүү ямар нэгэн машин холбогддог, дараа нь өөр нэгэн машин хобогддог, ба Х маягтийг ажилуулж(xterm, matlab гэх мэт),

, тэдгээр нь чиний сүлжээнээс ажиллуулдаг. Энэ нь ялангуяа ямар нэгэн хэрэглэгчийн хостоос Х маягтийг ажиллуулан ашигладаг. Гэвч өөр сүлжээнээс холбогдохын тулд галт ханыг ssh –р нэвтлэн орох хэрэгтэй. Гол нь, чи ямар нэгэн сүлжээрүү цуваа зам үүсгэхийг хүсч байвал Х- цонхыг суулгах хэрэгтэй. Хамгийн сайн замыг үүсгэн ашиглахын тулд ssh-н ирээдүйн дамжуулалт Х11 юм. UNIX/Linux-д зориулсан, Х11 дамжуулалтад Х-option хэрэг болдог. ssh -X host.com

Х11 дамжуулалт нь олон тооны хостоор дамжигддаг ssh--X hostA.com --> ssh -X hostB.com --> ssh -X hostC.com туннелийг үүсгэдэг ба энэ нь алхам бүрдээ хэрэгждэг ВàC гэх мэтээр. Энэ нь гүйцэтгэхэд хангалтгүй бол Y-ч хэрэг болж магадгүй. ssh -X -Y hostA.com --> ssh -X -Y hostB.com --> ssh -X -Y hostC.com

SSH –тэй хэрэглэгч нь динамикийг дэмжин портоор дамжуулалт хийж ажилдаг(бусад програмууд SOCKS or HTTP –р proxy interface-тэй холбогдон дамжуулдаг ). SSH нь ерөнхийдөө proxy-д холбогдон web-ээ нууцлан ажиллдаг ба SSh нь proxy server-г ашигладаг.

SSH-тэй хэрэглэгч нь SSH-н хүсэлтийг харгалздаг(бусад програмуудыг гуйн ажиллдаг, жиш: network monitoring програм), network monitoring-н тусламжтайгаар автоматаар алсын серверийг удирдан хяндаг.

SSH-н зохион байгуулалт

Ssh-2-н дотоод зохион байгуулалт нь тусдаа түвшингүүдээс тогтдог. Эдгээр нь:

The transport layer (RFC 4253). Энэ түвшин нь гар удирдлаган дотоод түлхүүрийг солидог ба server –н нууцлалыг бас нууцлалыг суулгадаг, энэ нь өгөгдлийг шахах ба цэвэр байдлыг хангах баталгаа болж өгдөг. Нууц задлах дээд түвшиний интерфэйсд зориулан явуулах ба хүлээн авах нууц бичгэн пакетууд нь тус бүрдээ 32,768 byte-с тогтдог. Транспорт түвшин нь өгөгдлийг нууцлахад бэлтгэдэг ба өгөгдлийг голдуу 1 GB дамжуулсаны дараа юм уу 1 цагийн дараа түлхүүр-г солидог.

The user authentication layer (RFC 4252).Энэ түвшин нь хэрэглэгчийн(зохиогч) эрхийг удирддаг ба эрхийн функцийг хангах тоонуудыг агуулдаг. Жинхэнэ хэрэглэгч бол удирдах ба факт баримт нь ерөнхийдөө хэрэглэгчдийн буруу ойлголт: пасспортоо задлахад, энэ магадгүй SSH хэрэглэгчийн нууц задардаг, серверийнх ердөө ч биш. Сервер нь зөвхөн эх хэрэглэгчийн хүсэлтийг буцаана. Маш олон хэрэглэгчид дараах функцийг агуулгыг дагдаг.

Пасспорт: функц нь эх хэрэглэгчийн пасс-д зориулагдан агуулдаг ба пасс-г өөрчилдөг. Энэ функц нь бүх програмдуудад гүйцэтгэгдэхгүй.

publickey: функц нь эх хэрэглэгчид үндэслэгдсэн publickey-д зориулагдсан, голдуу DSA эсвэл RSA хосолсон түлхүүрүүдийн жагсаалтыг дэмждэг ба бусадтай нь ч хамтардаг ба Х,509 сертифкатыг дэмждэг.

keyboard-interactive (RFC 4256): олон талын серверын хаанаас нэг эсвэл олон мэдээлэл илгээдэг ба хэрэглэгчийн дэлгэц дээр илгээгдэх түлхүүр үгийг шаарддаг. Эх хэрэглэгчидэд (зохоигч нь) нэг хэсэг хугацааны пасспортоор хангаж өгдөг ба энэ нь дараах 2 юм. S/Key or SecurID.

Зарим Open SSh нь янз бүрийн хэлбэр дүрстэй пасспортоор хэрэглэгчийг хангадаг(жиш: PAM – энэ нь доогуураа зураастай эффиктэй пасспорт). Заримдаа удирдлагын болгоомжгүй байдлаас болж амархан хялбархан пасспортоор эх хэрэглэгчийн функцийг хангаж өгдөг.

GSSAPI эх хэрэглэгчийн функц нь нээлттэй төлөвлөгөөг дэмждэг, энэ нь SSH эх хэрэглэгч нь гадаад механизимуудыг ашигладаг. Эдгээр нь Kerberos 5 or NTLM, SSH –н хурал чуулганаар ганцаарчилсан гарын үсэг зурахыг дэмждэг. Энэ функц нь голдуу худалдааны байгууллагуудад ашиглагддаг. Хэдий тиймч Open Ssh нь GSSAPI-р гүйцэтгэгддэг.

The connection layer (RFC 4254). Энэ түвшин нь ерөнхий сувгуудыг тодорхойлдог. SSH сервисүүд сувгыг гуйх ба global гуйн ашигладаг. Ганц SSH-тэй холбогдоход олон тооны хэрэглэгч зэрэгцээ сувгуудаар холбогдож болно. Тус тусдаа өгөгдлийг удирдан дамжуулж болно. Онцгой өгөгдлийг өөр өөр сувгаар дамжуулдаг. Хэмжээг өөрчилхөд terminal window эсвэл гарах кодыг сервер талын процессороор ашиглан өөр өөр сувгаар дамжуулна. SSH хэрэглэгчийн хүсэлт нь хэрэглэгчийн сервер талын портоор дамжин global-д хүсэлт тавидаг. Стандарт суваг нь дараах төрлүүдтэй:

"shell" for terminal shells, SFTP and exec requests (including SCP transfers)

"direct-tcpip" for client-to-server forwarded connections

"forwarded-tcpip" for server-to-client forwarded connections

This open architecture provides considerable flexibility, allowing SSH to be used for a variety of purposes beyond secure shell. The functionality of the transport layer alone is comparable to TLS; the user authentication layer is highly extensible with custom authentication methods; and the connection layer provides the ability to multiplex many secondary sessions into a single SSH connection, a feature comparable to BEEP and not available in TLS.

Шифрлэлт /Cryptography /

Хамгаалалтын сайн арга гэдэг бол бололцоотой газар бүрт шифрлэх хэрэгтэй болдог. Сайн хамгаалагдсан үйлдлийн системд нь хэрэглэгчээс мөн үүнийг мэдлэгтэй ашиглахыг шаарддаг. Иймээс шифрлэлтийн програмууд хэрэгцээтэй болдог. Openssh нь интернетээр дамжин нууцлалтайгаар холбогдох, файл солилцох боломж юм. Санамсаргүй дугаар үүсгэгч системд процессын дугаар олгохоос эхлээд нууц үг үүсгэхэд хүртэл олон процесст хэрэглэгддэг.

String hash буюу мөр хуваах хувиргалт нь MD5 төрлийн хуваалтууд, S/K нууц үг болон бусад хуваалтанд хэрэглэгддэг. Шифрлэлтийн системийн анхны DES схемийг хэрэглэгч болон системийн нууц үгийн илүү найдвартай хамгаалах Blowfish схемээр сольсон юм. OpenBSD олон төрлийн шифрлэлтийн тоног төхөөрөмжтэй ажиллаж чаддаг.

Одоо ингээд OpenSSH-н талаар мэдлэгтэй болсон бол хэрхэн ажилуулах талаар доор дурьдсан буй.

OpenSSH

Хувь нэмэр болгон оруулсан Шерн Ли.

OpenSSH нь алсын машинуудад аюулгүйгээр хандах сүлжээний холболтын хэрэгслүүдийн олонлог юм. rlogin, rsh, rcp, болон telnet-ийг энэ програмаар шууд орлуулан ашиглаж болно. Мөн TCP/IP холболтууд аюулгүйгээр SSH-ээр туннел хийгдэж/дамжуулагдаж болдог. OpenSSH нь сэм чагналт, холболт булаан авалт, болон бусад сүлжээний түвшний халдлагуудыг үр дүнтэйгээр устгаж бүх трафикийг шифрлэдэг.

OpenSSH-г OpenBSD төсөл дэмжиж байдаг бөгөөд бүх сүүлийн үеийн алдааны засварууд болон шинэчлэлтүүд бүхий SSH v1.2.12 дээр тулгуурласан байдаг. Энэ програм нь SSH протокол 1 болон 2-той хоюулантай нь нийцтэй.

OpenSSH-ийг ашиглах давуу тал

telnet(1) эсвэл rlogin(1) ашиглаж байх үед сүлжээгээр илгээгдэж байгаа өгөгдөл цэвэр, шифрлэгдээгүй хэлбэрээр байдаг. Сүлжээний шиншлэгчид клиент болон серверийн хооронд хаана ч байсан гэсэн таны хэрэглэгч/нууц үгийн мэдээлэл эсвэл таны сессээр дамжсан өгөгдлийг хулгайлж чадна. OpenSSH нь ийм асуудлаас хамгаалж төрөл бүрийн нэвтрэлт таних болон шифрлэх аргуудыг санал болгодог.

sshd-г идэвхжүүлэх

sshd нь стандарт FreeBSD суулгацын явцад харуулагдах тохируулга юм. sshd идэвхжсэн эсэхийг харахдаа rc.conf файлаас дараах мөрийг шалгаарай:

sshd_enable="YES"

Энэ нь дараагийн удаа таны систем эхлэхэд OpenSSH-д зориулсан sshd(8) демон програмыг дуудна. Мөн /etc/rc.d/sshd rc(8) скрипт ашиглан OpenSSH-г эхлүүлэх боломжтой байдаг:

/etc/rc.d/sshd start

SSH клиент

ssh(1) хэрэгсэл rlogin(1)-тэй адил ажилладаг.

# ssh user@example.com

Host key not found from the list of known hosts.

Are you sure you want to continue connecting (yes/no)? yes

Host 'example.com' added to the list of known hosts.

user@example.com's password: *******

Нэвтрэлт нь rlogin эсвэл telnet ашиглан үүсгэгдсэн сесс шиг үргэлжлэх болно. SSH нь хэрэглэгч холбогдоход серверийн жинхэнэ эсэхийг шалгахын тулд түлхүүр хээ шалгах системийг хэрэглэдэг. Хэрэглэгч зөвхөн эхний удаа холбогдоход yes гэж оруулахыг шаардана. Дараа дараагийн нэвтрэлт оролдлогууд бүгд хадгалсан хээ шалгах түлхүүртэй харьцуулагдан шалгагддаг. Хэрэв хадгалсан хээ нь дараа дараагийн нэвтрэлтийн оролдлогуудаас хүлээн авсан хээнээс өөр бол SSH клиент нь танд түгшүүр өгнө. Хээнүүд ~/.ssh/known_hosts файлд эсвэл SSH v2-ийн хээнүүд ~/.ssh/known_hosts2 файлд хадгалагдана.

Анхдагчаар OpenSSH серверүүдийн сүүлийн үеийн хувилбарууд зөвхөн SSH v2 холболтуудыг хүлээн авдаг. Клиент нь хэрэв боломжтой бол 2-р хувилбарыг ашиглах бөгөөд боломжгүй бол 1-р хувилбарыг ашигладаг. -1 эсвэл -2 тохируулгуудыг 1-р эсвэл 2-р хувилбаруудад зориулан дамжуулан клиентэд зөвхөн аль нэгийг ашиглахыг хүчилж болно. 1-р хувилбарын нийцтэй байдал нь клиентэд хуучин хувилбаруудтай нийцтэй байх зорилгоор дэмжигдсэн байдаг.

Аюулгүй хуулбарлалт

scp(1) тушаал rcp(1)-тэй адил ажилладаг; энэ нь файлыг алсын машинаас эсвэл машин уруу, ялгаатай нь аюулгүйгээр хуулдаг.

# scp user@example.com:/COPYRIGHT COPYRIGHT

user@example.com's password: *******

COPYRIGHT 100% |*****************************| 4735

00:00

#

Өмнөх жишээн дээр энэ хостын хувьд хээ нь аль хэдийн хадгалагдсан болохоор scp(1)-ийг энд ашиглах үед шалгагддаг.

scp(1)-ээр дамжуулсан нэмэлт өгөгдлүүд нь cp(1)-тэй адил бөгөөд эхний нэмэлт өгөгдөлд файл эсвэл файлууд, хоёр дахь дээр очих файлыг зааж өгдөг. Файл нь сүлжээгээр SSH-ээр татагддаг болохоор файлын нэг эсвэл хэд хэдэн нэмэлт өгөгдлүүд user@host: хэлбэрийг авдаг.

Тохиргоо

OpenSSH демон болон клиентийн системийн дагуух тохиргооны файлууд /etc/ssh санд байрладаг.

ssh_config клиентийн тохируулгуудыг тохируулдаг бөгөөд sshd_config нь демоныг тохируулдаг.

Мөн sshd_program (анхдагчаар /usr/sbin/sshd) болон sshd_flags rc.conf тохируулгууд тохиргооны түвшнүүдийг илүүтэйгээр хангадаг.

ssh-keygen

Нууц үгүүдийг ашиглахын оронд ssh-keygen(1) нь хэрэглэгчийг шалгаж танихад DSA эсвэл RSA түлхүүрүүдийг үүсгэхэд хэрэглэгдэж болно:

% ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_dsa):

Created directory '/home/user/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/user/.ssh/id_dsa.

Your public key has been saved in /home/user/.ssh/id_dsa.pub.

The key fingerprint is:

bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com

ssh-keygen(1) нь шалгаж танихад хэрэглэгдэх нийтийн болон хувийн түлхүүр хослолыг үүсгэнэ. Хувийн түлхүүр ~/.ssh/id_dsa эсвэл ~/.ssh/id_rsa-д хадгалагдах бөгөөд харин нийтийн түлхүүр нь ~/.ssh/id_dsa.pub эсвэл ~/.ssh/id_rsa.pub-д DSA болон RSA түлхүүрийн төрлүүдэд зориулагдан хадгалагддаг. Тохируулга нь ажиллахын тулд нийтийн түлхүүр нь алсын машины ~/.ssh/authorized_keys файлд хийгдэх ёстой байдаг. Үүнтэй адилаар нийтийн түлхүүрүүдийн RSA хувилбар нь ~/.ssh/authorized_keys файлд бас хийгдэх ёстой.

Энэ нь нууц үгүүдийн оронд SSH түлхүүрүүдийг ашиглан алсын машин уруу холбогдохыг зөвшөөрөх болно.

Хэрэв нэвтрэх үгнүүд ssh-keygen(1)-д ашиглагдаж байгаа бол хувийн түлхүүрийг хэрэглэхийн тулд хэрэглэгчээс нууц үгийг нэвтрэх болгонд асуудаг. ssh-agent(1) нь урт нэвтрэх үгнүүдийг дахин дахин оруулах тэр зовлонг зөөллөж чадах бөгөөд Хэсэг 14.11.7 хэсэгт тайлбарлагдсан байгаа болно.

Сануулга: Төрөл бүрийн тохируулгууд болон файлууд нь таны систем дээр байгаа OpenSSH-ийн хувилбаруудаас шалтгаалан өөр өөр байдаг; асуудалтай учрахгүйн тулд та ssh-keygen(1) гарын авлагын хуудаснаас лавлах хэрэгтэй.

ssh-agent болон ssh-add

ssh-agent(1) болон ssh-add(1) хэрэгслүүд нь нэвтрэх үгнүүдийг дахин дахин бичүүлэлгүйгээр SSH түлхүүрүүдийг санах ойд дуудан ашиглаж болох аргуудаар хангадаг.

ssh-agent(1) хэрэгсэл нь түүн уруу дуудагдсан хувийн түлхүүр(үүд) ашиглан жинхэн эсэхийг шалгах танилтыг зохицуулна. ssh-agent(1) нь өөр програмыг ачаалахад хэрэглэгдэх ёстой. Хамгийн хялбартаа энэ нь бүрхүүл эсвэл илүү дэвшилттэйгээр ашиглавал цонхны удирдагч ажиллуулж болох юм.

ssh-agent(1)-ийг бүрхүүлд ашиглахын тулд үүнийг эхлээд бүрхүүлтэй цуг нэмэлт өгөгдөл маягаар ажиллуулах шаардлагатай. Хоёрдугаарт хэн бэ гэдэг мэдээллийг (identity) ssh-add(1)-г ажиллуулан нэмэх хэрэгтэй бөгөөд түүнд хувийн түлхүүрийн нэвтрэх үгнүүдийг өгөх хэрэгтэй. Эдгээр алхмууд хийгдсэний дараа хэрэглэгч харгалзах нийтийн түлхүүр суулгагдсан дурын хост уруу ssh(1) хийж чадах болно. Жишээ нь:

% ssh-agent csh

% ssh-add

Enter passphrase for /home/user/.ssh/id_dsa:

Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)

%

X11 дээр ssh-agent(1) хэрэглэхийн тулд ssh-agent(1)-ийн дуудлага ~/.xinitrc-д байх шаардлагатай. Ингэснээр X11-д ачаалагдсан бүх програмуудад ssh-agent(1)-ийн үйлчилгээнүүдийг үзүүлэх болно. Жишээ ~/.xinitrc файл иймэрхүү харагдах болно:

exec ssh-agent startxfce4

Энэ нь ssh-agent(1)-ийг ажиллуулах бөгөөд тэр нь эргээд X11 эхлэх бүрт XFCE-ийг ажиллуулна. Ингэж хийгдсэний дараа өөрчлөлтүүд нь үйлчлэхийн тулд X11 дахин эхэлсэний хойно өөрийн SSH түлхүүрүүдийг бүгдийг ачаалахын тулд ердөө л ssh-add(1)-ийг ажиллуулаарай.

SSH туннел хийх

OpenSSH нь шифрлэгдсэн сессийн үед өөр протоколыг хайрцаглах туннел үүсгэх чадвартай байдаг.

Дараах тушаал telnet-д зориулж туннел үүсгэхийг ssh(1)-д хэлж өгнө:

% ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com

%

ssh тушаал дараах тохируулгуудтай хэрэглэгдэнэ:

-2

ssh-ийг протоколын 2-р хувилбарыг ашиглахыг зааж өгнө. (хэрэв та хуучин SSH серверүүдтэй ажиллаж байгаа бол үүнийг битгий ашиглаарай)

-N

Тушаал байхгүй эсвэл зөвхөн туннел гэдгийг заана. Хэрэв үүнийг орхивол ssh ердийн сесс эхлүүлнэ.

-f

ssh-ийг ард, далд ажиллуулахыг заана.

-L

Локал туннелийг localport:remotehost:remoteport загвараар зааж өгнө.

user@foo.example.com

Алсын SSH сервер.

SSH туннел нь сонсох сокетийг localhost-ийн заагдсан порт дээр үүсгэн ажилладаг. Дараа нь локал хост/порт дээр хүлээн авсан дурын холболтыг SSH-ээр дамжуулан заасан алсын хост болон порт уруу илгээдэг.

Жишээн дээр localhost дээрх 5023 порт нь алсын машины localhost дээрх 23 порт уруу дамжуулагдаж байна. 23 нь telnet учир энэ нь SSH туннелээр аюулгүй telnet сесс үүсгэнэ.

SMTP, POP3, FTP гэх зэрэг ямар ч аюултай TCP протоколуудын гүйцэтгэлийг хялбаршуулахад үүнийг ашиглаж болно.

Жишээ 14-1. SMTP-д зориулан SSH ашиглан аюулгүй туннел үүсгэх

% ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com

user@mailserver.example.com's password: *****

% telnet localhost 5025

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 mailserver.example.com ESMTP

Үүнийг ssh-keygen(1) болон нэмэлт хэрэглэгчийн бүртгэлүүдтэй цуг илүү үл үзэгдэх/төвөггүй SSH туннел хийх орчин үүсгэхэд ашиглаж болно. Түлхүүрүүд нь нууц үг бичихийн оронд ашиглагдаж болох бөгөөд туннелууд нь тусдаа хэрэглэгч маягаар ажиллаж чадна.

SSH туннелийн практик жишээнүүд

POP3 сервер уруу аюулгүй хандах

Ажил дээр чинь гаднаас холболтууд хүлээн авах SSH сервер байна. Бас тэр оффисийн сүлжээнд POP3 сервер ажиллуулж байгаа захидлын сервер байна. Таны гэр болон оффисийн хоорондын сүлжээ болон сүлжээний зам итгэж болохоор эсвэл итгэж болохооргүй байж магадгүй юм. Ийм учраас та өөрийн захидлыг аюулгүй аргаар шалгах хэрэгтэй юм. Үүний шийдэл нь өөрийн оффисийн SSH сервер уруу SSH холболт үүсгэж захидлын сервер уруу туннел хийх явдал юм.

% ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com

user@ssh-server.example.com's password: ******

Туннел эхлэн ажилласны дараа та өөрийн захидлын клиентийнхээ POP3 хүсэлтүүдийг localhost-ийн 2110 порт уруу илгээхээр зааж өгч болно. Эндэх холболт туннелээр аюулгүйгээр дамжин mail.example.com уруу илгээгдэнэ.

Хэцүү галт ханыг тойрон гарах

Зарим сүлжээний администраторууд хэтэрхий чанга галт ханын дүрэм ашиглан зөвхөн ирж байгаа холболтууд төдийгүй гарч байгаа холболтуудыг ч бас шүүдэг. Танд алсын машинуудад зөвхөн SSH болон вебээр аялах 22 болон 80-р портуудад хандах боломжийг өгсөн байж болох юм.

Та хөгжим цацдаг Ogg Vorbis сервер зэрэг өөр (магадгүй ажилдаа холбоогүй) үйлчилгээ уруу хандахыг магадгүй хүсэж болох юм. Хэрэв энэ Ogg Vorbis сервер нь 22 эсвэл 80-аас бусад өөр порт дээр цацаж байгаа бол та түүнд хандаж чадахгүй юм.

Үүний шийдэл нь таны сүлжээний галт ханаас гаднах машин уруу SSH холболт үүсгэж үүнийг Ogg Vorbis сервер уруу туннел хийхэд ашиглах явдал юм.

% ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org

user@unfirewalled-system.example.org's password: *******

Таны урсгал хүлээн авах клиент одоо localhost-ийн 8888 порт уруу заагдах бөгөөд тэр цаашаагаа галт ханыг амжилттайгаар гэтлэн music.example.com уруу дамжуулагдана.

AllowUsers хэрэглэгчийн тохируулга

Ямар хэрэглэгчид хаанаас орохыг хязгаарлаж өгөх нь зүйтэй юм. AllowUsers тохируулга нь үүнд хүрэх сайн арга юм. Жишээ нь root хэрэглэгчийг зөвхөн 192.168.1.32-оос орохыг зөвшөөрөхийн тулд дараахитай адил тохируулгыг /etc/ssh/sshd_config файлд хийх нь зүйтэй юм:

AllowUsers root@192.168.1.32

admin хэрэглэгчийг хаанаас ч орохыг зөвшөөрөхийн тулд ердөө л хэрэглэгчийн нэрийг өөрийг нь жагсааж өгнө:

AllowUsers admin

Олон хэрэглэгчид нэг мөрөнд жагсаагдах шаардлагатай:

AllowUsers root@192.168.1.32 admin

Тэмдэглэл: Та энэ машин уруу нэвтрэх хэрэгцээтэй хэрэглэгч бүрийг жагсааж өгөх нь чухал юм, тэгэхгүй бол тэдгээр нь орж чадахгүй болно.

/etc/ssh/sshd_config-д өөрчлөлтүүд хийснийхээ дараа sshd(8)-д өөрийн тохиргооны файлуудыг дахин дуудахыг дараах тушаалыг ажиллуулж та хэлж өгөх ёстой:

# /etc/rc.d/sshd reload

Нэмэлт унших материалууд

OpenSSH

ssh(1) scp(1) ssh-keygen(1) ssh-agent(1) ssh-add(1) ssh_config(5)

sshd(8) sftp-server(8) sshd_config(5)

IANA is responsible for assigning TCP and UDP port numbers to specific uses. The port numbers are divided into three ranges: the Well Known Ports, the Registered Ports, and the Dynamic and/or Private Ports.

The Well Known Ports are those in the range 0–1023. On Unix-like operating systems, opening a port in this range to receive incoming connections requires administrative privileges, although this all might change.[1]

The Registered Ports are those in the range 1024–49151.

The Dynamic and/or Private Ports are those in the range 49152–65535. These ports are not used by any defined application.

Contents [hide]

1 (Common) Ports 0 to 1023

2 (Registered) Ports 1024 to 49151 (Abbreviated)

3 (Dynamic/Private) Ports 49152 to 65535

4 References

5 External links

1 comment:

Anonymous said...

Доброе утро!
Даже очень интересный сайт.

Море приколов...Дудка, MDMA, MDMA, PVP, и т.д.
Переходи на сайт:
[b]
http://hydra-site.edimyqihobir.tk


[/b]