Повний гайд: номер порту SSH і робота SSH

У сучасну цифрову епоху частота кібератак швидко зростає, включаючи такі загрози, як порушення безпеки даних, хакерство та крадіжка особистих даних. Щоб запобігти цим злочинам, кожна організація потребує таких технологій, як SSH, для забезпечення безпечної передачі даних між пристроями або комп'ютерними системами. У цій статті ви дізнаєтеся про протокол SSH, номер порту SSH, стандартний порт SSH та його принцип роботи. Крім того, ви ознайомитеся з різними методами шифрування, процесами аутентифікації, командами та ключовими компонентами, що забезпечують безпечну комунікацію в мережах.

Що таке SSH?

SSH розшифровується як Secure Shell (безпечна оболонка) і є безпечним та надійним мережевим протоколом, що забезпечує безпечний доступ до віддалених серверів та управління ними. Протокол SSH замінює незахищені протоколи, такі як FTP та Telnet. Основна роль SSH полягає у встановленні безпечного каналу зв'язку для доступу до віддалених пристроїв.

Основними функціями протоколів SSH є шифрування даних, перевірка цілісності та аутентифікація ідентичності, які ми коротко описали нижче:

1. SSH шифрує дані під час передачі, щоб захистити їх від зловмисних користувачів.

2. Він використовує кілька методів аутентифікації, таких як паролі та криптографічні ключі, щоб гарантувати ідентичність користувачів і пристроїв.

3. SSH гарантує, що дані не були змінені під час зв'язку, підтверджуючи цілісність переданих даних.

Системні адміністратори зазвичай використовують SSH для безпечного управління віддаленими серверами та виконання різних адміністративних завдань. Він також допомагає в передачі файлів через SFTP (SSH File Transfer Protocol), що забезпечує безпечну передачу даних між системами. Крім того, він дозволяє користувачам встановлювати безпечні канали для різних додатків, таких як доступ до баз даних або веб-браузер.

Що таке порт в SSH?

«Порт» в мережі — це логічна або віртуальна кінцева точка для зв'язку всередині комп'ютера або мережі. Порти дозволяють різним службам і додаткам спільно використовувати одне і те ж фізичне мережеве з'єднання, зберігаючи при цьому окремі канали зв'язку.

Відомі порти в діапазоні (0-1023) називаються «зарезервованими портами» для конкретних служб, таких як HTTP (порт 80), HTTPS (порт 443), FTP (порт 21) і SSH (порт 22). Ці стандартизовані призначення допомагають забезпечити узгодженість між мережами.

Порт SSH служить конкретною кінцевою точкою для з'єднань протоколу Secure Shell на комп'ютері. За замовчуванням SSH використовує порт 22, коли ви виконуєте команди в Linux для зв'язку між двома серверами через мережу.

Весь зв'язок проходить через призначений номер порту, але ви можете змінити цей порт і призначити його будь-якому іншому доступному номеру порту SSH. Вони забезпечують безпечний і зашифрований засіб для управління або доступу до віддалених серверів або пристроїв, забезпечуючи безпечний зв'язок через потенційно небезпечні мережі.

Як працює SSH (Secure Shell) на порту 22?

SSH працює за моделлю клієнт-сервер і забезпечує безпечну та зашифровану комунікацію через мережеві з'єднання. Він широко використовується в інструментах командного рядка, таких як програми віддаленого входу та термінали. Користувачі Linux віддають перевагу використанню порту SSH для віддаленого доступу та завдань адміністрування серверів. Отже, виникає наступне питання: як працює SSH на порту 22?

SSH використовує порт 22 для встановлення безпечного та зашифрованого каналу зв'язку між клієнтом і сервером. Давайте детально обговоримо роботу SSH!

Крок 1: Встановити з'єднання

Першим кроком є ініціювання запиту на з'єднання між клієнтом і сервером. Коли користувач або клієнт хоче встановити SSH-з'єднання з сервером, він запускає процес, надсилаючи запит на з'єднання до сервера.

У відповідь сервер налаштовує і слухає запити на порту 22 для вхідних SSH-з'єднань. Далі він підтверджує і відповідає на ініціацію клієнта.

Клієнт і сервер беруть участь у процесі шифрування, де обидва обмінюються інформацією для встановлення безпечного з'єднання. Щоб захистити подальшу комунікацію, вони співпрацюють у виборі методів шифрування та обміні криптографічними ключами в рамках цього процесу. Після цього процесу генерується спільний секретний ключ, який буде спільним для обох пристроїв, клієнта як користувача і віддаленого сервера.

