Блог пользователя df-nix

Ограничения прав пользователя ssh туннеля

SSH туннели являются очень удобным средством для работы.
При использовании этой функциональности возникает естественное желание ограничить права пользователя, который может подключиться к серверу по ssh и создать туннель. Подразумевается использование файрвола для разрешения подключаться по ssh только с известных ip.
Для использования ssh туннелей создадим в системе пользователя tunuser без shell-a, без домашнего каталога.

pw useradd tunuser -s /usr/sbin/nologin -d /var/empty
# И зададим пользователю пароль
passwd tunuser

Заметки о ssh туннелях

SSH туннели.

Синтаксис, в общем виде:

ssh -L [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

ssh -R [bind address(начало тоннеля):]bindport:host(конец тоннеля):hostport sshserver.com -l sshuser

[.] необязательный параметр

где под началом и концом туннеля имеется ввиду направление работы туннеля, т.е. откуда и куда форвардится tcp соединение через ssh

bindport- порт на котором слушает ssh клиент или ssh сервер

hostport - порт к которому подключается ssh клиент или ssh сервер

Выборочное обновление портов в FreeBSD

Возникла необходимость обновить только php56 одной командой. В принципе, такой вариант возможен не только для php56.
Выполняем:

 pkg info | grep php | awk '{print $1}' | sed 's/-5.6.38//' | xargs pkg upgrade -y

Здесь
pkg info | grep php - выводит совпадения только для установленных пакетов, содержащих php56, что-то вроде
php56-5.6.38                   PHP Scripting Language

awk '{print $1}' выводит только название пакета без его описания
sed 's/-5.6.38//' - обрезает `-5.6.38` в конце, а

dmidecode

dmidecode - утилита для экспорта информации DMI в удобочитаемый формат.
DMI - Desktop Management Interface. Как пишет мануал, DMI иначе называют SMBIOS - System Management BIOS.
С помощью этой утилиты можно получить информацию о компьютерном железе, не вскрывая его, что бывает очень удобно.
Вывод достаточно большой, но его можно сократить, если использовать ключ --type, которым сужается тип выводимой информации:

Type   Information
       --------------------------------------------
          0   BIOS
          1   System
          2   Baseboard
          3   Chassis
          4   Processor

Примеры использования bash для решения различных задач в скриптах. Отличия файлов.

Дано:
Есть два файла A.txt и B.txt, причем известно что они отличаются друг от друга несколькими первыми или последними строками и строки не совпадают. Требуется вывести строки файла A.txt, отсутствующие в файле B.txt

$ cat A.txt
11
12
13
14
15
16
17
18
$ cat B.txt
13
14
15
16
17
18
19
20

Вариант решения:

grep -Fvf B.txt A.txt
11
12

Вывод совпадающих строк:
grep -Ff B.txt A.txt
13
14
15
16
17
18

VLAN для Windows

Иногда приходится настраивать поддержку vlan под Windows.
Делается это установкой драйвера для сетевого адартера.
Распространенные сетевые адаптеры это Intel и Realtek.
Для Realtek cкачиваем Windows Diagnostic Program
https://realtek-download.com/wp-content/uploads/2017/10/0004-Diagnostic_...
которая запускается отдельно и в настройках которой можно выбрать настройку vlan.
Для Intel ищем драйвер с поддержкой 802.1Q
Здесь настройка осуществляется через Диспетчер устройств в свойствах сетевого адаптера.

Пример конфигурации клиента openvpn

Пример конфигурационного файла openvpn клиента можно взять в примерах после установки из /usr[/local]/share/doc/openvpn/examples или с сайта https://community.openvpn.net/openvpn/wiki/HOWTO

Один из моих конфигурационных файлов клиентов:

$ cat client.conf
client

dev tun
proto udp
remote 123.123.123.123 1194

resolv-retry infinite

nobind
persist-key
persist-tun
#
log-append  /var/log/openvpn/openvpn.log
#
ca /etc/openvpn/client/ca.crt
cert /etc/openvpn/client/client.crt
key /etc/openvpn/client/client.key

remote-cert-tls server
tls-auth client/ta.key 1

fwknop

fwknop - одна из реализаций Port knoсking.
Как сказано в документации на http://www.cipherdyne.org/fwknop/docs/fwknop-tutorial.html
fwknop использует Single Packet Authorization.
Механизм работы такой - в системе для подключения к какому-либо сервису извне ( чаще всего - ssh ) настраивается файрвол для разрешения прохождения только установленых соединений.
Например, для FreeBSD, примерно так:
ipfw add 5000 allow ip from any to any via em0 established

Определение конфликта ip адресов

Для определения конфликтующих ip адресов можно использовать утилиты:
arping -

arping -I enp1s0 -b 192.168.98.234
ARPING 192.168.98.234 from 192.168.98.233 enp1s0
Unicast reply from 192.168.98.234 [F0:DE:F1:9C:A7:77]  1.361ms
Unicast reply from 192.168.98.234 [08:00:27:44:FB:11]  1.391ms
^CSent 1 probes (1 broadcast(s))
Received 2 response(s)

netdiscover -
sudo netdiscover -i enp1s0 -r 192.168.98.0/24 -P > scan.txt
cat scan.txt
 _____________________________________________________________________________

Mitmproxy

Mitmproxy, как сказано на сайте mitmproxy.prg

Features
    Intercept HTTP & HTTPS requests and responses and modify them on the fly
    Save complete HTTP conversations for later replay and analysis
    Replay the client-side of an HTTP conversations
    Replay HTTP responses of a previously recorded server
    Reverse proxy mode to forward traffic to a specified server
    Transparent proxy mode on OSX and Linux
    Make scripted changes to HTTP traffic using Python
    SSL/TLS certificates for interception are generated on the fly
    And much, much more…

Ленты новостей