Вичерпний посібник: Номер порту 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

Якщо ви зіткнулися з помилкою «Немає такого файлу або каталогу», це означає, що на вашому комп'ютері відсутній ключ SSH. У такому випадку переходьте до наступного кроку. Згенеруйте пару ключів SSH на клієнтській машині Ubuntu, виконавши наступну команду для створення нової пари ключів довжиною 4096 біт, використовуючи адресу електронної пошти користувача в якості коментаря:

$ ssh-keygen

або

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

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

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

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

$ ls ~/.ssh/id_*

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

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

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

$ ssh-copy-id ім'я_користувача@ IP-адреса_сервера

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

Після першого підключення до системи ви можете побачити кілька запитів у вашому терміналі. Введіть «так» і натисніть «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 ім'я користувача @ IP-адреса сервера

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

Крок 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 ім'я користувача@віддалений хост або 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.

Порт 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