Поврзете се со виртуелен сервер преку SSH и SFTP. Поврзување со серверот преку SSH и SFTP Поврзување преку ssh преку кит

Што е SSH и зошто ви е потребен?

Secure Shell (SSH) е мрежен протокол кој обезбедува функции на школка на оддалечена машина преку безбеден канал. SSH доаѓа со различни безбедносни подобрувања, вклучително и автентикација на корисник/домаќин, шифрирање на податоци и интегритет на податоците, што ги прави популарни напади како прислушување, измама на DNS/IP, фалсификување податоци и киднапирање конекции. итн. Се препорачува протокол кој пренесува податоци во јасен текст да се префрли на SSH.

OpenSSH е имплементација со отворен код на протоколот SSH што ви овозможува да ја шифрирате вашата мрежна конекција преку збир на програми. Ако сакате да имате SSH на Linux, можете да инсталирате OpenSSH, кој се состои од OpenSSH сервер и клиентски пакети.

OpenSSH серверот/клиент пакетите доаѓаат со следниве алатки:

  • OpenSSH сервер: sshd (SSH демон)
  • OpenSSH клиент: scp (безбедна далечинска копија), sftp (безбеден пренос на датотеки), login/ssh (безбедно далечинско најавување), ssh-add (пополнување приватен клуч), ssh-agent (агент за автентикација), ssh-keygen (управување со клучот за автентикација ).
Инсталирање на OpenSSH сервер и клиент на Linux

Ако сакате да го инсталирате серверот/клиентот OpenSSH и да го конфигурирате серверот OpenSSH да стартува автоматски, следете ги следните инструкции, кои се разликуваат во зависност од дистрибуцијата.

Debian, Ubuntu или Linux Mint

$ sudo apt-get инсталирај openssh-сервер openssh-клиент

На системи базирани на Debian, откако ќе се инсталираат, OpenSSH ќе започне автоматски при подигнување. Ако поради некоја причина серверот OpenSSH не се стартува автоматски при стартување на системот, можете да ја извршите следнава команда за експлицитно да додадете ssh на подигањето при стартувањето на системот.

$ sudo update-rc.d ssh стандардни

Fedora или CentOS/RHEL 7

$ sudo yum -y инсталирај openssh-сервер openssh-клиенти $ sudo systemctl стартува sshd услуга $ sudo systemctl овозможи sshd.service

CentOS/RHEL 6

$ sudo yum -y инсталирај openssh-сервер openssh-клиенти $ sudo услуга sshd стартува $ sudo chkconfig sshd вклучен

Арх Линукс

$ sudo pacman -Sy openssh $ sudo systemctl стартува sshd услуга $ sudo systemctl овозможи sshd.service

Поставување на OpenSSH сервер

Ако сакате да го конфигурирате серверот OpenSSH, можете да ја уредите конфигурациската датотека на целиот систем лоцирана во /etc/ssh/sshd_config.

Постојат неколку опции за OpenSSH кои може да бидат од интерес:
Стандардно, sshd слуша на портата 22 и слуша за дојдовни ssh конекции. Со менување на стандардната порта за ssh, можете да спречите разни автоматски хакерски напади.
Ако вашиот уред има повеќе од еден физички мрежен интерфејс, можеби ќе сакате да проверите кој е поврзан со sshd, за ова можете да ја користите опцијата ListenAddress. Оваа опција помага да се подобри безбедноста со ограничување на дојдовниот SSH само на специфичен интерфејс.

HostKey /etc/ssh/ssh_host_key

Опцијата HostKey одредува каде се наоѓа личниот клуч за домаќин.

PermitRootLogin бр

Опција PermitRootLogin – дали root може да се најави во системот преку ssh.

AllowUsers Алис Боб

Користејќи ја опцијата AllowUsers, можете селективно да ја оневозможите услугата ssh за одредени корисници на Linux. Можете да наведете повеќе корисници, одделени со празни места.

Откако ќе се смени /etc/ssh/sshd_config, погрижете се да ја рестартирате услугата ssh.

За да го рестартирате OpenSSH на Debian, Ubuntu или Linux Mint:

$ sudo /etc/init.d/ssh рестарт

За да го рестартирате OpenSSH на Fedora, CentOS/RHEL 7 или Arch Linux:

$ sudo systemctl рестартирајте го sshd.service

За да го рестартирате OpenSSH на CentOS/RHEL 6:

$ sudo услуга sshd рестартирање

Како да се поврзете со SSH

Поврзување со SSH од Linux

Корисниците на Linux не треба да инсталираат дополнителни програми.

Поврзување со SSH од Windows

Скриен од гости

.

Cygwin е повеќе од само SSH клиент. Тоа е моќен комбинирач кој поддржува многу команди на Linux. На пример, Cygwin го прави многу лесно создавањето SSL сертификати (исто како Linux). Во Windows, за да креирате самопотпишани сертификати, треба да танцувате со тамбура. Cygwin е многу погодно за користење cURL (нема потреба да инсталирате ништо посебно), итн. Оние на кои им недостасува командна линија и Linux програми на Windows, ќе најдат излез во Cygwin.

Инсталирањето на Cygwin е лесно. Ајде да одиме на

Скриен од гости

И преземете

Скриен од гости

Скриен од гости

Ќе се преземе мала датотека - ова е инсталерот. Графички инсталатер. Иако содржи голем број опции, сите тие се прилично едноставни и многумина се познати од други графички инсталатери. Ако нешто не е јасно, само кликнете на „Следно“. Можеби само следниот прозорец може да доведе до конфузија:

Сите елементи достапни за инсталација се претставени овде. Не треба да ги разбереме во моментов. Бидејќи најпопуларните веќе се означени за инсталација. И ако нешто недостасува во иднина, можете лесно да го инсталирате она што ви треба.

SSH врска (заедничко за Linux и Windows)

Корисниците на Linux ја отвораат конзолата, корисниците на Windows пишуваат Cygwin.

На SSH му требаат следниве информации за да се поврзе:

  • IP или име на домаќин
  • број на порта
  • Корисничко име
  • корисничка лозинка
Два од овие параметри SSH може да погоди: корисничко име и број на порта. Ако порта не е одредена, се претпоставува стандардната порта. Ако корисникот не е наведен, тогаш се користи истото име како и на системот од кој е направена врската. На пример, адресата на домаќинот за врската е 192.168.1.36. Ако бирам

Ssh 192.168.1.36

Го гледам следново

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Автентичноста на домаќинот „192.168.1.36 (192.168.1.36)“ не може да се утврди. Отпечатокот на клучот ECDSA е SHA256:sIxZeSuiivoAQSCL5000 сигурно сакате да продолжите да се поврзувате ( да/не)?

Бидејќи првпат се поврзувам со домаќинот, тоа е непознат домаќин. Ме прашуваат дали сакам да продолжам. Јас вртам да:

Предупредување: Трајно додаден „192.168.1.36“ (ECDSA) на списокот на познати домаќини. [заштитена е-пошта]лозинката:

Во ред, домаќинот 192.168.1.36 е додаден на списокот на познати хостови. Мене ми се бара лозинка за корисникот Алекс. Пошто нема таков корисник на серверот со SSH, туку кликам Ctrl+C(да се скрши) и внесете ја командата заедно со корисничкото име на далечинскиот систем. Корисникот се внесува пред адресата на оддалечената машина и е одделен од адресата со симболот @. Симболот @ на англиски се чита како на и може да се преведе како „во“. Оние. рекорд [заштитена е-пошта]може да се толкува како „mial user on machine 192.168.1.36“.

Сш [заштитена е-пошта]

Поканата Alex@MiAl-PC беше заменета со поканата mial@mint. Тоа значи дека веќе сме на далечинската машина, односно веќе сме се поврзале. Ако треба да наведете порта (ако се разликува од стандардната), тогаш портот мора да биде наведен по прекинувачот -p. На пример вака:

Сш [заштитена е-пошта]-стр 10456

