- Alt linux ssh настройка
- Введение
- Создание ключа
- Настройка входа (на сервере)
- Использование
- Конфигурационный файл (у пользователя)
- Настройка сервера
- Инструкция по установке и настройке сервера ssh для администратора
- LDAP
- Управление сессиями
- Полезные советы
- Предотвращение брутфорс-атак
- Настройка второго sshd
- Копирование ключа на сервер
- Cisco IOS и SSH 6.6p1
- Настройка входа по одноразовому паролю
- Ссылки
- Alt linux ssh настройка
- Глава 71. Создание ssh-туннелей, использующих контроль целостности заголовков IP-пакетов в соответствии с ГОСТ Р 34.12-2015
- 71.1. Настройка сервера ssh
Alt linux ssh настройка
Создание и настройка входа через ssh
Рассматривается вопрос создания ключа пользователя и настройки для авторизации на сервере в ssh через ключ. Предполагается что ssh-сервер запущен и имеет настройки, принятые по умолчанию в ALT Linux.
Введение
ssh (secure shell) — программа для входа на удалённую машину и выполнения на ней команд.
Создание ключа
В ssh используется асимметричное шифрование, соответственно используется пара из закрытого и открытого ключа. Для создания ключа на компьютере пользователя нужно выполнить
На вопрос о файле для сохранения ключа нажать Enter (по умолчанию). Далее будет задан вопрос о пароле к ключу. Пароль нужно указать.
В каталоге ~/.ssh появляются файлы
Настройка входа (на сервере)
Для того, чтобы пользователь мог авторизоваться в системе через ssh-ключ, нужно в файл ~/.ssh/authorized_keys добавить содержимое файла id_ed25519.pub . Если пользователь будет один входить под этой учётной записью, файл id_ed25519.pub можно просто скопировать, назвав authorized_keys. Также можно воспользоваться утилитой ssh-copy-id , если копировать вручную не хочется: ssh-copy-id user@host
Данные изменения проводятся в каталоге пользователя на сервере.
-rw------- authorized_keys -rw-r--r-- config
принадлежать файлы должны пользователю и его группе.
Пользователям XFCE может потребоваться включить явный запуск ssh-agent, чтобы его использовать:
$ xfconf-query -c xfce4-session -p /startup/ssh-agent/type -s "ssh-agent" -t string -n
Изменение вступит в силу после перелогина.
Проверка того, что ключ работает:
1. $ ssh-add
2. $ ssh другая_машина
При подключении не должен запрашиваться пароль.
Использование
Конфигурационный файл (у пользователя)
Для удобства в файле ~/.ssh/config можно указать сокращение
Host myserv HostName host.name
Можно добавить ещё настроек:
Host myserv . User user Protocol 2 ForwardX11 yes ForwardAgent yes Compression yes
Чтобы не указывать пароль каждый раз при обращении к серверу, можно запустить
Будет спрошен пароль и расшифрованный ключ запомнится на время вашего сеанса. Это сработает если запущен ssh-agent (в ALT Linux он запускается автоматически при графическом входе в систему).
Настройка сервера
Инструкция по установке и настройке сервера ssh для администратора
Нужно установить пакет openssh-server, включить автоматический запуск при загрузке системы:
В файле /etc/openssh/sshd_config укажите строку AllowUsers с перечислением пользователей, имеющих право подключаться к системе.
AllowUsers guest test best
А также рекомендуется выключить аутентификацию по паролю (исправить строчку PasswordAuthentication на):
PasswordAuthentication no
Для вступления настроек в силу:
LDAP
Чтобы sshd мог пускать пользователей из LDAP, нужно выполнить
Управление сессиями
PAM session management в openssh той версии, которая находится в Сизифе и дистрибутивах, использует privilege separation и потому исполняется с правами пользователя, а не root. Как следствие,
- pam_mktemp не сможет создать подкаталог в /tmp/.private/ с нужными правами, если его там нет;
- pam_mkhomedir не сможет создать подкаталог с нужными правами, если его там нет;
- pam_limits не сможет увеличить лимиты сверх тех, что есть у процесса openssh.
В качестве объезда можно помещать эти модули в PAM account management.
Полезные советы
Предотвращение брутфорс-атак
- Можно пересадить sshd на нестандартный порт
- Целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен. Для этого, в файле /etc/openssh/sshd_config укажите строку
В этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 %
- Для особо изощрённой защиты можно использовать knock.
- Можно ограничить число попыток средствами iptables:
iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --set iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update --seconds 60 --hitcount 4 -j LOG iptables -A INPUT -p TCP --syn --dport 22 -m recent --name ssh_rate_limit --update --seconds 60 --hitcount 4 -j DROP
Для оптимизации этого дела настроятельно рекомендуется завести цель LOGDROP.
В файл /etc/fail2ban/jail.d/customisation.local записать
[sshd] enabled = true filter = sshd logpath = /var/log/auth/messages maxretry = 3
В файле /etc/openssh/sshd_config параметру UseDNS задать значение no.
Настройка второго sshd
Копируем /etc/init.d/sshd и указываем через -f другой конфигурационный файл? Практика показывает, что надо менять весь набор: копировать /etc/init.d/sshd, /etc/sysconfig/sshd; (факультативно делать ссылки или копировать сам sshd, /etc/pam.d/sshd); изменять посредством /etc/sysconfig/sshd переменные PIDFILE, LOCKFILE, EXTRAOPTIONS.
Копирование ключа на сервер
Если вам нужно добавить на сервер, куда вы имеете доступ, чей-то ключ, используйте
$ ssh-copy-id -i friends_pub_key myserver
Cisco IOS и SSH 6.6p1
Ошибка при подключении: SSH2 0: Client DH key range mismatch with max built-in DH key on server!
в ~/.ssh/config (что бы не переопределять глобально у остальных пользователей) добавить:
Host 192.168.1.* KexAlgorithms diffie-hellman-group14-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,\ diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
т.е. diffie-hellman-group14-sha1 — на первое место.
Настройка входа по одноразовому паролю
Вход по ключу — это, конечно хорошо (особенно если ключ ещё и защищён паролем), однако при входу из общественного места может не быть возможности использовать ключ (не дают тыкать свои флешки). А если такая возможность есть, то не факт, что ваш ключ не будет скопирован, а его пароль перехвачен во время ввода. В общем ключ — это просто более надёжный пароль: его тоже можно украсть и потом невозбранно использовать для входа под вашей учётной записью.
Для общественных мест хочется такую технологию входа, чтобы потенциальная компрометация всех учётных данных не дала возможности злоумышленнику войти в систему. И такая технология есть — это одноразовые пароли. Подробнее о том, как это работает можно прочитать в этой статье. Для вас же их использование будут означать, что при входе в систему, помимо пароля, нужно будет вводить некий числовой код, который будет каждый раз разным.
В качестве инфраструктуры для одноразовых паролей мы возьмём Google Authenticator, ибо всё необходимое уже есть в репозиториях. Нам понадобятся два пакета: libpam-google-authenticator и libqrencode (без последнего можно обойтись). Если пакета google нет в репозитории вашей платформы, то его несложно собрать самому в хешере, у него почти нет зависимостей.
Итак, пакеты установлены. На время настройки рутовую консоль лучше держать открытой. Сначала создадим необходимые файлы у пользователя, который будет входить с одноразовым паролем. Входим под ним и выполняем:
Будут заданы следующие вопросы:
- Сделать токены зависимыми от времени — y
- Здесь, если вы поставили libqrencode, вам будет показан QR-код. В приложении Google Authenticator а
на телефоне нужно создать новый аккаунт и отсканить этот код. Если не ставили библиотеку, перебивайте показанный код руками. В результате вам тут же будет сгенерирован текущий одноразовый пароль.
- Обновить файл ~/.google_authenticator? — y
- Запретить использование одного кода несколько раз — y
- Расширить время действия кода с 1,5 минут до 4? — n
- Запретить попытки входа чаще, чем 3 раза за 30 сек? — y
Всё, настройка для пользователя закончена. Идём ковырять систему (из-под рута, конечно).
Сначала OpenSSH. В /etc/openssh/sshd_config включаем вопрос-ответ:
ChallengeResponseAuthentication yes
И просим демона перечитать конфиг:
Отлично, с SSH закончили. Теперь правим соответствующие настройки PAM (они лежат в /etc/pam.d/sshd). Обычно рекомендуют просто добавить гугловый пам в начало файла. В нашем случае это не заработает. Проблема в том, что модуль pam_userpass не хочет нормально работать в паре с гуглом. Если просто добавить гугл в pam.d/sshd, то независимо от порядка следования модулей, будет выводится только запрос на одноразовый пароль и всегда будет access denied.
Однако, не смотря на название, userpass не проверяет логин/пароль, он просто запрашивает их и сохраняет внутри стека pam. А проверяет их pam_tcb, причём он и сам умеет запрашивать пароль!
Решение очень простое — выкидываем userpass, вставляем на его место tcb без параметра use_first_pass. После этип манипуляций конфиг должен выглядеть так:
#auth required pam_userpass.so auth required pam_tcb.so shadow fork prefix=$2y$ count=8 nullok auth required pam_google_authenticator.so echo_verification_code #auth include common-login-use_first_pass
Весь остальной стек для auth выкидываем, ибо там тот же tcb и всякий ldap, который не нужен (если нужен, придётся перенести его сюда же).
Порядок следования модулей auth важен, при таком как в примере, сначала запрашивается пароль, затем всегда одноразовый код. Так невозможно понять, что именно неверно, и это хорошо для безопасности. Если хотите, чтобы авторизация обламывалась сразу, замените required на requisite у pam_tcb.
Ссылки
- Документация ALM2.4
- Настройка сервера SSH (теория и практика)
- Настройка SSH в cygwin
- Автоматизация системного администрирования с помощью ssh и scp
- Защита с помощью SSH ключей
- Довольно интересные трюки (в основном по работе с большим количеством систем, в том числе через одну из них)
- http://www.linux.com/article.pl?sid=05/09/15/1655234
- http://fail2ban.sourceforge.net/
- http://www.csc.liv.ac.uk/~greg/sshdfilter/
- http://tychoish.com/rhizome/9-awesome-ssh-tricks/
- https://wiki.archlinux.org/index.php/Secure_Shell
Alt linux ssh настройка
Глава 71. Создание ssh-туннелей, использующих контроль целостности заголовков IP-пакетов в соответствии с ГОСТ Р 34.12-2015
71.1. Настройка сервера ssh
Установить пакеты openssh-gostcrypto , openssh-clients-gostcrypto , openssh-server-gostcrypto , openssh-server-control-gostcrypto , openssh-common-gostcrypto , openssh-askpass-common-gostcrypto :
# apt-get install openssh-gostcrypto openssh-clients-gostcrypto openssh-server-gostcrypto openssh-server-control-gostcrypto openssh-common-gostcrypto openssh-askpass-common-gostcrypto
Чтение списков пакетов. Завершено Построение дерева зависимостей. Завершено Следующие пакеты будут УДАЛЕНЫ: NetworkManager-ssh kde5-network-manager-4-nm openssh openssh-askpass-common openssh-clients openssh-common openssh-server openssh-server-control plasma5-nm-connect-ssh plasma5-nm-maxi Следующие НОВЫЕ пакеты будут установлены: openssh-askpass-common-gostcrypto openssh-clients-gostcrypto openssh-common-gostcrypto openssh-gostcrypto openssh-server-control-gostcrypto openssh-server-gostcrypto ВНИМАНИЕ: Будут удалены важные для работы системы пакеты Обычно этого делать не следует. Вы должны точно понимать возможные последствия! openssh-server openssh-server-control (по причине openssh-server) 0 будет обновлено, 6 новых установлено, 10 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 1190kB архивов. После распаковки будет освобождено 154kB дискового пространства. Вы делаете нечто потенциально опасное! Введите фразу 'Yes, do as I say!' чтобы продолжить. Yes, do as I say!
$ ssh -Q cipher
3des-cbc aes128-cbc aes192-cbc aes256-cbc rijndael-cbc@lysator.liu.se aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com chacha20-poly1305@openssh.com grasshopper-cbc@altlinux.org grasshopper-ctr@altlinux.org magma-cbc@altlinux.org magma-ctr@altlinux.org
$ ssh -Q mac
hmac-sha1 hmac-sha1-96 hmac-sha2-256 hmac-sha2-512 hmac-md5 hmac-md5-96 umac-64@openssh.com umac-128@openssh.com hmac-sha1-etm@openssh.com hmac-sha1-96-etm@openssh.com hmac-sha2-256-etm@openssh.com hmac-sha2-512-etm@openssh.com hmac-md5-etm@openssh.com hmac-md5-96-etm@openssh.com umac-64-etm@openssh.com umac-128-etm@openssh.com grasshopper-mac@altlinux.org hmac-gostr3411-2012-256@altlinux.org hmac-streebog-256@altlinux.org hmac-gostr3411-2012-512@altlinux.org hmac-streebog-512@altlinux.org hmac-gostr3411-2012-256-etm@altlinux.org hmac-streebog-256-etm@altlinux.org hmac-gostr3411-2012-512-etm@altlinux.org hmac-streebog-512-etm@altlinux.org
Добавить в файл /etc/openssh/sshd_config строки (набор допустимых алгоритмов, в порядке убывания приоритета):
Ciphers grasshopper-ctr@altlinux.org MACs grasshopper-mac@altlinux.org,hmac-streebog-512@altlinux.org