Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
# по сети, но под «крылышком» ssh. Например, для sftp-сервера есть одноимённый sftp-клиент. Его интерфейс полностью идентичен
# оригинальному ftp, но с одним отличием: происходит та же самая аутентификация пользователя на удалённом сервере (методами ssh),
# но вместо оболочки с пользователем взаимодействует подсистема, в данном случае
sftp. Subsystem sftp /usr/lib/ssh/sftp-server
Ну вот, вроде бы всё настроено! Теперь я бы хотел поговорить о некоторых фичах, работающих в ssh. Но с начала несколько слов о туннелях. SSH имеет встроенную возможность передавать данные с локального порта на удалённый, используя сетевой туннель, причём данные, передаваемые через туннель, будут шифроваться. То есть происходит аутентификация на удалённой системе, а затем начинается перенаправление трафика через туннель. Таким образом, можно перенаправлять любой трафик, а протокол иксов может работать в интерактивном режиме, для этого необходимо включить соответствующие опции в файлах конфигурации сервера и клиента (это было описано ранее). Для других же портов необходимо вызывать ssh с параметром: - L{LOCAL_PORT}:{LOCAL_ADDRESS}:{REMOTE_PORT}:
# ssh -L10101:localhost:101 server.test.ru
Такой туннель довольно быстро умирает, т.к. сервер автоматически убивает «ленивых» клиентов. Поэтому можно применить метод, который позволяет устанавливать произвольное время удержания туннеля – выполнить sleep на удалённом сервере:
# ssh -f -L10101: loclahost:101 server.test.ru sleep 100
Данная команда держит туннель 100 секунд, чего достаточно для любого соединения. И ещё одна вещь: когда по туннелю передаются данные, то он не уничтожается, что хорошо для реализации безопасного ftp smtp и pop3 протоколов (впрочем, sftp-сервер имеется уже и в поставке openssh, применение его не должно вызвать затруднений sftp [user@]hostname, т.к. фактически это особая реализация ssh протокола и механизм работы sftp абсолютно идентичен механизму ssh). Чтобы отключить перенаправление портов, необходимо установить опцию sshd AllowTcpForwarding в no. Использование длительной задержки ssh туннеля несколько уменьшает безопасность, т.к. во время ожидания злоумышленник имеет больше шансов на атаку (но механизм ssh версии 2 позволяет избежать подобной ситуации подписыванием передаваемых сообщений).
Вот что сделал бы я для безопасного ssh. Для начала создал бы rsa ключ длиной 4096 бит:
# ssh-keygen -t rsa -b 4096
Затем скопировал бы данный ключ с помощью дискеты или ssh-copy-id на удалённый сервер(а):
# ssh-copy-id -i $HOME/.ssh/id_rsa remote_host
После этого запретил бы парольную и всякую hostbased аутентификацию в sshd_config:
IgnoreHosts yes
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
HostbasedAutentification no
PasswordAuthentication no
PermitEmptyPasswords no