KAN`ский блог Мысли вслух…
  • Мар
    20

    SSH

    Filed under: Без рубрики;

    Склейка из нескольких статей и свои замечания

    Конфигурация сервера и создание ключей

    # Порт на котором висит демон (можно задать и другой)
    Port 22
    # Использовать протокол только версии 2
    Protocol 2
    # Если не указывать, будет слушать на всех интерфейсах
    ListenAddress 172.16.0.102
    # Ключи сервера для протокола версии 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    # Вести логи (кто, когда, откуда)
    SyslogFacility AUTH
    LogLevel INFO
    # для root закрываем SSH (безопасность)
    PermitRootLogin no
    # Разрешаем доступ юзерам только с группы ussh
    AllowGroups ussh
    # webadmin не входит в группу, ему доступ отдельно
    AllowUsers webadmin
    # Аутентификация для протокла версии 1 — отключаем
    RSAAuthentication no
    # Авторизация юзера по публичному ключу
    PubkeyAuthentication yes
    AuthorizedKeysFile /etc/ssh/authorized_keys
    # Авторизация по IP — не безопасно. Отключаем
    RhostsRSAAuthentication no
    HostbasedAuthentication no
    IgnoreUserKnownHosts yes
    IgnoreRhosts yes
    # Полностью отключаем парольную аутентификацию
    # Вход только по ключу. Если такой метод не устраивает
    # поставьте yes
    PasswordAuthentication no
    # Блокируем пустые пароли
    PermitEmptyPasswords no
    # Разрешаем форвардинг TCP-трафика, в будущем понадобится
    AllowTcpForwarding yes
    # Для X11, надо
    X11Forwarding yes
    # Разрешаем создание туннелей
    PermitTunnel yes
    # SSH-ftp сервер
    Subsystem sftp /usr/libexec/sftp-server
    # Пупкину не нужно X11 по сети
    Match User pupkin
    X11Forwarding no

    Создаем вручную ключи сервера (без пароля). По умолчанию при первом старте sshd сам создает ключи (1024bit и 2048bit), немного паранои не помешает 🙂

    root@freebsd# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \ -P » -b 1024
    root@freebsd# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \ -P » -b 4096
    root@freebsd# ls -l /etc/ssh
    total 160
    -rw-r—r— 1 root wheel 1350 2009-10-13 17:09 authorized_keys
    -rw-r—r— 1 root wheel 132839 2007-04-03 20:36 moduli
    -rw-r—r— 1 root wheel 1419 2009-10-13 18:24 ssh_config
    -rw——- 1 root wheel 668 2009-10-13 16:55 ssh_host_dsa_key
    -rw-r—r— 1 root wheel 600 2009-10-13 16:55 ssh_host_dsa_key.pub
    -rw——- 1 root wheel 3239 2009-10-13 16:55 ssh_host_rsa_key
    -rw-r—r— 1 root wheel 732 2009-10-13 16:55 ssh_host_rsa_key.pub
    -rw-r—r— 1 root wheel 3096 2009-10-13 23:08 sshd_config

    Теперь, для каждого клиента создаем аккаунт на сервере и ключи

    webadmin@freebsd# ssh-keygen -t dsa -P » -b 1024
    webadmin@freebsd# ssh-keygen -t rsa -P » -b 4096

    Ключи сохраняются в $HOME/.ssh Там же и все пользовательские настройки ssh-клиента
    Публичные ключи (расширение .pub) добавляем на сервер в /etc/ssh/authorized_keys. Здесь есть два пути
    Первый — копируем ключи на сервер (по сети или на флешке) и вручную заносим в список authorized_keys

    root@freebsd# cat webadmin_rsa.pub >> /etc/ssh/authorized_keys
    root@freebsd# cat webadmin_dsa.pub >> /etc/ssh/authorized_keys

    Настройка SSH сервера на аутентификацию по открытому ключу

    SSH сервер естественно должен быть настроен на аутентификацию по ключам, приведу кусок, касающийся аутентификации, своего файла конфигурации, SSH сервера. Все что закомментированно в конфиге, отсюда убрал, для простоты восприятия:
    PermitRootLogin yes
    Данная директива нужна, если вы планируете работать под учетной записью root.
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    RhostsRSAAuthentication no
    HostbasedAuthentication no
    PermitEmptyPasswords no
    UseLogin no
    Обратите внимание на следующий момент, с приведенным выше вариантом конфигурации SSH сервера, при неудачной аутентификации по ключам, например если неправильно ввести секретную фразу ключей, будет предложена аутентификация по паролю. Что-бы изменить это поведение и например вообще не пускать пользователя root иначе, как по ключам, можно изменить в конфигурационном файле сервера, значение директивы PermitRootLogin с yes на without-password.

    Преобразование ssh публичного ключа для работы в putty

    1. Для использования putty или plink нужно с помощью программы puttygen преобразовать полученый на сервере private key в формат для putty
    Указать расположение файла id_rsa
    Потом нажать Save private key и сохранить в формате *.ppk НЕ УКАЗЫВАЯ ПАРОЛЬ
    Для подключения с помощью plink нужно с помощью параметра –i указать путь к ключу
    Plink test@server –i d:/ssh/test.ppk
    Для использования созданного ключа в putty нужно в меню putty в разделе ssh нужно выбрать пункт auth  и в поле private key указать расположение ppk файла.

    Для организации защищенного соединения с сервером внутри офисной сети нужно сделать следующее(рассмотрим на примере RDP):

    Запустить ssh-клиент PuTTY
    http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
    На вкладке Session указать IP ВНЕШНИЙ и порт 22
    На вкладке Connection > SSH > Tunnels указать Destination
    ЛОКАЛЬНЫЙ_IP_ТРЕБУЕМОГОСЕРВЕРА:3389, а Source port 3456 (любой свободный порт на твей
    машине) и нажать Add.
    Нажать Open
    В открывшемся консольном окне указать:
    Login: ……
    Password: ……
    Должна запустится командная строка FreeBSD
    Затем, можешь запускать в винде удаленный терминал mstsc. В качестве удаленного компьютера указываешь 127.0.0.1:3456 (пуск — выполнить — вводишь mstsc /v: 127.0.0.1:3456)

    X-server Для Windows

    http://sourceforge.net/projects/xming/

    No Comments

Leave a reply

Для отправки комментария вам необходимо авторизоваться.