Типичный Сисадмин
1.29K subscribers
376 photos
44 videos
205 links
⚙️Информация для системного администратора

По всем вопросам : @Sofiia_artamonova
Download Telegram
Команда curl. Синтаксис. Примеры использования

Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.

https://telegra.ph/Komanda-curl-Sintaksis-Primery-ispolzovaniya-09-26
👍21
Команды мониторинга и отладки

top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)

ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)

ps -e -o pid,args --forest вывести PID’ы и процессы в виде дерева

pstree отобразить дерево процессов

kill -9 98989
kill -KILL 98989
«убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)

kill -TERM 98989 Корректно завершить процесс с PID 98989

kill -1 98989
kill -HUP 98989
заставить процесс с PID 98989 перепрочитать файл конфигурации

lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989

lsof /home/user1 отобразить список открытых файлов из директории /home/user1

strace -c ls > /dev/null вывести список системных вызовов, созданных и полученных процессом ls

strace -f -e open ls > /dev/null вывести вызовы бибилотек

watch -n1 ‘cat /proc/interrupts’ отображать прерывания в режиме реального времени

last reboot отобразить историю перезагрузок системы

last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней

lsmod вывести загруженные модули ядра

free -m показать состояние оперативной памяти в мегабайтах

smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART

smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda

tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра

tail /var/log/messages вывести десять последних записей из системного журнала
👍2🔥1
DNS Record Types
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
1
📌 Сетевая модель OSI
2👍1
📌 Как работает трансляция сетевых адресов (NAT)
2
Пример правильного использования Chmod

Правила доступа по умолчанию для каталогов 755, для файлов 644. Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.

Ниже пример того, как в каталоге /var/www/i_odmin_book на все файлы рекурсивно поставить права 0644, а на все каталоги и подкаталоги 0755

cd /var/www/i_odmin_book
find ./ -type f -exec chmod 0644 {} \;
find ./ -type d -exec chmod 0755 {} \;

Первой командой переходим в нужную директорию, далее с помощью команды find ищем нужный тип: файлы -f (files) и каталоги -d (directories) — и запускаем chmod с нужными правами.
2
📌 Как работает ARP
1
📌 Шпаргалка по SSH-туннелям

Локальное перенаправление порта (Local port forwarding): доступ к приватным конечным точкам (endpoints), возможно через bastion-хост, как будто это локально открытые порты.
Удалённое перенаправление порта (Remote port forwarding): публикация локальных портов или адресов в приватной сети наружу через exit-нод.

Оба варианта реализуются с помощью SSH 👆
👍21
Mikrotik и несколько провайдеров. Резервирование каналов

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

https://telegra.ph/Mikrotik-i-neskolko-provajderov-Rezervirovanie-kanalov-05-27
1👍1
SSTP на MikroTik для удаленных сотрудников

В этой статье я опишу настройку роутера MikroTik в качестве SSTP сервера для подключения удаленных сотрудников.

Очень часто у сотрудников, которым нужно работать из дома, на домашнем компьютере стоит Windows. Эта система, начиная с версии Vista, поддерживает SSTP без установки дополнительных программ.

Дополнительные преимущества SSTP:

- Удалённый сотрудник может иметь динамический IP и работать за NAT-ом.
- SSTP по умолчанию использует 443 порт, а для установки соединения использует протокол HTTPS.
- SSTP может работать используя протоколы IPv4 и IPv6.
- Роутеры MikroTik поддерживают SSTP.

https://telegra.ph/SSTP-na-MikroTik-dlya-udalennyh-sotrudnikov-05-11
2
This media is not supported in your browser
VIEW IN TELEGRAM
📌 Объяснение протокола Kerberos
👍21
Bash-скрипт для выполнения дампа всех баз данных MySQL, используемых на сервере.

1- Для запуска скрипта необходимо дать права на исполнение скрипту командой chmod +x dump_all_databases.sh.
2- Запустить скрипт выполнив одну из следующих команд:
./dump_all_databases.sh
sh dump_all_databases.sh
bash dump_all_databases.sh


3- Дождататься, когда выполниться процесс. Дампы будут сохранены в формате YYYYMMDD.name_db.sql.


#!/usr/bin/env bash

databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
2
Шпаргалка: ncdu -удобный анализатор диска в консоли

ncdu (NCurses Disk Usage) — утилита для быстрого поиска, что съедает место на сервере. Удобнее и нагляднее, чем du.

📌 Установка


# Debian/Ubuntu
apt install ncdu

# CentOS/RHEL
yum install ncdu

# Arch Linux
pacman -S ncdu


📌 Основные команды

ncdu — запустить в текущем каталоге.
ncdu /var/log — просканировать конкретный путь.
ncdu -x / — анализ только внутри одного раздела.
ncdu -q — тихий режим (ускоренный скан).
ncdu --exclude '*.log' — исключить файлы по маске.

📌 Навигация

↑ / ↓ — перемещение по списку.
Enter — открыть каталог.
d — удалить файл/каталог прямо из интерфейса.
n — сортировка по имени.
s — сортировка по размеру.
q — выход.

📌 Лайфхаки

Запуск из / с -x помогает быстро найти, что забило корневой раздел.
Можно очищать мусор без выхода из ncdu — удобно для аварийного освобождения места.
Отлично работает в SSH, даже на слабых серверах.

https://timeweb.cloud/docs/unix-guides/troubleshooting-unix/disk-space-analysis-ncdu-du
👍21
Принцип работы HTTPS
1