Крок 2: Аутентифікація користувача

Після виконання вищевказаного кроку клієнт використовує обраний метод аутентифікації для підтвердження своєї ідентичності серверу. Основними методами аутентифікації користувачів SSH є паролі та ключі SSH.

Клієнти безпечно передають зашифровані паролі на сервер. Це може включати надання криптографічного ключа, введення пароля або використання будь-якого іншого методу аутентифікації, що підтримується SSH. Проте безпека паролів залежить від складності, обраної користувачем. У деяких випадках створення паролів вважається ризикованим методом аутентифікації.

Однак паролі, як правило, вважаються менш безпечними порівняно з використанням пар відкритих і закритих ключів SSH, які передбачають асиметричне шифрування. У цьому процесі сервер надає клієнтській системі доступ, як тільки клієнт успішно розшифрує надане повідомлення за допомогою відповідного ключа.

Після процесу аутентифікації між клієнтом і сервером встановлюється безпечний канал. Це забезпечує конфіденційність, оскільки вся інформація, що обмінюється між ними, шифрується, що унеможливлює прослуховування або підслуховування комунікації будь-якими неавторизованими суб'єктами.

Крок 3: Встановити безпечний канал і розпочати сеанс

Після встановлення безпечного каналу ініціюється сесія SSH. В рамках цієї сесії клієнт може безпечно взаємодіяти з сервером, виконуючи такі завдання, як надсилання файлів, виконання команд та інші дозволені дії.

Усі команди, файли та дані, якими обмінюються клієнт і сервер під час цієї сесії, шифруються та захищаються безпечним каналом. Це шифрування забезпечує цілісність даних, запобігаючи будь-яким фальсифікаціям або маніпуляціям під час передачі даних.

Коли користувач завершує сеанс SSH, він може закрити з'єднання. Закриття безпечного каналу гарантує, що подальша комунікація неможлива до початку нового сеансу.

Функціонування SSH на порту 22 передбачає забезпечення безпечної передачі даних між клієнтом і сервером, аутентифікацію клієнта та встановлення безпечного, зашифрованого каналу комунікації. SSH широко використовується та користується довірою для безпечного віддаленого доступу та комунікації завдяки впровадженню методів шифрування та безпечної аутентифікації.

Як створити ключ SSH?

SSH надає користувачам безпечний спосіб виконання команд на віддалених серверах, полегшує переадресацію портів, встановлення тунелів та виконання різних завдань. Він підтримує кілька методів аутентифікації, серед яких найпоширенішими є аутентифікація за паролем та аутентифікація на основі відкритого ключа.

Аутентифікація на основі відкритого ключа широко вважається більш безпечною та зручною порівняно з аутентифікацією за паролем, оскільки для підвищення безпеки використовуються цифрові підписи.

Якщо ви використовуєте аутентифікацію на основі ключа SSH, ви можете створити ключ SSH у вашій системі Linux, виконавши наступні кроки:

Крок 1: Перевірте старий файл ключа SSH

Почніть із створення ключа SSH на клієнтській машині Ubuntu, який буде використовуватися для підключення до сервера. Перед створенням ключа SSH необхідно перевірити, чи вже існує пара ключів SSH на вашій клієнтській системі. Це важливо, оскільки допомагає уникнути перезапису старої пари ключів новою. Ви можете перевірити наявність файлу ключа SSH на вашій клієнтській машині за допомогою такої команди:

$ ls -l ~/.ssh/id_*.pub

Крок 2: Створіть пару ключів SSH

Якщо ви отримали помилку «No such file or directory» (Такого файлу або каталогу не існує), це означає, що на вашій машині немає ключа SSH. У такому випадку перейдіть до наступного кроку. Створіть пару ключів SSH на клієнтській машині Ubuntu, виконавши наступну команду для створення нової пари ключів з 4096 бітами, використовуючи адресу електронної пошти користувача як коментар:

$ ssh-keygen

або

$ ssh-keygen -t rsa -b 4096 -C «[email protected]»

Виконання команди «ssh-keygen», як зазначено вище, створює стандартну пару ключів RSA розміром 3072 біти. Щоб зберегти ключ SSH у стандартному місці в підкаталозі «.ssh/», просто натисніть «Enter».

Далі вам буде запропоновано ввести пароль, що додасть додатковий рівень безпеки. Однак майте на увазі, що вам доведеться вводити цей пароль кожного разу, коли ви входите на віддалений комп'ютер. Якщо ви бажаєте залишити поле порожнім із стандартними налаштуваннями, натисніть «Enter». Після цього на терміналі з'явиться весь екран виводу, як показано нижче:

