Системный администратор
26.4K subscribers
3.06K photos
3K videos
208 files
3.29K links
Все для системного администратора.

По всем вопросам @evgenycarter

РКН clck.ru/3KoDXp
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Media is too big
VIEW IN TELEGRAM
Протокол TCP

00:00 - Варианты подтверждения доставки в TCP
00:54 - Остановка и ожидание
01:19 - Скользящее окно
01:42 - Почему выгодно использовать скользящее окно
03:45 - Как работает скользящее окно
05:31 - Типы подтверждений в TCP
07:11 - Итоги

источник

📲 Мы в MAX

👉 @i_odmin
👍4🔥1
Софт для VDS-сервера, на который стоит обратить внимание новичкам

Если вы арендовали свой первый VDS-сервер и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… Чтобы упростить старт, я собрал список утилит, которые стоит установить в первую очередь. Они помогут настроить сервер под ваши задачи, повысят удобство его использования и защитят от потенциальных угроз.

https://habr.com/ru/companies/ruvds/articles/902596/

📲 Мы в MAX

👉 @i_odmin
👍9🔥6
💻 Полезные команды Linux. Корректное выключение, перезагрузка и выход из системы


🔌 Выключение системы:


sudo shutdown -h now


> Немедленно завершить работу системы.


sudo shutdown -h +10 "Выключение через 10 минут"


> Запланированное выключение с сообщением.


sudo poweroff


> Альтернатива shutdown -h now, завершает работу и отключает питание.



🔄 Перезагрузка:


sudo reboot


> Стандартная перезагрузка.


sudo shutdown -r now


> Немедленная перезагрузка.


sudo systemctl reboot


> Современный способ на системах с systemd.



🚪 Выход из текущей сессии:


exit


> Завершение текущей shell-сессии (для терминала).


logout


> Выход из системы, если вы вошли через консоль.



💡 Быстрые подсказки:

* -h = halt (выключить)
* -r = reboot (перезагрузить)
* +минуты — отложенное действие
* wall — отправка сообщения всем пользователям

📲 Мы в MAX

👉 @i_odmin
👍5
Shell скрипт для управления Linux- пользователями

Функциональные возможности

Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log

Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату

Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:

https://github.com/m0zgen/user-manager

📲 Мы в MAX

👉 @i_odmin
👍6🔥2
Команда grep используется в Unix/Linux для поиска строк, соответствующих регулярному выражению, в одном или нескольких файлах или потоках ввода.

Синтаксис:


grep [опции] ПАТТЕРН [ФАЙЛ...]


Примеры использования:

1. Поиск строки в файле:


grep "ошибка" журнал.txt


Ищет строки, содержащие слово "ошибка" в файле журнал.txt.

2. Игнор регистра:


grep -i "ошибка" журнал.txt


Найдёт "ошибка", "Ошибка", "ОШИБКА" и т.д.

3. Рекурсивный поиск по директории:


grep -r "TODO" ./src


Ищет слово "TODO" во всех файлах внутри каталога src.

4. Вывод только совпавших частей (без всей строки):


grep -o "http[s]\?://[^ ]\+"


Ищет URL в потоке ввода.

5. Показать номера строк:


grep -n "ошибка" журнал.txt


6. Инвертированный поиск (показать строки без совпадений):


grep -v "успешно" журнал.txt


7. Использование регулярных выражений (расширенные):


grep -E "foo|bar" файл.txt


8. Поиск с подсветкой результата:


grep --color "pattern" файл.txt


📲 Мы в MAX

👉 @i_odmin
👍9🔥21
Депутат Госдумы Гусев предложил создать список «белых VPN»

В Государственной думе поступило предложение о формировании перечня одобренных VPN-протоколов. Эти технологические решения должны обеспечивать функционирование коммерческих организаций и государственных структур.

