Типичный Сисадмин
1.23K subscribers
350 photos
43 videos
194 links
⚙️Информация для системного администратора
Download Telegram
📌 Шпаргалка по настройке Postfix

▪️1. Установка Postfix
Ubuntu/Debian:

sudo apt update && sudo apt install postfix -y

CentOS/RHEL:

sudo yum install postfix -y

После установки выбрать "Internet Site" и ввести доменное имя сервера.


▪️2. Основные конфигурационные файлы
📂 /etc/postfix/main.cf – главный конфиг
📂 /etc/postfix/master.cf – управление службами
📂 /etc/postfix/virtual – виртуальные почтовые ящики
📂 /etc/aliases – почтовые алиасы

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

sudo systemctl restart postfix



▪️3. Основные параметры в main.cf

myhostname = mail.example.com # Имя почтового сервера
mydomain = example.com # Доменное имя
myorigin = $mydomain # Отправитель по умолчанию
inet_interfaces = all # Разрешить работу на всех интерфейсах
inet_protocols = ipv4 # Только IPv4 (по умолчанию IPv6 тоже включен)
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = # Ретрансляция отключена



▪️4. Разрешение отправки почты
Добавить в main.cf:

mynetworks = 127.0.0.0/8, 192.168.1.0/24 # Разрешенные сети
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination



▪️5. Настройка SASL (Аутентификация)
Установить SASL:

sudo apt install sasl2-bin -y

Настроить /etc/default/saslauthd:

START=yes
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Добавить в main.cf:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $mydomain

Перезапустить службы:

sudo systemctl restart saslauthd postfix



▪️6. Настройка DKIM (Подпись почты)
Установить OpenDKIM:

sudo apt install opendkim opendkim-tools -y

Настроить Postfix (main.cf):

milter_protocol = 2
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock

Сгенерировать ключ DKIM:

sudo opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys -s default -v

Добавить в DNS TXT-запись для default._domainkey.example.com.


▪️7. Настройка SPF (Защита от подмены)
Добавить в DNS TXT-запись:

example.com TXT "v=spf1 mx ~all"

Проверка SPF:

nslookup -type=txt example.com



▪️8. Настройка DMARC (Доп. защита)
Добавить в DNS TXT-запись:

_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"



▪️9. Очередь почты в Postfix
Просмотр очереди:

mailq

Удалить все письма:

postsuper -d ALL

Перезапустить доставку писем:

postqueue -f



▪️10. Логирование и отладка
Проверить логи почты:

sudo tail -f /var/log/mail.log

Проверить конфигурацию Postfix:

postconf -n
2
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Шпаргалка по сетевой безопасности
2
Как найти количество открытых файлов в Linux

Чтобы узнать количество открытых файлов в Linux, можно воспользоваться следующими командами:

1. Использовать lsof (List Open Files) для подсчета открытых файлов в системе:

lsof | wc -l

Эта команда покажет общее количество открытых файлов в системе, где wc -l подсчитывает количество строк, то есть количество открытых файлов.

2. Использовать `/proc/sys/fs/file-nr` для просмотра счетчика открытых файлов:

cat /proc/sys/fs/file-nr

Этот файл содержит три числа, разделенные табуляцией:
- Первое число — текущее количество открытых файлов.
- Второе число — количество файлов, которые находятся в ожидании.
- Третье число — максимальное количество файлов, которое система может открыть.

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

lsof -p PID | wc -l

Замените PID на идентификатор процесса, который вас интересует.

4. Использовать lsof для подсчета открытых файлов конкретным пользователем:

lsof -u username | wc -l

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

Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы: сценарии использования, конфигурация, SSH jumphosts, локальная/удаленная/динамическая переадресация портов и ограничения

https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/
2
Хорошая статья, описывающая различные методы усиления защиты машины с Linux. (Eng ver)

Linux не является безопасной операционной системой. Однако есть шаги, которые можно предпринять для ее улучшения. Цель этого руководства - объяснить, как максимально усилить Linux для обеспечения безопасности и конфиденциальности. Руководство не зависит от дистрибутива и не привязано к какому-либо конкретному.

https://madaidans-insecurities.github.io/guides/linux-hardening.html
1
📌 Проверка доступности портов: nmap, netcat, telnet, nc

Иногда нужно быстро проверить, доступен ли нужный порт на удалённой машине. Вот шпаргалка по самым популярным способам:


▪️TCP-порты

Netcat:

# Проверка конкретного порта
netcat domain.com 80

# Сканирование диапазона портов
netcat -z -v domain.com 1-1000

# Слушать порт 4444 на хосте
netcat -l 4444

# Проверка подключения к удалённому netcat
netcat domain.com 4444


NC (аналог Netcat):

nc -vt <ip> <port>


Telnet:

telnet <ip> <port>


Nmap:

# Проверка TCP-порта 25
nmap -p25 11.11.11.11



▪️UDP-порты

Netcat:

netcat -u <host> <port>


NC:

nc -vu <ip> <port>


Nmap:

# Проверка UDP-порта 53
nmap -sU -p U:53 11.1.11.12
1
This media is not supported in your browser
VIEW IN TELEGRAM
Как работают протоколы в модели TCP IP?
1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Объяснение протокола Kerberos
1
Команда nslookup, получение информации от DNS

Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.

Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.

Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.

https://telegra.ph/Komanda-nslookup-poluchenie-informacii-ot-DNS-09-26
1
Шпаргалка по оконным функциям в SQL
1
Веб-интерфейс для управления Nginx

Возможности :

▪️ Онлайн-статистика по серверным метрикам: загрузка CPU, использование памяти, средняя нагрузка, использование диска.
▪️ Автоматическое резервное копирование конфигураций после изменений с возможностью сравнения версий и восстановления.
▪️ Управление кластером с поддержкой зеркалирования операций на несколько узлов — упрощает работу в многосерверной среде.
▪️ Экспорт зашифрованных конфигураций Nginx/NginxUI для быстрой миграции и восстановления в новых окружениях.
▪️ Улучшенный онлайн-помощник ChatGPT с поддержкой нескольких моделей, включая отображение логики рассуждений Deepseek-R1 для лучшего понимания и оптимизации конфигураций.
▪️ Установка и автоматическое продление сертификатов Let's Encrypt в один клик.
▪️ Онлайн-редактирование конфигураций сайтов с помощью нашего собственного NgxConfigEditor — удобного блочного редактора конфигураций nginx, или Ace Code Editor с подсветкой синтаксиса nginx.
▪️ Онлайн-просмотр логов Nginx.
▪️ Написано на Go и Vue, дистрибутив — один исполняемый бинарник.
▪️ Автоматическая проверка конфигурационного файла и перезапуск nginx после сохранения.
▪️ Веб-терминал.
▪️ Тёмная тема.
▪️ Адаптивный веб-дизайн.

Быстрый старт с помощью Docker :


docker run -d \
--name nginx-ui \
-p 8080:8080 \
-v /etc/nginx:/etc/nginx \
-v /var/run/nginx.pid:/var/run/nginx.pid \
0xjacky/nginx-ui


Убедитесь, что путь к конфигурационным файлам Nginx указан верно, особенно при использовании Docker.

https://github.com/0xJacky/nginx-ui
3
Полезные команды Powershell для Active Directory

Получить всех пользователей AD в домене
Get-aduser -properties * -filter *

Модуль импорта Active Directory
Import-module activedirectory

Получить все компьютеры из домена
Get-adcomputer -properties * -filter *

Отключить пользователя AD по имени учетной записи SAM
Disable-ADaccount -identity "Name"

Экспорт данных в формат CSV
Get-adcomputer -properties * -filter * |export-csv "give path"

Получить имя учетной записи AD Groups SAM
Get-ADgroup -identity "provide group name"

Выбрать конкретный атрибут пользователя
Get-aduser -properties * -filter *

Получить информацию о домене
Get-ADdomain

Установите роль Active Directory
Install-windowsfeature AD-Domain-Services

Получить список контроллеров домена
Get-ADDomainController
1
Замена дисков меньшего объёма на диски большего объёма в Linux

В данной статье будет рассмотрены 2 случая замены дисков и переноса информации на новые диски большего объёма с дальнейшим расширением массива и файловой системы. Первый случай будет касаться замены дисков c одноименной разметкой MBR/MBR либо GPT/GPT, второй случай касается замены дисков с разметкой MBR на диски объёмом более 2 TB, на которые потребуется ставить разметку GPT с разделом biosboot.
3
Руководство по SSH-туннелям

В этой статье описаны случаи использования и примеры туннелей SSH с наглядным представлением потоков трафика. Например, здесь представлен обратный туннель, который позволяет только пользователям с IP-адреса 1.2.3.4 получить доступ к порту 80 на SSH-клиенте через SSH-сервер.

https://robotmoon.com/ssh-tunnels/
1
Объединение файлов командой cat

Команду cat в большинстве случаев используют только для просмотра файлов. На самом деле одно из ее предназначений это конкатенация (объединение) файлов. А название команды происходит от слова catenate (сцепить), то есть присоединение одного после другого.

Под объединением файлов понимается их соединение. Например, если мы имеем два текстовых файла и в одном из них записана строка:
My text file 1

А в другом:
My text file 2

То после объединения мы получим файл с двумя строками:
My text file 1
My text file 2


То есть происходит простое соединение файлов. К содержимому одного добавляется содержимое другого. Это касается не только текстовых файлов, но и всех остальных (бинарных, например).

Чтобы объединить два файла командой cat нужно просто указать в качестве аргументов названия этих файлов и направить результат выполнения в новый файл. Например, мы хотим объединить два файла file1 и file2, а результат записать в новый файл file12. Тогда мы должны выполнить следующую команду:

cat file1 file2 > file12
Вы можете объединить неограниченное количество файлов. Например, чтобы объединить четыре файла и записать результат в файл myfile, выполните команду:

cat file1 file2 file3 file4 > myfile
1