Перевірте успішне створення пари ключів SSH на клієнтській машині за допомогою наступної команди:

$ ls ~/.ssh/id_*

Створена пара ключів SSH повинна відобразитися на терміналі. Це означає, що ви успішно створили пару ключів SSH на клієнтській машині Ubuntu.

Крок 3: Підключення до віддаленого сервера

Далі перенесіть згенерований відкритий ключ SSH на віддалений сервер Ubuntu, яким ви плануєте керувати. Використовуйте інструмент «ssh-copy-id», оскільки це рекомендований метод копіювання відкритого ключа на віддалений сервер. Виконайте наведену нижче команду на клієнтській машині, щоб без зусиль скопіювати відкритий ключ на віддалений сервер Ubuntu:

$ ssh-copy-id user_name@server_IPaddress

Замініть цю IP-адресу сервера на IP-адресу вашої системи.

Під час першого підключення до системи у терміналі можуть з'явитися кілька запитів. Введіть «yes» і натисніть «Enter», щоб продовжити процес. Сервер перевірить і підтвердить SSH-ключ, раніше згенерований на клієнтській машині. Ви також можете вручну скопіювати цей згенерований відкритий SSH-ключ на сервер за допомогою такої команди:

$ cat ~/.ssh/id_rsa.pub | ssh username@serverip «mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys»

Знову ж таки, змініть або замініть ім'я користувача та IP-адресу сервера на дані вашого сервера.

Крок 4: Увійдіть за допомогою ключа SSH на віддалений сервер

Щоб увійти через SSH на віддалений сервер, скористайтеся такою командою:

$ ssh username@serverIP

Якщо ви не встановили безпечну парольну фразу для приватного ключа, ви можете одразу увійти на віддалений сервер. В іншому випадку, якщо ви встановили безпечну парольну фразу, вам буде запропоновано ввести її під час процесу входу.

Крок 5: Вимкніть аутентифікацію паролем SSH

Якщо ви хочете вимкнути аутентифікацію паролем SSH, яка додає додатковий рівень безпеки, перед тим як вимкнути її, увійдіть на віддалений сервер з правами sudo. Відкрийте файл конфігурації SSH «/etc/ssh/sshd_config» за допомогою цієї команди:

$ sudo nano /etc/ssh/sshd_config

Тепер перейдіть до наступного рядка і встановіть для нього аргумент «no».

PasswordAuthentication no

Збережіть цей файл конфігурації і закрийте його.

Після внесення змін настав час перезапустити або перезавантажити службу SSH на вашому сервері, виконавши наступну команду:

$ sudo systemctl restart ssh

Перед закінченням поточної сесії переконайтеся, що SSH працює належним чином на вашому сервері. Якщо все працює як очікується, це означає, що аутентифікація за паролем SSH на вашому сервері вимкнена.

Команди для управління SSH в системі Linux

Щоб встановити сервер OpenSSH, скористайтеся наступною командою:

$ sudo apt install openssh-server

Щоб запустити та зупинити службу SSH, скористайтеся наступними командами:

$ sudo systemctl start ssh
$ sudo systemctl stop ssh

Щоб перевірити стан служби SSH, чи працює вона у вашій системі, використовуйте:

$ sudo systemctl status ssh

Щоб увімкнути службу SSH, використовуйте цю команду:

$ sudo systemctl enable ssh

Щоб перезавантажити або перезапустити службу SSH, виконайте цю команду:

$ sudo systemctl restart ssh

Щоб підключитися до сервера SSH, використовуйте команду нижче:

$ ssh username@remotehost або IP-адреса

Як налаштувати номер порту SSH 22 у брандмауері UFW?

Переконайтеся, що UFW (Uncomplicated Firewall) увімкнено та активний у вашій системі Ubuntu. Якщо він не увімкнений, використовуйте наступну команду, щоб увімкнути UFW:

$ sudo ufw enable

Після увімкнення UFW надайте дозвіл на трафік SSH на порту 22 у брандмауері UFW за допомогою наступної команди:

$ sudo ufw allow 22/tcp

Якщо ви хочете вимкнути SSH-сервер у вашій системі, ви можете вимкнути або заблокувати порт 22 за допомогою наведеної нижче команди:

$ sudo ufw deny 22/tcp

Щоб вимкнути доступ до служби SSH, виконайте такі команди:

$ sudo systemctl stop ssh --now
$ sudo systemctl disable ssh --now

