Системный Администратор (Сисадмин)
13.9K subscribers
1.7K photos
1.55K videos
87 files
1.73K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Погрузитесь в мир 🐳 DevOps и станьте devops-инженером за рекордные 4 месяца с курсом от Merion Academy!

Все, кому интересно, получат 🚀 2 бесплатных урока, где расскажут, кто такой DevOps-инженер, какие инструменты использует, куда и как развивает карьеру. Познакомитесь с Docker и контейнирезацией и закрепите знания.

🎁 Бонус – интенсив по развитию карьеры, где HR-эксперты расскажут как создавать сильные резюме и проходить собеседования.
📜 Плюс гайд по командам Docker.

🕺У ребят одна из самых доступных цен, которая в разы ниже, чем в других онлайн-школах, а еще есть рассрочка для тех, кто хочет учиться сейчас и платить по чуть-чуть ежемесячно.

👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.

Merion Academy – это экосистема доступного образования, которая включает в себя:

📍IT-базу знаний с полезными статьями.
📍Youtube-канал ,где простыми словами говорят о сложных вещах.
📍 IT-академию, где обучат востребованным направлениям по самым доступным ценам.
👍3👎1
Полезные советы для написания bash скриптов в Linux

Всегда используйте комментарии в скриптах
Комментарии начинаются со знака решетки — #.

Настраивайте завершение выполнения скрипта при ошибке
Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды.
Можно использовать следующую команду для выхода из скрипта в случае ошибке:
# let script exit if a command fails
set -o errexit
# OR
set -e
ls -xyz # command with error
echo "you will not see this message"

Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной
Также bash может попытаться использовать переменную, не объявленную ранее в коде сценария. Чтобы bash завершал выполнение скрипта в такой ситуации — добавьте в код следующую команду:
#let script exit if an unsed variable is used
set -o nounset
# OR
set -u
echo $ThisVariableAreNotDefined
echo "you will not see this message"

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

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

Используйте знак = для сравнения строк
Во многих популярных языках программирования сравнение на равенство проверяется двойным знаком «равно» ==. Однако в сценариях командной строки Линукс для этого используется одинарное равно =.

Используйте знак $ вместо знаков “
Существует несколько способов подстановки команд. Вы можете использовать обратные апострофы command для заключения команды в них, либо же использовать конструкцию $(command). На сегодняшний день рекомендуется использовать именно второй вариант с использованием $, что подтверждается рекомендациями shellcheck, инструментом для анализа кода скриптов. Например:
user=`echo “qwerty” `
user1=$(echo “abcde”)

Объявляйте статические переменные с опцией readonly
Статическая переменная — это переменная, которая не меняется. Встроенная команда readonly используется для пометки переменных, доступных только для чтения (то есть — неизменяемых). Это подразумевает, что изменить ее в будущем уже будет нельзя.

Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных
Все переменные среды bash, такие как HOSTNAME, BASH, GROUPS и другие — следует писать заглавными буквами. Тогда как для именования пользовательских переменных лучше использовать строчные буквы. В коде большого скрипта при использовании множества различных переменных высок риск назвать некоторые из них одинаково, что может привести к неожиданным или даже критическим ошибка.

Выполняйте отладку скриптов

👉 @sysadminof
👍7
Как настроить сеть в Ubuntu: пошаговая инструкция

Как только вы установили операционную систему, нужно подключить компьютер или сервер к интернету. В Ubuntu настройки сети нужно задавать самостоятельно. Пользователи, которые делают это впервые, часто сталкиваются с трудностями. В этой статье мы рассмотрим несколько способов подключения и основные параметры.

https://telegra.ph/Kak-nastroit-set-v-Ubuntu-poshagovaya-instrukciya-09-13

👉 @sysadminof
5👍4
ssh — sshfs монтирование шары

SSHFS - монтирование файловых систем средствами ssh
apt-get install sshfs - установка
mkdir /mnt/docs - создаем папку для монтирования
sshfs user@server.com:/var/docs /mnt/docs - монтируем фс используя sshfs
fusermount -u /var/docs - демонтируем удаленную папку

монтирование шары sshfs /etc/fstab:
ИМЯ@ИП:/REMOTE/DIR /LOCAL/MOUNT fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/ИМЯ/.ssh/id_rsa,allow_other,default_permissions,uid=ИД,gid=ИД 0 0


sshfs для windows:
Dokan SSHFS - монтирование удаленного сетевого хранилища при помощи ssh для Windows
https://github.com/dokan-dev/dokany/releases/tag/v1.1.0.2000

