Linux

Ваше руководство по использованию SSH

SSH это сетевой протокол, который работает в консоли. Наиболее часто используемым SSH-клиентом является PuTTy. На изображении ниже показан установленный сеанс SSH. Это просто и быстро. Большинство IT-специалистов управляют всей сетью исключительно через SSH из-за безопасности и быстрого/легкого доступа для выполнения административных и управленческих задач на сервере. Вся сессия в SSH шифруется – Основными протоколами SSH являются SSH1/SSH-1 и SSH2/SSH-2. SSH-2 — последний, более безопасный, чем SSH-1. ОС Linux имеет встроенную утилиту Terminal для доступа к консоли, а для машины windows требуется SSH-клиент (напр. PuTTy).

putty

Доступ к удаленному хосту с помощью SSH

Чтобы получить доступ к удаленному узлу/машине с помощью SSH, вам необходимо иметь следующее:

a) PuTTy (бесплатный SSH клиент)
b) Имя пользователя SSH-сервера
c) Пароль сервера SSH
d) Порт SSH обычно 22, но так как 22 стоит по умолчанию, его следует изменить на другой порт, чтобы избежать атак на этот порт.

На машине Linux имя пользователя root является администратором по умолчанию и обладает всеми административными правами.

В Терминале следующая команда инициирует соединение с сервером.

ssh root@192.168.1.1
где root — имя пользователя, и 192.168.1.1 — это адрес хоста

Вот как выглядит терминал:

терминал

Ваши команды будут набраны после символ $. Чтобы получить помощь по любой команде в терминале/putty, используйте синтаксис:

man ssh
команда man

man, за которой следует любая команда, вернет на экран руководство по командам

Итак, что я собираюсь сделать сейчас, это подключиться по SSH с помощью PuTTy к моей ОС Debian, работающей на VMWare.

Но прежде чем я это сделаю, мне нужно включить SSH, войдя в мою виртуальную машину Debian – Если вы только что приобрели сервер у хостинговой компании, то вы можете попросить их включить SSH для вас.

Чтобы включить ssh, используйте
sudo /etc/init.d/ssh restart

Поскольку я использую Ubuntu, и ssh не был установлен, поэтому
Для установки ssh используйте следующие команды
sudo apt-get install openssh-client
sudo apt-get install openssh-server

И вот, что у меня получилось, войдя в SSH через PuTTy:

ssh

Вот что нужно сделать, чтобы настроить SSH и установить сессию через PuTTy – Ниже я рассмотрю некоторые основные расширенные функции, которые постепенно начнут давать вам большее представление обо всем сценарии.

Стандартный файл конфигурации ssh находится по адресу: /etc/ssh/sshd_config
Для просмотра конфигурационного файла используйте: cat /etc/ssh/sshd_config
Для редактирования конфигурационного файла используйте: vi /etc/ssh/sshd_config или nano /etc/ssh/sshd_config

После редактирования любого файла используйте CTRL + X и нажмите клавишу Y, чтобы сохранить и выйти (редактор nano)

Порт SSH может быть изменен из конфигурационного файла, по умолчанию порт 22. Основные команды, cat, vi и nano будут работать и для других вещей. Чтобы узнать больше о конкретных командах, использовать Google Search.

Если вы внесли изменения в любой конфигурационный файл, то для этой службы требуется перезапуск. Двигаясь дальше, предположим, что мы хотим изменить наш порт, поэтому мы отредактируем файл sshd_config, и я бы использовал команду

nano /etc/ssh/sshd_config

port-ssh

Вы должны войти в систему как администратор или использовать sudo nano /etc/ssh/sshd_config для редактирования файла. После его редактирования перезапустите службу ssh, sudo /etc/init.d/ssh restart

Если вы меняете порт, не забудьте разрешить его в IPTABLES, если вы используете брандмауэр по умолчанию.

iptables -I INPUT -p tcp –dport 5000 -j ACCEPT
/etc/rc.d/init.d/iptables save

Запросите iptables, чтобы убедиться, что порт открыт
iptables -nL | grep 5000

В конфигурационном файле есть несколько директив, как обсуждалось ранее, есть два протокола для SSH (1 & 2). Если установлено значение 1, измените его на 2.

Ниже приведен фрагмент моего конфигурационного файла:

# Сгенерированный файл конфигурации
# Подробности см. на странице руководства sshd_config(5)

# Какие порты, IP и протоколы мы слушаем
Порт 5000 замените число 22 на порт
# Используйте эти параметры, чтобы ограничить, к каким интерфейсам/протоколам будет привязываться sshd
#ListenAddress ::
#ListenAddress 0.0.0.0
Протокол 2 заменила протокол 1 на 2

не забудьте перезапустить службу после внесения изменений