С данным предложением выступил депутат Дмитрий Гусев. По его утверждению, VPN является основной технологией для обеспечения безопасности информации. Крупные компании и некоторые государственные системы используют её в своей деятельности. Дополнительно он предложил обеспечивать доступ к мобильной сети тем людям, которые имеют подтверждённую учётную запись на портале «Госуслуги». Также депутат считает необходимым составить список российских хостинг-провайдеров, которые заслуживают доверия.

И возникают вопросы о том, является ли это решение способом согласования интересов защиты данных и доступа к ресурсам или методом усиления надзорных функций.

Как вам такая инициатива?

📲 Мы в MAX

👉 @i_odmin
🤬22🤡16🖕32👍1😁1
Подборка хаков с grep для продвинутых


🔥 1. Поиск в архивированных логах


zgrep "CRITICAL" /var/log/syslog.3.gz


Использует zgrep, аналог grep, работающий с .gz - архивами.



🎯 2. Поиск точного слова, а не подстроки


grep -w "main" код.c


Найдёт main, но не domain или maintain.



🌈 3. Подсветка совпадений


grep --color=always "TODO" файл.txt


Цветовая подсветка совпадений, особенно удобно с less -R.



🧱 4. Исключение некоторых папок при рекурсивном поиске


grep -r --exclude-dir={.git,node_modules} "token" .


Пропускает указанные директории.



🚦 5. Только совпадения (без всей строки)


grep -oE "ID-[0-9]{4}" журнал.log


Выдаст только совпавшие фрагменты, например: ID-1234.



🔁 6. Найти строки, идущие ПЕРЕД или ПОСЛЕ совпадения


grep -A3 "panic" системный_лог.txt # 3 строки после
grep -B2 "panic" системный_лог.txt # 2 строки до
grep -C5 "panic" системный_лог.txt # 5 строк до и после




🧪 7. Поиск по нескольким шаблонам сразу


grep -E "ERROR|WARN|FATAL" журнал.log


Или так, с отдельным шаблонным файлом:


grep -f patterns.txt журнал.log


Где patterns.txt содержит:


ERROR
WARN
FATAL




👁 8. Найти только имена файлов с совпадением


grep -rl "import numpy" .


Удобно для массовой рефакторинга или аудита.



🧹 9. Удалить лишний мусор из grep - вывода


grep "Session" журнал.log | cut -d' ' -f2- | sort | uniq


Например, выводим только нужные поля, убираем повторы.



⚙️ 10. Использование grep в пайплайне для live-аналитики


tail -f /var/log/nginx/access.log | grep --line-buffered "404"


Реальное время: мониторинг 404 ошибок на веб-сервере.

📲 Мы в MAX

👉 @i_odmin
👍6🔥21👎1
Часто JSON в базе становится компромиссом: удобно хранить, но сложно быстро читать и индексировать.

Без понимания JSONB и операторов запросы начинают тормозить, а структура данных расползаться.

Если вы работаете с динамическими данными и хотите делать это без потери производительности — подключайтесь.

На открытом уроке разберём:
- как устроен JSONB внутри PostgreSQL
- какие индексы реально ускоряют запросы
- как писать SQL, который работает на больших объёмах
- покажем практические сценарии: конфиги, события, генерация JSON-ответов прямо в базе

📌 Встречаемся 5 мая в 20:00 МСК, регистрация открыта: https://vk.cc/cX0EkF

Урок проходит в преддверии старта курса «PostgreSQL для администраторов баз данных и разработчиков». Скидка на ранее бронирование курса 15% - все подробности у менеджера.

Реклама. ООО «Отус онлайн‑образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.

Установки имени устройства
/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 from=example@yandex.ru password=example-pass port=587 start-tls=yes user=example@yandex.ru


Настройка синхронизации времени по 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

📲 Мы в MAX

👉 @i_odmin
👍8🔥31
Интернет для избранных, рынок для своих: как Минцифры готовит зачистку связи в России

