Media is too big
VIEW IN TELEGRAM
Sniffer - современный альтернативный сниффер сетевого трафика.
Sniffer предназначен для поиска и устранения неисправностей в сети. Он может быть запущен в любое время для анализа процессов или соединений, вызывающих увеличение сетевого трафика, без загрузки каких-либо модулей ядра. Кстати, пользовательский интерфейс программы отзывчив, что позволяет автоматически подстраиваться под терминалы любого размера.
Sniffer использует библиотеку
Debian/Ubuntu
CentOS/Fedora
Windows
После этого установите sniffer командой go get
MacOS
$ brew install sniffer
Использование
❯
https://github.com/chenjiandongx/sniffer
👉 @i_linux
Sniffer предназначен для поиска и устранения неисправностей в сети. Он может быть запущен в любое время для анализа процессов или соединений, вызывающих увеличение сетевого трафика, без загрузки каких-либо модулей ядра. Кстати, пользовательский интерфейс программы отзывчив, что позволяет автоматически подстраиваться под терминалы любого размера.
Sniffer использует библиотеку
libpcap для перехвата пакетов пользовательского уровня, поэтому сначала необходимо установить ее.Debian/Ubuntu
$ sudo apt-get install libpcap-devCentOS/Fedora
$ sudo yum install libpcap libpcap-develWindows
https://npcap.com/После этого установите sniffer командой go get
$ go get -u github.com/chenjiandongx/snifferMacOS
$ brew install sniffer
Использование
❯
sniffer -h
# A modern alternative network traffic sniffer.
Usage:
sniffer [flags]
Examples:
# bytes mode in MB unit
$ sniffer -u MB
# only capture the TCP protocol packets with lo,eth prefixed devices
$ sniffer -b tcp -d lo -d eth
Flags:
-a, --all-devices listen all devices if present
-b, --bpf string specify string pcap filter with the BPF syntax (default "tcp or udp")
-d, --devices-prefix stringArray prefixed devices to monitor (default [en,lo,eth,em,bond])
-h, --help help for sniffer
-i, --interval int interval for refresh rate in seconds (default 1)
-l, --list list all devices name
-m, --mode int view mode of sniffer (0: bytes 1: packets 2: plot)
-n, --no-dns-resolve disable the DNS resolution
-u, --unit string unit of traffic stats, optional: B, Kb, KB, Mb, MB, Gb, GB (default "KB")
-v, --version version for sniffer
https://github.com/chenjiandongx/sniffer
👉 @i_linux
👍6
Как отлаживать bash-noscript-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-noscripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
👉 @i_linux
Мне всегда хотелось иметь возможность отлаживать bash-noscripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
#!/bin/bash, чтоб скрипт можно было отлаживать по шагам#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем
Ctrl+C и выходим из отладки.Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо
Ctrl+Cпеременная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash noscript online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👉 @i_linux
👍8
Скриптик переустановки пароля пользователя MikroTik
Скрипт интересен строкой преобразования кода символа из переменной
👉 @i_linux
# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020
{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}
Скрипт интересен строкой преобразования кода символа из переменной
$key, сграбленного с клавиатуры терминала, в сам символ.:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]👉 @i_linux
👍6
Как пробросить порт в Linux на другой сервер
Необходимо пробросить с 8821 порта сервера 10.10.10.10 на 21 порт сервера 12.12.12.12:
👉 @i_linux
Необходимо пробросить с 8821 порта сервера 10.10.10.10 на 21 порт сервера 12.12.12.12:
iptables -A FORWARD --dst 10.10.10.10 -p tcp --dport 8821 -j ACCEPT
iptables -A FORWARD --src 10.10.10.10 -p tcp --sport 8821 -j ACCEPT
iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 8821 -j DNAT --to-destination 12.12.12.12:21
iptables -t nat -A POSTROUTING -d 12.12.12.12 -p tcp --dport 21 -j SNAT --to-source 10.10.10.10:8821👉 @i_linux
👍12