SSH: различия между версиями
Нет описания правки |
(перенос в категорию Admin, убран шаблон merge) |
||
Строка 1: | Строка 1: | ||
[[ | [[Категория:Admin]] | ||
{{Stub}} | {{Stub}} | ||
{{MovedFromFreesourceInfo|AltLinux/Документация/НастройкаSSH}} | {{MovedFromFreesourceInfo|AltLinux/Документация/НастройкаSSH}} | ||
== Создание и настройка входа через ssh == | == Создание и настройка входа через ssh == | ||
Строка 14: | Строка 13: | ||
=== Введение === | === Введение === | ||
ssh — программа для входа на удалённую машину и выполнения на ней команд. | |||
=== Создание ключа === | === Создание ключа === | ||
Строка 26: | Строка 25: | ||
В каталоге ~/.ssh | В каталоге ~/.ssh | ||
появляются файлы | появляются файлы | ||
* | * id_dsa — секретный ключ | ||
* id_dsa. | * id_dsa.pub — публичный ключ | ||
<div style="display: inline; color: red;">Внимание! Никогда никому не пересылайте секретный ключ.</div> | <div style="display: inline; color: red;">Внимание! Никогда никому не пересылайте секретный ключ.</div> | ||
Строка 41: | Строка 40: | ||
принадлежать файлы должны пользователю и его группе | принадлежать файлы должны пользователю и его группе | ||
'' Настройку доступа на сервере можно посмотреть в разделе: | '' Настройку доступа на сервере можно посмотреть в разделе: [http://freesource.info/wiki//ALTLinux/Dokumentacija/NastrojjkaSSH#h576-6 Настройка сервера]'' | ||
=== Использование === | === Использование === | ||
Строка 98: | Строка 97: | ||
Думаю, не будет лишним указать содержимое /etc/pam.d/system-auth и system-auth-use_first_pass | Думаю, не будет лишним указать содержимое /etc/pam.d/system-auth и system-auth-use_first_pass | ||
'''Предупреждение''': с openssh-server версии openssh-3.6.1p2-alt6 из ALTLinux Master 2.4 pam_mkhomedir <div style="display: inline; color: red;">НЕ РАБОТАЕТ</div>, [https://bugzilla.altlinux.org/show_bug.cgi?id=6385 это решенный баг]. | '''Предупреждение''': с openssh-server версии openssh-3.6.1p2-alt6 из ALTLinux Master 2.4 pam_mkhomedir <div style="display: inline; color: red;">НЕ РАБОТАЕТ</div>, [https://bugzilla.altlinux.org/show_bug.cgi?id=6385 это решенный баг]. См. тж. ниже. | ||
system-auth | system-auth | ||
Строка 155: | Строка 154: | ||
Разве это не limit делается?</pre> | Разве это не limit делается?</pre> | ||
Так же целесообразно ограничить число | Так же целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен. | ||
Для этого, в файле /etc/openssh/sshd_config укажите строку | Для этого, в файле /etc/openssh/sshd_config укажите строку | ||
<pre>MaxStartups 2:70:10</pre> | <pre>MaxStartups 2:70:10</pre> | ||
В этом случае у вас будут разрешены только 2 | В этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 % | ||
Для особо изощрённой защиты можно использовать knock. | Для особо изощрённой защиты можно использовать knock. | ||
Строка 180: | Строка 179: | ||
* [http://www.linuxfocus.org/Russian/January2003/article278.shtml Автоматизация системного администрирования с помощью ssh и scp] | * [http://www.linuxfocus.org/Russian/January2003/article278.shtml Автоматизация системного администрирования с помощью ssh и scp] | ||
* [http://www.securitylab.ru/analytics/216377.php Защита с помощью SSH ключей] | * [http://www.securitylab.ru/analytics/216377.php Защита с помощью SSH ключей] | ||
* [http://www.stearns.org/doc/ssh-techniques-two.current.html Довольно интересные трюки] (в основном по работе с большим количеством систем, в том числе через одну из них) |
Версия от 21:39, 17 августа 2008
Создание и настройка входа через ssh
Рассматривается вопрос создания ключа пользователя и настройки для авторизации на сервере в ssh через ключ. Предполагается что ssh-сервер запущен и имеет настройки, принятые по умолчанию в ALTLinux.
Введение
ssh — программа для входа на удалённую машину и выполнения на ней команд.
Создание ключа
В ssh используется ассиметричное шифрование, соответственно используется пара из закрытого и открытого ключа. Для создания ключа на компьютере пользователя нужно выполнить
$ ssh-keygen -b 2048 -t dsa
На вопрос о файле для сохранения ключа нажать Enter (по умолчанию). Далее будет задан вопрос о пароле к ключу. Пароль нужно указать.
В каталоге ~/.ssh появляются файлы
- id_dsa — секретный ключ
- id_dsa.pub — публичный ключ
Настройка входа (на сервере)
Для того, чтобы пользователь мог авторизоваться в системе через ssh-ключ, нужно в файл ~/.ssh/authorized_keys добавить содержимое файла id_dsa.pub. Если пользователь будет один входить под этой учётной записью, файл id_dsa.pub можно просто скопировать, назвав authorized_keys. Также можно воспользоваться утилиой ssh-copy-id, если копировать вручную не хочется. Данные изменения проводятся в каталоге пользователя на сервере.
-rw------- authorized_keys -rw-r--r-- config
и на каталог
drwx------ .ssh
принадлежать файлы должны пользователю и его группе
Настройку доступа на сервере можно посмотреть в разделе: Настройка сервера
Использование
$ ssh user@server.fullname.ru
Конфигурационный файл (у пользователя)
Для удобства в файле ~/.ssh/config можно указать сокращение
Host myserv HostName server.fullname.ru
и вызывать просто как
$ ssh myserv
Можно добавить ещё настроек:
Host myserv ... User user Protocol 2 ForwardX11 yes ForwardAgent yes Compression yes
Чтобы не указывать пароль каждый раз при обращении к серверу, можно запустить
$ ssh-add
будет спрошен пароль и расшифрованный ключ запомнится на время вашего сеанса. Это сработает если запущен ssh-agent (в ALT Linux он запускается автоматически при графическом входе в систему).
Настройка сервера
sshd
Инструкция по установке и настройке сервера ssh для администратора. Нужно установить пакет openssh-server, включить автоматический запуск при загрузке системы:
# chkconfig sshd on
В файле /etc/openssh/sshd_config укажите строку AllowUsers с перечислением пользователей, имеющих право подключаться к системе. Например
AllowUsers guest test best
А также рекомендуется выключить аутентификацию по паролю (исправить строчку PasswordAuthentication на):
PasswordAuthentication no
Для вступления настроек в силу:
# service sshd reload
LDAP
Чтобы sshd мог пускать пользователей, живущих в LDAP, нужно немного подправить /etc/pam.d/sshd
auth required pam_userpass.so auth sufficient pam_ldap.so use_first_pass auth required pam_tcb.so shadow fork prefix=$2a$ count=8 nullok nodelay blank_nolog use_first_pass auth required pam_nologin.so account include system-auth password include system-auth session include system-auth
Думаю, не будет лишним указать содержимое /etc/pam.d/system-auth и system-auth-use_first_pass
Предупреждение: с openssh-server версии openssh-3.6.1p2-alt6 из ALTLinux Master 2.4 pam_mkhomedir
, это решенный баг. См. тж. ниже.
system-auth
#%PAM-1.0 auth sufficient pam_ldap.so auth required pam_tcb.so shadow fork prefix=$2a$ count=8 nullok use_first_pass account sufficient pam_ldap.so account required pam_tcb.so shadow fork password sufficient pam_ldap.so password required pam_passwdqc.so min=disabled,24,12,8,7 max=40 passphrase=3 match=4 similar=deny random=42 enforce=users retry=3 password required pam_tcb.so use_authtok shadow fork prefix=$2a$ count=8 write_to=tcb session required pam_mkhomedir.so skel=/etc/skel/ umask=0026 session sufficient pam_ldap.so #session required pam_mkhomedir.so skel=/etc/skel/ umask=0026 session required pam_tcb.so session required pam_limits.so
system-auth-use_first_pass
#%PAM-1.0 #auth required pam_tcb.so shadow fork prefix=$2a$ count=8 nullok use_first_pass #password required pam_tcb.so use_authtok shadow fork prefix=$2a$ count=8 write_to=tcb auth sufficient /lib/security/pam_tcb.so shadow fork prefix=$2a$ count=8 nullok use_first_pass auth required /lib/security/pam_ldap.so use_first_pass password sufficient /lib/security/pam_ldap.so use_authok password required /lib/security/pam_tcb.so use_authtok shadow fork prefix=$2a$ count=8 write_to=tcb
Управление сессиями
Date: Fri, 27 May 2005 13:24:49 +0400 From: "Dmitry V. Levin" <ldv@> To: <sisyphus@> Subject: Re: [sisyphus] openssh update PAM session management в openssh той версии, которая находится в Сизифе/дистрибутивах и использует privilege separation, исполняется с правами пользователя, а не root'а. Как следствие, - pam_mktemp не сможет создать подкаталог в /tmp/.private/ с нужными правами, если его там нет; - pam_mkhomedir не сможет создать подкаталог с нужными правами, если его там нет; - pam_limits не сможет увеличить лимиты сверх тех, что есть у процесса openssh. В качестве workaround'а можно помещать это модули в PAM account management.
Полезные советы
Как отучить взломщиков подбирать пароли
Например, можно перенести sshd на другой порт, а на родной порт (22) ssh натравить portsentry.
On Mon, Sep 26, 2005 at 12:28:57PM +0400, ABATAPA wrote: > Можно сделать еще проще: разрешить такие пакеты не чаще, скажем, N в 5 минут с > каждой сети C средствами IPTables. Если сам ошибся - можно и подождать. wrar: Разве это не limit делается?
Так же целесообразно ограничить число «ожидающих» соединений, когда пароль еще не введен. Для этого, в файле /etc/openssh/sshd_config укажите строку
MaxStartups 2:70:10
В этом случае у вас будут разрешены только 2 «ожидающих» соединения, и каждое следующее будет сброшено с вероятностью 70 %
Для особо изощрённой защиты можно использовать knock. См. также http://www.linux.com/article.pl?sid=05/09/15/1655234 и http://fail2ban.sourceforge.net/ И ещё http://www.csc.liv.ac.uk/~greg/sshdfilter/
==== Настройка второго sshd ==== > Копируем /etc/init.d/sshd и указываем через -f другой конфигурационный файл? Практика показывает, что надо менять весь набор: копировать /etc/init.d/sshd, /etc/sysconfig/sshd; (факультативно делать ссылки или копировать сам sshd, /etc/pam.d/sshd); изменять посредством /etc/sysconfig/sshd переменные PIDFILE, LOCKFILE, EXTRAOPTIONS. Dmitry V. Levin
Копирование ключа на сервер
Если вам нужно добавить на сервер, куда вы имеете доступ, чей-то ключ, используйте
$ ssh-copy-id
например,
$ ssh-copy_id -i friends_pub_key myserver
Ссылки
- ALM24Doc:ch06s05.html#distrib.setup.network.ssh
- Настройка сервера SSH (теория и практика)
- Настройка SSH в cygwin
- Автоматизация системного администрирования с помощью ssh и scp
- Защита с помощью SSH ключей
- Довольно интересные трюки (в основном по работе с большим количеством систем, в том числе через одну из них)