Есть старое правило: если можно сделать быстро и удобно, кто‑то обязательно сделает это в ущерб безопасности. В инфраструктурных командах это особенно заметно. Сетевики часто решают задачи «с лёту», и это прекрасно. Пока речь не заходит про пароли. Один из таких…
Создать ssh-сервер на Go можно при помощи модуля golang.org/x/crypto/ssh.А при помощи пакета github.com/gliderlabs/ssh можно разработать ssh-сервер легко и быстро. Ssh подразумевает не только доступ к оболочке(shell), но и прочие возможности: файловый сервер(sftp), проброс портов. README пакета gliderlabs/ssh содержит минимальный пример, выводящий строку "Hello world" любому подключенному ssh-клиенту.Реализуем же полноценный терминальный интерфейс. go next()
2 октября 333 выходных узла Tor, примерно каждый десятый в сети, начали перенаправлять SSH-подключения на 12 серверов-перехватчиков. Кто входил, несмотря на предупреждение о сменившемся ключе хоста, лишался пароля, а его сервер заражали бэкдором Ebury. Автор поймал подмену на своём подключении, проверил все ~3000 выходных узлов скриптом на exitmap и передал список команде Tor: через три дня все заражённые узлы были выключены. Читать далее
Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH. Читать далее