sshfs — монтирование удаленной папки подробней:

Fuse - это модуль ядра (недавно он был принят в официальную ветку 2.6), позволяющий непривилегированным пользователям монтировать различные файловые системы.
Sshfs - это программа, созданная самим автором fuse, которая позволяет монтировать удаленные папки или файловые системы, используя ssh.
Суть проста - удаленная папка монтируются в папку локальной файловой системы.
После этого все операции над этой папкой производятся, как если бы это была обычная локальная папка, с той только разницей, что файлы перемещаются через ssh в фоновом режиме.
После установки программы остается только добавить пользователя, которому мы хотим предоставить право на монтирование файловых систем через ssh, в группу fuse

# usermod -G -a fuse user1
или
# adduser user1 fuse
или вручную отредактировав файл /etc/group.

Также необходимо, чтобы был загружен модуль fuse:
# modprobe fuse
Если мы планируем использовать fuse и sshfs регулярно, то нужно добавить fuse в файл /etc/modules.

sshfs user1@remote_server:/tmp ~/remote_folder - смонтировать удаленную папку с помощью sshfs
fusermount -u ~/remote_folder - мы можем отмантировать ее

Если мы постоянно работаем с этой папкой, то можно добавить ее в таблицу /etc/fstab.
При этом она будет автоматически монтироваться при загрузки системы,
/tmp /home/user1/remote_folder/ fuse defaults,auto 0 0

👉 @sysadminof
👍81
Cron — лучшие практики

Планировщик задач cron(8) существует с 7 версии Unix, а его синтаксис crontab(5) знаком даже тем, кто нечасто сталкивается с системным администрированием Unix. Это стандартизированный, довольно гибкий, простой в настройке и надёжно работающий планировщик, которому пользователи и системные пакеты доверяют управление важными задачами. Материалом о лучших практиках работы с cron делимся к старту курса по Fullstack-разработке на Python.

Rus https://habr.com/ru/companies/skillfactory/articles/656423/

Original https://blog.sanctum.geek.nz/cron-best-practices/

👉 @sysadminof
👍5
Выставление/изменение полномочий на файлы \ chmod \ chown \

ls -lh - просмотр полномочий на файлы и директории в текущей директории

chmod go-rwx directory1 - отобрать у группы и всех остальных все полномочия на директорию directory1.
chown user1 file1 - назначить владельцем файла file1 пользователя user1
chown -R user1 directory1 - назначить рекурсивно владельцем директории directory1 пользователя user1
chgrp group1 file1 - сменить группу-владельца файла file1 на group1
chown user1:group1 file1 - сменить владельца и группу владельца файла file1

find / -perm -u+s - найти, начиная от корня, все файлы с выставленным SUID

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.
chmod o+t /home/public - назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
chmod o-t /home/public - снять STIKY-бит с директории /home/public

👉 @sysadminof
👍1
Подборка облачных хранилищ и файлообменников

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

https://bookflow.ru/podborka-oblachnyh-hranilishh-i-fajloobmennikov/

👉 @sysadminof
👍2
Очистка системы \ временные файлы \ кеш обновлений \

!!! Будь осторожен можно сломать дистрибутив
sudo apt-get autoremove -y - удаление не нужных файлов после установки ПО
sudo apt-get autoclean -y - удалить скачанные файлы архивов
sudo apt-get clean -y - удалить старые скачанные файлы архивов
sudo apt-get install -f -y - решение проблем с установкой по

👉 @sysadminof
👍7
Авторизация на базе ключей SSH

Рассматриваем процесс настройки SSH-авторизации по ключу и разбираем некоторые ошибки.

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

https://telegra.ph/Avtorizaciya-na-baze-klyuchej-SSH-09-17

👉 @sysadminof
👍7
linuxcourse.pdf
227.6 KB
Подробный справочник команд Linux (основан на CentOS)

👉 @sysadminof
👍6
USERS \ GROUP \ ПОЛЬЗОВАТЕЛИ \ ГРУППЫ \ ПРАВА

chattr +a file1 - позволить открывать файл на запись только в режиме добавления
chattr +c file1 - позволяет ядру автоматически сжимать/разжимать содержимое файла.
chattr +d file1 - указывает утилите dump игнорировать данный файл во время выполнения backup'а
chattr +i file1 - делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
chattr +s file1 - позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращает возможность восстановления данных.
chattr +S file1 - указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
chattr +u file1 - данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
lsattr - показать атрибуты файлов

