Полезные инструменты для работы с сетью в консоли Linux

linux

В этой статье я познакомлю вас с полезными и нужными инструментами для работы с сетью в консоли Linux.

РЕКОМЕНДУЕМ:
Полезные сетевые утилиты командной строки

Инструменты для работы с сетью в консоли Linux

SX Network Scanner

По завере­ниям раз­работ­чиков, SX Scanner — это чуть ли не на голову луч­шая аль­тер­натива Nmap. Вот спи­сок пред­лага­емых фич:

  • в 30 раз быс­трее Nmap;
  • ARP-ска­ниро­вание для поис­ка живых хос­тов в локаль­ных сетях;
  • ICMP-ска­ниро­вание для детек­та пра­вил фай­рво­ла;
  • клас­сичес­кое TCP SYN ска­ниро­вание (ска­ниро­вание с помощью полу­откры­тых соеди­нений) для поис­ка пор­тов;
  • ска­ниро­вание для обхо­да некото­рых фай­рво­лов с исполь­зовани­ем TCP FIN, NULL и Xmas пакетов. То же самое уме­ет и Nmap, как ты пом­нишь;
  • мож­но вруч­ную уста­новить какие угод­но фла­ги в пакетах ска­ниро­вания, а в отче­те получить фла­ги отве­тов. Доволь­но инте­рес­ная фича, которую я боль­ше ниг­де не встре­чал, но и ни разу в ней не нуж­дался, если чес­тно;
  • по­иск даже UDP-пор­тов. Надеж­ность поис­ка, само собой, оставля­ет желать луч­шего, но исполь­зование ICMP для уточ­нения резуль­тата — однознач­ный плюс;
  • ска­ниро­вание некото­рых при­ложе­ний: сюда вхо­дит Docker, Elasticsearch и Socks5. Для Docker ищет­ся откры­тый Docker API, через который чита­ется информа­ция о ноде; для Elasticsearch выг­ружа­ется информа­ция о клас­тере и его индексах. С Socks5 все сов­сем прос­то — sx сооб­щает толь­ко факт работы Socks5 без каких‑либо под­робнос­тей;
  • ре­зуль­таты выводит в JSON — все как у людей! Конеч­но, и для авто­мати­чес­кой обра­бот­ки это куда удоб­нее.

инструменты для работы с сетью в консоли Linux

Sx работа­ет из тер­минала (как, впро­чем, боль­шинс­тво рас­смот­ренных сегод­ня прог­рамм) и пол­ностью написан на Go, чем мож­но объ­яснить его быс­тро­дей­ствие.

Gping

Еще один кра­сивый инс­тру­мент в твою копил­ку «псев­догра­фичес­ких свис­топер­делок» — ping с визу­али­заци­ей пря­мо в окне тер­минала.

Утилиты для работы с сетью в консоли Linux. Gping

grepcidr

Ути­лита для тех, кому уже надо­ело писать регуляр­ки для поис­ка IP-адре­сов с помощью grep. Работа­ет оно нес­коль­ко шус­трее, чем grep, но, что­бы нуж­на была отдель­ная ути­лита, у тебя дол­жно быть дей­стви­тель­но мно­го работы с IP-адре­сами.

sish

Ког­да тебе нуж­но проб­росить какой‑то сер­вис в интерне­те, при этом не имея чес­тно­го «белого» IP, ты можешь вос­поль­зовать­ся сер­висами вро­де Ngrok или Serveo. Аль­тер­натив по боль­шому сче­ту нем­ного: голый SSH или кус­тарные self-hosted-решения.

К таким самодел­кам отно­сит­ся и про­ект sish — кра­сивая и удоб­ная аль­тер­натива Ngrok, сде­лан­ная поверх обыч­ного SSH.

Sish — это не прос­то пач­ка скрип­тов для запус­ка SSH-фор­вардин­га. Это пол­ноцен­ная реали­зация SSH-сер­вера, который толь­ко фор­вардинг и зна­ет, зато дела­ет это куда луч­ше, чем офи­циаль­но рас­простра­няемая вер­сия. В час­тнос­ти, sish уме­ет слу­шать и муль­тип­лекси­ровать HTTP- и HTTPS-тра­фик с под­дер­жкой WebSocket (в том чис­ле шиф­рован­ного), если при запус­ке фор­вардин­га ука­зать уда­лен­ный порт 80 или 443. В про­тив­ном слу­чае будет проб­рошен TCP-порт, если он не занят на сер­вере.

Офи­циаль­ная инс­трук­ция по уста­нов­ке сос­тоит все­го из двух команд:

Пос­ле это­го мож­но прос­то проб­расывать пор­ты как через обыч­ный SSH. Но это мож­но было бы делать и так, а ты луч­ше пос­мотри, что будет, если сде­лать некото­рые нас­трой­ки по инс­трук­ции в репози­тории:

Оп — и http://tech-geek_ru.your_domain.com будет проз­рачно перенап­равлен на твой локаль­ный порт 8080! Само собой, одновре­мен­но может жить сколь­ко угод­но сес­сий.

Termshark

Termshark — это кон­соль­ный фрон­тенд для tshark. Уме­ет, нап­ример, читать pcap или зах­ватывать тра­фик в реаль­ном вре­мени, пря­мо как «взрос­лый» Wireshark.

Termshark — это кон­соль­ный фрон­тенд для tshark

Есть под­дер­жка филь­тров, мож­но авто­мати­чес­ки собирать TCP-потоки из отдель­ных пакетов, прос­матри­вать содер­жимое пакетов в соот­ветс­твии с про­токо­лом.

На­писан Termshark на Go и собира­ется под любую плат­форму — готовые бил­ды уже дос­тупны для Linux, Windows, BSD, Android (поверх Termux) и даже macOS!

Скрипты для SSH

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

Для начала — уве­дом­ления в Telegram при SSH-авто­риза­ции. Мелочь, а при­ятно!

Нужные утилиты для работы с сетью Linux

Ус­танов­ка прос­та как два руб­ля: ска­чива­ем скрипт в /usr/local/bin/ssh2tg.sh (или дру­гую удоб­ную пап­ку), меня­ем нас­трой­ки в скрип­те (API-токен бота и ID чата, в который слать уве­дом­ления), веша­ем атри­бут исполне­ния и про­писы­ваем в конец /etc/pam.d/sshd сле­дующую стро­ку:

Вто­рым покажу тебе малень­кого аген­та SSH Attack Stats, который выведет опе­ратив­ную свод­ку атак на твой сер­вер.

Пос­ле уста­нов­ки мож­но малость кас­томизи­ровать вывод. К при­меру, сле­дующая коман­да зас­тавит показы­вать не боль­ше пяти записей из логов SSH:

Все пояс­нения есть в репози­тории с прог­раммой.

asroute

Ес­ли ты инже­нер какого‑нибудь телеком‑опе­рато­ра, то тебе регуляр­но при­ходит­ся ковырять­ся с трас­сиров­кой, пин­гами и боль­шими роуте­рами. Для тебя написа­ли asroute — ути­литу, которая поз­воля­ет к выводу traceroute добавить информа­цию об ASN тран­зитных мар­шру­тиза­торов. На при­мере это выг­лядит так:

Ус­танов­ка пока дос­тупна толь­ко для macOS, но зато дела­ется одной коман­дой.

Asroute написан на Rust, так что теоре­тичес­ки может быть без проб­лем ском­пилиро­ван под любую дру­гую плат­форму, но на момент написа­ния статьи у меня при себе есть толь­ко комп с Windows, у которо­го с ком­пиляци­ей нет­радици­онно­го кода есть извес­тные труд­ности.

Outrun

Гвоздь прог­раммы — скрипт outrun, который поз­воля­ет зап­росто вынес­ти вычис­ления за пре­делы сла­бого тон­кого кли­ента на мощ­ный уда­лен­ный сер­вер, при­чем наличие тре­буемой ути­литы на уда­лен­ном хос­те сов­сем не обя­затель­но. Единс­твен­ное, что нуж­но для работы, — уста­нов­ленный outrun на обо­их хос­тах (и на локаль­ном, и на уда­лен­ном), при­чем с наличи­ем прав root (исполь­зует­ся chroot).

Программы для работы с сетью Linux

Как самый оче­вид­ный при­мер (при­веден­ный даже авто­рами outrun) — мож­но запус­тить локаль­ный виде­окон­вертер, вро­де FFmpeg, с исполь­зовани­ем ресур­сов сер­вера. На гиф­ке замет­на весь­ма зна­читель­ная раз­ница во вре­мени выпол­нения.

Ус­тановить мож­но пря­мо из pip.

По­том мож­но запус­тить тре­буемую коман­ду на уда­лен­ной машине:

Фай­ловая сис­тема будет дос­тупна, буд­то локаль­ная, и резуль­таты работы коман­ды (если есть) тоже будут записа­ны в текущую пап­ку на локаль­ном ком­пе.

РЕКОМЕНДУЕМ:
Выбор оборудования для создания скоростной домашней сети

На этом все. Надеюсь приведенные в статье инструменты помогут вам в работе с сетью в консоли Linux.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий