Динамическое перенаправление портов: используем SSH-сервер в качестве прокси
Также существует «динамическое перенаправление портов», которое работает по тому же принципу что прокси или VPN-сервер. SSH-клиент создаёт SOCKS-прокси, который можно настраивать под собственные приложения. Весь трафик, отправляемый через прокси, будет отправляться через SSH-сервер. Принцип здесь схож с локальным перенаправлением – берётся локальный трафик, отправленный на определённый порт на вашем ПК, и перенаправляется через SSH-соединение на удалённый адрес.
Предположим, что вы используете общедоступную Wi-Fi сеть. Но хочется делать это безопасно. Если у вас есть доступ к SSH-серверу из дома, то можно подключиться к нему и использовать динамическое перенаправление. SSH-клиент создаст SOCKS-прокси на вашем ПК. Весь трафик, отправленный на этот прокси, будет отправляться через подключение к SSH-серверу. Никто из тех, кто использует общедоступную Wi-Fi сеть, не сможет отслеживать ваши перемещения в сети или закрывать доступ к сайтам. С перспективы сайтов, которые посещаете, будет казаться, что вы заходите на них с домашнего ПК.
Или же может понадобиться подключиться к медиа-серверу, находящемуся в вашей домашней сети. В целях безопасности, к интернету подключен только ваш SSH-сервер. При этом вы не разрешаете подключаться к медиа-серверу через интернет. В таком случае можно включить динамическое перенаправление портов, настроить SOCKS-прокси в браузере и затем подключаться к серверам, работающим в домашней сети, через браузер, как будто вы сидите дома.
Например, если медиа-сервер находится по адресу 192.168.1.123 в вашей домашней сети, то можно добавить адрес 192.168.1.123 в любое приложение при помощи SOCKS-прокси и получить доступ к медиа-серверу, как будто вы находитесь внутри домашней сети.
Чтобы воспользоваться динамическим перенаправлением, запустите ssh-команду с аргументом —D:
ssh -D local_port username@server.com
Предположим, что у вас есть доступ к SSH-серверу по адресу ssh.yourhome.com, а ваш логин на SSH-сервере – bob. Нужно использовать динамическое перенаправление для того, чтобы открыть SOCKS-прокси по порту 8888 на текущем ПК. Тогда команда для SSH туннелирования будет выглядеть следующим образом:
ssh -D 8888 bob@ssh.yourhome.com
После этого можно настроить браузер или другое приложение на использование локального IP-адреса (127.0.0.1) и порта 8888. Весь трафик этого приложения будет перенаправляться через туннель:
Чтобы сделать это в PuTTY для Windows, выберите опцию Connection > SSH > Tunnels. Далее – опцию «Dynamic». В поле «Source Port» укажите локальный порт.
Например, если вам нужно настроить SOCKS-прокси на порт 8888, то введите 8888 в качестве порта-источника. После этого нажмите «Add» и затем «Open», чтобы открыть SSH-подключение.
После этого можно настроить приложение на подключение через SOCKS-прокси на вашем локальном ПК (то есть, по IP-адресу 127.0.0.1, который ведёт на ваш локальный ПК) и указать корректный порт для работы:
К примеру, можно настроить браузер Firefox на использование SOCKS-прокси. Это удобно, так как у Firefox могут быть отдельные настройки прокси, и поэтому не обязательно использовать базовые параметры для всей системы. Firefox будет отправлять трафик через SSH туннелирование, а другие приложения будут использовать интернет-подключение в обычном режиме.
Туннель будет оставаться активным и открытым до тех пор, пока открыта сессия SSH-соединения. Когда вы завершите SSH-сессию и отключаетесь от сервера, туннель тоже закроется. Чтобы снова открыть туннель, переподключитесь при помощи соответствующей команды или нужной функции в PuTTY.
Настройка администрирования через консоль с SSH
Защищенный протокол SSH позволит нам удаленно войти в администрирование операционной системы pfSense через консоль. У нас будут разные типы аутентификации:
- Открытый ключ SSH
- Пароль или открытый ключ (тот или иной)
- Пароль и открытый ключ (оба)
У нас также будет возможность включить пересылку на сервере SSH, например, для выполнения туннелирования SSH. Наконец, мы можем изменить порт прослушивания SSH-сервера, в случае этого протокола это TCP 22, но мы можем изменить его, фактически, из соображений безопасности рекомендуется изменить порт по умолчанию для SSH-сервера.
После того, как мы настроили аутентификацию, нам нужно будет настроить пользователей, которые могут аутентифицироваться на SSH-сервере, а также то, какие SSH-ключи есть у пользователей. Если мы нажмем на гиперссылку, где написано «пользователь», мы перейдем прямо к «Диспетчеру системы / пользователей», и здесь мы сможем добавить нового пользователя с другими разрешениями. В нашем случае мы добавили нового пользователя, который принадлежит к группе «администраторы».
Если мы создадим нового пользователя или отредактируем его, мы сможем настроить другие параметры. В нашем случае мы добавили его в группу администраторов, как вы можете видеть на следующем изображении:
Чтобы иметь возможность войти в pfSense через SSH, мы должны предоставить ему соответствующее разрешение в разделе «Действующие привилегии» из всего списка разрешений, которые может иметь пользователь, он должен иметь следующее:
Пользователь — Система: доступ к учетной записи оболочки
Как только вы получите это разрешение, мы сможем войти в операционную систему с вашим именем пользователя. В зависимости от того, что мы выбрали при аутентификации пользователя, нам нужно будет выполнить дополнительное действие:
- Открытый ключ SSH: мы должны его создать
- Пароль или открытый ключ (один или другой): мы можем использовать настроенный ключ или открытый ключ SSH, если мы его создадим.
- Пароль и открытый ключ (оба): мы будем использовать настроенный ключ плюс открытый ключ SSH, необходимо его создать.
Поскольку наиболее безопасным способом аутентификации является «открытый ключ SSH» или «Пароль и открытый ключ (оба)», мы должны создать ключи SSH.
Создайте ключи SSH с помощью Puttygen
Здесь мы можем настроить различные типы ключей SSH, RSA и DSA являются наиболее распространенными и хорошо известными, но рекомендуется использовать такие ключи, как ECDSA, а также Ed25519, которые используют эллиптические кривые. В нашем случае мы использовали Ed25519, выберите его и нажмите «Создать».
После того, как мы щелкнем по генерации, мы должны переместить мышь, чтобы создать случайность и чтобы ключи были сгенерированы правильно. Теперь мы видим вверху открытый ключ, который мы должны вставить в созданного ранее пользователя pfSense. Мы можем настроить комментарий в ключе, а также пароль для расшифровки закрытого ключа при подключении, это повышает безопасность. Если кто-то сможет украсть наш закрытый ключ, он не сможет использовать его, если у него нет пароля сгенерированного закрытого ключа.
Получив сгенерированный ключ, мы нажимаем «Сохранить открытый ключ», а также «Сохранить закрытый ключ», чтобы пара ключей всегда была под рукой. Мы должны помнить, что открытый ключ — это тот, который мы должны скопировать для пользователя, как вы можете видеть:
После того, как сервер SSH полностью настроен в pfSense, мы собираемся показать вам, как подключиться к популярной программе Putty.
Подключитесь к pfSense с помощью Putty и SSH-ключа
Мы открываем программу Putty и переходим в раздел «Подключение / SSH / Auth», затем в раздел «Файл закрытого ключа для аутентификации» и нажимаем «Обзор», чтобы загрузить ранее сохраненный закрытый ключ.
Теперь переходим в раздел «Сессия», помещаем IP-адрес и порт SSH-сервера в pfSense, после заполнения нажимаем «Открыть».
Теперь он сообщит нам, что соединение не кэшировано, поэтому мы подключаемся в первый раз. Мы должны нажать «Да», чтобы подключиться.
Он запросит у нас имя пользователя для входа в систему, мы поместим имя пользователя, связанное с этим созданным SSH-ключом:
И как только мы введем имя пользователя, это будет означать, что аутентификация правильная, и мы сможем начать выполнение команд через SSH в операционной системе pfSense. В этом примере мы использовали только открытый ключ, мы не использовали комбинацию пароля и открытого ключа SSH, но вы также можете использовать его без проблем, единственное, что будет запрашивать у нас пароль при подключении.
Теперь, когда у нас правильно настроен SSH-сервер, мы увидим некоторые дополнительные конфигурации.
Ограничиваем количество попыток авторизации
Если подключающийся владеет всеми необходимыми данными, то при авторизации по сертификатам ему хватит двух попыток авторизации. В противном случае сеанс будет прерван. Если количество попыток авторизации сделать равным единице, авторизация по сертификатам не будет работать.
MaxAuthTries 2 # Две неудачные попытки и разрыв связи
Включаем разделение прав пользователей
В момент подключения к серверу, до момента авторизации пользователя, будет создан отдельный процесс с ограниченными правами. После прохождения пользователем авторизации, будет создан уже новый процесс, с правами соответствующими правам пользователя. Данная настройка повышает безопасность, не давая пользователю повышать свои права
UsePrivilegeSeparation yes
Ограничиваем список доступа по SSH.
Важный момент, для того чтобы исключить доступ к терминалу со стороны нежелательных пользователей.
При этом запись adminguideru – разрешает доступ по ssh для этого юзера с любого источника подключения. Запись же root@192.168.1.101 – разрешает доступ к серверу под учёткой рута только с ip 192.168.1.101 и 192.168.1.101
AllowUsers adminguideru root@192.168.1.100 root@192.168.1.101
Отключим список доверенных хостов
IgnoreRhosts yes
Отключим авторизацию на стороне клиента
HostbasedAuthentication no
Сохраним все настройки (Ctrl+O) и закроем файл (Сtrl+X).
Перезапускаем SSH сервер
sudo systemctl restart ssh sshd
Настройка безопасности SSH – Пробуем подключиться к серверу через Putty
Не разрывая подключение с которого происходила настройка. Запускаем Putty и пытаемся установить подключение с админской машины, под админской учёткой, с помощью сертификата. Если не подключает – значит в настройках косяк. Вносим правки в файл конфигурации в том окне где происходила настройка. Несмотря на то что уже работают новые настройки, старое подключение будет работать пока мы не отключимся
Поэтому важно не разрывать его пока вы не убедитесь что всё заработало. Если всё заработало идём к следующему пункту
Настройка безопасности SSH – Ограничим допущенные к подключению IP адреса
Необходимо отредактировать файл hosts.allow . Открываем его на редактирование
sudo nano /etc/hosts.allow
И добавляем IP адреса всех участников локальной сети, допущенных к подключению (включая IP адрес настраиваемого сервера)
sshd: 127.0.0.1 192.168.1.100 192.168.1.101 192.168.1.254
.254 – админская машина. 100 раз проверьте что у вас стоит IP адрес вашей админской машины. Иначе вы сможете авторизоваться на сервере только через консоль или сменив свой IP на тот что вы указали (если сервер примет с него подключение).
Настройка безопасности SSH – Проверяем авторизацию по паролю
Заходим в конфиг
sudo nano /etc/ssh/sshd_config
Находим пункт PasswordAuthentication раскомментируем и ставим no если там что-то другое.
PasswordAuthentication no
Полезные команды для SSH клиентов
Рассказать о всех командах Unix будет сложно, поэтому напишем лишь несколько полезных команд:
man — выдаст подробную информацию по команде, например: man mvДля выхода из man, т.е. из руководства по команде, нажмите q (Quit — Выход). —help — также позволит посмотреть описание команды.
ls — вывести список файлов;ls -la — покажет все файлы (включая скрытые), размер файлов, владельца и группу владельца, права на них, дату последнего изменения;ls -lha — то же, что предыдущая команда, только размер файлов будет показан в удобном виде;ls -lha | less — позволит просматривать файлы постранично (если их много);
cd — переход в выбранную директорию;cd ../ — переход на директорию выше;cd ~ — переход в корневую директорию;
mv — переименовать и/или переместить;
rm — удалить;
cp — копировать;
> — очистка файла. Например, можно применить к файлам логов ( > access.log, > error.log, > combined.log);
mc — запуск Midnight Commander — что-то вроде Norton Commander, в котором удобно работать с файлами, а также возможно работать с ними по sftp (ftp внутри ssh);
chmod — установка прав на файл или директорию;
cat -объединяет файл или несколько файлов, либо ввод со стандартного устройства ввода и выводит результат на стандартное устройство вывода;cat — выведет на экран содержимое файла;cat | grep — выведет на экран строки файла, включающие искомую строку;
mkdir — создание директории (папки).
- https://x-inside.ru/ssh-klienty-dlya-windows/
- https://FB.ru/article/269605/klient-ssh-nastroyka-luchshiy-ssh-klient
- https://FirstVDS.ru/technology/ssh-connection
- https://sheensay.ru/ssh
- https://FirstVDS.ru/technology/how-to-connect-to-the-server-via-ssh
- https://www.REG.ru/support/hosting-i-servery/nachalo-raboty-i-dostupy/kak-podklyuchitsya-po-ssh
Авторизация SSH по ключам
Намного безопаснее, удобнее и правильнее будет настроить ssh авторизацию без пароля. Для этого будет использоваться авторизация по ключу.
Итак, вот инструкция:
-
Распаковываем архив, открываем PUTTYGEN:
-
Вводим и выбираем всё как на скриншоте: и ключ длиной и жмём Generate
Во время генерации ключей водим мышкой по специальному полю под статусной строкой, чтобы пошла генерация ключей (она использует набор из координат мыши) -
Теперь нужно заполнить (это пароль для доступа к приватному ключу). Заполнять не обязательно, но его наличие повысит безопасность, так как любой, кто имеет доступ к приватному ключу, сможет с его помощью авторизоваться на сервере по ssh:
- Сохраним приватный ключ где-нибудь в надёжном месте — . Назовём его, к примеру,
- А вот публичный ключ нужно сохранить на сервере, куда устанавливаем доступ — Назовём его . Авторизуемся по ssh по паролю и переходим в директорию пользователя, под которым будет происходить авторизация.
Итак, копируем файл в .
Далее нужно импортировать данные в файлssh-keygen -i -f /root/.ssh/sheensay.ru.pub >> /root/.ssh/authorized_keys
После можно удалить
- Осталось настроить подключение. Я пользуюсь Far Manager в связке с плагином WinSCP.
Открываем Far Manager, Alt + F1, выбираем , далее Shift + F4 и настроим наше подключение. Допустим, мы сохранили приватный файл в
При настройке нужно будет указать IP или доменное имя на нём для доступа к серверу, порт, на котором висит SSH, имя пользователя и путь к приватному файлу-ключу - Подключаемся. Если при генерации ключей вы вводили пароль, то в этом случае при подключении у вас будет запрашивать пароль к приватному файлу.
Подключение настроено. Если что-то сделали не так, при авторизации появится ошибка , то есть Сервер не принял наш ключ. В этом случае пройдитесь по всем пунктам последовательно и поищите ошибку
Отключить авторизацию по паролю
Теперь, когда всё настроено, совсем не лишним будет отключить авторизацию по паролю. Для этого внесём изменения в конфигурационный файл:
PasswordAuthentication no
Утилиты SSH
К серверным утилитам OpenSSH относятся:
- sshd (OpenSSH Daemon) — программа демон для ssh. sshd ожидает подключений от клиентов.
- sftp-server (серверная подсистема SFTP) — это программа, которая участвует в передачи файлов по протоколу SFTP. sftp-server не предназначен для прямого вызова, обычно она задействуется автоматически демоном sshd.
Итак, на сервере основного внимания требует sshd, а программа sftp-server будет запущена автоматически по мере необходимости.
К клиентским утилитам OpenSSH относятся:
- ssh (клиентская программа SSH) — это программа для выполнения входа на удалённую машину и выполнения команд на этой удалённой машине.
- scp — программа для копирования файлов на удалённую машину с локальной, или в обратном направлении — с локальной на удалённую. При передаче данных используется зашифрованный канал.
- sftp — это тоже программа для передачи файлов по безопасному каналу. Эта программа похожа на ftp.
- ssh-keygen — утилита для создания ключей аутентификации и управления ими. Также она может использоваться для отзыва ключей.
Это основные программы, которые могут понадобиться большинству пользователей для создания ключей, подключения к удалённой машине и при удалённом копировании файлов.
Следующие утилиты присутствуют в пакете OpenSSH, но не требуют от пользователя явного запуска или применяются редко:
- ssh-add — добавляет приватный ключ к агенту аутентификации.
- ssh-agent — это программа для хранения закрытых ключей, используемая для аутентификации с открытым ключом (RSA, DSA, ECDSA, Ed25519). ssh-agent обычно запускается в начале сеанса X или сеанса входа в систему, а все другие окна или программы запускаются как клиенты для программы ssh-agent. Благодаря использованию переменных среды агент может быть найден и автоматически использован для аутентификации при входе на другие машины с использованием ssh.
- ssh-keyscan — это утилита для сбора открытых ключей хоста SSH с нескольких хостов. Она была разработана для помощи в создании и проверке файлов ssh_known_hosts. ssh-keyscan предоставляет минимальный интерфейс, подходящий для использования скриптами оболочки и perl.
- ssh-keysign — используется ssh для доступа к ключам локального хоста и генерирования цифровой подписи, необходимой во время аутентификации на основе хоста. ssh-keysign отключена по умолчанию и может быть включена только в глобальном файле конфигурации клиента /etc/ssh/ssh_config, если для EnableSSHKeysign установлено значение «yes». ssh-keysign предназначена не для вызова пользователем, а из ssh.
- ssh-copy-id — использует локально доступные ключи для авторизации на удаленном компьютере.
Рекомендации по исправлению ошибок подключения
Брандмауэр
Иногда проблемы с подключением возникают из-за брандмауэра. Он может блокировать отдельные порты или сервисы.
В разных дистрибутивах используются разные брандмауэры. Вы должны научиться изменять правила и политики своего брандмауэра. В Ubuntu обычно используется UFW, в CentOS – FirewallD. Брандмауэр iptables используется независимо от системы.
- Основы UFW: общие правила и команды фаервола
- Настройка брандмауэра FirewallD в CentOS 7
- Основы Iptables: общие правила и команды брандмауэра
Чтобы настроить брандмауэр, нужно знать порт сервиса SSH. По умолчанию это порт 22.
Чтобы запросить список правил iptables, введите:
Такой вывод сообщает, что правил, блокирующих SSH, нет:
Если в выводе вы видите правило или политику по умолчанию REJECT или DROP, убедитесь, что цепочка INPUT разрешает доступ к порту SSH.
Чтобы запросить список правил FirewallD, введите:
Список, появившийся на экране, содержит все сервисы, которые поддерживаются брандмауэром. В списке должно быть правило:
Если вы настроили пользовательский порт SSH, используйте опцию –list-ports. Если вы создали пользовательское определение сервиса, добавьте опцию –list-services, чтобы найти SSH.
Чтобы проверить состояние UFW, введите:
Команда вернёт доступные порты:
В списке должен быть порт SSH.
Проверка состояния сервиса SSH
Если вы не можете подключиться к серверу по SSH, убедитесь, что сервис SSH запущен. Способ сделать это зависит от операционной системы сервера. В более старых версиях дистрибутивов (Ubuntu 14.04, CentOS 6, Debian используется команда service. Современные дистрибутивы на основе Systemd используют команду systemctl.
Метод проверки состояния сервиса может варьироваться от системы к системе. В более старых версиях (Ubuntu 14 и ниже, CentOS 6, Debian 6) используется команда service, поддерживаемая системой инициализации Upstart, а в более современных дистрибутивах для управления сервисом используется команда systemctl.
Примечание: В дистрибутивах Red Hat (CentOS и Fedora) сервис называется sshd, а в Debian и Ubuntu – ssh.
В более старых версия используйте команду:
Если процесс работает должным образом, вы увидите вывод, который содержит PID:
Если сервис не работает, вы увидите:
В системах на основе SystemD используйте:
В выводе должна быть строка active:
Если сервис не работает, вы увидите в выводе inactive:
Чтобы перезапустить сервис, введите соответственно:
Проверка порта SSH
Существует два основных способа проверить порт SSH: проверить конфигурационный файл SSH или просмотреть запущенный процесс.
Как правило, конфигурационный файл SSH хранится в /etc/ssh/sshd_config. Стандартный порт 22 может переопределяться любой строкой в этом файле, определяющей директиву Port.
Запустите поиск по файлу с помощью команды:
Команда вернёт:
Если вы уже убедились, что сервис работает, теперь вы можете узнать, работает ли он на требуемом порте. Для этого используйте команду ss. Команда netstat –plnt выдаст аналогичный результат, но команду ss рекомендуется использовать для запроса информации сокета из ядра.
В выводе должно быть указано имя программы и порт, который она прослушивает. Например, следующий вывод сообщает, что сервис SSH прослушивает все интерфейсы и порт 22.
Символ * и 0.0.0.0 указывает, что все интерфейсы сервера прослушиваются. Строка 127.0.0.1 значит, что сервис не является общедоступным. В sshd_config директива ListenAddress должна быть закомментирована, чтобы прослушивать все интерфейсы, или должна содержать внешний IP-адрес сервера.
Если у вас не получается самостоятельно настроить соединение SSH, вы можете обратиться за помощью к службе поддержки своего хостинг-провайдера.
firewalldIptablesOpenSSHPuTTYSSHUFW
Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
Если при подключении к удалённой системе по SSH вы сталкиваетесь с ошибкой, что не удаётся войти под пользователем SSH даже с верным паролем:
Permission denied, please try again. Permission denied (publickey,password).
То проверьте значение директивы PermitRootLogin:
#PermitRootLogin prohibit-password
По умолчанию она закомментирована, но указанное значение всё равно используется по умолчанию.
Директива PermitRootLogin определяет, может ли root выполнить вход используя ssh. Аргументами могут быть: yes, prohibit-password, forced-commands-only или no. Значением по умолчанию является prohibit-password.
Если эта опция установлена на prohibit-password (или устаревший псевдоним without-password), то вход по паролю и интерактивная аутентификация с клавиатуры отключены для пользователя root.
Если эта опция установлена на forced-commands-only, вход root с аутентификацией по публичному ключу будет разрешён, но только если была указана опция ForceCommand с командой (это может быть полезно для получения удалённых бэкапов, даже если нормальный вход root не разрешён). Все другие методы аутентификации отключены для root.
Если эта опция установлена на no, то root’у не разрешён вход вовсе.
Если опция установлена на yes, то разрешён вход для рута без ограничений.
Итак, если вы столкнулись с проблемой, что не можете выполнить вход с верным паролем под пользователем root, то либо настройте вход без пароля — по публичному ключу, либо установите значение этой директивы на yes.
Настройка ssh клиента
В Debian настройки клиентской части ssh делятся на глобальные и пользовательские. Глобальные клиентские настройки находятся в файле /etc/ssh/ssh_config и применяются ко всем пользователям. Пользовательские настройки могут находиться в домашнем каталоге пользователя, в ~/.ssh/config и применяются к одному пользователю. Файл пользовательских настроек не создаётся автоматически в отличие от файла глобальных настроек клиентской части ssh. Для большинства выполняемых задач подойдут настройки по умолчанию, но для удобства использования, так сказать для тюнинга или для выполнения нестандартных задач клиентские настройки изменяются. Рассмотрим вкратце некоторые из этих настроек. Полезно помнить о приоритетах настроек: высший приоритет имеют ключи командной строки, затем следуют настройки пользователя, а после них используются глобальные настройки клиентской части.
Параметр Host. Ограничивает множество хостов, к которым применяются последующие (до ближайшей новой директивы Host) директивы, по указанным шаблонам (хост должен соответствовать хотя бы одному шаблону). Шаблон, состоящий из одного символа *, соответствует любому хосту. Под хостом в данном контексте понимается аргумент имя_хоста передаваемый в командной строке (т.е. никаких преобразований перед сравнением не выполняется).
Параметр HostName. Устанавливает соответствие между псевдонимами, сокращениями и настоящими именами хостов. По умолчанию используется имя, передаваемое в командной строке. Допустимо непосредственное указание IP-адресов.
Параметр Port. Порт на удалённой машине, к которому следует подключаться. Значение по умолчанию — 22
Параметр User. Имя пользователя, которое следует использовать при регистрации в удалённой системе. Полезно, когда на разных серверах используются разные имена, т.к. избавляет от надобности вспоминать каждый раз нужное имя.
В качестве примера я создам файл пользовательских настроек /home/selifan/.ssh/config следующего содержания:
Host sunup
HostName sunup.aitishnik.local
Port 2203
User andrey
Host windbag
HostName windbag.nnov.ru
Port 2280
User joker
Host 212.177.65.1
HostName 212.177.65.1
Port 2222
User forester
Теперь при подключении к компьютерам sunup.aitishnik.local, windbag или по ip адресу 212.177.65.1 мне не нужно вспоминать, ни имя пользователя, ни ssh порт подключения, достаточно после ssh набрать имя сервера. Просто и удобно! Описания всех параметров, значений и некоторых примеров находятся в man ssh_config. Продолжаем настраивать SSH и читаем «Генерация ключей SSH».
Об авторе:
Меня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.
Системные обновления
Своевременно устанавливать обновления для ОС — хорошая привычка. Разумеется, бывают случаи, когда обновление влечет за собой негативные последствия, но это происходит крайне редко. Данный процесс можно упростить, если использовать автообновления системы.
В разных дистрибутивах это делается по-своему:
Debian/Ubuntu используют пакет unattended upgrades для автоматических обновлений
CentOS использует yum-cron
В дистрибутиве Fedora используется
Если сервер под критической нагрузкой, то следует использовать штатные средства.
Ubuntu/Debian:
Fedora/Centos:
Важно! Обновление коснется только тех пакетов и приложений которые не были установлены путем компилирования и получены как исполняемые файлы
Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
С помощью директив (перечислены в порядке обработки) DenyUsers, AllowUsers, DenyGroups и AllowGroups и шаблонов можно настроить разрешения для доступа к SSH по IP.
Рассмотрим несколько примеров. Если в файл sshd_config добавить фильтрацию с AllowUsers:
AllowUsers johndoe@192.168.1.* admin2@192.168.1.* otherid1 otherid2
Это разрешит доступ для johndoe и admin2 только с адресов 192.168.1.*, а для otherid1, otherid2 доступ будет открыт с любого адреса.
Чтобы разрешить доступ к SSH любым пользователям, но только с определённых IP, в файле /etc/ssh/sshd_config используйте директиву AllowUsers с подстановочным символом:
AllowUsers *@192.168.1.100
Или:
AllowUsers *@ИМЯ_ХОСТА
Возможно ограничить ключ ssh или ключ на основе ca набором адресов в файле .ssh/authorized_keys домашнего каталога данного пользователя:
from="192.168.1.*,192.168.2.*" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA...etc...mnMo7n1DD useralias
В этом примере открытый ключ для useralias будет действовать только с заданных адресов.