👉 @sysadminof
👍6
Linux

​Настройка DoubleVPN-OpenVPN серверов на Ubuntu 17.10/14.04
Fail2ban для защиты от брута всего что есть на сервере Linux Debian 9.1
Универсальный прокси сервер Shadowsock на Debian 9.1 🛠 Установка, настройка на все платформы.
Настройка firewall iptables на linux это не сложно. Linux Tutorial.

Автор: Иван Глазков

👉 @sysadminof
👍6🔥3
Поиск rootkit / руткитов

apt-get install rkhunter - ставим прогу для поиска руткитов
rkhunter -c --sk - запуск поиска
rkhunter --update - апгрейд базы
apt-get install tiger - ставим еще одну прогу для поиска руткитов
tiger - запуск проверки
apt-get install lynis - ставим еще одну прогу для поиска руткитов
lynis -c - запуск проверки

Взломщики, которым успешно удалось проникнуть в систему,
часто заменяют некоторые системные бинарные файлы (например, Is или ps)
поврежденными версиями и делают их не отключаемыми.
Поэтому полезно иногда проверять атрибуты,
назначенные исполняемым файлам (например, в каталогах /bin, /usr/bin, /sbin и /usr/sbin).

👉 @sysadminof
👍10
cisco \ tool \ команды

enable - включили привилегированный режим
? - помощь
? - доступные команды и возможные значения
буква? - помощь
команда ? - помощь
команда параметр ? - помощь
enable - включить привилегированный режим
disable - выход из привилегированного режима
show running config - показать конфигурацию (Используй пробел для построчного просмотра) (команда не доступна в режиме глобальной настройки)
show version - показать версию IOS \ железо
exit - выход из режимов
config termianl - режим глобальной настройки (в принципе настройка всего)
config t - режим глобальной настройки (в прицепи настройка всего)
hostname host_name - задать сетевое имя
do show run - показать конфигурацию (сработает в режиме глобальной настройки)
write memory - сохранить конфигурацию
end - выйти из всех режимов
show vlan - подробно о vlan
show vlan brief - более подробно о vlan
mac address-table - показать таблицу mac адресов
show ip ospf neighbor - показать обнаруженные ospf
show ip route - показать маршруты ( маршруты с буков "O" прописались с помощью ospf)
show etherchannel - посмотреть состояние etherchanel
show etherchannel summary - посмотреть состояние etherchanel

👉 @sysadminof
👍51
Сброс пароля Reset Password Unix, FreeBSD, Linux, Debian, ASP linux

Основой способ для любых unix:
!!! получится если системный раздел не зашифрован
0. Загружаемся с livecd
Например: debian live cd, ubuntu live, systemrescue и т.д.
https://www.system-rescue.org/

1. После загрузки определяемся с дисками
fdisk -l
lsblk


2. Монтируем раздел системы
mount /dev/sda1 /mnt

3. Выполняем смену корня
chroot /mnt

4. Выполняем смену пароля
passwd user

5. Выходим chroot и загружаемся в систему
Ctrl+d
reboot


Больше способов https://bookflow.ru/sbros-parolya-reset-password-unix-freebsd-linux-debian-asp-linux/

👉 @sysadminof
👍8
Простое пособие по сетевой модели OSI для начинающих

Открытая сетевая модель OSI (Open Systems Interconnection model) состоит из семи уровней. Что это за уровни, как устроена модель и какова ее роль при построении сетей — в статье.

Модель OSI является эталонной. Эталонная она потому, что полное название модели выглядит как «Basic Reference Model Open Systems Interconnection model», где Basic Reference Model означает «эталонная модель». Вначале рассмотрим общую информацию, а потом перейдем к частным аспектам.

https://telegra.ph/Prostoe-posobie-po-setevoj-modeli-OSI-dlya-nachinayushchih-03-23

👉 @sysadminof
👍6
Как за 3 простых шага создать свой VPN и прокси-сервер

Простая видеоинструкция по установке OpenVPN на Ubuntu. С помощью простой копипасты команд (ctrl+c и ctrl+v) вы получите свой собственный VPN и сможете поделиться им со своими друзьями и родственниками.

Чтобы сделать из VPN-сервера прокси-сервер, отключите в настройках сервера шифрование.

https://www.youtube.com/watch?v=TGUkp5Z3d7o

👉 @sysadminof
👍2