Админские угодья
1.46K subscribers
457 photos
40 videos
220 links
Всё для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Работа Kerberos в картинках
👍1🔥1
Fail2Ban: Шпаргалка по настройке


Fail2Ban — инструмент для защиты сервера от перебора паролей (brute-force) и других атак, блокируя IP-адреса через iptables, firewalld, nftables и др.


Установка

Debian/Ubuntu:

sudo apt update && sudo apt install fail2ban


RHEL/CentOS:

sudo dnf install fail2ban



Базовая настройка

1. Создаём локальную копию конфига:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


2. Открываем для редактирования:

sudo nano /etc/fail2ban/jail.local


3. Ключевые параметры:


[DEFAULT]
bantime = 3600 # Время бана (в секундах)
findtime = 600 # Интервал поиска неудачных попыток
maxretry = 5 # Сколько раз можно ошибиться

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 # IP без блокировки



Пример: защита SSH


[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 3
bantime = 1h



Проверка и управление

- Запуск/остановка:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban


- Статус:

sudo fail2ban-client status


- Статус конкретного jail:

sudo fail2ban-client status sshd


- Разбанить IP:

sudo fail2ban-client set sshd unbanip 1.2.3.4



Полезные логи

- Fail2Ban логи:

/var/log/fail2ban.log


- Проверка правил iptables:

sudo iptables -L -n



Советы :

Создавайте .local -файлы вместо правки .conf
Добавляйте свои фильтры в /etc/fail2ban/filter.d
Используйте fail2ban-regex для теста фильтров
👍41
Руководство по обеспечению безопасности Linux-сервера

https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
3
📌 Шпаргалка по командам linux
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Что происходит, когда вы вводите в браузер URL-адрес?

Давайте рассмотрим этот процесс пошагово.

Шаг 1. Пользователь вводит в браузер URL и нажимает Enter. Первое, что нам нужно сделать, это преобразовать URL в IP-адрес. Сопоставление обычно хранится в кэше, поэтому браузер ищет IP-адрес в нескольких уровнях кэша: кэше браузера, кэше ОС, локальном кэше и кэше провайдера. Если браузер не смог найти сопоставление в кэше, он обращается к DNS (Domain Name System) resolver для его разрешения.

Шаг 2. Если IP-адрес не удается найти ни в одном из кэшей, браузер обращается к DNS-серверам для выполнения рекурсивного DNS-поиска, пока IP-адрес не будет найден.

Шаг 3. Теперь, когда у нас есть IP-адрес сервера, браузер посылает на него HTTP-запрос. Для безопасного доступа к ресурсам сервера всегда следует использовать протокол HTTPS. Сначала браузер устанавливает TCP-соединение с сервером с помощью трехстороннего рукопожатия TCP. Затем он посылает открытый ключ клиенту. Клиент использует открытый ключ для шифрования сеансового ключа и отправляет его серверу. Сервер использует закрытый ключ для расшифровки сеансового ключа. Теперь клиент и сервер могут обмениваться зашифрованными данными с использованием сеансового ключа.

Шаг 4. Сервер обрабатывает запрос и отправляет ответ. Для успешного ответа код состояния равен 200. Ответ состоит из трех частей: HTML, CSS и Javascript. Браузер анализирует HTML и формирует дерево DOM. Он также анализирует CSS и генерирует дерево CSSOM. Затем он объединяет дерево DOM и дерево CSSOM в дерево рендеринга. Браузер отображает содержимое и показывает его пользователю.
👍21
Сборник Bash скриптов

Скрипт оповещения по email об остатке дискового пространства менее 10%

#!/bin/bash
used=`df -hl / | awk {'print $4'} | grep "%"`
used=${used/\%/}
if [ $used -gt 90 ];
then
echo "Attention! Available space less than 10%. Used space = $used"% | mail -s "DISK ALERT" <a href="mailto:[email protected]">[email protected]</a>
fi



Сканирование сети на наличие хостов

#scannet.sh
#Сканируем сеть на наличие хостов
#!/bin/sh

NET=${1}

if [ -z ${NET} ]; then

echo 'Usage:'
echo ' scan.sh first_3_octets'
echo ''
echo 'Example:'
echo ' scan.sh 192.168.0'
echo ''

else

echo "Finding hosts in net ${NET}.0/24"
echo ''
echo 'Found hosts:'
for host in `seq 1 254`; do
if (ping -c 3 ${NET}.${host} > /dev/null 2> /dev/null) then
echo ${NET}.${host}
fi
done

fi


Удалить временные файлы из домашнего каталога

#deltmp.sh
#Удаляет временные файлы из домашнего каталога
#!/bin/bash
echo "******************* start **********"
find -name .*~. -exec rm -i {} \;
echo "****************** finish **********"
1👍1
📌 Шпаргалка по оконным функциям в SQL
🥰21
Cамые нужные команд SSH

Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -h
А так — перезагрузить ее:
$ ssh user@host sudo reboot

Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"

Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлу

Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclip
А так можно скопировать вывод команды:
$ ssh user@host uname -a | xclip

Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -

Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfs
Создать каталог для подключения «сетевого диска»:
$ mkdir remote_files
И подключить его:
$ sshfs user@host:/home/user ~/remote_files/
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.

Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@host
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@host

Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:
$ ssh -MNf user@host
3
Очистка метаданных контроллера домена в Active Directory

Довольно часто встречаются ситуации, когда контроллер домена оказывается удален без понижения роли, это может быть связано как с ошибками при понижении, так и с физическим выходом из строя, после чего в структуре Active Directiry остается информация (метаданные) несуществующего контроллера, что может приводить к различным ошибкам. Поэтому, если у вас произошла такая ситуация, следует обязательно выполнить очистку связанных с удаленным контроллером метаданных в базе Active Directory.

Для выполнения данной задачи могут быть использованы различные инструменты: оснастки MMC графической оболочки и утилиты командной строки, в данной статье мы рассмотрим оба способа.

https://telegra.ph/Ochistka-metadannyh-kontrollera-domena-v-Active-Directory-09-26
❤‍🔥2👍1
Как подключиться к контейнеру Docker по ssh

После того, как у вас появился контейнер Docker, работающий в системе Linux, одна из вещей, которые вам, вероятно, потребуется сделать, – это запустить команды внутри контейнера.

https://telegra.ph/Kak-podklyuchitsya-k-kontejneru-Docker-po-ssh-09-26
3
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях

Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).

https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
2
Шпаргалка по оконным функциям в SQL
1👍1
Чтобы разобраться с правами доступа к файлам в Linux, нам нужно понять, что такое Ownership и Permission.

Ownership

Каждому файлу или каталогу присваивается три типа прав собственности:

🔹Owner: Владелец - это пользователь, создавший файл или каталог.
🔹Group (группа): В группе может быть несколько пользователей. Все пользователи в группе имеют одинаковые разрешения на доступ к файлу или каталогу.
🔹Other: Другие - это пользователи, которые не являются владельцами или членами группы.

Permission

Существует только три типа разрешений для файла или каталога:

🔹Read (r): Разрешение на чтение позволяет пользователю читать файл.
🔹Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
🔹Execute (x): Разрешение execute позволяет выполнять файл.
👍21