Root является администратором, и рекомендуется отключить его, иначе если вы открыты для удаленных соединений, вы можете стать объектом атаки грубой силы или других ssh уязвимостей – Linux сервера, являются самыми любимыми ящиками у хакеров, директива LoginGraceTime, устанавливает лимит времени для пользователя на вход и аутентификацию, если пользователь этого не делает, то соединение закрывается – оставьте значение по умолчанию.

# Аутентификация:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

Супер классная функция, это Аутентификация по ключу (PubkeyAuthentication) – Эта функция позволяет настроить только аутентификацию на основе ключей, как мы видим на серверах Amazon EC3. Вы можете получить доступ к серверу только с помощью вашего закрытого ключа, это очень безопасно. Чтобы это работало, вам нужно сгенерировать пару ключей и добавить закрытый ключ к вашей удаленной машине, а также добавить открытый ключ к серверу, чтобы к нему можно было получить доступ с помощью этого ключа.

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication yes
PasswordAuthentication no

Это запретит любой пароль и позволит пользователям получать доступ только с ключом.

В профессиональной сети вы обычно информируете своих пользователей о том, что им разрешено делать, а что нет, и любую другую необходимую информацию

Конфигурационный файл, который нужно редактировать для баннеров: /etc/motd
Чтобы открыть файл в редакторе, введите: nano /etc/motd или sudo /etc/motd

Отредактируйте файл так же, как вы бы сделали это в блокноте.

Вы также можете поместить баннер в файл и сослаться на него в /etc/motd

например: нанобаннер.txt создаст баннер.txt файл и сразу открыть редактор.

Отредактируйте баннер и ctrl + x / y, чтобы сохранить его. Затем, ссылайтесь на него в файле motd, используя

Баннер /home/users/appualscom/banner.txt ИЛИ что угодно, путь к файлу.

Как и баннер, вы также можете добавить сообщение перед приглашением к входу в систему, файл для редактирования следующий /etc/issue

SSH туннелирование

Туннелирование SSH позволяет вам туннелировать трафик с локальной машины на удаленную машину. Он создается с помощью протоколов SSH и шифруется. Ознакомьтесь со статьей Туннелирование SSH

Графическая сессия через туннель SSH

Включите графическую/gui сессию, откомментировав следующую строку
X11Forwarding yes

На стороне клиента команда будет выглядеть следующим образом:
ssh -X root@10.10.10.111

С помощью простых команд вы можете запустить такие программы, как firefox и т.д:
firefox

Если вы получите ошибку отображения, то установите адрес:
export DISPLAY=IPaddressofmachine:0.0

Обертки TCP

Если вы хотите разрешить некоторые хосты и запретить некоторые, то вот файлы, которые вам нужно отредактировать

1. /etc/hosts.разрешить
2. /etc/hosts.запретить

Чтобы разрешить несколько хостов

sshd: 10.10.10.111

Чтобы заблокировать доступ к вашему серверу по sshing всем желающим, добавьте следующую строку в /etc/hosts.запретить
sshd: ВСЕ

SCP – Безопасное копирование

SCP – безопасное копирование — это утилита для передачи файлов. Для копирования/передачи файлов по ssh необходимо использовать следующую команду.

Команда ниже скопирует папку myfile в /home/user2 на 10.10.10.111
scp /home/user/myfile root@10.10.10.111:/home/user2
scp источник назначения синтаксис

Чтобы скопировать папку
scp -r /home/user/myfolder roor@10.10.10.111:/home/user2

Поиск файлов на удаленной машине

Очень легко искать файлы на удаленной машине и просматривать результаты на своей системе. Для поиска файлов на удаленной машине

ssh root@10.10.10.111 «find /home/user -name ‘*.jpg'»

Команда будет искать в каталоге /home/user все *.jpg файлы, вы можете поиграть с этим. find / -name выполнит поиск во всем корневом каталоге /.

Дополнительная безопасность SSH

iptables позволяет устанавливать ограничения по времени. Команды ниже заблокируют пользователя на 120 секунд, если он не прошел аутентификацию. Вы можете использовать параметр /second /hour /minute или /day в команде, чтобы указать период..

Ограничения на основе времени
iptables -A INPUT -p tcp -m state –syn –state NEW –dport 22 -m limit –limit 120/second –limit-burst 1 -j ACCEPT

iptables -A INPUT -p tcp -m state –syn –state NEW –dport 5000 -j DROP

5000 — это порт, измените его в соответствии с вашими настройками.

Разрешение аутентификации с определенного IP
iptables -A INPUT -p tcp -m state –state NEW -source 10.10.10.111 –dport 22 -j ACCEPT

Другие полезные команды

Прикрепление экрана через SSH
ssh -t root@10.10.10.111 screen -r
Проверка скорости передачи SSH
да | pv | ssh $root@10.10.10.111 «cat > /dev/null»

Добавить комментарий