Chisel - это удобный инструмент для создания HTTP-туннелей и проброса трафика через ограниченные сети. Он позволяет прокидывать TCP/UDP-соединения через HTTP/HTTPS, обходя firewall'ы и NAT. Полезен для удалённого администрирования, тестирования безопасности и обхода сетевых ограничений.
chisel server --port 8080 --reverse
chisel client http://server-ip:8080 R:3389:127.0.0.1:3389
Теперь можно подключаться к удалённому серверу по
localhost:3389.#network
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍16🔥4👌1
Автоматическое монтирование сетевых папок через GPO
Чтобы автоматически монтировать сетевые папки с файлового сервера в качестве сетевых дисков, можно использовать предпочтения групповых политик (GPP).
📎 Основные возможности:
📍 Подключение сетевых дисков в зависимости от групп безопасности AD.
📍 Автоматическое назначение дисков для отделов и отдельных пользователей.
📍 Возможность подключения личного диска для каждого сотрудника.
👥 Гибкая настройка по группам
Например, можно настроить так, чтобы у всех сотрудников одного отдела автоматически подключалась папка с общими документами. Для этого достаточно добавить пользователя в соответствующую группу AD, и при следующем входе в систему у него появится нужный сетевой диск.
🔒 Персональные диски
Через GPO можно подключать не только общие, но и персональные диски для каждого сотрудника, например, для хранения личных документов.
Такой подход автоматизирует управление сетевыми ресурсами и избавляет от необходимости вручную подключать диски каждому пользователю.
#windows #network
🧑💻 NetworkAdmin
Чтобы автоматически монтировать сетевые папки с файлового сервера в качестве сетевых дисков, можно использовать предпочтения групповых политик (GPP).
Например, можно настроить так, чтобы у всех сотрудников одного отдела автоматически подключалась папка с общими документами. Для этого достаточно добавить пользователя в соответствующую группу AD, и при следующем входе в систему у него появится нужный сетевой диск.
Через GPO можно подключать не только общие, но и персональные диски для каждого сотрудника, например, для хранения личных документов.
Такой подход автоматизирует управление сетевыми ресурсами и избавляет от необходимости вручную подключать диски каждому пользователю.
#windows #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁1
Suricata и Snort - это системы обнаружения и предотвращения вторжений (IDS/IPS), которые используют сигнатуры для детектирования атак. Однако стандартные правила могут не покрывать все возможные угрозы, поэтому часто требуется писать собственные сигнатуры.
Заголовка (определяет тип трафика)
Опций (описывают условия срабатывания)
Пример базовой сигнатуры:
alert tcp any any -> any 80 (msg:"Possible Web Exploit"; content:"cmd="; nocase; sid:1000001; rev:1;)
alert - срабатывает как оповещение
tcp any any -> any 80 - трафик по TCP с любого IP и порта на любой IP, но только на порт 80
content:"cmd="; nocase; - ищет в пакете строку "cmd=", регистр не учитывается
sid:1000001; - уникальный ID сигнатуры
alert tcp any any -> any 80 (msg:"SQL Injection Attempt"; content:"UNION SELECT"; nocase; sid:1000002; rev:1;)
Если в HTTP-трафике будет найдено UNION SELECT, правило сработает.
Пример сигнатуры для обнаружения SSH-брутфорса (5 неудачных попыток за 60 секунд):
alert tcp any any -> any 22 (msg:"SSH Brute Force Attempt"; flags:S; threshold:type threshold, track by_src, count 5, seconds 60; sid:1000003; rev:1;)
nano /etc/suricata/rules/custom.rules
Добавляем сигнатуры и обновляем конфигурацию:
suricata-update
Перезапускаем сервис:
systemctl restart suricata
nano /etc/snort/rules/local.rules
Добавляем сигнатуру и проверяем конфигурацию:
snort -T -c /etc/snort/snort.conf
Перезапускаем Snort:
systemctl restart snort
#network #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
DNS-туннели (iodine, dnscat2) – передача данных через DNS-запросы
ICMP-туннели (ptunnel, Hans) – трафик скрывается в ICMP Echo Request/Reply
HTTP/HTTPS-туннели (HTTPTunnel, tunna) – обфускация трафика через веб-запросы
TCP/UDP-туннели (sshuttle, UDP2Raw) – маскировка через стандартные порты
VPN over TLS (SoftEther, OpenVPN over TCP 443) – имитация обычного HTTPS-трафика
Резкое увеличение запросов к внешним DNS-серверам
Подозрительная активность ICMP (слишком много echo-request/response)
Долгие и нестандартные HTTP-запросы
Сессии с высоким временем жизни и постоянным низким трафиком
Инструменты: Suricata, Zeek, Snort
Ищем признаки туннелирования в пакетах и заголовках
DNS-туннели часто используют случайные поддомены (например, abcd1234.tunnel.com)
Решение: Pi-hole, SecurityTrails, Cisco Umbrella
Отключаем ICMP для ненужных хостов
Запрещаем внешний DNS кроме корпоративного
Разрешаем выход только через прокси
Запрещаем нестандартные порты (например, 53/UDP наружу)
Suricata/Snort – анализируем трафик на предмет туннелирования
pfSense + Snort – фильтрация и блокировка известных схем туннелирования
Zeek (Bro) – пассивный мониторинг сетевой активности
SIEM-системы (ELK, Splunk, Wazuh) – корреляция подозрительных событий
Блокируем OpenVPN, WireGuard, Shadowsocks, SoftEther
Настраиваем PAC-файл с жесткими правилами обхода
#network #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14👎4🤡2🔥1
Инструменты трассировки маршрута и диагностики сети - незаменимая часть работы администратора. Ниже собран краткий обзор утилит для Linux и Windows, которые помогают понять, где тормозит или обрывается соединение.
traceroute -I ya.ru
tracepath ya.ru
mtr ya.ru
tracert ya.ru
pathping ya.ru
tracetcp ya.ru:443
Полезна, когда ICMP или UDP заблокированы, а нужно проверить доступность TCP-сервиса. Показывает, где именно по пути блокируется соединение. Ставится отдельно (ищите на сайте разработчика). Аналога на Linux, увы, нет, но было бы очень кстати.
📍 Используйте mtr и tracetcp, если нужно точечно диагностировать проблемы.📍 tracepath удобен для анализа MTU.📍 На Windows pathping даст больше инфы, чем tracert.
#network #diagnostic
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3
Когда возникает подозрение на проблемы с сетью - падение скорости, потери пакетов или просто "тормозит" - важно уметь быстро локализовать причину. В Linux есть три утилиты, которые закрывают основные потребности в диагностике: ethtool, iperf3 и nload.
Скорость подключения и режим дуплекса:
ethtool eth0
Есть ли сбои на интерфейсе:
ethtool -S eth0 | grep -E 'err|drop'
Настроить автосогласование, отключить Wake-on-LAN, изменить параметры offload'инга.
Удобно для диагностики "битых" линков и проблем с драйверами.
На одном узле запускаем сервер:
iperf3 -s
На втором - клиент:
iperf3 -c 192.168.1.1
Показывает скорость, потери, джиттер. Можно использовать TCP и UDP, настраивать количество потоков и длительность теста.
Пример теста в 5 потоков:
iperf3 -c 192.168.1.1 -P 5
Хорошо подходит для поиска узких мест между хостами.
nload eth0
Выведет в реальном времени график входящего и исходящего трафика. Можно переключаться между интерфейсами, видеть пики, общую статистику и скорость.
Особенно удобен, когда нужно на лету оценить нагрузку и понять, кто грузит канал.
ethtool - диагностика интерфейса;
iperf3 - замер скорости и качества канала;
nload - визуальный мониторинг трафика
#linux #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4
Когда устройств в сети становится больше десятка, раздача IP вручную перестает быть удобной. Решение - поднять свой DHCP-сервер, который будет автоматически раздавать адреса, DNS, шлюз и другие параметры клиентам. Но важно не просто «раздавать все подряд», а уметь закрепить конкретные IP-адреса за нужными устройствами (например, серверами, принтерами, VoIP). Это делается через резервации (DHCP reservations).
sudo apt install isc-dhcp-server
/etc/dhcp/dhcpd.conf:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
option domain-name "home.lan";
}
# Резервация IP по MAC-адресу
host printer01 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
Теперь каждый раз принтер с указанным MAC-адресом будет получать именно 192.168.1.10.
Откройте оснастку DHCP → Перейдите к своему пулу IP-адресов → ПКМ → New Reservation
Укажите имя, IP, MAC-адрес и тип клиента
Упрощают администрирование (IP-адреса не меняются)
Удобны для мониторинга и firewall-правил
Избавляют от конфликтов IP
Полезны при интеграции с DNS (обратная зона)
#network #DHCP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎3
Когда одного сетевого интерфейса мало - приходит время объединять их в «команду». Это называется агрегация каналов, и один из самых популярных способов реализовать ее - протокол LACP (Link Aggregation Control Protocol).
LACP - часть стандарта IEEE 802.3ad. Он позволяет объединить несколько физических интерфейсов в один логический (LAG - Link Aggregation Group), который операционная система и приложения видят как один.
📍 Повышение пропускной способности;📍 Повышение отказоустойчивости (если один порт отваливается - остальные продолжают работать);📍 Балансировка нагрузки между портами.
📍 LACP автоматически обнаруживает, какие интерфейсы можно объединить📍 Обе стороны (свитч и хост) договариваются, какие порты войдут в LAG📍 Если кабель выпал или порт упал - он просто исключается из группы, ничего не рушится
sudo apt install ifenslave
/etc/network/interfaces или аналогичном конфиге:
auto bond0
iface bond0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
bond-slaves ens33 ens34
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-xmit-hash-policy layer3+4
📍 LACP работает только при поддержке с обеих сторон (сервер + свитч)📍 LAG не удваивает скорость для одного TCP-соединения, но позволяет нескольким соединениям распределяться по разным каналам📍 Лучше всего работает с хешированием по Layer3+4 (IP + порт)
#network #LACP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Когда сервер начинает вести себя подозрительно - например, появляется неизвестный открытый порт, нестандартный трафик или система тормозит - важно быстро выяснить: что за процесс, что он слушает и какие соединения установлены. Для этого можно использовать связку: ss, lsof и каталог /proc.
ss -tulnp
Покажет все TCP/UDP-порты, которые слушают процессы:
-tuln - TCP/UDP, слушающие, без разрешения имен-p - имя процесса и PIDПример:
LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
lsof -i :80
Выведет все процессы, использующие порт 80.
lsof -nP -iTCP -sTCP:LISTEN
Список всех TCP-сервисов, которые слушают порты.
/proc - внутренняя кухня процесса. Для изучения процесса изнутри можно обратиться к /proc/<PID>/fd - тут видны все открытые дескрипторы:
ls -l /proc/1234/fd
Покажет, какие файлы, сокеты и каналы открыт у процесса с PID 1234.
Для конкретного сокета:
ls -l /proc/1234/fd | grep socket
Также можно посмотреть cmdline:
cat /proc/1234/cmdline
ss -tulnp | grep :8080
Получаем его PID → проверяем, какие соединения установлены:
lsof -p 1234 -i
Лезем в /proc/1234/ за подробностями:
/fd - дескрипторы/status - ресурсы и права/cmdline - команда запуска#linux #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
Когда нужно объединить несколько сетевых интерфейсов в один для повышения отказоустойчивости или производительности, в linux есть два основных механизма: bonding и teaming. Оба решают схожие задачи, но работают по-разному.
Основные режимы работы:
Проверенный и стабильный инструмент.
Поддерживается почти во всех дистрибутивах.
Большой выбор режимов.
Ограниченная масштабируемость.
Более тяжелое ядро-зависимое решение (модуль ядра).
Настройка чуть менее гибкая.
Особенности:
Гибкая настройка (json + плагины).
Легче масштабировать и управлять.
Мониторинг и логика вынесены в userspace (а не только ядро).
Более сложный для "быстрых правок".
В некоторых дистрибутивах bonding до сих пор по умолчанию используется чаще.
Если у вас традиционная инфраструктура (например, debian, старые centOS, небольшие серверы) - проще использовать bonding: он доступен сразу и без лишних зависимостей.
Если вы работаете с современными centOS или хотите больше гибкости (например, интеграцию с NetworkManager, плагины, мониторинг линков) - выбирайте teaming.
#network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
ethtool - это не только утилита для просмотра информации о сетевой карте. С ее помощью можно управлять сетевыми интерфейсами в linux: от настройки скорости линка до оптимизации производительности под конкретные задачи.
ethtool eth0
Покажет: скорость, дуплекс, поддержку offload-функций, драйвер, версию прошивки и т.д.
ethtool -s eth0 speed 100 duplex full autoneg off
Можно использовать для тестов или если автосогласование работает некорректно.
Проверить поддержку:
ethtool -k eth0
Отключить контрольную сумму (будет полезно для отладки):
ethtool -K eth0 tx off rx off
Также можно управлять GRO, LRO, TSO и другими функциями.
Проверка кабеля и физики:
ethtool --test eth0
ethtool -t eth0 offline
А команда:
ethtool eth0 | grep detected
покажет, есть ли линк и его скорость.
ethtool -S eth0
Выводит счётчики ошибок, дропов, коллизий. Это помогает отлавливать проблемы на низком уровне.
ethtool -g eth0
Изменить глубину очереди при интенсивной нагрузке:
ethtool -G eth0 rx 4096 tx 4096
ethtool -s eth0 wol d
#network #ethtool
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Часто говорят, что при DDoS провайдер отправляет трафик в blackhole. Это не метафора - blackhole (или nullroute) - реальная запись в таблице маршрутизации, которая заставляет ядро молчаливо отбрасывать пакеты к указанному адресу/сети.
ip route add blackhole 10.20.30.40
ip route show | grep blackhole
Теперь все пакеты к 10.20.30.40 будут просто выброшены, без попытки доставить и без ICMP-ответа.
Для сети:
ip route add blackhole 203.0.113.0/24
Для IPv6:
ip -6 route add blackhole 2001:db8::/32
ip route del blackhole 203.0.113.0/24
blackhole - молча дропает пакеты (никаких ICMP).
prohibit - отсылает ICMP administratively prohibited (полезно, если нужно, чтобы источник получил уведомление).
unreachable - возвращает host unreachable.
Команды выглядят похоже:
ip route add prohibit 10.0.0.0/8
ip route add unreachable 10.0.0.0/8
Выбор зависит от сценария: для имитации «исчезновения» хоста - blackhole, чтобы сигнализировать отправителю - prohibit/unreachable.
Провайдеры - при крупном DDoS обычно ставят null-route на адрес жертвы на своей инфраструктуре. Это позволяет дропать трафик до границ сети провайдера, защищая инфраструктуру дальше по пути.
#network #blackhole
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Nmap - это не только сканер портов, но и инструмент для быстрой диагностики сети. Небольшая подборка команд, которые часто выручали меня в работе.
nmap -Pn -sS -T4 10.20.1.5
SYN-скан, не пингуем сначала, быстрый тайминг.
nmap -sV --top-ports 100 10.20.1.0/24
Узнаем версии сервисов по 100 самым распространенным портам в подсети.
nmap -p- -T4 10.20.1.5
Сканируем все 65535 TCP-портов.
sudo nmap -sU --top-ports 50 10.20.1.5
UDP требует прав root и больше времени - выбирайте топ-порты.
sudo nmap -A 10.20.1.5
Включает обнаружение ОС, версий, скрипты и traceroute.
nmap --script ssl-enum-ciphers,http-title -p 443,80 10.20.1.5
Проверяем SSL-шифры и заголовок сайта.
nmap -sV -oA scans/site_scan 10.20.1.0/24
Создаст
site_scan.nmap, .gnmap и .xml - будет удобно для отчетов.
nmap -sn 10.20.1.0/24
Быстрый ping-scan, покажет кто в сети сейчас.
#nmap #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3
Иногда нужно выяснить, было ли соединение на SSH-порт сервера (обычно 22) с конкретного адреса. Казалось бы, задача простая, но есть несколько подходов - как для активных соединений, так и для анализа постфактум.
Современный инструмент - ss:
ss -ntu | grep ':22'
Аналог - netstat:
netstat -ntu | grep ':22'
Еще один полезный вариант - lsof:
lsof -ni TCP:22
SSH по умолчанию пишет в системный журнал (
/var/log/auth.log или /var/log/secure), но для других сервисов можно включить логирование через firewall.Пример для iptables:
iptables -N ssh_in
iptables -A INPUT -p tcp --dport 22 -j ssh_in
iptables -A ssh_in -j LOG --log-level info --log-prefix "--IN--SSH-- "
iptables -A ssh_in -j ACCEPT
Теперь все подключения на порт 22 будут попадать в syslog.
Хотите отдельный лог - добавьте правило в rsyslog.
На практике часто используют отдельные цепочки (INPUT, OUTPUT, FORWARD), куда добавляют правила для логирования нужных адресов и портов.
cat /proc/net/nf_conntrack | grep 'dport=22'
По сути, ss и netstat читают данные именно отсюда.
#network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
iperf3 - показывает реальную пропускную способность между двумя хостами, минуя влияние дисков, приложений и прочего. Ранее уже был пост - ссылка. Здесь продолжение, с реальным примером замера и полезными флагами.
iperf3 работает по схеме клиент–сервер.
Один узел запускается в режиме сервера, второй - в режиме клиента.
Сервер принимает входящий трафик, а клиент его генерирует.
iperf3 -s
не забываем, что по умолчанию слушает порт 5201, он должен быть открыт.
iperf3 -c 192.168.1.10
Результат:
[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec receiver
То есть реальная пропускная способность между хостами - ~935 Мбит/с.
-R - измерение скорости в обратном направлении (reverse).
iperf3 -c 192.168.1.10 -R
iperf3 -c 192.168.1.10 -u -b 500M
-f - единицы измерения (m для Mbits, M для MBytes):
iperf3 -c 192.168.1.10 -f m
iperf3 -s & ssh user@192.168.1.10 'iperf3 -c $(hostname -I | awk "{print \$1}") -P 4'
Скрипт запускает сервер локально и клиент удаленно, автоматически подключая IP.
#network #iperf3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤2
IPv6 давно перестал быть экзотикой в мире, но в локальной инфраструктуре (особенно в корпоративных и домашних сетях) его почти никто не использует. Причина простая - в локалках адреса не заканчиваются, да и пользы от IPv6 нет, если нет связи с интернетом, где он действительно нужен.
А вот проблем добавить он может:
требует отдельной настройки безопасности,
нужно следить за совместимостью сервисов,
а если забыть про firewall для IPv6, то появится открытая дыра, о которой даже не узнаете.
Если протокол вам не нужен, то его стоит отключить.
Сделать это можно тремя способами, в зависимости от ситуации.
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Примените изменения:
sysctl -p
Откройте
/etc/default/grub и добавьте в строку:
GRUB_CMDLINE_LINUX="... ipv6.disable=1"
(оставшиеся параметры не удаляйте, просто добавьте через пробел)
Обновите конфигурацию загрузчика:
update-grub # Debian/Ubuntu
dpkg-reconfigure grub-pc
grub-mkconfig -o /boot/grub/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg # RHEL/CentOS
После этого - перезагрузка и проверка:
ip a
ss -tulnp
Если IPv6 отключен - адресов вида ::1 или fe80:: вы больше не увидите.
Добавьте в
/etc/sysctl.conf:
net.ipv6.conf.eth0.disable_ipv6 = 1
или примените временно:
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
На windows лучше IPv6 не отключать. По словам microsoft, это может вызвать проблемы с внутренними сервисами и сетевыми компонентами системы.
#IPv6 #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3
tcpdump - легкий и быстрый способ посмотреть сетевой трафик прямо в терминале, когда GUI-инструменты недоступны.
Быстрые параметры:
-i eth0 - интерфейс-nn - без DNS/порт-резолва-s 0 - захватывать пакет полностью-w file.pcap - сохранить трафик-r file.pcap - прочитать файлФильтры:
tcpdump -i eth0 -nn host 10.0.0.5
tcpdump -i eth0 -nn tcp port 443
tcpdump -i eth0 -nn 'tcp and dst port 22'
HTTP-запросы в ASCII:
tcpdump -i any -nn -s 0 -A 'tcp port 80'
DNS-трафик:
tcpdump -i any -nn -s 0 -A 'udp port 53'
Сохранение дампа:
tcpdump -i eth0 -nn -s 0 -w capture.pcap
Новые TCP-подключения (SYN):
tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0'
MAC-адреса:
tcpdump -i eth0 -nn -e
Посчитать активность:
timeout 10 tcpdump -i eth0 -nn icmp | wc -l
Просмотреть SNI в HTTPS (если не шифруется):
tcpdump -i any -nn -s 0 -A 'tcp port 443' | grep -i 'server name'
#tcpdump #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1
Хочу поделиться полезным инструментом, который часто упоминают в контексте пентестов, но который одинаково удобен и администраторам: Chisel. Это один бинарник (на Go) и для сервера, и для клиента доступный для linux, windows, macOS. Работает поверх HTTP, поэтому его очень просто поднять там, где открыт веб-порт.
./chisel server --port 80 --socks5
На клиенте (локальная машина, откуда хотите выходить в интернет через сервер):
./chisel client http://server.example.com:80 socks
После этого в браузере можно указать SOCKS5 proxy 127.0.0.1:1080, трафик пойдет через сервер.
На публичном сервере:
./chisel server --port 80 --reverse
На внутреннем хосте (тот, к которому хотим подключиться):
./chisel client http://server.example.com:80 R:2222:localhost:22
Теперь на публичном сервере можно подключиться к внутреннему хосту:
ssh -p 2222 root@127.0.0.1
--reverse. На внутреннем клиенте даем правило:
./chisel client http://server.example.com:80 33306:127.0.0.1:3306
После этого на клиенте MySQL будет доступен локально на порту 33306.
Аутентификация: есть опция
--auth user:pass и на сервере, и на клиенте, используйте для защиты туннеля.Маскировка:
--backend позволяет прятать chisel-сервер за обычным веб-сервером (перенаправлять чужие HTTP-запросы), что облегчает развертывание в средах с ограничениями.Один бинарник, удобно распространять и для разных ОС.
#network #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3