На Хабре вышел материал о том, что под видом новой системы лицензирования рынок связи могут серьезно перекроить в пользу крупных игроков. Автор считает, что больше всего пострадают небольшие региональные провайдеры — те, кто часто держит интернет в посёлках, райцентрах и малых городах.

Если малых операторов начнут выдавливать с рынка, это приведёт не к «порядку», а к снижению конкуренции, ухудшению сервиса и росту зависимости регионов от нескольких федеральных гигантов. В статье подчёркивается, что именно местные компании нередко быстрее чинят аварии, лучше знают территорию и работают там, куда крупному бизнесу идти просто невыгодно.

Что это значит на практике:
— в небольших населённых пунктах связь может стать хуже;
— сроки устранения аварий могут вырасти;
— у людей и бизнеса станет меньше выбора;
— крупным игрокам будет проще диктовать цены и условия.

Автор называет происходящее не модернизацией, а «зачисткой» рынка, и предупреждает: если законопроект примут в таком виде, последствия затронут не только операторов, но и обычных пользователей, предпринимателей и целые регионы. Сейчас документ ещё в стадии разработки, и именно поэтому дискуссия особенно важна.

https://habr.com/ru/articles/1026774/

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬25🖕4💯21🤣1🦄1
🎯 Основные компоненты системы на базе Linux


1️⃣ Начальный загрузчикGRUB
Запускается при старте компьютера и загружает ядро системы.

2️⃣ Ядро Linux
Сердце системы: управляет ресурсами, оборудованием и процессами.

3️⃣ Демоны (Daemons)
Фоновые службы, запускаемые при загрузке системы (например, cron, systemd).

4️⃣ Командная оболочка (Shell)
Интерфейс между пользователем и системой. Примеры: bash, zsh.

5️⃣ Утилиты командной строки
Набор инструментов для работы в терминале: ls, cp, grep, top и т.д.

6️⃣ Графический сервер
Компонент, управляющий отображением интерфейса (например, X11, Wayland).
Работает с видеокартой, мышью, монитором.

7️⃣ Среда рабочего стола
Графический интерфейс пользователя: KDE, GNOME, XFCE и др.
Включает в себя окна, панели, файловые менеджеры и пр.

8️⃣ Программы рабочего стола
Браузеры, текстовые редакторы, почтовые клиенты — всё, что делает Linux удобным для пользователя.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Если вы следите за своим рационом, почему техника должна есть что попало? Systeme Electric предлагает Правильное Питание для электрооборудования.

Systeme Electric — бывшее российское подразделение Schneider Electric, производителя легендарных бесперебойников APC. Имя поменялось. Производство, технологии и лучшие инженеры — остались.

ПП-ИБП от Systeme Electric с онлайн-топологией (нулевым временем переключения на батареи) — это:

✔️ Тотальный онлайн-ЗОЖ — онлайн Защита от Отключений Железа.
✔️ Повышенная БЖУ — Бесперебойность Жизненно-важных Устройств. Тянут нагрузку в 150% от номинальной.
✔️ Настоящий суперфуд для оборудования — высочайший КПД 95%.
✔️ Самое полное ПП-меню — поддерживают все возможные интерфейсы и протоколы.

Официальная гарантия аж 3 года! Рекорд. Никто больше такого не предлагает.
Плюс круглосуточная техподдержка: днем по телефону, а в чатах и мессенджерах 24/7. После 6 — можно. И в праздники тоже!

С дешевым китайским электро-фастфудом техника долго не проходит, но если соблюдать Правильное Питание с ПП-ИБП — техника будет выносливой.
На здоровье оборудования не экономят!

Подробнее о ПП-ИБП.
🤡5👍21🔥1
Работа с правами доступа файлов и директорий в Linux

# chown vasya /file
Назначить пользователя vasya владельцем файла file
# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла /file
# chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
# chgrp new_group file
Изменить группу-владельца для file на new_group
# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Изменение порта для подключения по SSH

