Привет! В голливудских фильмах про хакеров, ты наверняка видел как герой сидит перед компом, быстро набирая команды на клавиатуре. На черном экране бегут зеленые буквы, появляется надпись “HACKED!” и в результате у него получается за считанные секунды, обойти все системы защиты, открыть хранилище банка или и вовсе запустить ядерную боеголовку.
Ты можешь подумать, что в современном мире, где царит удобство, почти у всего есть приложение и графический интерфейс ввод команд в черный экран - это прошлый век. Но спешим тебя разубедить! Сетевой инженер, администратор, специалист по информационной безопасности и конечно же хакер точно также сидит перед компом и вбивает на клавиатуре команды, чтобы выполнить определенные задачи. Сейчас мы объясним, что это за черный экран такой и как с помощью него человек может взаимодействовать с сетевым устройством.
Когда компьюстеры только появлялись, у них не было ни дисплеев, ни клавиатуры, ни тем более мыши. Но их надо было как-то настраивать и заставлять их складывать большие числа, которые самому было складывать лень. Нужно было некое устройство, с помощью которого человек мог бы взаимодействовать с компьютером. Такое устройство - прослойку принято называть терминалом.
Видео: SSH/Telnet/Терминал/Консоль
Заценили ролик? Продолжаем.
На первых порах ими стали телетайпы. Это такие печатные машинки, которые соединяются по электрическому каналу для отправки и получения текстовых сообщений на простом листе бумаги. Да-да, раньше этим хакерским черным экраном был простой лист с командами! Это было дико неудобно и медленно, но идея ввода и вывода информации построчно затем легла в основу будущих интерфейсов.
Позднее, посредством электронно-лучевой трубки, строку для ввода команд вывели на экран и плюс-минус в таком виде она добралась до наших дней. Таким образом, мы теперь вбиваем команды не на печатной машинке, а на клавиатуре и видим эти команды не на листе бумаги, а на мега тонком UltraHD мониторе, но модель взаимодействия осталась такой же как и 60 лет назад.
Вообще совокупность устройств для взаимодействия с человека и компьютера называют консолью. Это может быть клавиатура, мышь, монитор, дисплей, микрофон, джойстик, но с одной оговорочкой. Всё это должно быть подключено непосредственно к компу и ты должен находиться прямо перед ним.
А вот если ты сидишь в удобном отремонтированном кабинете с кондиционером и через промежуточное устройство подключаешься к серверу, который стоит в подвале здания, то это уже терминал. Улавливаешь суть? Консоль - это когда ты сидишь прямо перед устройством и юзаешь перефирию подключенную прямо к нему. Терминал - это когда ты через что-то ещё (зачастую удаленно) подключаешься к консоли взаимодействуешь с ней.
Супер, разобрались. Ну и что, можно взаимодействовать с компами только если за ними сидеть или через какой-то промежуточный девайс? Конечно нет!
Для этого был придуман протокол Telnet (телетайп нетворк).
С помощью него можно удаленно по сети подключиться к сетевому устройству и заниматься его администрированием. По умолчанию, телнет использует TCP порт 23.
При подключении по телнет ты с помощью текстовых команд можешь говорить удаленному серверу что делать - запускать программы, создавать и удалять файлы и директории, управлять сетевыми параметрами, гонять гусей короче вообще всё на что хватит прав, а самое главное ты при этом можешь находиться на другом конце планеты.
Всё было бы просто замечательно, если бы телнет не был разработан в 69 году, как следует из названия - для тех самых телетайпов. А в те времена, на безопасность было вообще пофиг. Дело в том, что все команды, которые ты вбиваешь по телнет, включая логины и пароли передаются в открытом виде, а значит любой, кто перехватит твой телнет трафик сможет узнать всё что ты делал в рамках сессии.
Поэтому сегодня использование телнет для доступа к удаленным устройствам в профессиональном сообществе считается зашкваром. “Ну блеск, и как же теперь лазить на удаленные компы, сервера и прочий сетевой хлам”? - спросите вы. Тут хочется ответить тремя буквами - SSH (Secure Shell) или защищенная оболочка, хотя так никто не говорит.
Этот парень создан для защищенного удаленного администрирования и внимательно слушает TCP порт 22. Все команды, которые ты введешь в рамках сессии, включая логины и пароли, будут зашифрованы уникальным ключом и даже если хацкеры перехватят твой трафик, то вряд ли им удастся его расшифровать. Мало того, он ещё и целостность переданной информации будет проверять, чтоб ничего не потерялось и не побилось. Благодаря своей надёжности, SSH также применяется для защищенной передачи файлов, (SFTP - SSH File Transfer Protocol, SCP - Secure Copy) и туннелирования других протоколов.
Чтобы иметь возможность подключаться к девайсам как по телнет, так и по SSH нужно 2 вещи:
- Удаленное устройство должно выступать как Telnet/SSH - сервер, то есть иметь некое ПО, которое будет понимать эти протоколы
- У тебя должен быть Telnet/SSH клиент, с помощью которого ты сможешь инициировать соединение.
Обычно, в качестве такого клиента выступает эмулятор терминала. Это такая программа, которая даёт тебе возможность подключиться к устройству (по сети или напрямую) и выводит в отдельном окошке его консоль. Примером такой программы может служить PuTTY.