$put_perv_real = "/home/www/dvakompa-ru/dopol/"; ?>
SSH - это ссш и этим все сказано. Даже школьники знают что это - безопасный сервер терминалов (secure shell), предоставляющий удаленный доступ к системе linux. Почему безопасный? Потому что весь трафик между клиентом и сервером шифруется. Об этом и продолжу разглагольствовать.
При установке соединения сервер и клиент договариваются между собой каким образом будет происходить обмен информацией. При этом сервер предлагает клиенту, на выбор, алгоритм обмена сообщениями и сам шифр.
Алгоритм обмена сообщениями, или MAC (message authentication code) предназначен для авторизации команд/сообщений.
И сам метод шифрования, который в конфигурационном файле имеет название Cipher, определяет каким образом будут кодироваться данные между клиентом и сервером.
С недавнего времени в некоторых алгоритмах обмена сообщениями и методах шифрования были найдены слабые места, и все платные онлайн сканеры безопасности начали рапортовать MAC алгоритмы MD5 и 96bit, как небезопасные. Также предлагают отказаться от методы шифрования CBC.
Я, конечно, слабо представляю как можно вломиться в зашифрованный канал SSH, но для спокойствия клиентов это все можно отключить и оставить только "безопасные" MAC'и и шифры.
Посмотреть с каким набором работает Ваш сервер можно вызвав справку по ssh_config и найти в ней MACs и Ciphers (нажать кнопку "/" и ввести):
man sshd_config
Мой сервер по умолчанию работает вот с таким набором MAC'ов:
hmac-md5,hmac-sha1,umac-64@openssh.com,
hmac-ripemd160,hmac-sha1-96,hmac-md5-96
И вот таким набором Cipher'ов:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
Обращаем внимание на все, что имеет в названии MD5, 96bit и CBC.
Дальше редактируем файл конфигурации /etc/ssh/ssd_config вот такими строками:
MACs hmac-md5,hmac-sha1,hmac-ripemd160
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour
Хочу обратить внимание на то, что если у Вас описаны выражения Match, тогда приведенные выше строки нужно добавлять перед этими блоками, иначе получите вот такие ошибки при перезапуске сервера ssh:
Starting sshd: /etc/ssh/sshd_config line 139: Directive 'MACs' is not allowed within a Match block
Starting sshd: /etc/ssh/sshd_config line 140: Directive 'Ciphers' is not allowed within a Match block
Перезапускаем ssh сервер. Учтите, что даже, если он не запустится - Ваша сессия останется активной.
Бывает такое, что сервер не запускается. В таком случае нужно обращать внимание, на что именно он ругается и убирать это из конфигурации
Проверить какой метод шифрования используется можно с помощью подключения в режиме развернутого вывода информации:
ssh -vv root@server.com 2>&1 |grep --color "kex:"
В моем случае это вот такой вывод:
Самый хороший методом обезопасить Ваш сервер - перевести всех на авторизацию по ключам и отключить вообще PAM авторизацию. Никто не сможет модифицировать пакет авторизации и видоизменить ssh handshake.
Почему то все считают что в целях безопасности SSH нужно перевесить на нестандартный порт (любой кроме 22). Этот порт можно легко прощупать с помощью того же Nmap'a, так что это - ни грамма не заглушка безопасности.
Хорошей прокладкой является Fail2Ban, который можно натравить на лог файл, в который ssh пишет заметки о проваленных авторизациях и резать всех злоумышлеников с помощью iptables.