Откако се поврзавме, нè пречекуваат вакво нешто:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Програмите вклучени во Debian GNU/Linux системот се бесплатен софтвер; точните услови за дистрибуција за секоја програма се опишани во поединечните датотеки во /usr/share/doc/*/copyright. Debian GNU/Linux доаѓа со АПСОЛУТНО БЕЗ ГАРАНЦИЈА, до степен што го дозволува важечкиот закон. Последно најавување: в 16 јуни 15:32:25 2015 од 192.168.1.35

Следи дека оддалечената машина е Linux Mint, со кернел 3.16, 64-битна верзија. Исто така важна информација е времето на последното најавување и IP адресата од која потекнува врската. Ако времето и IP адресата не ви се познати и вие сте единствениот корисник, тогаш вашиот систем е компромитиран и треба да преземете соодветни мерки.

Ајде да напишеме неколку команди за да се увериме каде сме и кои сме: pwd, [B]uname -aитн.:

За да ја завршите сесијата (одјавете се), бирајте

Или кликнете Ctrl+D.

Најавете се на SSH без да внесувате лозинка

Прво, едноставно е поудобно. Второ, побезбедно е.

Прво, треба да создадеме клучеви rsa. Ако сте корисник на Линукс, тогаш сте во ред. Ако сте корисник на Windows, но не го послушавте мојот совет и го избравте PuTTY, тогаш имате проблем и размислете сами како да го решите. Ако го имате Cygwin, тогаш сè е исто така во ред.

Ако успеавте да се најавите на далечинскиот систем, одјавете се. После тоа, напишете

Ssh-keygen -t rsa

Од нас се бара име на датотека, не треба да внесуваме ништо, ќе се користи стандардното име. Исто така бара лозинка. Не ја внесувам лозинката.

Сега на оддалечената машина треба да создадеме директориум .ssh. Извршувањето на командата на оддалечена машина ќе се дискутира подолу. Засега, само копирајте ја командата, не заборавајќи да ја смените IP адресата и корисничкото име на ваше:

Сш [заштитена е-пошта] mkdir.ssh

Сега треба да ја копираме содржината на датотеката id_rsa.pub на оддалечената машина. Ова е многу лесно да се направи (не заборавајте да ги промените податоците на свои):

Cat .ssh/id_rsa.pub | ssh [заштитена е-пошта]"мачка >> .ssh/authorized_keys"

Сега само се најавуваме и веќе не ни бараат никаква лозинка. И сега секогаш ќе биде вака.

Извршување на команди на оддалечен сервер без создавање сесија на школка

Покрај отворањето на сесија на школка на оддалечен систем, ssh исто така ви овозможува да извршувате поединечни команди на далечинскиот систем. На пример, за да ја извршите командата дрво на оддалечен домаќин наречен remote-sys и да ги прикажете резултатите на локалниот систем, би го направиле ова:

Ssh далечинско-sys дрво

Мојот вистински пример:

Сш [заштитена е-пошта]дрво

Користејќи ја оваа техника, можете да правите интересни работи, како што е извршување на командата ls на оддалечен систем и пренасочување на излезот во датотека на локалниот систем:

Ssh remote-sys "ls *" > dirlist.txt

Вистински пример:

Сш [заштитена е-пошта]"ls *" > dirlist.txt мачка dirlist.txt

Забележете ги единечните наводници во горната команда. Ова е затоа што не сакаме проширување на патеката да се прави на локалната машина; затоа што ни треба ова извршување на далечински систем. Исто така, ако сакаме да го пренасочиме стандардниот излез во датотека на оддалечената машина, можеме да ја ставиме изјавата за пренасочување и името на датотеката во единечни наводници:

Ssh remote-sys "ls * > dirlist.txt"

Пренесување стандарден излез од локална машина на оддалечена машина преку ssh

Подеднакво интересна опција за извршување на команди е дадена малку повисоко:

Cat .ssh/id_rsa.pub | ssh [заштитена е-пошта]"мачка >> .ssh/authorized_keys"

  • Командата cat ја чита и прикажува содржината на датотеката .ssh/id_rsa.pub, која се наоѓа на локалната машина, линија по линија.
  • | (цевка) го пренесува она што би се појавило на стандардниот излез на друга команда.
  • Наместо команда која би ги обработувала низите што му се доставени, се прави врска со далечинскиот систем (ssh [заштитена е-пошта]).
  • Далечинскиот систем прима линии за кои е обезбедена командата cat >> .ssh/authorized_keys. Оние. содржината на стандардниот излез се запишува ред по ред во датотеката .ssh/authorized_keys која се наоѓа на оддалечената машина.
Отворање графичка програма лоцирана на оддалечен компјутер

Следниот трик бара два Линукс компјутери. За жал, дури ни Cygwin не може да се справи со овој трик. Покрај тоа, двата система Линукс мора да имаат графички кориснички интерфејс.

Тунелирање со SSH

Меѓу другото што се случува кога ќе се воспостави врска со оддалечен домаќин преку SSH е создавањето на шифриран тунел кој се формира помеѓу локалниот и оддалечениот систем. Вообичаено, овој тунел се користи за да се осигура дека командите напишани на локалната машина безбедно се пренесуваат на оддалечена машина, а резултатот исто така безбедно се испраќа назад.

Покрај оваа основна функционалност, протоколот SSH дозволува повеќето видови сообраќај да се испраќаат преку шифриран тунел, создавајќи еден вид VPN (виртуелна приватна мрежа) помеѓу локалниот и оддалечениот систем.

Можеби најчесто користената од овие карактеристики е можноста за емитување сообраќај на системите на X Window. На систем кој работи на X сервер (ова се машини кои имаат графички кориснички интерфејс), можно е да се изврши X-клиент програма (графичка апликација) на далечински систем и да се видат резултатите од неговата работа на локалниот систем. Лесно е да се направи. На пример, сакам да се поврзам со далечинскиот хост remote-sys и на него сакам да ја стартувам програмата xload. Во исто време, ќе можам да го видам графичкиот излез на оваа програма на локалниот компјутер. Ова е направено вака:

Ssh -X далечински-sys xload

Вистински пример:

Ssh -X [заштитена е-пошта]гедит

Оние. SSH започнува со прекинувачот -X. И тогаш програмата едноставно започнува. Погледнете ја сликата од екранот.

Јас сум на Kali Linux. Успешно се најавувам на оддалечен компјутер преку SSH. После тоа ја водев програмата gedit. Оваа програма можеби не е ни на Kali Linux, но дефинитивно е на Linux Mint, на што се поврзав. На екранот можам да го видам резултатот од оваа програма како програмата да работи локално. Но, повторно, сакам да го разберете ова, нема програма gedit што работи на локалниот компјутер. Ако сакам да го зачувам резултатот од gedit (или која било друга програма отворена на овој начин), излегува дека таа работи во околината на оддалечениот компјутер, го гледа неговиот датотечен систем итн. Ова е погодно кога сакате да го конфигурирате далечински компјутер со помош на графички интерфејс .

Ќе научите како да префрлите слика од целата работна површина во истата статија подоцна, во делот „Како да конфигурирате VNC преку SSH“.

На некои системи, овој трик бара користење на опцијата -Y наместо опцијата -X.

Копирање од/на оддалечен компјутер (scp и sftp)

scp

Пакетот OpenSSH вклучува и две програми кои користат шифриран SSH тунел за копирање датотеки преку мрежата. Првата програма - scp(„безбедна копија“) - се користи почесто, како сличната програма cp за копирање датотеки. Најзабележливата разлика е во тоа што изворот на датотеката може да биде оддалечениот хост проследен со две точки и локацијата на датотеката. На пример, ако сакаме да копираме документ наречен document.txt од нашиот домашен директориум во remote-sys во тековниот работен директориум на нашиот локален систем, можеме да го направиме ова:

Scp remote-sys:document.txt. document.txt 100% 177 0,2KB/s 00:00

Вистински пример:

# избришете ја датотеката на локалната машина ако постои rm dirlist.txt # креирајте датотека на оддалечената машина ssh [заштитена е-пошта]"ls * > dirlist.txt" # проверете дали има присуство ssh [заштитена е-пошта]"ls -l" # копирајте го на локалната машина scp [заштитена е-пошта]:dirlist.txt. # проверете ја неговата содржина cat dirlist.txt

  • [заштитена е-пошта]- корисничко име и далечински хост,
  • . (точка) значи дека датотеката треба да се копира во тековниот работен директориум на оддалечениот сервер, но името на датотеката ќе остане исто, т.е. nfile.txt
  • Меморандум:

    За да копирате датотека од B во A кога сте најавени во B:
    scp /path/to/file username@a:/path/to/destination
    Копирање на датотека од Б во А кога сте најавени во А:
    scp username@b:/path/to/file /path/to/destination

    sftp

    Втората програма за копирање датотеки преку SSH е sftp. Како што сугерира неговото име, тоа е сигурна замена на ftp програма. sftp работи како оригиналната ftp програма. Меѓутоа, наместо да испраќа во обичен текст, тој користи шифриран SSH тунел. Важна предност на sftp во однос на ftp е тоа што не бара вклучен FTP сервер на оддалечен домаќин. Потребен е само SSH сервер. Ова значи дека секоја оддалечена машина што е поврзана преку SSH клиент може да се користи и како FTP-сервер. Еве пример сесија:

    Alex@MiAl-PC ~ $ sftp [заштитена е-пошта]Поврзан на 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Видеа Документи Преземања Слики Музика Шаблони за јавна работна површина sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temptch / TakemeHome mial/temp/TakeMeHome до TakeMeHome sftp>чао

    Протоколот SFTP е поддржан од многу менаџери на графички датотеки што може да се најдат во дистрибуциите на Linux. Користејќи ги и Nautilus (GNOME) и Konqueror (KDE), можеме да внесуваме URI (врски) почнувајќи со sftp:// во лентата за скокање и да работиме со датотеки лоцирани на оддалечен систем што работи на SSH сервер.

    Здраво! Ме интересира прашањето: како да се поврзете преку SSH со вашиот домашен компјутер преку Интернет. Имам инсталиран сервер FreeSSHd дома. Како што разбрав, треба некако да го отворам портот 22 на надворешната IP?

    Да, често се јавува потреба. Зборував за многу работи во таа статија, но овде ќе зборуваме исклучиво за SSH, бидејќи Алекс љубезно ни ја даде оваа можност. Освен тоа, јас самиот сум неверојатно заинтересиран за SSH, а тука е и на Windows... mmm.

    Што е SSH и зошто е потребно?

    Поентата е дека SSH е Сбезбеден SHуште. Протокол за безбеден пристап до контролната обвивка. Затоа, обезбедува пристап конкретно до командната линија, бидејќи Shell е преведен како школкаи тука во значењето текстуална контролна школка. Но, генерално, овој протокол е забележлив по тоа што дозволува кој било друг сообраќај да помине во него, и тоа во шифрирана форма. Така, протоколот за поврзување на безбедниот датотечен систем се нарекува SFTP и работи на врвот на SSH. Но, може да тунелира апсолутно сите други врски - било да е тоа HTTP или дури и RDP. Во суштина, излегува дека е „VPN на коленото“.

    Овде Алекс веќе направи половина од работата; тој инсталираше и лансираше FreeSSHd на неговиот домашен компјутер. Ова ви овозможува да се поврзете со Windows преку SSH. Во овој случај, „дозволува“ се вели многу силно. Бидејќи ова решение некако функционира на Windows. Прво, нема пристоен текстуален интерфејс - командна линија, за контрола.

    Барем редовниот - cmd - ви овозможува да правите малку со далечинската машина. Постои и Powershell - ова е помодерно и помоќно решение. Freesshd ви дозволува да ја смените конзолата во powershell, но не можев да се поврзам со неа. Се поврзав на CMD - но е целосно неупотреблив:

    Второ, во случајот со FreeSSHd, не можев да се поврзам со компјутер со Windows ни преку локална мрежа, а да не зборувам за поврзување преку Интернет. Или подобро кажано, можно е да се поврзете, но услугата се замрзнува и паѓа; нема да можете да управувате со домаќинот на Windows на овој начин.

    Затоа, претпоставувам дека на Алекс му требаше ssh сервер на Windows за да се поврзе со датотечен систем или да го користи како VPN, прокси нешто преку SSH. Иако се сомневам дека FreeSSHd ќе го дозволи ова. Затоа што трето: не ги зачувува ни поставките; кога ќе ја рестартирате услугата, сè тргне наопаку. Во принцип, навистина се надевам дека Алекс ќе ни каже во коментарите зошто му требаше ова.

    Како инаку можете да извршите SSH на Windows?

    Постои пофункционално решение - Powershelserver. Иако има и грешки, барем не паѓа. Затоа, би препорачал да го користите за да се поврзете преку SSH на серверите на Windows.

    Прво, работи стабилно без падови. И преку него навистина можете да контролирате прозорци преку powershell.

    Сите поставки се зачувуваат нормално. Истите функции се достапни како во FreeSSHd и уште повеќе - можете да користите SCP - ова е копирање датотеки преку SSH.

    Но, најшик нешто е конзолата! Работи, господа!

    Лесно се поврзав, без никаква врева со додавање корисници (ова треба да се направи во freesshd). И таа едноставна команда за прегледување на рутирачката табела функционираше совршено и ги обезбеди потребните информации. Фрисш ми „падна“ токму кога се обидов да го прегледам netstat -rn

    Овде навистина можете да видите дека руските знаци не се прикажани. Така, лесно е да се постави со нас, само го поставив кодирањето што ми треба на powershellserver, рестартирајте, повторно поврзете се...

    Поставување кодирање во Powershellserver

    Сега имаме целосен SSH и можеме целосно да управуваме со Windows преку конзолата.

    Мајкрософт ќе создаде свое SSH решение

    Инаку, Мајкрософт уште летото најави дека ќе се развива мајчин SSH поддршка за Powershell во новите верзии на Windows. Има објави за вести на Habré и ​​на pcweek (и повеќе). Затоа, можеме само да се радуваме на овој значаен настан, бидејќи тој навистина ќе биде пробив за работа хетерогени мрежи.

    Не ги проверив другите функции - sftp и scp, но поради некоја причина сигурен сум дека и тие ќе работат одлично.

    Како да отворите SSH порта однадвор?

    Значи, дојдовме до тајната работа за која е започната оваа статија на прво место. Ќе одговорам на прашањето на читателот.

    Препраќање порта на рутер или модем

    За да се поврзете со компјутер однадвор, навистина треба да направите NAT, или, во одреден случај, . Како да го направите ова зависи од уредот што се користи како порта. Ова може да биде ADSL модем или . Во повеќето случаи, деталните инструкции за вашиот уред може лесно да се најдат со прашања како „препраќање порта уред_модел" или "препраќање порта уред_модел»

    Вака изгледа на мојот домашен рутер Zyxel Keenetic Lite:

    И вака изгледа на ADSL модем со функционалноста на рутерот Linksys WAG200G при рака:

    Дополнително, кај некои провајдери тоа можеби не е технички возможно бидејќи тие не даваат „бело“ .

    Препраќање порта на оддалечен сервер со помош на SSH тунел

    Во овој случај, единствениот начин достапен за поврзување преку SSH е од локална Windows машина (истата на која сакаме да се поврземе преку SSH) до оддалечен сервер. Во овој случај, мора да имате SSH пристап до некој сервер на Интернет.

    Поставување на „обратен“ SSH тунел

    Таквото препраќање може лесно да се направи со користење на едноставен SSH клиент Putty (исто така има) Потоа можете да се поврзете со овој многу оддалечен сервер преку препратената порта.

    Во суштина тоа е јамка овде. Отвораме SSH сесија од Windows на оддалечен сервер и внатре во оваа врска ја тунелираме SSH портата на Windows Powershellserver (или FreeSSHd) себе до локалната порта 3322 на оддалечениот сервер. И во истата сесија сега повторно се поврзуваме со Windows на Powershell преку истата порта 3322... Се надевам дека не сте збунети. Но... Ова е магија, пријатели! :) SSH тунелите се посебен свет, со нивна помош можете да правите неверојатни работи, да отворите такви врати што сите обезбедувачи горко би плачеле ако наеднаш дознаат за сето ова... Но, добро.

    Па, ако треба да ја споделите SSH портата на Windows со светот, доволно е да наведете ip_server:3322 како дестинација во поставките за обратен тунел. Ќе можете да се поврзете со Windows преку SSH од секаде каде што има пристап до овој сервер.

    Како да проверите дали портата е препратена правилно?

    Многу едноставно. Треба да проверите дали е отворен. Во случај на SSH, отворената порта ќе одговори со порака за нејзината верзија. Наједноставниот начин за проверка на пристаништето е телнет алатката.

    Само напишете на командната линија, одделени со празни места:

    телнет домен_или_ИП порта

    Ако портата е достапна, ќе видите нешто како ова:

    SSH одговор ако е достапна портата

    Ако пристаништето е недостапно поради некоја причина, ќе видите или „врската е одбиена“ или „времето на конекцијата“. Во првиот случај, тоа ќе биде моментално и значи дека пристаништето е затворено со заштитен ѕид.

    Во вториот случај, ќе изгледа како „висат“ и може да трае до неколку минути - клиентот на телнет ќе се обиде да воспостави врска. Ова може да значи и блокирање од заштитен ѕид, но од различен тип. Или едноставно дека наведениот хост е недостапен или портот на него е затворен.

    Ако можевте да се поврзете преку телнет, тогаш притиснете ја комбинацијата на копчиња Ctrl+] и внесете откажете се,потоа Enter. Во спротивно, нема да можете да ја прекинете сесијата и ќе мора да отворите нов прозорец на конзолата ако сè уште ви треба.

    Оваа статија е означена како недовршена. Видете ја белешката на крајот од статијата.

    Оваа статија е посветена на клиентот и серверот на безбеден терминал (безбедна школка) во Ubuntu, нивната конфигурација и употреба. SSH е специјален мрежен протокол кој ви овозможува да стекнете далечински пристап до компјутер со висок степен на безбедност на врската. Можете да прочитате повеќе за протоколот ssh.

    Опис на принципите на работа и употребените апликации

    Во основа, SSH се имплементира во форма на две апликации - SSH сервер и SSH клиент.Ubuntu користи бесплатна имплементација на SSH клиент и сервер - OpenSSH. При поврзувањето, клиентот поминува низ процедура за авторизација со серверот и меѓу нив се воспоставува шифрирана врска. Серверот OpenSSH може да работи и со протоколите ssh1 и ssh2. Протоколот ssh1 во моментов се смета за небезбеден и неговата употреба е многу обесхрабрена. Намерно испуштам различни технички детали за протоколот, бидејќи главната цел на овој водич е да ја опише неговата конфигурација и употреба. Има многу статии на Интернет за самиот протокол, принципите на неговото функционирање, алгоритми за шифрирање итн., На пример, можете да прочитате за тоа детално.

    Инсталација

    Инсталирајте OpenSSHМожете да ја користите командата од терминалот:

    sudo apt-get install ssh

    Метапакетот ssh содржи и клиент и сервер, но ова најверојатно ќе го инсталира само серверот, бидејќи клиентот стандардно е веќе вклучен во Ubuntu.

    Подесување на серверот

    При инсталирање, серверот SSH автоматски се додава на стартување. Можете да го контролирате неговото започнување, запирање или рестартирање со помош на командите:

    sudo услуга ssh стоп| почеток| рестарт

    Главната конфигурациска датотека за SSH сервер е датотеката /etc/ssh/sshd_config, која може да ја чита или уредува само суперкорисникот. По секоја промена на оваа датотека, мора да го рестартирате ssh-серверот за да ги примените таквите промени.

    Пример за стандардна конфигурација на SSH сервер во Ubuntu:

    # Пример за конфигурација на open-ssh сервер со руски # # коментари..2010 година. # # # # # # Конвенции: # # Под „стандардно“ го мислиме однесувањето на sshd кога # # директивата не е експлицитно наведена. Вреди да се напомене дека во Ubuntu # # датотеката sshd_config веќе содржи голем број поставки кои # # се стандардните поставки за Ubuntu конкретно. # # Ваквите поставки се наведени во оваа датотека. # # # ############################################ ############# ################ Поставки за адреса/порта итн. ################################################################### # ###################### # ### Порта ##################### ### ############################# # # # Користена порта. Можете да наведете неколку, на пример: # # Порта 22 # # Порта 23 # # Порта 24 # # Се препорачува да користите нестандардна порта, бидејќи # # стандард често се скенира од ботови за потенцијални # # дупки. Може да се испушти ако е наведено # # преку адреса. Видете го и параметарот ListenAddress. # # # Порта 22 # # ## СлушајАдреса ################################################################## ### # # # Мрежна адреса на која слуша серверот. Адресата може # # да се напише вака: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Ако не е наведена порта, sshd ќе слуша на оваа адреса и # # на порта наведена во опцијата Порт. Ако # # користите ListenAddress без да наведете порта, тогаш опцијата # # Port мора да ѝ претходи на опцијата ListenAddress. Ако не е наведено # #, тогаш стандардно ги слуша сите локални # # адреси. Можете да наведете повеќе адреси. # # # ## Адреса на семејство ############################################################### # # # Одредува која фамилија IP адреси треба # # да ја користи sshd. Можни опции: # # „било кој“ - било кој # # „inet“ (само IPv4) # # „inet6“ (само IPv6) # # Стандардно - „било кој“. # Адреса Фамилијарен инет # # ## UseDNS ########################################################################################## # ######## # # # Одредува дали sshd треба да го проверува името на домаќинот и # # да го користи тоа име на домаќин за да ја провери IP адресата испратена од клиентот наспроти # # добиена од DNS. # # Стандардната вредност е „да“. # # # ############################################ ############# ############# Поставки за пристап до корисникот ##################### ############################################### ### # # # Дозволувањето/недозволувањето на корисникот се одредува со директивите # # DenyUsers, AllowUsers, DenyGroups и AllowGroups. # # во овој случај, проверката оди од врвот до дното по синџирот: # # ## DenyUsers ## # # || # # ## Дозволи корисници ## # # || # # ## DenyGroups ## # # || # # ## Дозволи групи ## # # Се прифаќаат само имиња на корисници и групи, нумеричките # # идентификатори (UserID) не се препознаваат. Поправете # # снимка на неколку корисници/групи по ред, одделени со # # празни места. Ако е напишано во форма user@host, тогаш # # корисникот и домаќинот се проверуваат одделно, ова овозможува # # да го ограничи пристапот до одредени корисници од # # одредени хостови. Вреди да се запамети дека директивите # # DenyUsers и AllowUsers го земаат името # # на корисникот како параметар, додека DenyGroups и AllowGroups го земаат името на групата # #. Видете PATTERNS in man ssh_config за повеќе # # информации за формите за снимање имиња на корисници и групи. # # # ## DenyUsers ############################################################### ### # # # Список на КОРИСНИЦИ кои НЕ МОЖАТ да користат sshd. # # Стандардно - не е одредено = никој не е забранет. Оние. ако тука е наведен # # корисник, тогаш ќе му биде забранет пристапот # # до ssh-серверот. # # # ## Дозволикорисници ############################################################### ## # # # Список на КОРИСНИЦИ кои МОЖАТ да користат sshd, # # Стандардно - не е одредено = дозволено за секого. Оние. ако е наведен # # барем еден корисник, ssh пристапот до серверот # # е достапен само за тој корисник. # # # ## DenyGroups ################################################################ ## # # # Список на ГРУПИ кои НЕ треба да ги користи sshd. # # Стандардно - не е одредено = ниту една група не е забранета. # # Тоа е ако е наведена барем една група, тогаш на корисниците # # вклучени во оваа група ќе им биде забранет пристапот до серверот ssh # #. # # # ## Дозволи групи ################################################################ # # # # Список на ГРУПИ кои sshd МОЖЕ да ги користи. # # Стандардно - не е одредено = дозволено за секого. Оние. ако е наведена # # барем една група, тогаш само на оние корисници# # вклучени во неа ќе им биде дозволен пристап до серверот ssh.# # # ################### ################################################################## ### Опции за одредување на статусот на врската ############################################################## ####### ######################## # # ## TCPKeepAlive ############## ######### ######################## # # # Означува дали системот треба да испраќа TCP пораки до клиентот # # за да се одржи врската. Ако ги испратите овие пакети, # #, можете да одредите дали врската е прекината. Сепак, ова исто така # # значи дека врската може да се прекине во случај на # # моментален прекин на рутирањето и # # ова е многу досадно за некои. Од друга страна, ако # # такви пораки не се испраќаат, сесиите на серверот може # # да траат бесконечно, создавајќи корисници „дух“ # # и проголтувајќи ги ресурсите на серверот. Стандардната вредност е „да“, # # т.е. праќајте такви пораки. За да го оневозможите испраќањето # # такви пораки, поставете ја вредноста на „не“. Претходно оваа опција # # беше наречена KeepAlive. Вреди да се напомене дека # # има посигурни начини за проверка на статусот на # # врска (видете подолу). # # # TCPKeepAlive да # # ## ClientAliveCountMax ##################################### # Го поставува бројот на пораки до клиентите што sshd # # ги испраќа по ред без да добива одговор од # # клиентот. Ако се достигне прагот и # # клиентот не одговори, sshd ќе го исклучи клиентот, завршувајќи ја сесијата # # ssh. Вреди да се напомене дека употребата на такви # # пораки е сосема различна од директивата TCPKeepAlive. # # Пораките до/од клиентите се испраќаат преку шифриран # # канал и затоа не се подложни на измама. Пораките # # TCPKeepAlive се подложни на измама. Клиентот жив # # механизам е особено вреден во случаи кога на серверот и клиентот им треба # # за да знаат кога врската станала неактивна. Стандардната вредност # # е 3. Доколку ClientAliveInterval # # е поставен на 15, а ClientAliveCountMax е оставен на стандардното # #, клиентите што не реагираат ќе се исклучат по приближно # # 45 секунди. Оваа директива работи само за # # протоколот ssh2. # # # ## ClientAliveInterval ###################################### # # # Сетови временскиот интервал во секунди. Ако нема комуникација со клиентот во текот на # # овој интервал, sshd # # испраќа порака преку шифриран канал барајќи # # одговор од клиентот. Стандардно е 0, т.е. # # не испраќајте такви пораки. Оваа директива работи # # само за протоколот ssh2. # # # ############################################ ############# ################ Општи опции за автентикација ################## ############################################### ######## # # ## Датотека со авторизирани клучеви ############################################################ # # # # Одредува датотека која содржи јавни клучеви # # што се користат за автентикација на корисниците. Директивата # # може да содржи токени од формата %M, кои се вметнуваат за време на процесот на воспоставување врска # #. # # Следниве токени се дефинирани: # # %% - заменет со буквалното „%“ # # %h - заменет со домашниот директориум # # на автентицираниот корисник # # %u - заменет со името на автентицираниот корисник # # Така, датотеката со клучеви може да биде наведена како # # на апсолутен начин (т.е. една споделена датотека со клучеви) и # # динамички - во зависност од корисникот (т.е. една датотека # # за секој корисник). # # Стандардно е „.ssh/authorized_keys“. # # Пример за датотека со клучеви во домашната папка на корисникот: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Пример за споделена датотека: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Погледнете го описот на датотеката со овластени_клучеви за повеќе информации. # # # ## ChallengeResponseAuthentication ########################### # # # # Одредува дали да се дозволи проверка на предизвик-одговор # # . Поддржани се сите # # типови на автентикација од login.conf. Стандардно е „да“, # # т.е. дозволи. # # На Ubuntu - оневозможено од безбедносни причини. # # # ChallengeResponseAuthentication no # # ## HostbasedUsesNameFromPacketOnly ######################## # # # Назначува како серверот треба да го добие името на домаќинот на клиентот # # кога шема за автентикација базирана на верификација на домаќинот. # # Ако е поставено на „да“, sshd # # ќе го користи името на домаќинот дадено од клиентот кога проверува за совпаѓање во датотеките # # ~/.shosts, ~/.rhosts или /etc/hosts.equiv. # # (изведување обратна резолуција на DNS) Ако е поставено на „не“# # - sshd ќе го реши името од самата TCP конекција. # # Стандардно е „не“. # # # ## Игнорирај ги домаќините ########################################## # # # Спречува употреба на .rhosts и .shosts датотеките # # во автентикација базирана на домаќин. # # (RhostsRSAAавтентикација или HostbasedAuthentication). # # Датотеките /etc/hosts.equiv и /etc/ssh/shosts.equiv сè уште се користат # #. # # Стандардно е „да“. # # # IgnoreRhosts да # # ## ИгнорирајКорисникПознатиХостови ##################################### Покажува дали sshd треба да ја игнорира корисничката # # датотека „познати хостови“ ~/.ssh/known_hosts за време на # # процес на автентикација базиран на домаќин # # (RhostsRSAAавтентикација или HostbasedAuthentication). # # Стандардно е „не“. # # # ## Permit Blacklisted Keys ################################## # # # Означува дали sshd треба да се прифати клучеви на црната листа # # како компромитирани (познати-компромитирани # # клучеви (видете ssh-vulnkey)). Ако е поставено на „да“ - # # обидите за автентикација со такви клучеви ќе бидат евидентирани # # и прифатени, ако е поставено на „не“ - # # обидите за автентикација ќе бидат одбиени. # # Стандардно е „не“. # # # ## PermitEmptyPasswords ################################################################## случај на дозволена автентикација со користење лозинка, # # покажува дали е можно најавување со празна лозинка. # # Стандардно е „не“. # # # PermitEmptyPasswords нема # # ## PermitRootLogin ################################################################# # # # # Покажува дали е можно најавување ssh како суперкорисник # # (root). Може да ги земе следните вредности: # # „да“ - суперкорисникот може да се најави. Се применува # # тековната глобална шема за автентикација. # # # # „без лозинка“ - суперкорисникот може да се најави. # # Автентикацијата на лозинката ќе биде оневозможена за неа. # # # # „само принудени команди“ - суперкорисникот ќе може да се најави користејќи # # автентикација врз основа на јавен клуч и # # само ако ја помине командата потребна за извршување. # # Ова е корисно за правење резервни копии, # # дури и кога нормалното (т.е. не преку ssh) # # најавувањето на суперкорисникот е оневозможено. Сите други # # методи за автентикација за суперкорисникот ќе бидат блокирани.# # # # „не“ - суперкорисникот не може да користи ssh до # # најавување. # # # # Стандардната вредност е „да“. # # # PermitRootLogin да # # ## Протокол ######################################################################################### ######## # # # Одредува кој протокол треба да го користи sshd. # # Можни вредности на „1“ и „2“ се ssh1 и ssh2 # # соодветно. Можно е истовремено пишување, во тој случај # # вредностите треба да се одделат со запирки. # # Стандардно е „2.1“. # # Вреди да се напомене дека редоследот на протоколите во записите # # не го одредува приоритетот, бидејќи клиентот избира кој # # од неколку протоколи предложени од серверот да го користи # #. Внесот „2,1“ е апсолутно идентичен # # со записот „1,2“. # # # Протокол 2 # # ## UsePAM ########################################################### ########## # # # Го овозможува интерфејсот на PAM (интерфејс на модулот за автентикација што може да се приклучи). се користи врз основа на # # предизвик-одговор (ChallengeResponseAuthentication и # # PasswordAuthentication) бидејќи # # автентикацијата со одговор на предизвикот во PAM генерално ја има истата улога # # како автентикација на лозинка, треба да го оневозможите # # или PasswordAuthentication или # # ChallengeResponseAuthentication. Вреди да се напомене дека # # ако е овозможена директивата UsePAM, нема да можете да извршите # # sshd како корисник различен од root. # # Стандардната вредност е „не“. # # # UsePAM да # # ## Автентикација на лозинка ################################## # # # Покажува дали овозможено дали автентикација со користење # # лозинка. # # Стандардно е „да“. # # # ## Клуч домаќин ############################################################## ##### # # # Ја одредува датотеката што го содржи приватниот клуч за домаќин # # што го користи SSH. Стандардно е /etc/ssh/ssh_host_key # # за протоколот ssh1 и /etc/ssh/ssh_host_rsa_key и # # /etc/ssh/ssh_host_dsa_key за протоколот ssh2. Вреди # # да се напомене дека sshd нема да користи датотека # # што е достапна за кој било друг освен за корисникот. Можете # # да користите повеќе датотеки со клучеви, копчињата се „rsa1“ - # # за протоколот ssh1 и „dsa“/„rsa“ за протоколот ssh2. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################# ### ###################################### Опции за SSH протокол верзија 1 (ssh1) ### ################################################################ ### ################### # СИРОГО НЕ СЕ ПРЕПОРАЧУВА да се користи протоколот ssh1.# # Протоколот ssh2 е многу побезбеден од ssh1 # ### ################################################################### ####### # # ## Интервал на регенерација на клучеви ################################# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ssh1 протокол - еднаш во одредено време # # автоматски се генерира нов привремен клуч на серверот # # (ако бил користен). Ова е направено за # # да се спречи дешифрирањето на пресретнатите сесии со цел # # подоцна да се најавите на машината со параметрите на овие сесии и # # да ги украдете клучевите. Таков клуч не се чува никаде (се чува во # # RAM). Оваа директива го одредува животниот век # # на клучот во секунди, по што тој повторно ќе се генерира # #. Ако вредноста е поставена на 0 - # #, клучот нема да се генерира повторно. # # Стандардната вредност е 3600 (секунди). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAавтентикација ################################# # # # Означува дали автентикацијата врз основа на # # rhosts или датотеките /etc/hosts.equiv во врска со успешната автентикација на домаќинот # # преку RSA. # # Релевантно само за протоколот ssh1. # # Стандардно е „не“. # # # RhostsRSAAавтентикација бр # # ## RSAAавтентикација ###################################### ## # # # Покажува дали е дозволена „чиста“ RSA автентикација. # # Релевантно само за протоколот ssh1. # # Стандардно е „да“. # # # RSAAавтентикација да # # ## ServerKeyBits ########################################################################################## ### # # # Го дефинира бројот на битови во привремениот клуч на серверот за # # протоколот ssh1. Минималната вредност е 512. # # Стандардна вредност е 1024. # ServerKeyBits 768 # # ################################ # ###################################### Опции за SSH протокол верзија 2 (ssh2) ## ## ################################################################# ### ################### # # ## Шифри ###################### ## ##################### # # # Ги означува алгоритмите за шифрирање дозволени за # # протоколот ssh2. Повеќе алгоритми мора да бидат # # одделени со запирки. Поддржани алгоритми: # # „3des-cbc“, „aes128-cbc“, „aes192-cbc“, „aes256-cbc“, # # „aes128-ctr“, „aes192-ctr“, „aes256-ctr“, „ arcfour128", # # "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". # # Стандардно: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #5cts -ctr # # # ## HostbasedAuthentication ################################# # # # Покажува дали автентикацијата е овозможено , врз основа на # # потврда на домаќинот. rhosts или /etc/hosts.equiv се штиклира, # # и ако е успешна, во комбинација со успешна проверка # # на јавниот клуч, пристапот е дозволен. Оваа директива # # е иста како директивата за автентикација RhostsRSAA и # # е погодна само за протоколот ssh2. # # Стандардно е „не“. # # # HostbasedAuthentication no # # ## MACs ############################################################### ############ # # # Покажува валиден MAC алгоритам (порака # # код за автентикација). Алгоритмот MAC се користи # # од протоколот ssh2 за да се заштити интегритетот на податоците. Повеќе алгоритми # # мора да се одделат со запирки. # # Стандардно: # # hmac-md5,hmac-sha1, [заштитена е-пошта] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## PubkeyAuthentication ######################### ########## # # # Покажува дали е дозволена автентикација врз основа на # # јавен клуч. Релевантно само за протоколот ssh2. # # Стандардно е „да“. # # # PubkeyAuthentication да #################################################################### #################################### Опции за GSSAPI ############ ## ################################################################## ## ######################## # # ############ Применливо само за ssh2 протокол #### #### ### # # ## GSSAPIAавтентикација ############################################################## ## # # # Покажува дали автентикацијата на корисникот # # е базирана на GSSAPI или не. Стандардно е „не“, т.е. забрането. # # # ## GSSAPIKeyExchange ######################################### Покажува дали е дозволена размена на клучеви врз основа на # # GSSAPI. Размената на клучеви со помош на GSSAPI не се потпира на # # ssh клучеви за да се потврди идентитетот на домаќинот. # # Стандардно е „не“ - т.е. размената е забранета. # # # ## GSSAPICCleanupCredentials ############################## # # # Одредува дали автоматски да се уништи # # корисничкиот кеш на акредитиви за автентикација кога ќе заврши # # сесија. # # Стандардно е „да“ - т.е. треба да се уништи. # # # ## GSSAPIStrictAcceptorCheck ############################### # # # Определува колку строга треба да биде проверката на идентитетот # # клиент кога се автентицира преку GSSAPI. # # Вредноста „да“ предизвикува клиентот да се автентицира на услугата за примање домаќин # # на тековниот хост. Вредноста „не“ # # му овозможува на клиентот да се автентицира со користење на кој било услужен клуч # #. # # Стандардно е „да“. # # Вреди да се напомене дека поставувањето на „не“ може # # да работи само со ретките Kerberos GSSAPI библиотеки. # # # ############################################ ############# ################### Опции на Керберос ################# ################################################################### ### ################### # # ## KerberosAuthentication ######################## ### ######## # # # Покажува дали лозинката # # дадена од корисникот за автентикација # # (PasswordAuthentication) бара валидација во Kerberos KDC. # # За да ја користи оваа опција, серверот мора # # да потврди дека KDC е точно. (На серверот му треба # # Kerberos servtab кој овозможува проверка на идентитетот на # # KDC) # # Стандардно е „не“. # # # ## KerberosGetAFSToken ####################################### Ако AFS е активен и корисникот добил Kerberos 5 TGT, # # дали да се обиде да добие токен AFS пред корисникот # # да може да пристапи до неговата домашна папка. # # Стандардно е „не“. # # # ## KerberosOrLocalPasswd ################################## # # # Покажува што да правите во случај на ако автентикацијата # # преку Kerberos не успее. Ако # # вредност = "да", лозинката ќе се потврди со # # кој било дополнителен механизам за локален авторизација, # # на пример /etc/passwd. # # Стандардно е „да“. # # # ## KerberosTicketCleanup ################################# # # # Покажува дали автоматски да се убие датотеката со # # кеш на кориснички билети на крајот од сесијата. # # Стандардно е „да“. # # # ############################################ ############# ################# Опции за пренасочување ################## # ## ################################################################ ## ############# # # ## Дозволи препраќање агент ############################# #### ### # # # Означува дали да се дозволи или оневозможи пренасочување # # ssh-agent. Стандардно е „да“, односно дозволи. # # Вреди да се напомене дека оневозможувањето на пренасочувањето нема # # да ја зголеми безбедноста додека корисниците исто така ќе биде одбиен и # # пристап до школка, бидејќи тие секогаш можат да инсталираат # # свои сопствени аналози на агенти. # # # ## AllowTcpForwarding ############### # # # Означува дали да се овозможи или оневозможи пренасочување на TCP. случај на AllowAgentForwarding, оневозможувањето на пренасочувањето # # нема да ја зголеми безбедноста сè додека # # корисници имаат пристап до конзолата, бидејќи можат # # да ги инсталираат своите колеги. ################################ # # # Одредува дали да се дозволи пристап на далечинските домаќини до # # препратени порти . Стандардно, sshd слуша # # за поврзување со препратени порти само на локалниот # # интерфејс за јамка. Ова спречува други далечински # # хостови да се поврзат со препратените порти. Можете # # да користите GatewayPorts за да му дозволите на sshd да # # го прави ова. Директивата може да земе 3 вредности: # # "не" - само повратен циклус. # # „да“ - какви било адреси. # # "клиент одреден" - адреси наведени од клиентот. # # # ## Отворена дозвола ############################################################### ## # # # Означува каде е дозволено препраќањето на TCP портата. # # Назначувањето на пренасочување мора да има една од # # следниве форми: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Може да се наведат повеќе записи со нивно одвојување со празни места. # # Аргументот „било кој“ може да се користи за отстранување на сите # # ограничувања за препраќање порти. Стандардно, дозволено е секое пренасочување # #. # # # ## Дозволен тунел ################################################################ # # # Покажува дали е дозволено пренасочување на уредите за прилагодување. # # Може да земе вредности: # # „да“ # # „точка-до-точка“ (3-ти мрежен слој) # # „ethernet“ (втор мрежен слој) # # „не“ # # Вредноста „да“ ги дозволува двете „точка“ -to-point“ # # и „ethernet“ во исто време. Стандардно е „не“. # # # ############################################ ############# ################## Опции за евиденција ################# ### ################################################################ ## ############# # # ## SyslogFacility ################################################### ## ########## # # # Го поставува кодот на објектот за дневник за пишување пораки на # # syslog од sshd. Можни вредности: # # DAEMON # # КОРИСНИК # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Стандардно е AUTH. # # # SyslogFacility AUTH # # ## LogLevel ######################################################################################## ######## # # # Го поставува нивото на гласност на дневникот sshd. # # Можни опции: # # ТИВКО # # ТИВКО # # ФАТАЛНО # # ГРЕШКА # # ИНФО # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Стандардно е ИНФО. # # DEBUG и DEBUG1 се еквивалентни еден на друг. # # DEBUG2 и DEBUG3 ги поставуваат највисоките нивоа на излез за отстранување грешки # #. Пријавувањето на ниво DEBUG ја загрозува приватноста на # # корисник и не се препорачува. # # # ИНФОРМАЦИИ за ниво на евиденција # # ##################################################################### ################################### Пренасочување на X11 ############# ################################################################### # ################### # # ## X11Препраќање ######################## ### ################ # # # Покажува дали е овозможено пренасочување на графичкиот потсистем X11 # #. Може да ги земе вредностите „да“ или „не“. # # Стандардно е „не“. # # Внимание - овозможувањето едноставно пренасочување на X11 е # # голем ризик и за серверот и за клиентите, бидејќи Во # # такво пренасочување, приказот на прокси sshd # # прифаќа врски од кои било адреси. Користете # # директивата X11UseLocalhost за да го ограничите пристапот до серверот за пренасочување на # # X. Вреди да се напомене дека # # оневозможувањето на пренасочувањето нема да гарантира дека # # корисници нема да можат да го пренасочат X11, бидејќи имајќи пристап до # # конзола, тие секогаш инсталираат свој # # пренасочувач. Пренасочувањето на X11 ќе биде # # автоматски оневозможено ако е овозможена директивата UseLogin # #. # # # X11Препраќање да # # ## X11UseLocalhost ################################################################# # # # # Покажува дали sshd треба да го ограничи опсегот на препраќањето # # X11 на локална адреса за враќање на јамката, или # # треба да дозволи какви било адреси. Стандардно, sshd # # го поставува серверот за пренасочување X11 на локална адреса # # и го поставува делот за името на домаќинот од променливата на околината DISPLAY # # на „localhost“. Вреди да се напомене дека # # некои постари X11 клиенти можеби нема да работат со овие # # поставки. Стандардно е „да“, т.е. пренасочувањето # # е ограничено од локалниот домаќин, вредноста - „не“ - оневозможува # # ограничувања. # # # ## XAuthLocation ##################################################################### # # # Ја одредува целосната патека до програмата xauth. # # Стандардно е /usr/bin/X11/xauth. # # # ## X11DisplayOffset #################################################################### Го означува бројот на првиот приказ достапен за sshd како пренасочување # # X11. Ова е направено така што # # пренасочените X да не се преклопуваат со # # вистински. Стандардно е 10. # # # X11DisplayOffset 10 # # ################################################################ ## ######################################## Разни опции ##### ## ################################################################# ##### ########################### # # ## Најави сеGraceTime ############# ####### ######################## # # # Време по кое серверот го исклучува # # корисникот ако не можел да најавете се # # задоволително. Вредност 0 - му овозможува на корисникот # # да се најави на неодредено време. Стандардно е 120 (секунди). # # # LoginGraceTime 120 # # ## MaxAuthTries ################################################################ ### #### # # # Го означува максималниот број обиди за автентикација # # дозволен по врска. # # Штом бројот на неуспешни обиди ќе надмине половина од наведената вредност # #, сите последователни обиди # # ќе бидат евидентирани. Стандардната вредност е 6. # # # ## MaxSessions ################################################################ ####### # # # Го одредува максималниот број на истовремени врски # # за секоја мрежна врска. Стандардно е 10. # # # ## MaxStartups ######################################################################################## ###### # # # Го одредува максималниот број на истовремени # # неовластени врски со sshd. Ако # # бројот на врски го надмине лимитот, сите дополнителни # # врски ќе бидат исфрлени додека не се завршат тековните # # врски или со успешно овластување # # или временскиот период наведен во директивата # # LoginGraceTime не истече. Стандардната вредност е 10. # # Изборно, можете да поставите врски да се ресетираат рано до # # наведувајќи три вредности како параметар, одделени # # со две точки „start:rate:full“ (на пример: „10:30 :60"). # # sshd ќе одбие обид за поврзување со веројатност еднаква на # # „стапка/100“ (т.е. во нашиот пример - 30%) ако веќе има # # „старт“ (10) неовластени врски. # # Веројатноста се зголемува линеарно и сите обиди за поврзување # # ќе бидат одбиени ако бројот на неовластени # # врски достигне „целосна“ (60). # # # ## Компресија #################################################################### # # # # Покажува дали е овозможена компресија на податоци. Може да биде # # „да“ - овозможена е компресија. # # "одложено" - компресирањето е одложено додека # # корисникот не биде успешно автентификуван. # # "не" - компресија е оневозможена. # # Стандардно е „одложено“. # # # ## КористетеНајава ################################################################### #### # # # Покажува дали најавувањето треба да се користи за # # интерактивна сесија. Стандардната вредност е „не“. # # Вреди да се напомене дека најавувањето никогаш не било користено за # # извршување на далечински команди. Исто така, имајте предвид дека # # користењето на најавување ќе го оневозможи користењето # # на директивата X11Forwarding, бидејќи најавувањето не знае што да прави # # со xauth. Ако директивата # # UsePrivilegeSeparation е овозможена, таа ќе биде оневозможена по овластувањето # #. # # # ## Use PrivilegeSeparation ##################################### # # # Одредува дали sshd треба да ги одвои привилегиите. Ако да # #, тогаш прво ќе се креира непривилегиран процес на дете # # за дојдовен мрежен сообраќај. По успешното овластување # #, ќе се креира друг процес со привилегии # # на најавениот корисник. Главната цел на поделбата на привилегијата # # е да се спречи злоупотреба на правата за пристап. # # Стандардната вредност е „да“. # # # Употреба Привилегија Одделување да # # ## Строги режими ################################################################## ### ##### # # # Означува дали sshd треба да ги проверува режимите за пристап и # # сопственост на корисничките папки и датотеки пред # # да му дозволи на корисникот да се најави. Ова е обично затоа што # # почетници често ги прават нивните датотеки да се запишуваат # # за секого. Стандардно е „да“. # # # Строги режими да # # ## AcceptEnv ######################################################################################## ####### # # # Одредува кои променливи на околината поминати # # од клиентот ќе бидат прифатени. Видете ја опцијата SendEnv во клиентот. # # Вреди да се напомене дека пренесувањето променливи е можно само # # за протоколот ssh2. Променливите се наведени по име, може да се користат # # маски („*“ и „?“). Можете да наведете # # повеќе променливи одделени со празни места или да го поделите AcceptEnv на # # повеќе линии. Бидете внимателни - некои # # променливи на околината може да се користат за да се заобиколат # # забранети кориснички околини. Користете ја оваа директива # # внимателно. Стандардно, не се прифаќаат # # променливи на корисничка околина. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ############################################################## Одредува дали sshd треба да ја прифати опцијата # # ~/.ssh/environment и околината= во # # ~/.ssh/authorized_keys. Стандардно е „не“. Вреди # # да се напомене дека овозможувањето обработка на околината може да им даде на # # корисниците можност да ги заобиколат ограничувањата во некои # # конфигурации кои користат механизми како што е # # LD_PRELOAD. # # # # # ## PidFile ################################################################################ # ####### # # # Одредува датотека што го содржи процесот ID # # (процес ID, PID) на SSH демонот. # # Стандардно - /var/run/sshd.pid # # # # # ## PrintLastLog ########################### ############## # # # Одредува дали sshd треба да ги прикажува датумот и времето # # од последната сесија кога корисникот интерактивно се најавува. # # Стандардно е „да“. # # # Print LastLog да # # ## PrintMotd ######################################################################################## ####### # # # Одредува дали sshd треба да прикажува /etc/motd # # кога корисникот се најавува интерактивно. На некои # # системи (на пример Ubuntu) оваа информација е исто така # # прикажана од школката. # # Стандардната вредност е „да“. # # # PrintMotd бр # # ## Банер ########################################################### ########## # # # Означува која датотека содржи текстуален банер кој # # ќе му биде прикажан на корисникот ПРЕД # # процедурата за автентикација. Опцијата е достапна само за протоколот ssh2.# # Стандардно - не покажува ништо. # # На Ubuntu, датотеката issue.net ја содржи фразата Ubuntu (верзија), # # на пример, за кармички тоа е „Ubuntu 9.10“. Дали # # може да се користи за дезориентација на можни напаѓачи, # # со пишување таму, на пример, „Мојот D-Link Interet Router“ =) # # # Банер /etc/issue.net # # ## ChrootDirectory ###### ##### ############################## # # # Ако е наведено, обезбедува патеката до # # да биде chrooted по автентикација. Патеката и сите нејзини # # содржини мора да одговараат на папките # # во сопственост на суперкорисникот и да не можат # # да се запишуваат од други корисници. # # Патеката може да содржи етикети што се заменуваат за време на # # процесот на автентикација: # # %% - заменет со буквално „%“ # # %h - заменет со домашниот директориум # # на автентицираниот корисник # # %u - се заменува со името на автентицираниот корисник # # chroot -папката треба да ги содржи сите потребни датотеки и # # папки за корисничката сесија. Интерактивна # # сесија бара минимум: # # школка, обично sh # # основни уреди во /dev како што се: # # null, zero, stdin, stdout, stderr, случајни и tty # # за сесија за пренос на податоци со користење sftp нема # # дополнителни поставки се потребни ако се користи внатрешниот процес на серверот # # sftp. Видете во потсистем за # # повеќе информации. Стандардно, chroot не се изведува. # # # ## ForceCommand ############################################################### # # # Предизвикува да се изврши наведената команда. Ги игнорира # # сите команди испратени од клиентот или напишани на # # ~/.ssh/rc. Командата се повикува од # # школка на корисникот со опцијата -c. Погоден за лансирање на школка, # # команда или потсистем. Најкорисно во блокот # # Match. Командата првично издадена од клиентот е зачувана # # во променливата на околината SSH_ORIGINAL_COMMAND. Ако # # ја наведете командата "internal-sftp", ќе се стартува внатрешниот sftp сервер # #, на кој не му се потребни дополнителни # # датотеки и папки опишани во директивата ChrootDirectory. # # # ## Подсистем ############################################################## ### # # # Дефинира и конфигурира надворешен потсистем (на пример # # демон за пренос на датотеки). # # Аргументите се името и командата (со можни # # аргументи) кои ќе се извршат кога се бараат # # потсистеми. Командата sftp-сервер го започнува потсистемот за пренос на датотеки „sftp“ - # #. Дополнително, можете да наведете # # „internal-sftp“ како потсистем - кој ќе го стартува # # внатрешниот sftp сервер. Ова може многу да ја поедностави конфигурацијата # # кога се користи директивата # # ChrootDirectory. Стандардно, не се повикуваат никакви потсистеми # #. Релевантно само за протоколот ssh2. # # # Подсистем sftp /usr/lib/openssh/sftp-сервер # # ######################################################### ################################################ Натпревар Блокирај ################################################################### ## #################################### # # # Специјално го преместив до крајот на датотеката за да биде поудобно # # пишува Правила за совпаѓање. # # MadKox. # # # # Директивата Match претставува почеток на условен # # блок. Ако се исполнети сите критериуми наведени во линијата # # Match, се извршуваат директивите на следните линии на блокот, # # дозволувајќи им на вредностите на глобалните директиви во датотеката # # sshd_config да се заобиколат за случајот што е критериуми за директивата # # Натпревар. Блок се сметаат за сите линии што доаѓаат по линијата # # со критериумот (Поклопување - линии) до следната линија за совпаѓање # # или до крајот на датотеката. Аргументот на директивата Match е еден или # # повеќе пара записи на критериуми. Можни типови на записи: # # Корисник # # Група # # Домаќин # # Адреса # # Записите може да содржат или единечни вредности # # (на пример Корисник=корисник) или повеќе вредности # # одделени со запирки (Корисник=корисник1 , корисник 2). Редовните изрази опишани во делот # # PATTERNS од датотеката ssh_config може да се користат и # #. Записите во критериумот за адреса # # може да содржат адреси во ознаката CIDR # # (Должина на адреса/маска, на пр. „192.0.2.0/24“ или # # „3ffe:ffff::/32“). Вреди да се напомене дека обезбедената должина на маската # # мора да одговара на адресата, а исто така # # долга/кратка за адресата нема да работи. # # Match може да користи само # # одреден сет на директиви како директиви: # # AllowTcpForwarding # # Банер # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAавтентикација # # HostbasedAuthentication # # KbdInteractiveAuthentice # PasswordAuthentication # # PermitOpen # # PermitRootLogin # # RhostsRSAAавтентикација # # RSAAавтентикација # # X11DisplayOffset # # X11Препраќање # # X11UseLocalHost #

    Можете да го копирате горниот текст во вашата сопствена sshd_config и да го користите подоцна за конфигурација.

    Самиот по себе, неправилно конфигуриран SSH сервер е огромна ранливост во безбедноста на системот, бидејќи можниот напаѓач има можност да добие речиси неограничен пристап до системот. Покрај тоа, sshd има многу дополнителни корисни опции кои се препорачува да се овозможат за да се подобри употребливоста и безбедноста.

    Port, ListenAddress и AddressFamily

    Овие три параметри одредуваат на кои порти и адреси вашиот сервер ќе слуша за дојдовни врски. Прво, има смисла, ако е можно, да се ограничи семејството на адреси што се обработуваат на оние што се всушност користени, т.е. ако користите само IPv4, оневозможете IPv6 и обратно. Ова може да се направи со помош на параметарот AddressFamily, на пример (за да се дозволи IPv4 и да се одбие IPv6):

    AddressFamily inet

    Второ, препорачливо е да се смени стандардната порта (22) на која слуша sshd. Ова се должи на фактот што бројни мрежни скенери постојано се обидуваат да се поврзат со портата 22 и барем да добијат пристап со брутално принудување на најавувања/лозинки од нивната база на податоци. Дури и ако имате оневозможено автентикација со лозинка, овие обиди силно ги затнуваат дневниците и (во големи количини) може негативно да влијаат на брзината на ssh-серверот. Ако поради некоја причина не сакате да ја промените стандардната порта, можете да користите разни надворешни алатки за борба против бруталните форсирачи, на пример fail2ban, и вградените, како што се MaxStartups.
    Може да ја поставите портата или како апсолутна вредност за сите интерфејси со помош на директивата Port, или како специфична вредност за секој интерфејс користејќи ја директивата ListenAddress. На пример:

    Порт 2002 година

    ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

    Одбијте далечински пристап за суперкорисник

    Стандардно, root пристапот е забранет со лозинка (со клуч е можно) - опцијата PermitRootLogin е поставена на без лозинка . Но, имајќи предвид дека стандардно во Ubuntu корисникот додаден за време на инсталацијата на системот има можност да ги решава сите административни задачи преку sudo, создавањето можност за root пристап до системот преку ssh изгледа неразумно (дури и со автентикација на клучот). Се препорачува целосно да се исклучи. оваа опција или користете ја само во режим само присилни команди. Можете да го оневозможите root пристапот вака:

    PermitRootLogin бр

    Автентикација на лозинка

    Автентикацијата со лозинка, која е стандардно дозволена, е практично најпримитивниот метод за овластување во sshd. Од една страна, ова ја поедноставува конфигурацијата и поврзувањето на новите корисници (корисникот треба само да го знае неговиот системски најава/лозинка), од друга страна, лозинката секогаш може да се погоди, а корисниците често занемаруваат да креираат сложени и долги лозинки . Специјални ботови постојано ги скенираат ssh серверите достапни од Интернет и се обидуваат да се логираат на нив со брутално принудување на најавувања/лозинки од нивната база на податоци. Силно се препорачува да не се користи автентикација со лозинка. Можете да го оневозможите вака:

    Лозинка Автентикација бр

    Ако поради некоја причина сè уште сакате да користите автентикација на лозинка, проверете дали никој не може да се најави со празна лозинка. За да го направите ова, поставете ја директивата PermitEmptyPasswords:

    PermitEmptyPasswords бр

    Протоколите SSH1 и SSH2

    Како што веќе споменавме, sshd може да работи со протоколите SSH1 и SSH2. Сепак, користењето на несигурен SSH1 е многу обесхрабрено. Можете да го принудите sshd да работи само со протоколот SSH2 вака:

    Автентикација врз основа на SSH2 RSA клучеви

    Најпрефериран метод за овластување е автентикацијата базирана на клучеви SSH2 RSA. Со овој метод, корисникот генерира пар клучеви на своја страна, од кои едниот клуч е таен, а другиот јавен. Јавниот клуч се копира на серверот и се користи за да се потврди идентитетот на корисникот. За повеќе информации за создавање пар клучеви и како да ги поставите на серверот, видете го описот на клиентот SSH. Можете да овозможите автентикација со јавен клуч вака:

    PubkeyAuthentication да

    Серверот мора да знае каде да го бара јавниот клуч на корисникот. За ова се користи специјална датотека authorized_keys. Неговата синтакса може да биде како што следува:

    # Коментарите се напишани само на нова линија # општ изглед на записи во датотеката со овластени_клучеви # [опции] тип_клуч (ssh-rsa или ssh-dss) многу_долга_низа_неразбирлива за обичниот човек [login@host] ssh-rsa AAAAB3Nza...LiPk == [заштитена е-пошта] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [заштитена е-пошта]команда = "dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [заштитена е-пошта]

    Можете да наведете или една споделена датотека со клучеви или една датотека за секој корисник. Последниот метод е поудобен и побезбеден, затоа што, прво, можете да наведете различни комбинации на клучеви за секој корисник и второ, да го ограничите пристапот до јавниот клуч на корисникот. Можете да наведете датотека со клучеви користејќи ја директивата AuthorizedKeysFile:

    AuthorizedKeysFile %h/.ssh/my_keys

    за корисникот на шемата - датотека
    или

    AuthorizedKeysFile /etc/ssh/authorized_keys

    за шема со споделена датотека. Стандардно, клиентот SSH бара клучеви во датотеката ~/.ssh/authorized_keys.

    Повеќе за безбедноста

    Дополнителни поставки

    Корисници и групи.

    Ако имате многу корисници кои „живеат“ на вашиот сервер и сакате да дозволите пристап преку ssh само на неколку од нив, можете да ги користите директивите DenyUsers, AllowUsers, DenyGroups и AllowGroups. За повеќе информации за овие директиви, видете ги коментарите во примерот sshd_config.

    Опции за статус на врската

    Стандардно, меѓу методите за одредување на состојбата на врската, овозможен е само методот за проверка на врската TCP - TCPKeepAlive, сепак, sshd може да ги одреди состојбите на поврзување на попогодни и побезбедни начини. Погледнете го соодветниот дел во примерот sshd_config за повеќе детали.

    Изведба. MaxStartups

    Port Forwarding

    X11 пренасочување

    На серверот, во датотеката /etc/ssh/sshd_config, поставете го параметарот (стандардно овозможен):

    НапредX11 да

    На клиентот, поставете ги параметрите во датотеката /etc/ssh/ssh_config (стандардно оневозможено):

    ForwardAgent да ForwardX11 да

    Можете да го извршите на клиентот вака: ssh yurauname@serverip firefox . Или прво одете на ssh yurauname@serverip и потоа стартувајте, на пример, sudo synaptic .

    SFTP

    sshd стандардно има вграден SFTP сервер. SFTP (SSH File Transfer Protocol) - SSH протокол за пренос на датотеки. Тој е дизајниран да копира и врши други операции со датотеки преку сигурна и сигурна врска. Како по правило, протоколот SSH2 се користи како основен протокол кој обезбедува врска. За да овозможите поддршка за SFTP, додајте ја линијата во sshd_config

    Подсистем sftp /usr/lib/openssh/sftp-сервер

    Стандардно, поддршката за SFTP е овозможена.

    Користење на критериуми. Директива за натпревар

    Поставување SSH клиент

    Најавувањето со помош на клуч се смета за најбезбедно и во повеќето случаи оваа функција е овозможена на страната на серверот, така што не се потребни права на суперкорисници за да се користи. На клиентската машина генерираме клуч:

    ssh-keygen -t rsa

    Од нас е побарано да внесеме лозинка за да ја заштитиме датотеката со клучот (се испостави дека е корисно ако датотеката падне во погрешни раце). Ако сакаме да извршиме скрипти преку SSH, тогаш го оставаме празно. Јавниот клуч го пренесуваме на серверот со командата

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub user@ сервер

    Тоа е тоа, можете да влезете.

    Кога ssh работи на нестандардна порта:

    Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port user@server"

    Ако се појави грешка: Лоша порта "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

    обидете се да ги ставите параметрите во наводници:

    Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p port user@server""

    Удобно е да се користи алатката за екран кога се поврзувате со далечински систем.

    Поставување оддалечен ssh директориум во Наутилус

    Монтирање далечински директориум користејќи sshfs

    Монтирање оддалечен директориум во локален директориум

    sshfs user@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

    Демонтирање

    Fusermount -u ~/ sshsfdir

    SSH псевдоними

    Кога користите неколку сервери со различни параметри за пристап (нестандардна порта, долго име на хост, најавување различно од локалниот итн.), понекогаш е досадно секој пат повторно да ги внесувате сите поставки за поврзување. За да го олесните ова, можете да користите псевдоними.

    Поставките се чуваат во ~/.ssh/config за еден корисник и во /etc/ssh/ssh_config глобално за сите корисници.

    Пример за конфигурација. Може да се опишат повеќе сервери. Повеќе детали во човек ssh_config(да не се меша со sshd_config)

    AliasName на домаќинот # Произволно име на домаќинот HostName 1.2.3.4 # Може да наведете и IP и име на домаќин (ако DNS работи) Корисник YourUserName # Ако корисникот не одговара на локалниот корисник Port YourSSHPort # Ако е нестандардна порта

    По ова можете да се поврзете на серверот со командата

    ssh AliasName

    ssh-агент

    Дијагностицира проблеми со поврзувањето

      Анализа на дневникот за поврзување:

    ssh -vvv user@ домаќин

      Анализа на конфигурациските датотеки на клиентот и серверот.

    Локацијата на конфигурациските датотеки може да се најде во

    Човек сш човек сшд

    Користење на паметни картички

    1. Создавањето сертификат и извозот на јавен клуч, како и клиентскиот дел на Windows + Putty SC, е опишано на веб-локацијата: http://habrahabr.ru/post/88540/ Додатокот за Key Manager опишан таму е достапно само во постарите верзии на Firefox. Тестирано на верзија 3.5 за Windows. Директна врска до додатокот: https://addons.mozilla.org/ru/firefox/addon/key-manager/

    2. Подготовка на серверот. Треба да бидете сигурни дека вашата sshd конфигурација дозволува автентикација со користење на јавни клучеви. За да го направите ова, треба да ја наведете вредноста на параметарот „PubkeyAuthentication“ на „да“ во датотеката „sshd_config“. Потоа го додаваме нашиот јавен клуч добиен претходно (во една линија) во датотеката „~/.ssh/authorized_keys“. Ве молиме имајте предвид дека датотеката „.ssh/authorized_keys“ се наоѓа во домашниот директориум на корисникот кој потоа ќе се најави користејќи го јавниот клуч.

    3. Клиент дел на Linux. Ќе треба да го обновите пакетот OpenSSH без параметри. Се препорачува само да се наведат префиксите на директориумот, на пример –prefix=/usr. Исто така, треба да забележите дека конфигурациските датотеки ќе бидат во /usr/etc. Пред да започнете, потребни ви се следните пакети: opensc-lite-devel, zlib-devel, openssl-devel. Инсталирајте го драјверот за паметна картичка. За погодност, во конфигурацијата ssh_config (да не се меша со sshd_config), наведете ја патеката до библиотеката pkcs: PKCS11Provider=<путь к библиотеке>

    4. На клиентот, стартувајте ssh user@host Ако паметната картичка (токенот) е поврзана, ќе ви биде побарано лозинка и најавени на SSH сесијата.

    Можни проблеми при употреба

    Вообичаената комбинација на копчиња Ctrl + S, што се користи во многу уредници за зачувување на корекции, при работа во терминал со ssh-сервер, ќе доведе до извршување на командата XOFF, која површно наликува на замрзнување на сесијата. Сепак, тоа не е. Серверот продолжува да прифаќа влезни знаци и команди, но не ги прикажува на екранот. За да се извлечете од оваа неволја, само користете ја комбинацијата Ctrl + Q, со што повторно ќе го вклучите режимот XON.

    Врски

    Тоа е, корисникот1 може да се регистрира и за себе - во датотеката /home/user1/.ssh/keys) и за друг корисник, што ќе му овозможи да се најави од својот компјутер и „под себе“ и под „друг“

    SSH (Secure Shell) е мрежен протокол дизајниран за управување со далечински сервер и пренос на податоци преку TCP шифрирани врски. Повеќето хостинг услуги, дури и виртуелните, денес обезбедуваат пристап и преку FTP и SSH. Според мое мислење, ова е одлично, SSH е многу поудобно и побезбедно за користење.

    Поставување SSH

    Поставувањето ќе се одвива за посветен сервер, VDS, VPS на Debian, Ubuntu. Конфигурациската датотека се наоѓа овде: /etc/ssh/sshd_config.
    Ако имате редовен хостинг, сè треба да се конфигурира како што треба, одете во делот.

    Стандардно, на SSHD демонот (на што правиме промени) не му требаат никакви поставки и работи добро. Ќе направиме само неколку мали промени со цел да го ограничиме пристапот на несаканите лица до серверот.

    Како резултат на неточни промени во конфигурациската датотека, може да го изгубите пристапот до серверот преку ssh, затоа погрижете се да имате алтернативни опции за пристап до него, на пример користејќи ја контролната табла ISPmanager.

    Како да го ограничите пристапот до SSH

    Сите промени се направени на /etc/ssh/sshd_config
    За да стапат на сила промените, мора

    Променете ја порта

    Порта 9724

    Сега, кога овластувате, треба да наведете 9724 наместо стандардната порта 22.
    Методот е многу едноставен и ефикасен против повеќето едноставни хакерски ботови кои тропаат на стандардните порти. Главната работа овде не е да се создаде конфликт со други услуги и да се избере број кој очигледно е неискористен.

    Оневозможете ја комуникацијата користејќи го стариот протокол

    Овде дефинираме дека комуникацијата е можна само со помош на протоколот v2

    Доколку не сте најавени корен, пред сите команди на конзолата треба да додадете sudo - се залага за Заменете го корисникот и DO- заменете го корисникот и направете (под него). На пример, ви овозможува да извршувате команди како суперкорисник корен.

    Намалете го бројот на обиди за овластување

    MaxAuthTries 2

    Број на обиди за лозинка. Стандардно е 6. Ако пребарувањето не успее, сесијата за комуникација се прекинува.

    Намалете го времето на чекање за овластување

    LoginGraceTime 30-ти

    Стандардно, сесијата за овластување може да трае 120 секунди. По ова време завршува. 2 минути за овластување се премногу, целото ова време серверот ја одржува врската отворена, што е многу ирационално. Половина минута е доволна.

    Затворете го пристапот до IP

    Пред да поставите ограничувања за IP, проверете дали во случај на грешка во поставките и последователна забрана на сопствената IP адреса, ќе имате алтернативен начин да го вратите пристапот до серверот

    Ако ви треба само пристап, наједноставниот и најсигурен начин е да го блокирате пристапот од секаде освен вашата IP адреса или, ако е динамична, тогаш опсегот на IP.

    1. Отворете /etc/hosts.allow и додадете SSHD таму: 192.168.1.1

      каде што 192.168.1.1 е вашата IP адреса. Ако имате динамична IP адреса, дефинирајте IP со маска за подмрежа и запишете ја вашата подмрежа наместо IP, на пример:

      SSHD: 192.168.0.0/16

    2. Отворете /etc/hosts.deny и додајте таму: SSHD: ALL

    Друг начин за ограничување на пристапот преку IP

    Можете да ја користите следнава директива:

    AllowUsers = *@1.2.3.4

    Овде дозволуваме пристап само за IP 1.2.3.4

    SSH авторизација со клучеви

    Ќе биде многу побезбедно, поудобно и правилно да се постави овластување ssh без лозинка. За таа цел ќе се користи овластување за клучот.

    Значи, тука се упатствата.

    Го купивте вашиот прв VPS, или можеби дури и сервер веднаш. Сигурно имате веб панел за да го администрирате. Но, тешките администратори секогаш поминуваат низ конзолата 😉 Затоа, треба да научиме како да го правиме тоа. Во оваа лекција, ќе ја инсталираме програмата PuTTY, ќе се поврземе со серверот преку протоколот SSH и ќе научиме како да го одредиме зафатениот и слободниот простор на серверот.

    Програма Putty за поврзување со сервер преку SSH протокол

    Преземете го Putty од страницата putty.org За себе ја преземам верзијата „За Windows на Intel x86 - PuTTY: putty.exe“

    Отпакувајте ја архивата и стартувајте ја програмата.

    Вака изгледа прозорецот на програмата по стартувањето. Веќе ја внесов IP адресата на мојот сервер во полето „Име на домаќинот (или IP адреса)“:

    Внесете го доменот или IP адресата на вашиот сервер и кликнете на копчето „Отвори“. Се отвора прозорец за командна линија. Ни бара корисничко име и лозинка. Прво, внесете го вашето најавување, потоа лозинката. Внимание, при внесување на лозинката, знаците не се печатат на екранот, дури ни ѕвездите *** не се печатат. Затоа, ја внесуваме лозинката како на слепо. Внесете и притиснете Enter. Ако лозинката е правилно внесена, ќе бидете најавени во конзолата за управување со серверот. Се прикажува линија со последното време за најавување и информации за оперативниот систем.

    Команди во конзолата

    pwd

    дф

    Командата df ја покажува количината на слободен и искористен простор на серверот, низ сите монтирани датотечни системи

    ду

    Командата du покажува колку простор зафаќа папка или датотека.
    Пример команда:

    Du -h /дома/

    Оваа команда ќе покаже колку простор зафаќа директориумот /home/.

    Тоа е се. Првото запознавање со поврзување на сервер преку SSH и програмата за кит заврши. Користејќи ги овие информации, можете да отидете на серверот и да видите колку простор заземаат податоците на него.



    
    Врв