Як вядома, адкрытая тэхналогія SSH дазваляе выдалена падлучацца да пэўнага кампутара і перадаваць дадзеныя праз абраны абаронены пратакол. Гэта дазваляе рэалізаваць і паўнавартаснае кіраванне абраным прыладай, забяспечыўшы бяспечны абмен важнай інфармацыяй і нават паролямі. Часам у карыстальнікаў ўзнікае патрэба ажыццявіць злучэнне праз SSH, аднак акрамя інсталяцыі самой утыліты даводзіцца вырабляць і дадатковыя налады. Пра гэта мы і хочам пагаварыць сёння, узяўшы за прыклад дыстрыбутыў Debian.
Наладжвальны SSH ў Debian
Мы падзелім працэс канфігурацыі на некалькі этапаў, паколькі кожны адказвае за ажыццяўленне канкрэтных маніпуляцый і можа проста не спатрэбіцца вызначаным карыстальнікам, што залежыць ад асабістых пераваг. Пачнем з таго, што ўсе дзеянні будуць здзяйсняцца ў кансолі і спатрэбіцца пацверджанне правоў суперпользователя, таму падрыхтуйцеся да гэтага загадзя.Ўстаноўка SSH-server і SSH-client
Па змаўчанні SSH ўваходзіць у стандартны набор утыліт аперацыйнай сістэмы Debian, аднак з-за якіх-небудзь асаблівасцяў патрэбныя файлы могуць састарэць ці проста адсутнічаць, напрыклад, калі карыстальнік ўручную вырабіў дэўсталёўку. Калі вы маеце патрэбу ў папярэдняй ўстаноўцы SSH-server і SSH-client, запусціце наступную інструкцыю:
- Адкрыйце меню «Пуск» і запусціце адтуль «Тэрмінал». Зрабіць гэта можна і праз стандартную камбінацыю клавіш Ctrl + Alt + T.
- Тут вас цікавіць каманда sudo apt install openssh-server, якая адказвае за ўстаноўку сервернай часткі. Увядзіце яе і націсніце на Enter для актывацыі.
- Як вы ўжо ведаеце, дзеянні, якія выконваюцца з аргументам sudo, спатрэбіцца актываваць, паказаўшы пароль суперпользователя. Улічвайце, што ўводзяцца ў дадзеным радку сімвалы не адлюстроўваюцца.
- Вы будзеце апавешчаныя аб тым, што пакеты дададзеныя або абноўленыя. Калі SSH-server ўжо ўсталяваны ў Debian, з'явіцца паведамленне аб наяўнасці названага пакета.
- Далей спатрэбіцца дадаць у сістэму і кліенцкую частка, што тычыцца і таго кампутара, да якога ў будучыні будзе ажыццяўляцца падключэнне. Для гэтага выкарыстоўваецца падобная каманда sudo apt-get install openssh-client.
Больш ніякіх дадатковых кампанентаў інсталяваць не прыйдзецца, цяпер можна смела пераходзіць да кіравання серверам і наладзе канфігурацыйных файлаў, каб стварыць ключы і падрыхтаваць усё для далейшага злучэння з аддаленым працоўным сталом.
Кіраванне серверам і праверка яго працы
Сцісла давайце спынімся на тым, як ажыццяўляецца кіраванне усталяваным серверам і праверка яго працы. Гэта неабходна зрабіць яшчэ да таго, як пераходзіць да налады, каб пераканацца ў правільнасці функцыянавання дададзеных кампанентаў.
- Выкарыстоўвайце каманду sudo systemctl enable sshd, каб дадаць сервер у аўтазагрузку, калі гэта не здарылася аўтаматычна. У выпадку патрэбы адмены запуску разам з аперацыйнай сістэмай выкарыстоўвайце systemctl disable sshd. Тады для ручнога запуску спатрэбіцца ўказваць systemctl start sshd.
- Усе падобныя дзеянні абсалютна заўсёды павінны быць выкананы ад імя суперпользователя, таму трэба ўводзіць яго пароль.
- Задзейнічайце каманду ssh localhost для праверкі сервера на працаздольнасць. Заменіце localhost на адрас лакальнага кампутара.
- Пры першым падключэнні вы будзеце апавешчаныя аб тым, што крыніца не з'яўляецца правераным. Гэта адбываецца, паколькі мы яшчэ не выставілі налады бяспекі. Зараз проста пацвердзіце працяг падлучэння, увёўшы yes.
Даданне пары ключоў RSA
Падключэнне ад сервера да кліента і наадварот праз SSH ажыццяўляецца шляхам уводу пароля, аднак можна і нават рэкамендуецца стварыць пару ключоў, якая будзе распрацавана праз алгарытмы RSA. Гэты тып шыфравання дазволіць стварыць аптымальную абарону, якую будзе цяжка абыйсці зламысніку пры спробе ўзлому. На даданне пары ключоў спатрэбіцца ўсяго некалькі хвілін, а выглядае гэта працэс так:
- Адкрыйце «Тэрмінал» і ўвядзіце там ssh-keygen.
- Вы можаце самастойна выбраць месца, куды патрабуецца захаваць шлях да ключа. Калі няма жадання яго мяняць, проста націсніце на клавішу Enter.
- Зараз ствараецца адкрыты ключ. Ён можа быць абаронены кодавай фразай. Увядзіце яе ў адлюстраваў радок або пакіньце пустой, калі не жадаеце актываваць дадзеную опцыю.
- Пры ўводзе ключавой фразы прыйдзецца пазначыць яе яшчэ раз, каб пацвердзіць.
- Адлюструецца апавяшчэнне аб стварэнні публічнага ключа. Як бачыце, яму быў прысвоены набор выпадковых сімвалаў, а таксама стварылася малюнак па рандомные алгарытмах.
Дзякуючы толькі што вырабленым дзеяннем стварыўся сакрэтны і адкрыты ключ. Яны і будуць задзейнічаны для злучэння паміж прыладамі. Зараз прыйдзецца скапіяваць адкрыты ключ на сервер, а зрабіць гэта можна рознымі метадамі.
Капіяванне адкрытага ключа на сервер
У Debian існуе тры варыянты, з дапамогай якіх можна скапіяваць адкрыты ключ на сервер. Мы прапануем адразу азнаёміцца з усімі імі, каб у будучыні выбраць аптымальны. Гэта актуальна ў тых сітуацыях, калі адзін з метадаў не падыходзіць ці не задавальняе патрэбы юзера.
Спосаб 1: Каманда ssh-copy-id
Пачнем з самага простага варыянту, якое азначала выкарыстанне каманды ssh-copy-id. Па змаўчанні гэтая ўтыліта ўжо ўбудаваная ў АС, таму ў папярэдняй інсталяцыі не мае патрэбы. Сінтаксіс яе таксама максімальна просты, а ад вас спатрэбіцца выканаць такія дзеянні:
- У кансолі увядзіце каманду ssh-copy-id username @ remote_host і актывуйце яе. Заменіце username @ remote_host на адрас мэтавага кампутара, каб адпраўка прайшла паспяхова.
- Пры першай спробе злучэння вы ўбачыце паведамленне "The authenticity of host '203.0.113.1 (203.0.113.1)' can not be established. ECDSA key fingerprint is fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe. Are you sure you want to continue connecting (yes / no)? yes ". Выберыце станоўчы адказ, каб працягнуць падлучэнне.
- Пасля гэтага ўтыліта самастойна зоймецца пошукам і капіяваннем ключа. У выніку, калі ўсё прайшло паспяхова, на экране з'явіцца апавяшчэнне «/ usr / bin / ssh-copy-id: INFO: attempting to log in with the new key (s), to filter out any that are already installed / usr / bin / ssh-copy-id: INFO: 1 key (s) remain to be installed - if you are prompted now it is to install the new keys [email protected]'s password: «. Гэта значыць, што можна ўводзіць пароль і пераходзіць да непасрэднага кіраванні выдаленым працоўным сталом.
Дадаткова ўдакладнім, што пасля першай паспяховай аўтарызацыі ў кансолі з'явіцца апавяшчэнне наступнага характару:
Number of key (s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key (s) you wanted were added.
У ім гаворыцца пра тое, што ключ быў паспяхова дададзены на выдалены кампутар і цяпер не ўзнікне ніякіх праблем пры спробах падлучэння.
Спосаб 2: Экспарт ключа праз SSH
Як вы ведаеце, экспарт публічнага ключа дазволіць падключацца да згаданага серверу без папярэдняга ўводу пароля. Зараз, пакуль ключ яшчэ не знаходзіцца на мэтавым кампутары, падлучыцца праз SSH можна шляхам уводу пароля, каб затым ўручную перанесці неабходны файл. Для гэтага ў кансолі вам прыйдзецца ўпісаць каманду cat ~ / .ssh / id_rsa.pub | ssh username @ remote_host "mkdir -p ~ / .ssh && touch ~ / .ssh / authorized_keys && chmod -R go = ~ / .ssh && cat >> ~ / .ssh / authorized_keys".
На экране павінна з'явіцца апавяшчэнне
The authenticity of host '203.0.113.1 (203.0.113.1)' can not be established.
ECDSA key fingerprint is fd: fd: d4: f9: 77: fe: 73: 84: e1: 55: 00: ad: d6: 6d: 22: fe.
Are you sure you want to continue connecting (yes / no) ?.
Пацвердзіце яго, каб працягнуць злучэнне. Публічны ключ будзе аўтаматычна скапіяваны ў канец канфігурацыйнага файла «authorized_keys». На гэтым працэдуру экспарту можна лічыць скончанай.
Спосаб 3: Ручное капіраванне ключа
Гэты метад падыдзе тым карыстальнікам, у каго няма магчымасці стварыць выдаленае падлучэнне да мэтавага кампутара, аднак маецца фізічны доступ да яго. У такім выпадку ключ прыйдзецца пераносіць самастойна. Для пачатку вызначыце звесткі пра яго на серверным ПК праз cat ~ / .ssh / id_rsa.pub.
У кансолі пабачыце радок ssh-rsa + ключ у выглядзе набору знакаў == demo @ test. Цяпер можна перайсці да іншага кампутара, дзе варта стварыць новую дырэкторыю, увёўшы mkdir -p ~ / .ssh. У ёй жа дадаецца тэкставы файл пад назвай authorized_keys. Засталося толькі ўставіць туды пэўны раней ключ праз echo + радок публічнага ключа >> ~ / .ssh / authorized_keys. Пасля гэтага аўтэнтыфікацыя будзе даступная без папярэдняга ўводу пароляў. Ажыццяўляецца гэта праз каманду ssh username @ remote_host, дзе username @ remote_host варта замяніць на імя неабходнага хаста.
Разгледжаныя толькі што спосабы дазволілі перанесці публічны ключ на новае прылада, каб зрабіць магчымым падключэнне без уводу пароля, аднак цяпер форма на ўвод ўсё яшчэ адлюстроўваецца. Такое становішча рэчаў дазваляе зламыснікам атрымаць доступ да выдаленага працоўнага стала, проста перабраўшы паролі. Далей мы прапануем заняцца забеспячэннем бяспекі, выканаўшы пэўныя наладкі.
Адключэнне аўтэнтыфікацыі па паролі
Як ужо было сказана раней, магчымасць аўтэнтыфікацыі па паролі можа стаць слабым звяном у бяспекі аддаленага злучэння, паколькі існуюць сродкі перабораў такіх ключоў. Мы рэкамендуем адключыць гэтую опцыю, калі вы зацікаўлены ў максімальнай абароне свайго сервера. Зрабіць гэта можна так:
- Адкрыйце канфігурацыйны файл / etc / ssh / sshd_config праз любы зручны тэкставы рэдактар, гэта можа быць, напрыклад, gedit або nano.
- У якое адкрылася спісе адшукайце радок «PasswordAuthentication» і прыбярыце знак #, каб зрабіць гэтую каманду актыўнай. Памяняйце значэнне yes на no, каб адключыць цікавую для опцыю.
- Па завяршэнні націсніце на Ctrl + O, каб захаваць змены.
- Ня мяняйце назву файла, а проста націсніце на Enter для прымянення налады.
- Можна пакінуць тэкставы рэдактар, націснуўшы на Ctrl + X.
- Ўсе змены ўступяць у сілу толькі пасля перазагрузкі службы SSH, таму зрабіце гэта адразу ж праз sudo systemctl restart ssh.
У выніку выкананых дзеянняў магчымасць аўтэнтыфікацыі па паролі будзе адключаная, а ўваход стане даступны толькі праз пару ключоў RSA. Улічвайце гэта пры творы падобнай канфігурацыі.
Настройка параметру міжсеткавага экрана
У завяршэнне сённяшняга матэрыялу хочам распавесці пра наладу міжсеткавага экрана, які будзе выкарыстаны для дазволаў або забарон злучэнняў. Мы пройдземся толькі па асноўных пунктах, узяўшы за прыклад Uncomplicated Firewall (UFW).
- Для пачатку давайце прагледзім спіс існуючых профіляў. Увядзіце sudo ufw app list і націсніце на Enter.
- Пацвердзіце дзеянне, паказаўшы пароль суперпользователя.
- У спісе адшукайце SSH. Калі гэты радок там прысутнічае, значыць, усё функцыянуе карэктна.
- Дазвольце злучэнне праз гэтую ўтыліту, напісаўшы sudo ufw allow OpenSSH.
- Уключыце міжсеткавы экран, каб абнавіць правілы. Робіцца гэта праз каманду sudo ufw enable.
- Вы ў любы момант можаце праверыць бягучы стан брандмаўэра, увёўшы sudo ufw status.
На гэтым працэс налады SSH ў Debian скончаны. Як бачыце, існуе мноства розных нюансаў і правілаў, якія патрабуецца выконваць. Вядома, у рамках аднаго артыкула немагчыма змясціць абсалютна ўсю інфармацыю, таму мы закранулі толькі асноўныя звесткі. Калі вы зацікаўлены ў атрыманні больш паглыбленых дадзеных аб гэтай утыліце, раім азнаёміцца з яе афіцыйнай дакументацыяй.