У ряді ситуацій може виникнути необхідність у віддаленому доступі до комп'ютера, який знаходиться за NAT-маршрутизатором або брандмауером. У подібних випадках одним з найбільш безпечних і зручних способів доступу є кидок портів SSH. SSH (Secure Shell) - це протокол безпечної віддаленої роботи, який дозволяє зашифровано здійснювати віддалене підключення до віддаленого хосту і виконувати різні операції.
Перекидання портів SSH дозволяє налаштувати SSH-сервер на віддаленій машині, надавши йому доступ до порту на локальній машині. Таким чином, ви зможете отримати доступ до віддаленої машини за допомогою локальної IP-адреси та порту. Наприклад, якщо локальна IP-адреса Вашого комп'ютера - 192.168.1.100, а SSH-сервер запущений на порту 22, то ви зможете віддалено підключитися до Вашого комп'ютера, використовуючи IP-адресу і порт 192.168.1.100:22.
Покрокова інструкція нижче допоможе вам налаштувати кидок портів SSH в Linux.
Встановлення OpenSSH
Щоб встановити OpenSSH, виконайте наступні кроки:
- Відкрийте термінал.
- Введіть команду sudo apt-get install openssh-server і натисніть Enter.
- Можливо, вам доведеться ввести пароль користувача root, щоб продовжити.
- Підтвердьте встановлення, натиснувши клавішу Y (так), а потім натисніть Enter.
Після завершення встановлення ви можете перевірити, чи працює OpenSSH, ввівши команду ssh localhost в терміналі. Якщо все налаштовано правильно, вам буде запропоновано ввести пароль для входу на віддалений сервер.
Тепер OpenSSH встановлено на вашій системі, і ви готові налаштувати кидок портів SSH для віддаленого доступу до вашої системи.
Генерація ключів SSH
- Відкрийте термінал на комп'ютері Linux.
- Введіть команду ssh-keygen і натисніть Enter.
- Програма ssh-keygen запропонує вам вибрати розташування для збереження ключів. За замовчуванням вони зберігаються в директорію ~/.ssh . Натисніть Enter, щоб скористатися цим розташуванням.
- Далі вам буде запропоновано ввести пароль для вашого закритого ключа. Ви можете залишити поле порожнім, якщо не хочете встановлювати пароль для ключа, або ввести пароль і натиснути Enter.
- Програма ssh-keygen створить два файли: id_rsa (приватний ключ) та id_rsa.pub (відкритий ключ).
Тепер у вас є пара ключів SSH. Відкритий ключ (id_rsa.pub ) ви будете використовувати для підключення до віддалених серверів, а приватний ключ ( id_rsa) повинен залишатися в безпеці та доступі лише у вас.
Переконайтеся, що ви зберігаєте приватний ключ у безпечному місці та не поширюєте його.
Важливо зазначити, що генерація ключів SSH є одноразовим процесом. Після створення ключів вам потрібно буде повторити цей процес для кожного нового комп'ютера або користувача.
Редагування файлу конфігурації SSH
Крок 1: Відкрийте термінал і виконайте команду:
sudo nano /etc/ssh/sshd_config
Крок 2: Введіть пароль адміністратора, якщо він потрібен.
Крок 3: за допомогою клавіші прокрутки знайдіть рядки, що містять опцію "Port" та "AllowTcpForwarding".
Крок 4: для проброса портів SSH вкажіть порт, який ви хочете відкрити, в рядку "Port". Наприклад, Port 2222 .
Крок 5: якщо потрібно дозволити кидок портів, переконайтеся, що значення опції "AllowTcpForwarding" встановлено на "yes". Інакше, замініть "no"на " yes".
Крок 6: збережіть зміни, натиснувши Ctrl + O , а потім закрийте файл, натиснувши Ctrl + X .
Крок 7: перезапустіть службу SSH, виконавши команду:
sudo systemctl restart sshd
Тепер ви успішно відредагували файл конфігурації SSH, налаштувавши кидок портів.
Налаштування проброса портів на стороні клієнта
Щоб налаштувати перекидання портів на стороні клієнта в Linux, виконайте наступні кроки:
-
Відкрийте термінал і введіть команду:
ssh -L : : @
- - номер порту на вашій машині, до якого ви хочете пробросить з'єднання;
- - IP-адреса або доменне ім'я віддаленого сервера;
- - порт на віддаленому сервері, до якого ви хочете прокинути з'єднання;
- - ім'я користувача на віддаленому сервері;
- - IP-адреса або доменне ім'я віддаленого сервера.
Налаштування проброса портів на стороні сервера
Для налаштування прокатки портів на стороні сервера в Linux вам потрібно буде виконати наступні кроки:
| Крок 1 | Увійдіть на сервер за допомогою клієнта SSH і переконайтеся, що у вас є права адміністратора. |
| Крок 2 | Відкрийте файл конфігурації сервера SSH за допомогою текстового редактора. Зазвичай файл називається /etc/ssh / sshd_config . |
| Крок 3 | Знайдіть рядок # Port 22 і розкоментуйте його, видаливши символ # . Далі, якщо вам потрібно прокинути конкретний порт, змініть значення порту на потрібне. Наприклад, Port 2222 . |
| Крок 4 | Знайдіть і розкоментуйте рядок #GatewayPorts no , замінивши його на GatewayPorts yes . Це дозволить зовнішнім клієнтам підключатися до проброшенным портів. |
| Крок 5 | Збережіть зміни та закрийте файл конфігурації сервера SSH. |
| Крок 6 | Перезапустіть сервер SSH, щоб застосувати внесені зміни. Для цього виконайте команду sudo systemctl restart sshd . |
Після виконання цих кроків кидок портів на стороні сервера повинен бути успішно налаштований.
Перевірка підключення по проброшенному порту
Після налаштування проброса порту SSH в Linux необхідно перевірити, що підключення працює коректно. Для цього можна використовувати команду telnet :
-
Відкрийте термінал і введіть таку команду:
telnet localhost
����то <�номер-порта>укажите порт, который вы пробросили. Например, если вы пробросили порт 2222, команда будет выглядеть так:�номер-порта>
telnet localhost 2222
Якщо підключення пройшло успішно, ви побачите повідомлення, що вказує на встановлене з'єднання.
Перевірка підключення через проброшенному порту може допомогти вам переконатися, що настройка проброса пройшла правильно і порт доступний для підключення.
Автоматизація Налаштування проброса портів
Налаштування проброса портів SSH в Linux може бути автоматизована за допомогою різних інструментів. В даному розділі ми розглянемо кілька з них:
- Ansible: інструмент для автоматизації управління конфігурацією та розгортання програмного забезпечення. Він дозволяє описувати Налаштування проброса портів SSH у вигляді плейбуків, які можна виконати на віддалених серверах.
- Puppet: міцний і потужний інструмент для управління конфігурацією. Він дозволяє створювати модулі, які можуть автоматично налаштовувати кидок портів SSH на цільових серверах.
- Chef: інфраструктурний інструмент для автоматизації розгортання додатків. Він надає рецепти, які можуть бути використані для налаштування проброса портів SSH.
- SaltStack: інструмент для управління конфігурацією та автоматизації розгортання. Він дозволяє описувати стану, які можуть бути використані для настройки проброса портів SSH.
Вибір інструменту залежить від ваших уподобань і вимог, тому рекомендується прочитати документацію по кожному з них, щоб визначитися з вибором.