Как настроить NAT: тонкие настройки трансляции адресов на Cisco IOS
Рассмотрим, как настроить NAT на маршрутизаторе Cisco, а также сделать тонкие настройки сервиса трансляции адресов (PAT, NAT Virtual Interface, NAT timeout, max-entries). Исследуемая топология состоит из маршрутизатора Cisco 2911 с ПО Cisco IOS 15.0. Допускается использование других маршрутизаторов и версий Cisco IOS.
https://telegra.ph/Kak-nastroit-NAT-tonkie-nastrojki-translyacii-adresov-na-Cisco-IOS-06-29
Рассмотрим, как настроить NAT на маршрутизаторе Cisco, а также сделать тонкие настройки сервиса трансляции адресов (PAT, NAT Virtual Interface, NAT timeout, max-entries). Исследуемая топология состоит из маршрутизатора Cisco 2911 с ПО Cisco IOS 15.0. Допускается использование других маршрутизаторов и версий Cisco IOS.
https://telegra.ph/Kak-nastroit-NAT-tonkie-nastrojki-translyacii-adresov-na-Cisco-IOS-06-29
👍4
Как перенести профили windows server 2012, 2019
1. Создайте новый каталог на другом диске: Назовем его, например, "D:\UserProfiles".
2. Используйте утилиту robocopy: Windows поставляется с утилитой robocopy, которая позволяет копировать файлы и каталоги с сохранением разрешений и атрибутов. Она также может использоваться для перемещения профилей пользователей.В командной строке или PowerShell выполните следующую команду, чтобы скопировать профиль пользователя с диска C на другой диск (замените Username на имя пользователя):
robocopy C:\Users\Username D:\UserProfiles\Username /e /copyall /mir /xj
Так же, нужно заменить букву диска во второй половине на ту, которая у Вас.
/e - Копирует все подкаталоги, включая пустые.
/copyall - Копирует все атрибуты файлов, включая разрешения и атрибуты.
/mir - Зеркально копирует каталог, удаляя файлы на целевом диске, если они отсутствуют на исходном.
/xj - Исключает символические ссылки, чтобы избежать бесконечных циклов.
3. Перейдите к разделу реестра:
Перейдите к следующему разделу реестра:
Copy codeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Измените путь к профилю пользователя: В этом разделе найдите запись с именем пользователя, чей профиль вы хотите переместить. Каждая запись будет иметь имя вида S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1001 (где X - это цифры).
Дважды щелкните запись и измените значение ProfileImagePath на новый путь к каталогу на другом диске. Например, измените C:\Users\Username на D:\UserProfiles\Username.
4. Проверьте доступ к профилю: Убедитесь, что пользователь может успешно войти в свой профиль с нового местоположения.
1. Создайте новый каталог на другом диске: Назовем его, например, "D:\UserProfiles".
2. Используйте утилиту robocopy: Windows поставляется с утилитой robocopy, которая позволяет копировать файлы и каталоги с сохранением разрешений и атрибутов. Она также может использоваться для перемещения профилей пользователей.В командной строке или PowerShell выполните следующую команду, чтобы скопировать профиль пользователя с диска C на другой диск (замените Username на имя пользователя):
robocopy C:\Users\Username D:\UserProfiles\Username /e /copyall /mir /xj
Так же, нужно заменить букву диска во второй половине на ту, которая у Вас.
/e - Копирует все подкаталоги, включая пустые.
/copyall - Копирует все атрибуты файлов, включая разрешения и атрибуты.
/mir - Зеркально копирует каталог, удаляя файлы на целевом диске, если они отсутствуют на исходном.
/xj - Исключает символические ссылки, чтобы избежать бесконечных циклов.
3. Перейдите к разделу реестра:
Перейдите к следующему разделу реестра:
Copy codeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Измените путь к профилю пользователя: В этом разделе найдите запись с именем пользователя, чей профиль вы хотите переместить. Каждая запись будет иметь имя вида S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-1001 (где X - это цифры).
Дважды щелкните запись и измените значение ProfileImagePath на новый путь к каталогу на другом диске. Например, измените C:\Users\Username на D:\UserProfiles\Username.
4. Проверьте доступ к профилю: Убедитесь, что пользователь может успешно войти в свой профиль с нового местоположения.
👍3
Libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
2. Проверяем нужный нам файл:
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
Отобразить полный путь до файла на сервере можно с помощью опции
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
https://github.com/haampie/libtree
Утилита, позволяющая получить список разделяемых библиотек (shared libraries) в виде дерева, либо в виде путей до этих библиотек в системе.
1. Скачиваем libtree:
$ wget https://github.com/haampie/libtree/releases/download/v3.0.1/libtree_x86_64 -O libtree
$ chmod +x libtree
2. Проверяем нужный нам файл:
$ ./libtree /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ └── libz.so.1 [default path]
├── libtinfo.so.6 [default path]
└── libncursesw.so.6 [default path]
└── libtinfo.so.6 [default path]
При необходимости углубиться и получить зависимости для отображаемых библиотек просто добавляем
-v
, -vv
или -vvv
соответственно.
$ ./libtree -vvv /bin/nano
/bin/nano
├── libmagic.so.1 [default path]
│ ├── libz.so.1 [default path]
│ │ └── libc.so.6 [default path]
│ │ └── ld-linux-x86-64.so.2 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libncursesw.so.6 [default path]
├── libtinfo.so.6 [default path]
│ └── libc.so.6 [default path]
│ └── ld-linux-x86-64.so.2 [default path]
└── libc.so.6 [default path]
└── ld-linux-x86-64.so.2 [default path]
Отобразить полный путь до файла на сервере можно с помощью опции
-p
:
$ ./libtree -p -vvv /bin/ping
/bin/ping
├── /lib64/libcap.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
├── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libidn2.so.0 [default path]
├── /lib64/libunistring.so.2 [default path]
│ └── /lib64/libc.so.6 [default path]
│ └── /lib64/ld-linux-x86-64.so.2 [default path]
└── /lib64/libc.so.6 [default path]
└── /lib64/ld-linux-x86-64.so.2 [default path]
По умолчанию, информация о некоторых библиотеках не выводится в libtree. Подробнее об этом в выводе команды:
$ ./libtree --help
https://github.com/haampie/libtree
👍2
Полезные команды Linux. Файловая система SWAP ( файл подкачки )
Создание swap-пространство на разделе hda3
Включить swap-пространство, расположенное на разделе hda3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
# mkswap /dev/hda3
Создание swap-пространство на разделе hda3
# swapon /dev/hda3
Включить swap-пространство, расположенное на разделе hda3
# swapon /dev/hda2 /dev/hdb3
Активировать swap-пространства, расположенные на разделах hda2 и hdb3
❤3
Brain board
Визуальный редактор для terraform.
Создавайте свою облачную инфраструктуру без особых усилий с помощью вебморды
https://www.brainboard.co/
Визуальный редактор для terraform.
Создавайте свою облачную инфраструктуру без особых усилий с помощью вебморды
https://www.brainboard.co/
👍2
Kargo
Это платформа следующего поколения для организации непрерывной доставки и оркестрации жизненного цикла приложений для Kubernetes. Она основывается на принципах GitOps и интегрируется с существующими технологиями, такими как Argo CD, чтобы упростить и автоматизировать поэтапный выпуск изменений на различных этапах жизненного цикла приложения.
https://github.com/akuity/kargo
Это платформа следующего поколения для организации непрерывной доставки и оркестрации жизненного цикла приложений для Kubernetes. Она основывается на принципах GitOps и интегрируется с существующими технологиями, такими как Argo CD, чтобы упростить и автоматизировать поэтапный выпуск изменений на различных этапах жизненного цикла приложения.
https://github.com/akuity/kargo
👍2
Управление файлами и папками в Windows
COPY
- Копирование файлов в другое местоDIR
- Отображение файлов и папок в текущем каталогеDEL
или ERASE
- Удаление файловEDIT
- Запуск редактора файловCD
- Изменить каталогEXPAND
- Распаковать сжатые файлыFC
- Сравнивает файлы и показывает различия между нимиFIND
- Найти текстовую строку в файлеMD
или MAKEDIR
- Создать папкуMOVE
- Переместить файлы из одной папки в другуюPRINT
– отобразить содержимое текстового файлаRD
или RMDIR
- удалить папкуREN
или RENAME
- переименовать файл или папкуREPLACE
- Замена файлов в одном каталоге на файлы с тем же именем в другом каталогеROBOCOPY
- Использует программу робокопи для копирования файлов и каталоговTREE
- Показывает структуру каталогов диска или папкиTYPE
- Отображает содержимое текстовых файловOPENFILES
- Управление открытыми локальными или сетевыми файламиXCOPY
- Копирование файлов и деревьев каталогов👍2
Набор инструментов DevOps🧰
Операционная система → Linux (рекомендуется), Windows
Программирование → Go, Python, Groovy, Bash
Оркестрация контейнеров → Kubernetes, Docker Swarm
Контейнеры → Docker, Podman, Containerd
Система управления версиями → Git, Subversion
Облака → AWS, GCP, Azure, CivoCloud
CI/CD → Jenkins, CircleCI, Bamboo
Совместная работа и контроль версий → GitHub, BitBucket, GitLab
IaC (Инфраструктура как код) и IP (Развертывание инфраструктуры) → Ansible, Puppet, Chef, Terraform, Pulumi, Stack, Crossplane
Непрерывная обратная связь → GetFeedback, Jira, Slack, Pendo
Наблюдаемость (мониторинг, логирование и анализ поведения системы) → Nagios, Grafana, Prometheus, New Relic, ELK Stack, Datadog
Планирование → Jira Software, Confluence, Slack
Автоматизированное тестирование → xray, snyk, JUnit, Selenium, Appium
Операционная система → Linux (рекомендуется), Windows
Программирование → Go, Python, Groovy, Bash
Оркестрация контейнеров → Kubernetes, Docker Swarm
Контейнеры → Docker, Podman, Containerd
Система управления версиями → Git, Subversion
Облака → AWS, GCP, Azure, CivoCloud
CI/CD → Jenkins, CircleCI, Bamboo
Совместная работа и контроль версий → GitHub, BitBucket, GitLab
IaC (Инфраструктура как код) и IP (Развертывание инфраструктуры) → Ansible, Puppet, Chef, Terraform, Pulumi, Stack, Crossplane
Непрерывная обратная связь → GetFeedback, Jira, Slack, Pendo
Наблюдаемость (мониторинг, логирование и анализ поведения системы) → Nagios, Grafana, Prometheus, New Relic, ELK Stack, Datadog
Планирование → Jira Software, Confluence, Slack
Автоматизированное тестирование → xray, snyk, JUnit, Selenium, Appium
👍3
Как полностью отключить Защитник (Defender) Windows 11
С Защитником опробовано много способов борьбы. Защитник с каждой версией становится все более устойчивым к попыткам себя отключить.
В комментариях тут на Хабре мне писали варианты скриптов, которые у кого-то срабатывают. Но проверив на свежих виртуалках массу решений, большинство из скриптов блокируются Защитником сразу после сохранения файла, остальные не выполняют своей задачи.
По итогам тестирования мной также признаны неработоспособными способы отключения Защитника через ProductPolicy и редактирование MUM файла, описывающего компоненты входящие в издание ОС, так как так или иначе, при перезагрузке или обновлении Защитник возвращается в строй. Встроенные групповые политики (и локальные политики через gpedit.msc) позволяли его отключить в Windows 10, но в Windows 11 встроено значительно больше функций защиты, их нужно отключать более грубо вручную.
https://habr.com/ru/articles/829110/
С Защитником опробовано много способов борьбы. Защитник с каждой версией становится все более устойчивым к попыткам себя отключить.
В комментариях тут на Хабре мне писали варианты скриптов, которые у кого-то срабатывают. Но проверив на свежих виртуалках массу решений, большинство из скриптов блокируются Защитником сразу после сохранения файла, остальные не выполняют своей задачи.
По итогам тестирования мной также признаны неработоспособными способы отключения Защитника через ProductPolicy и редактирование MUM файла, описывающего компоненты входящие в издание ОС, так как так или иначе, при перезагрузке или обновлении Защитник возвращается в строй. Встроенные групповые политики (и локальные политики через gpedit.msc) позволяли его отключить в Windows 10, но в Windows 11 встроено значительно больше функций защиты, их нужно отключать более грубо вручную.
https://habr.com/ru/articles/829110/
This media is not supported in your browser
VIEW IN TELEGRAM
Snips.sh
Безпарольный, анонимный pastebin на основе SSH с удобным текстовым и веб-интерфейсом
Фичи:
▪️Нулевая установка: используйте с любого устройства, где установлен SSH-клиент
▪️Веб-интерфейс: код с подсветкой синтаксиса, короткие ссылки и поддержка рендеринга Markdown
▪️Текстовый интерфейс: управление и просмотр сниппетов прямо из терминала
▪️Без паролей: всё, что вам нужно — это SSH-ключ
▪️Анонимность: без регистрации, без логинов, без необходимости указывать email
▪️URL с временем жизни: ограниченный по времени доступ для безопасного обмена
▪️Возможность самостоятельного хостинга: контейнеризированный и малозатратный в плане ресурсов
▪️Определение языка с помощью ИИ: интеллектуальное распознавание исходного кода
https://github.com/robherley/snips.sh
Безпарольный, анонимный pastebin на основе SSH с удобным текстовым и веб-интерфейсом
Фичи:
▪️Нулевая установка: используйте с любого устройства, где установлен SSH-клиент
▪️Веб-интерфейс: код с подсветкой синтаксиса, короткие ссылки и поддержка рендеринга Markdown
▪️Текстовый интерфейс: управление и просмотр сниппетов прямо из терминала
▪️Без паролей: всё, что вам нужно — это SSH-ключ
▪️Анонимность: без регистрации, без логинов, без необходимости указывать email
▪️URL с временем жизни: ограниченный по времени доступ для безопасного обмена
▪️Возможность самостоятельного хостинга: контейнеризированный и малозатратный в плане ресурсов
▪️Определение языка с помощью ИИ: интеллектуальное распознавание исходного кода
https://github.com/robherley/snips.sh
Media is too big
VIEW IN TELEGRAM
Как устроена плата жесткого диска?
Электроника жесткого диска состоит из различных по функциям узлов: предусилитель, управление шпиндельным двигателем, управление двигателем позиционера, сервоконтроллер, канал чтения, интерфейс, буферное ОЗУ, процессор (обычно ARM архитектуры), флэш ПЗУ (Flash ROM), DC-DC конвертеры
источник
Электроника жесткого диска состоит из различных по функциям узлов: предусилитель, управление шпиндельным двигателем, управление двигателем позиционера, сервоконтроллер, канал чтения, интерфейс, буферное ОЗУ, процессор (обычно ARM архитектуры), флэш ПЗУ (Flash ROM), DC-DC конвертеры
источник
❤3👍2
WebTTY: Доступ по SSH через браузер, даже там, где порт закрыт
Как мы с вами знаем, SSH — надежный и безопасный протокол для удаленного управления системами, который у многих является неотъемлемой частью работы. Однако, что делать, когда стандартные порты SSH заблокированы или закрыты, например, в строго защищенных корпоративных сетях или в облачных средах с жесткой политикой безопасности? Или что делать, если под рукой есть только браузер и нет возможности использовать обычный терминал? Или вам вживую нужно смотреть/управлять сессией?
Одним из таких решений является WebTTY — инструмент, который обеспечивает доступ к терминалу удаленного сервера через веб-браузер, используя технологию WebRTC и веб-технологии для создания безопасного и зашифрованного соединения. Это решение позволяет обойти ограничения, такие как заблокированные стандартные SSH-порты, и предоставляет простой и удобный способ взаимодействия с командной строкой сервера без необходимости открытия дополнительных портов, что особенно полезно в средах с жесткими сетевыми ограничениями или за фаерволами.
В этой статье мы рассмотрим, как WebTTY может быть использован для доступа к SSH-портам через браузер, даже если они закрыты, как его можно настроить и когда его можно использовать. Основана цель данного материала – познакомить вас с таким вариантом подключения и показать, как использовать данный инструмент. Надеюсь, что представленные примеры и объяснения помогут вам оценить его возможности и найти полезные применения в вашей практике.
https://habr.com/ru/articles/840352/
Как мы с вами знаем, SSH — надежный и безопасный протокол для удаленного управления системами, который у многих является неотъемлемой частью работы. Однако, что делать, когда стандартные порты SSH заблокированы или закрыты, например, в строго защищенных корпоративных сетях или в облачных средах с жесткой политикой безопасности? Или что делать, если под рукой есть только браузер и нет возможности использовать обычный терминал? Или вам вживую нужно смотреть/управлять сессией?
Одним из таких решений является WebTTY — инструмент, который обеспечивает доступ к терминалу удаленного сервера через веб-браузер, используя технологию WebRTC и веб-технологии для создания безопасного и зашифрованного соединения. Это решение позволяет обойти ограничения, такие как заблокированные стандартные SSH-порты, и предоставляет простой и удобный способ взаимодействия с командной строкой сервера без необходимости открытия дополнительных портов, что особенно полезно в средах с жесткими сетевыми ограничениями или за фаерволами.
В этой статье мы рассмотрим, как WebTTY может быть использован для доступа к SSH-портам через браузер, даже если они закрыты, как его можно настроить и когда его можно использовать. Основана цель данного материала – познакомить вас с таким вариантом подключения и показать, как использовать данный инструмент. Надеюсь, что представленные примеры и объяснения помогут вам оценить его возможности и найти полезные применения в вашей практике.
https://habr.com/ru/articles/840352/
Шпаргалка по systemd
Основные команды systemctl:
1. Проверка статуса службы:
2. Запуск службы:
3. Остановка службы:
4. Перезапуск службы:
5. Перезагрузка, только если служба работает:
6. Включить автозапуск службы при загрузке:
7. Отключить автозапуск службы:
8. Показать все запущенные службы:
9. Просмотр всех служб (включая остановленные):
10. Показать все активные сервисы, включая другие юниты (mount, timer и т.д.):
11. Маскировка службы (запрет её запуска):
12. Демаскировка службы:
Основные команды systemctl:
1. Проверка статуса службы:
systemctl status <имя_сервиса>
2. Запуск службы:
systemctl start <имя_сервиса>
3. Остановка службы:
systemctl stop <имя_сервиса>
4. Перезапуск службы:
systemctl restart <имя_сервиса>
5. Перезагрузка, только если служба работает:
systemctl reload <имя_сервиса>
6. Включить автозапуск службы при загрузке:
systemctl enable <имя_сервиса>
7. Отключить автозапуск службы:
systemctl disable <имя_сервиса>
8. Показать все запущенные службы:
systemctl list-units --type=service
9. Просмотр всех служб (включая остановленные):
systemctl list-units --all --type=service
10. Показать все активные сервисы, включая другие юниты (mount, timer и т.д.):
systemctl list-units --state=active
11. Маскировка службы (запрет её запуска):
systemctl mask <имя_сервиса>
12. Демаскировка службы:
systemctl unmask <имя_сервиса>
Основные типы DNS записей
A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
A — запись соответствия с IPv4 адресом;
AAAA — запись соответствия с IPv6 адресом;
CNAME — запись соответствия другому доменному имени;
MX — адресная запись, указывающая на почтовый сервер домена;
NS — адресная запись указывающая на DNS-резолверы, отвечающие за данный домен;
TXT — произвольная текстовая запись в домене, часто используется для верификации принадлежности домена.
👍2
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
Установка своих DNS серверов и отключение получения их по DHCP
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
Изменение количества строк системного лога
Очистка системного лога (оставляет сообщение о смене настроек лога)
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
Отключение ненужных служб доступа (web тоже отключается, осторожно)
Фикс MTU (нужен редко, но метко)
Заблокировать доступ к WiFi по MAC-адресу
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
Настройка пароля и безопасности WiFi на default профиль
Включение пробросов портов SSH
Установки имени устройства
/system identity set name=MyHomeMikrotik
Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru [email protected] password=example-pass port=587 start-tls=yes [email protected]
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes
Изменение количества строк системного лога
/system logging action set memory memory-lines=10000
Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0
Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""
Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes
Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag
Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword
Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both
👍4
Наглядное руководство по SSH-туннелям
Автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для более наглядного объяснения того, как это работает, графически показывает потоки трафика.
Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.
https://habr.com/ru/companies/flant/articles/691388/
original https://robotmoon.com/ssh-tunnels/
Автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для более наглядного объяснения того, как это работает, графически показывает потоки трафика.
Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.
https://habr.com/ru/companies/flant/articles/691388/
original https://robotmoon.com/ssh-tunnels/
PGTune рассчитывает конфигурацию для PostgreSQL, основываясь на максимальной производительности для данной конфигурации оборудования. Это не серебряная пуля для оптимизации настроек PostgreSQL. Многие настройки зависят не только от конфигурации оборудования, но и от размера базы данных, количества клиентов и сложности запросов. Оптимальная конфигурация базы данных может быть получена только при учете всех этих параметров.
https://github.com/le0pard/pgtune
https://pgtune.leopard.in.ua/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Process substitution в Bash
Process substitution — это функция в Bash, которая позволяет использовать вывод команды или процесса в качестве входа для другой команды. Она помогает оптимизировать Bash-скрипты, уменьшив потребность во временных файлах и упростив сложные конвейеры
Синтаксис process substitution:
Некоторые примеры использования process substitution для оптимизации Bash-скриптов:
▶️ Сравнение вывода двух команд
Подстановку процесса можно использовать для сравнения вывода двух команд с помощью команды diff. Например, для сравнения вывода ls в двух разных каталогах:
▶️ Перенаправление вывода на несколько команд
Вы можете использовать подстановку процесса, чтобы отправить вывод команды нескольким командам. Например, чтобы отправить вывод ls и в grep, и в wc:
▶️ Цепочка процессов замены
Подстановку процессов можно объединить в цепочку для создания сложных конвейеров. Например, чтобы отсортировать и подсчитать слова в текстовом файле, а затем отобразить 10 самых распространенных слов:
▶️ Объединение и сортировка двух файлов
Предположим, у вас есть два отсортированных файла, file1.txt и file2.txt, и вы хотите объединить их в новый отсортированный файл, merged.txt . Вы можете использовать команду sort вместе с подстановкой процесса, чтобы добиться этого:
▶️ Отображение различий между деревьями каталогов
Вы можете использовать замену процессов для сравнения структуры каталогов двух каталогов с помощью команды tree и diff:
▶️ Фильтрация и сохранение записей журнала
Предположим, у вас есть файл журнала, и вы хотите извлечь записи, содержащие слово "ERROR", сохранить их в отдельный файл и отобразить на экране. Для этого можно использовать grep и tee с заменой процессов:
▶️ Выполнение арифметических операций над столбцами CSV-файла
Вы можете использовать awk с подстановкой процессов для выполнения арифметических операций над столбцами CSV-файла. Например, чтобы сложить столбцы 2 и 3 CSV-файла и отобразить результат:
▶️ Объединение стандартного вывода и стандартной ошибки
Чтобы объединить стандартный поток вывода и стандартный поток ошибок в один поток, можно использовать замену процессов с помощью cat:
В этом примере команда представляет команду, которую вы хотите выполнить. Подстановка процесса >(cat >&1) перенаправляет стандартный поток ошибок (файловый дескриптор 2) в стандартный поток вывода (файловый дескриптор 1).
Эти примеры иллюстрируют мощь и гибкость подстановки процессов в Bash. Понимая, как эффективно использовать эту функцию, вы можете создавать более сложные и эффективные скрипты.
источник
Process substitution — это функция в Bash, которая позволяет использовать вывод команды или процесса в качестве входа для другой команды. Она помогает оптимизировать Bash-скрипты, уменьшив потребность во временных файлах и упростив сложные конвейеры
Синтаксис process substitution:
<(command)
. Создаёт именованный канал (FIFO) и подключает к нему вывод команды внутри скобок. Именованный канал ведёт себя как файл, что позволяет использовать его в качестве входа для другой команды. >(command)
. Также создаёт именованный канал, но подключает его к входу команды внутри скобок. Это позволяет перенаправить вывод одной команды на вход другой команды.Некоторые примеры использования process substitution для оптимизации Bash-скриптов:
Подстановку процесса можно использовать для сравнения вывода двух команд с помощью команды diff. Например, для сравнения вывода ls в двух разных каталогах:
diff <(ls dir1) <(ls dir2)
Вы можете использовать подстановку процесса, чтобы отправить вывод команды нескольким командам. Например, чтобы отправить вывод ls и в grep, и в wc:
ls | tee >(grep 'txt$') >(wc -l) > /dev/null
Подстановку процессов можно объединить в цепочку для создания сложных конвейеров. Например, чтобы отсортировать и подсчитать слова в текстовом файле, а затем отобразить 10 самых распространенных слов:
cat file.txt | tr '[:space:]' '\n' | grep -v '^$' | sort | uniq -c | sort -nr | head -n 10
Предположим, у вас есть два отсортированных файла, file1.txt и file2.txt, и вы хотите объединить их в новый отсортированный файл, merged.txt . Вы можете использовать команду sort вместе с подстановкой процесса, чтобы добиться этого:
sort -m <(sort file1.txt) <(sort file2.txt) > merged.txt
Вы можете использовать замену процессов для сравнения структуры каталогов двух каталогов с помощью команды tree и diff:
diff -y <(tree -fi dir1) <(tree -fi dir2)
Предположим, у вас есть файл журнала, и вы хотите извлечь записи, содержащие слово "ERROR", сохранить их в отдельный файл и отобразить на экране. Для этого можно использовать grep и tee с заменой процессов:
grep 'ERROR' logfile.txt | tee >(cat > errors.txt)
Вы можете использовать awk с подстановкой процессов для выполнения арифметических операций над столбцами CSV-файла. Например, чтобы сложить столбцы 2 и 3 CSV-файла и отобразить результат:
awk -F, '{ print $1, $2 + $3 }' <(cat file.csv)
Чтобы объединить стандартный поток вывода и стандартный поток ошибок в один поток, можно использовать замену процессов с помощью cat:
command 2> >(cat >&1)
В этом примере команда представляет команду, которую вы хотите выполнить. Подстановка процесса >(cat >&1) перенаправляет стандартный поток ошибок (файловый дескриптор 2) в стандартный поток вывода (файловый дескриптор 1).
Эти примеры иллюстрируют мощь и гибкость подстановки процессов в Bash. Понимая, как эффективно использовать эту функцию, вы можете создавать более сложные и эффективные скрипты.
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1💯1