Реалізації SSH для Linux і Windows

Різні реалізації та клієнти SSH широко використовуються в різних операційних системах:

- OpenSSH (системи на базі Unix): OpenSSH служить стандартною реалізацією SSH для систем на базі Unix, таких як Linux і macOS. Відомий своєю надійністю та безпекою, OpenSSH попередньо встановлений на більшості платформ на базі Unix.

- PuTTY (Windows): PuTTY — популярний клієнт SSH, розроблений для Windows. Він пропонує зручний інтерфейс для безпечного підключення до віддалених серверів. Крім того, PuTTY надає допоміжні інструменти, такі як PuTTYgen, для управління ключами SSH.

- SSH в PowerShell (Windows): В останні роки Microsoft інтегрувала OpenSSH в Windows PowerShell. Ця інтеграція спрощує використання SSH для користувачів Windows, усуваючи необхідність у сторонніх додатках.

Який номер порту SSH є стандартним?

Як ми вже згадували раніше, SSH використовує стандартний порт 22. Кожне SSH-з'єднання ініціюється через SSH-порт 22. Використання порту 22 як стандартного спрощує конфігурацію для користувачів і забезпечує стандартизований підхід до SSH-з'єднань.

Однак у деяких випадках передача важливих даних вважається небезпечною. Тому через деякі проблеми з безпекою рекомендується змінити стандартний номер SSH-порту 22 на інший номер порту.

Для встановлення з'єднання між пристроями доступно 65 536 портів зв'язку. Ви можете вибрати один з них, якщо хочете змінити номер порту SSH. Це розумний підхід для запобігання брут-форс-атакам на ваші сервери.

Як змінити стандартний порт SSH 22 на інший номер порту?

Якщо ви займаєтеся важливим спілкуванням, яке вимагає безпеки, рекомендується змінити номер порту SSH за замовчуванням, щоб зменшити ризик атак методом грубої сили. Оскільки всі зловмисники знають, що порт 22 є номером порту SSH за замовчуванням, він стає основною мішенню для атак, відкриваючи хакерам доступ до даних, які ви надаєте. Використовуючи інший порт SSH, ви можете ефективно застосовувати протокол SSH для підвищення безпеки.

Щоб змінити номер порту SSH 22 на інший порт, необхідно виконати наведені нижче кроки.

Крок 1. Створення резервної копії файлу sshd_config

Ви можете легко змінити стандартний порт SSH, відредагувавши номер порту у файлі sshd_config. Однак перед внесенням змін до файлу конфігурації важливо створити резервну копію файлу. Щоб створити резервну копію, скористайтеся такою командою:

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_backup_config

Вищезазначена команда створить копію цього файлу в тому ж каталозі.

Крок 2: Зміна стандартного порту SSH 22

Щоб змінити стандартний порт SSH 22, відкрийте файл «ssh_config» і виконайте таку команду:

$ sudo nano /etc/ssh/sshd_config

Вищезазначена команда відкриє цей файл конфігурації у вікні терміналу в редакторі nano. Знайдіть нижченаведений рядок коду:

#Port 22

Видаліть коментар з цього рядка, видаливши символ «#» на початку та змінивши цей порт на інший номер. Наприклад, ми хочемо змінити номер порту SSH на 45571.

Port 45571

Важливо дозволити або додати цей порт до вашого брандмауера.

Крок 3: Перезапустіть службу SSH

Після додавання до брандмауера перезапустіть службу SSH, щоб завантажити зміни.

$ sudo service sshd restart

Після перезапуску пристрою внесені зміни набудуть чинності. Пам'ятайте, що важливою частиною конфігурації безпеки є зміна номера порту SSH за замовчуванням одразу після придбання Linux VPS. Ви можете зручно протестувати ці зміни, не виходячи з поточної сесії SSH.

Крок 4: Перевірка порту SSH

Після зміни стандартного порту SSH 22 ви вкажете номер порту під час встановлення з'єднання з клієнтського комп'ютера до сервера.

$ ssh username@userIP -p 45571

Тепер ваш стандартний порт SSH змінено і встановлено на порт 45571.

Висновок

У цій статті ми дізналися, як працює SSH на порту 22 і як можна змінити стандартний порт SSH на інший номер порту. Крім того, ми виконали різні команди SSH, які допоможуть вам зрозуміти роботу служби SSH і номер порту.

Сподіваємося, що після прочитання цього посібника ви зможете підключити свою систему до сервера SSH і легко змінити номер порту, щоб захистити свою систему від зловмисних користувачів.

Blog