Чтобы изменить порт для подключения по SSH необходимо отредактировать файл конфигурации SSH демона. Откроем данный файл текстовым редактором:
vim /etc/ssh/sshd_config
Найдем строку Port 22 и изменим её, указав новый порт для подключения. Например Port 25022.

Выходим, сохраняем файл и перезагружаем SSH следующей командой:
service sshd restart

После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной. Поэтому не отключаясь для проверки попробуем подключится по новому порту - если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 25022 наш новый порт):
iptables -A INPUT -p tcp --dport 25022 -j ACCEPT

Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 25022 -j ACCEPT

где 192.168.0.0/24 - IP адрес сети и маска сети, с которых разрешено подключение по SSH. Далее проверяем подключение по SSH на новом порту ssh <user>@<ip> -p <port> - если подключение выполняется, то можем удалить правило iptables подключения по SSH по старому порту:
iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно следующей командой:
netstat -tulpan | grep ssh

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥2
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
💩27🤡1
Генерируем пароль в терминале Linux

Будем использовать /dev/urandom и утилиты makepasswd, pwgen.

Используем /dev/urandom
При чтении устройство /dev/urandom возвращает бесконечный набор случайных байтов. Этот вывод можно отфильтровать с помощью утилиты tr. Затем, вывод передать команде xargs которая, по умолчанию выполняет команду echo и ей передается всё, что было прочитано из стандартного ввода. А с помощью утилиты head можно указать необходимое количество символов в пароле.

То есть сгенерировать пароль в Linux поможет следующая команда:
$ tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 | xargs
AurTdatFbw


Вы можете сделать bash функцию и записать её в ваш .bashrc:
$ nano .bashrc
genpasswd() {
local l=$1
[ "$l" == "" ] && l=16
tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}


Затем применим изменения и попробуем сгенерировать пароль:
$ . .bashrc
~$ genpasswd 5
Hbe7a
$ genpasswd 10
PDbt1tjBg0


Используем makepasswd

Утилита makepasswd может также помочь сгенерировать пароль в Linux. Она также использует /dev/urandom, чтобы создавать случайные пароли. Вы можете установить её с помощью apt:
$ sudo apt install makepasswd

Просто выполните эту команду без параметров чтобы получить случайный пароль:
$ makepasswd
5q6m4jMHJ


Можете указать количество символов в пароле с помощью опции chars и можете создать несколько паролей с помощью опции count:
$ makepasswd --chars 4 --count 3
1d65
R5Xe
Lhes


Можно создать пароли и сразу вывести их зашифрованный хеш с помощью опции crypt-md5:
$ makepasswd --chars 4 --count 3 --crypt-md5
DWBN $1$awZ5uNo/$r50RTWsihcMKEVQzoDyoZ1
xLN7 $1$h4ThtOu1$Bsmqhr/Tq/IIdGPtAVGda.
A2R2 $1$bss49Rj7$y.9nAbyr749N.eYRUF155.



Используем pwgen

Утилита pwgen генерирует легко запоминаемые пароли. Но также можешь генерировать случайные пароли. Устанавливается она также, с помощью apt:
$ sudo apt install pwgen

Если выполнить её без опций, то вы увидите список из легко запоминаемых паролей:
$ pwgen
Xu6Phei7 Ree2ud9e ohphah8I iiZ8Efoo foG0moh3 aSho2neL Phero4Ud thiCh9ei
uvaeChu0 eeCie5Um Wovie0do Eibuo3Ou Sai1Ovah po3OhT9j XeYei9ei eiQu2mai

....

Вы можете указать количество необходимых паролей с помощью опции -N и указать количество символов в пароле с помощью опции -n:
$ pwgen -N 3 -n 5
aeCo2 Le7oy uv6Oh


Существует также опция -s чтобы создавать более сложные пароли (их сложнее запомнить и подобрать):
$ pwgen -N 3 -n 5 -s
fY60V y6FIU 9XEt4


Я не заметил разницу в использовании опции -s, но в инструкции написано, что без этой опции пароль легче подобрать.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @i_odmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2