Монтирование 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






Недавно при включении компьютера, 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



установка dokuwiki centos php nginx часть 2

посмотреть часть 1

Установка CentOS


https://www.tecmint.com/things-to-do-after-minimal-rhel-centos-7-installation/

https://sys-adm.in/os/nix/669-ustanovka-centos-7.html
https://www.if-not-true-then-false.com/2014/centos-7-netinstall-guide/
https://wiki.centos.org/HowTos/PXE/PXE_Setup
https://centos.name/?page/howto/PXE-Setup
http://wikiadmin.net/boot-pxe-install-or-live-on-centos7/
Настройка сервера сетевой установки на базе CentOS
Инструкция по установке с EFI

записать на флешку, софт для записи, ошибки при установке

Установка в текстовом режиме
Когда увидите пункт install centos меню, нажать клавишу табуляции, добавить text в конец всех существующих параметров командной строки установщика, а затем нажать клавишу enter.

Дистрибутив
https://mirror.yandex.ru/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-NetInstall-1804.iso
http://isoredirect.centos.org/centos/7/isos/x86_64/

в качестве репозитория при установке добавить
https://mirror.yandex.ru/centos/7/os/x86_64/
http://mirror.centos.org/centos/7/os/x86_64/

Автоматическая установка
https://www.tecmint.com/multiple-centos-installations-using-kickstart/
Kickstart или Автоматическая установка CentOS Linux
https://github.com/m0zgen/centos-kickstart-image-generator

Установщик CentOS автоматически создает файл /root/anaconda-ks.cfg, который содержит абсолютно всю информацию о выбранных пакетах и настройках установки текущей ОС. Это позволяет производить автоматическую установку системы
https://nixadmin.ru/centos_pxe_kickstart
/usr/sbin/system-config-kickstart

пример конфига



если интернет по DHCP, то
network --bootproto=dhcp --device=eth0 --noipv6 --activate
network --hostname=centos-test

если шина диска hda, sata, scsi, то
clearpart --all --initlabel --drives=sda

инсталяционные источники
http://mirror.centos.org/centos/7/os/x86_64/
http://mirror.centos.org/centos/8/BaseOS/x86_64/os/

установка с kickstart
Указать файл можно вручную, на этапе отображения загрузочного меню установочного диска, нажать Esc в терминале ввести:
linux inst.ks=<путь к файлу kickstart>
Например:
linux inst.ks=cdrom:/dev/cdrom:/ks.cfg

Распаковка ISO образа
mount /home/User/Downloads/iso/CentOS-7-x86_64-Minimal-1611.iso /mnt/iso/
mkdir /tmp/centos_custom/
cp -rp /mnt/iso/* /tmp/centos_custom/

Добавление kickstart файла в образ
копируем наш kickstart файл в корень папки centos_custom, указываем ему название ks.cfg, после добавляем пункт загрузочного меню изменив файл isolinux/isolinux.cfg, добавив в него следующие строки:
label auto 
  menu label ^Auto install CentOS Linux 7 
  kernel vmlinuz
  append initrd=initrd.img inst.ks=cdrom:/dev/cdrom:/ks.cfg

Строки необходимо вставить в секцию, где расположены label по умолчанию, например сразу перед строками раздела:

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet

Можно также добавить текстовую загрузку:

label text
  menu label ^Text install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet text


Создание ISO из папки образа
cd /tmp/centos_custom


Kickstart можно использовать с обыкновенной флешкой. Для этого нужно скопировать anaconda-ks.cfg с уже установленной системы, предварительно смонтировав флешку,

root@server01 [~]# mount /dev/sdc1 /media
root@server01 [~]# cp /root/anaconda-ks.cfg /media/ks.cfg
и запустить установку CentOS с такими опциями :

linux ks=hd:sdc1:/ks.cfg


Ошибки при установке
"/sbin/dmsquash-live-root: line 273: write error: No space left on device"
У установок Kickstart RHEL 7 и выше требуется не менее 2 ГБ памяти, назначенных машине.

Генерация пароля
https://thornelabs.net/2014/02/03/hash-roots-password-in-rhel-and-centos-kickstart-profiles.html
openssl passwd -1 "my_password"
mkpasswd -m sha-512
echo "my_password" | md5sum
echo "my_password" | sha512sum

Работа с пакетами
поиск пакета по файлу
yum whatprovides "*/grub-crypt"
yum search netstat
repoquery -qf */netstat */lsof */nmap

очистка кеша и переиндексация репозиториев (в случае ошибки)
yum clean all

установка нужных пакетов
Yum, шпаргалка
EPEL Repo на CentOS 7/6 — Инструкция по Установке
yum install epel-release

yum install mc ncdu nano curl wget pciutils netstat net-tools

Базовая настройка CentOS 7
Настройка сети в CentOS 7
uzverss работа с сетевыми интерфейсами

создание пользователей
adduser username
passwd username
gpasswd -a username wheel # добавить в группу
gpasswd -d username wheel # удалить из группы
userdel username
userdel -r username # удалит пользователя с каталогом
sudo lid -g wheel

глянуть пользователей
cat /etc/passwd | awk /bash/{print}


коротко об systemd

удаление старых ядер
http://pyatilistnik.org/kak-udalit-staryie-yadra-centos-7-za-minutu/

rpm -q kernel
uname -a
yum -y install yum-utils

сделаем, так чтобы CentOS 7, оставлял только 2 или 3 ядра, а все остальное затирал
package-cleanup --oldkernels --count=2

Теперь сделаем, чтобы система сама, автоматически это делала и проводила ревизию
vi /etc/yum.conf
installonly_limit=3

удалить вручную
yum remove имя ядра


Синхронизация времени
https://itdraft.ru/2018/12/20/sinhronizacija-vremeni-v-centos-7/
http://fliplinux.com/centos-x44.html

По-умолчанию в Centos 7 minimal синхронизация времени не настроена
yum install chrony

Для изменения серверов синхронизации времени надо отредактировать файл
nano /etc/chrony.conf

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

Запускаем сервис и добавляем его в автозагрузку
systemctl start chronyd
systemctl enable chronyd

Смотрим статус
chronyc sources

Проверяем, активировалась ли синхронизация
timedatectl

ручная настройка
date +%T -s "17:34:55"

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

Alt + SysRq + B. Равнозначно нажатию кнопки Reset. Нежелательно, ибо высока вероятность потерять несохранённые данные.
Alt + SysRq + O. Выключает систему корректным образом.
Alt + SysRq + S. Синхронизует систему. Если выполнить перед первой командой, то можно не бояться за данные.
Alt + SysRq + K. Перезагружвет графическую оболочку. Выполнять, если всё зависло и не отвечает.
Alt + SysRq + R. Если не хочешь перезагружать иксы, отвиснет твою мышку и клавиатуру.
Alt + SysRq + H. Выводит вышеуказанные и все прочие доступные команды.


убрать заставку при загрузке grub
http://centosquestions.com/turn-off-progress-bar-centos-boot/

vi /etc/default/grub
Удалите rhgb quiet из этой записи
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

изменить на
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap"

после внесения этих изменений вам нужно переконфигурировать grub2
grub2-mkconfig -o /etc/grub2.cfg



Настройка русской локализации utf-8 в CentOS (старое)
Настройка русской локализации utf-8 в CentOS
Базовая настройка CentOS 7
locale -a | grep ru
нет русской локали то ее необходимо сделать. Команда для этого выглядит так:
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8

файлы находящиеся в папке /usr/share/i18n/ принадлежат glibc-common-2.x.x и если вы их не наблюдаете там, то необходимо разбираться с самим glibc-common

touch /etc/sysconfig/i18n
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

запись в /etc/environment перебивает этот файл, т.е. если там есть LANG="en_US.UTF-8" то в /etc/sysconfig/i18n можно писать что угодно

если пустой /usr/share/i18n/locales/ и выдаёт ошибку
haracter map file `UTF-8' not found: No such file or directory
cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory

yum -y install glibc-locale-source glibc-langpack-en
localedef -f UTF-8 -i en_US en_US.UTF-8

настройка раскладки и локали
system-config-language
system-config-keyboard

/etc/vconsole.conf
KEYTABLE="ru"
MODEL="pc105"
LAYOUT="us,ru"
VARIANT="intl"
OPTIONS="grp:alt_shift_toggle,grp_led:scroll"


https://wiki.centos.org/EdHeron/EditorDefaultNano
для удобства работы настраиваем nano и делаем редактором по умолчанию



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



Проверим используемый в данный момент редактор по умолчанию:
echo $EDITOR

Установим nano редактором по умолчанию
export EDITOR=nano

Установка и Настройка OpenSSH-сервера


http://redhat-club.org/2011/установка-и-настройка-openssh-сервера-в-rhel-centos-fedora

yum install openssh-server

chkconfig sshd on
chkconfig --level 2345 sshd on
sudo systemctl reload sshd.service

systemctl restart sshd

Настройки SSH-сервера хранятся в файле /etc/ssh/sshd_config

далееНаиболее важные опции с точки зрения безопасности:

Port 22 – Порт по умолчанию.
Protocol 2,1 – Какая реализация протокола SSH будет использоваться. Рекомендую оставить только 2.
ListenAddress – По умолчанию SSH сервер прослушивает все доступные интерфейсы, что абсолютно не нужно в большинстве ситуаций. Необходимо прописать сетевой интерфейс, с которого будет осуществляться управление сервером.
PermitRootLogin yes – По умолчанию разрешает входить по SSH суперпользователю root. Необходимо указать no.
AllowUsers adminsys – Данный параметр разрешает входить по SSH только перечисленным пользователям.
AllowGroups wheel – Группа пользователей которой можно входить по SSH, опцию можно не использовать если указана опция AllowUsers.
DenyUsers baduser – Данная опция запрещает вход по SSH перечисленным пользователям.
DenyGroups badgroup – Данная опция запрещает вход по SSH перечисленным группам пользователей.
MaxAuthTries 3 – Сколько раз переспрашивать пароль при неверном вводе. В данном случае SSH-сервер после 3 неверных попыток разорвет соединение с клиентом.
LoginGraceTime 60 – Через сколько секунд разрывать соединение при отсутствии аутентификации со стороны клиента.
PermitEmptyPasswords no – Разрешать использовать пустые пароли. По вполне понятным причинам значение этого параметра no.
PrintLastLog yes – при входе пользователя в систему по SSH ему будет показано когда и откуда последний раз был произведен вход под данным пользователем.
LogLevel INFO – В качестве параметра этой опции необходимо указать уровень журналирования. Возможные значения QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2, DEBUG3. Чем выше уровень журналирования, тем больше информации появится в файле регистрации событий.
SyslogFacility AUTHPRIV – Куда будут попадать логи. Возможные значения: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
Посмотреть в каком файле окажется логируемая информация можно посмотрев опции syslogd в файле /etc/syslog.conf.


ошибки при подключении по ssh


Устанавливаем статический 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

Сменить имя и группу пользователя
Изменить только имя пользователя:
usermod --login new_username old_username

Чтобы изменить имя пользователя и имя домашнего каталога:
usermod --login new_username --move-home --home /home/dir_old_username old_username

Вы также можете изменить имя группы, связанной с пользователем:
groupmod --new-name new_username old_username

коротко:
usermod -l new_user -m -d /home/old_user old_user
groupmod -n new_user old_user


Ввод Linux в домен (инструкция от Eset)

SAMBA
Статический ip и gateway задается следующей командой, где «ens192» это имя сетевого адаптера
nmcli connection modify "ens192" ipv4.addresses "192.168.1.100/24 192.168.1.1"

Настройка FQDN
hostnamectl set-hostname ls01.fqdn.com

Перезагружаем службу имен
systemctl restart systemd-hostnamed

Проверить результат можно следующими командами
hostnamectl status
hostname
hostname -s
hostname -f

SELINUX
На данном этапе службу SELINUX необходимо отключить, проверить статус службы SELINUX можно командой
sestatus

Измените значение SELINUX в файле /etc/selinux/config на SELINUX=disabled затем перезагрузите сервер.
reboot

SAMBA
Установка
yum install samba

Добавление службы в автоматический запуск
chkconfig smb on

Запуск службы и проверка состояния
service smb start
smbstatus

firewallD
По умолчанию CentOS 7 использует брандмауэр firewallD, состояние службы можно узнать командой

firewall-cmd --state

Для получения списка правил и сервисов используйте
firewall-cmd --list-all
firewall-cmd --list-services

Общий ресурс с анонимным доступом
Создаем папку для ресурса /samba/guest
mkdir /samba
mkdir /samba/guest

Меняем владельца и назначаем права
chown nobody:nobody /samba/guest
chmod 777 /samba/guest

Редактируем файл конфигурации SAMBA /etc/samba/smb.conf
nano /etc/samba/smb.conf

Меняем содержание строк оригинального файла на следующее



min protocol = NT1 выставить если есть windows XP и нет win10
если есть win 10 то https://support.microsoft.com/ru-ru/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and

Проверка параметров и перезагрузка службы
testparm
service smb restart
smbstatus

запускаем SELINUX


особенности установки Oracle linux
wget -c http://mirrors.kernel.org/oracle/OL7/u6/x86_64/x86_64-boot-uek.iso
при установке указать репозиторий
yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/

список зеркал для загрузки
https://community.oracle.com/docs/DOC-917963
список реп
http://yum.oracle.com/oracle-linux-7.html

Подключение публичного Yum-репозитория для Oracle Enterprise Linux
https://stan1slav.blogspot.com/2010/08/yum-oracle-enterprise-linux.html
cd /etc/yum.repos.d
mv oracle-linux-ol7.repo oracle-linux-ol7.repo.disabled
wget http://public-yum.oracle.com/public-yum-ol7.repo
Изменить в файле описания репозитариев (public-yum-el*.repo) enabled=0 на enabled=1 для необходимых секций.

если нужно поставить MySQL
wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
rpm -Uvh mysql80-community-release-el7-2.noarch.rpm

установка инструмента разработчиков MySQL Workbench
yum install mysql-workbench-community

Увеличение LVM диска
Правильное увеличение размера диска в виртуальной машине
Увеличение LVM диска в виртуальной машине на лету
https://www.gotoadm.ru/resize-disk-lvm-on-linux-centos/
lvextend и lvreduce изменяют размер логического тома. опция -r
resize2fs работает с файловыми системами ext2/3/4 и должен использоваться после того, как один из них выпустил lvextend
команда resize2fs ПОСЛЕ расширения или ПРЕЖДЕ ЧЕМ уменьшить логические экстенты, назначенные данному логическому тому
df -h
parted /dev/sda
print
resizepart 2
resizepart 3
quit
pvs
lvscan
lvdisplay
vgs
pvresize /dev/sda3
lvextend /dev/test-srv-vg/root -l +100%FREE

pvdisplay -Cv
vgscan
vgchange -ay
resize2fs /dev/test-srv-vg/root

fsck -f /dev/mapper/test--srv--vg-root (если не смонтирована)
fdisk -l /dev/sda


Ставит LEMP



https://www.hostinger.com/tutorials/how-to-install-lemp-centos7
https://www.cloudjojo.com/how-to-install-nginx-mariadb-php-lemp-on-centos-7/
https://serveradmin.ru/ustanovka-i-nastroyka-nginx-php-fpm-php7-1-na-centos-7/

1) установка nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx

2) установка MySQL (MariaDB)
yum install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
MariaDB запросит пароль root, так как это первоначальная установка, и у вас его нет, поэтому просто нажмите enter. Следующее приглашение спросит, хотите ли вы установить пароль root, введите Y и следуйте инструкциям

3) установка PHP v7.3
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
yum --enablerepo=remi,remi-php73 install php-fpm php-common



обновить php
yum-config-manager --disable remi-php73
yum-config-manager --enable remi-php74
yum update -y

4) настройка связки nginx + php
/etc/nginx/conf.d - каталог для запуска конфигураций, сюда добавляем символические ссылки
например: ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
/etc/nginx/virt_host - папка для хранения файлов конфигураций хостов (можно обозвать по другому)

в дебиановых
sites-available
каталог для хранения файлов хостов
sites-enabled
каталог, предоставляющий Nginx список хостов, которые нужно обслуживать

Добавление виртуальных хостов на nginx (очень доступно)
https://shneider-host.ru/blog/dobavlenie-virtualnyh-hostov-na-nginx.html
https://www.8host.com/blog/nastrojka-virtualnyx-xostov-nginx-v-centos-7/
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-on-centos-7
NGINX - создание виртуальных хостов
Один конфиг Nginx для работы с кучей разных сайтов
Динамические виртуальные хосты (dynamic vhost) в nginx
Настройка NGINX для поддержки одного и нескольких сайтов WordPress
Несколько сайтов на nginx, один IP-адрес


mkdir /etc/nginx/virt_host
nano /etc/nginx/virt_host/default_php.conf



netstat -tulpn | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 9084/php-fpm: maste

nano /etc/php-fpm.d/www.conf
Найдите и измените эти строки:

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

5) проверяем
ln -s /etc/nginx/virt_host/default_php.conf /etc/nginx/conf.d/
nginx -t
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl restart php-fpm nginx

https://nginxconfig.io/
https://www.nginx.com/resources/wiki/start/
https://docs.joomla.org/Nginx
https://www.nginx.com/resources/wiki/start/topics/recipes/yii/
https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
https://wordpress.org/support/article/create-a-network/
Настройка nginx для работы с сертификатами ГОСТ 2012 года


NGINX Unit
http://unit.nginx.org/
https://github.com/nginx/unit
http://hg.nginx.org/unit
https://hub.docker.com/r/nginx/unit/
https://github.com/miholeus/nginx-unit-python

Remi's RPM repository PHP with the NGINX unit application server

1. Official repository installation


2. Remi repository installation


3. Server and modules installation


4. Test configuration
4.1 Preparation
curl -O https://blog.remirepo.net/public/unit.config


4.2 Run the service:
# systemctl start unit

4.3 Configuration
Configuration is managed through a REST API:

# curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config

And to check running configuration:
# curl --unix-socket /var/run/unit/control.sock http://localhost/config

5 Usage
You can access the application on each new port:

http://localhost:8300/ for default PHP
http://localhost:8356/ for PHP version 5.6
http://localhost:8372/ for PHP version 7.2
etc


https://unit.nginx.org/configuration/
Nginx Unit Веб. Мысли вслух
Установка NGINX + PHP7 последних версий
Nginx Unit + Django + Virtualenv - Конфигурация
Установка WordPress с модулем NGINX
Installing WordPress with NGINX Unit - NGINX
HOW TO INSTALL NGINX UNIT ON LINUX
NGINX Unit – Application Server from Nginx
Nginx Unit + Bitrix настройка
Настройка NGINX Unit под PHP


Разные CMS

Настройка брадмаузера


Установка dokuwiki


https://computingforgeeks.com/install-dokuwiki-behind-nginx-and-letsencrypt-on-linux/
https://www.dokuwiki.org/install:centos

https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
export ARCHIVE="dokuwiki-stable"
tar xvf ${ARCHIVE}.tgz
sudo mkdir -p /var/www/html/
export RELEASE="2018-04-22a"
sudo mv dokuwiki-${RELEASE} /var/www/html/dokuwiki
sudo chown -R nginx:nginx /var/www/html/dokuwiki/
chmod -R 755 /var/www/html/dokuwiki/

nano /etc/nginx/virt_host/dokuwiki.conf



ln -s /etc/nginx/virt_host/dokuwiki.conf /etc/nginx/conf.d/
проверим
nginx -t
sudo systemctl restart php-fpm nginx

ошибки при установке и настройке dokuwiki
вся ценная информация находится в папке dokuwiki/data/pages бекапировать нужно её

за авторизацию отвечают
/dokuwiki/conf/
acl.auth.php
local.php
users.auth.php

если при доменной аудентификации пишет No ACL setup yet! Denying access to everyone.
то в файле local.php добавить вывод ошибок
$conf['plugin']['authad']['debug'] = 1;

скорее всего не установлен php-ldap
yum install php-ldap
systemctl restart php-fpm nginx

сброс авторизации можно сделать при помощи файла install.php


Возня с SELinux


Включение и Отключение SELinux

Системы защиты Linux, подробно о SELinux

sestatus
setenforce 0 # выключить selinux
setenforce 1 # включить selinux
nano /etc/selinux/config
SELINUX=permissive

Если не обнаружено сообщений о запретах в /var/log/messages, то
SELINUX=enforcing

возня с MySQL
Как cбросить пароль пользователя root в MySQL
https://andreyex.ru/operacionnaya-sistema-linux/nastrojka-linux/kak-cbrosit-parol-polzovatelya-root-v-mysql/

1.Войдите как root через SSH и остановитt сервер MySQL.

debian-ubuntu# /etc/init.d/mysql stop
centos-fedora# /etc/init.d/mysqld stop

2. Запустите сервер MySQL с опцией “skip-grant-tables”.

# mysqld_safe --skip-grant-tables &

Это отключит проверку подлинности MySQL и запустить процесс в фоновом режиме.

3. Войдите в MySQL как root.

# mysql -u root mysql

4. Сбросьте пароль MySQL.

UPDATE user SET Password=PASSWORD('NEW_YOUR_PASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
exit;

Заменить "new_your_password" новым паролем!

5. После того, как пароль будет сброшен, запустите сервер MySQL в нормальном режиме.

debian-ubuntu# /etc/init.d/mysql restart
centos-fedora# /etc/init.d/mysqld restart

Теперь вы можете подключиться к MySQL как пользователь root, используя новый пароль.

Введите "mysql -u root -p" в терминале, и введите пароль при появлении соответствующего запроса.

Импорт и экспорт базы данных MySQL
Экспорт БД
Чтобы экспортировать базу данных, откройте терминал, убедитесь, что вы не вошли в MySQL

mysqldump -u [username] -p [database name] > [database name].sql

База данных, которая выбрана в команде теперь будет экспортированы.

Импорт БД
Чтобы импортировать базу данных, необходимо сначала создать новую пустую базу данных в оболочке
MySQL, чтобы служить в качестве места для ваших данных.

CREATE DATABASE newdatabase;

Затем выйдите из оболочки MySQL и введите следующую команду в командной строке:
mysql -u [username] -p newdatabase < [database name].sql

При этом выбранная база данных будет импортирована в целевую базу данных в MySQL.

Перестал реплицироваться сервер MySQL


возня с nginx
ps auZ | grep nginx
grep nginx /var/log/audit/audit.log | audit2allow -M nginx
getsebool -a | grep -i http
semanage fcontext -l | grep nginx

chcon -R -t httpd_sys_content_t /web/ # временно разрешить запись в web

https://p0vidl0.info/nginx-i-selinux-pri-obnovlenii-do-rhel-6-6-centos-6-6.html
Добавление контекста httpd_t в список permissive:
# semanage permissive -a httpd_t

Удаление контекста httpd_t из списка permissive:
# semanage permissive -d httpd_t

semanage fcontext -a -t httpd_sys_content_t /www(/.*)?
semanage fcontext --add --type httpd_sys_content_t '/var/www/dokuwiki(/.*)?'

cat /etc/selinux/targeted/contexts/files/


самое простое решение
sudo yum install policycoreutils-python
sudo semanage permissive -a httpd_t

разные мелочи
Adminer аналог phpMyAdmin в одном файле
https://www.adminer.org/

https://phpdocker.io/generator
https://nginxconfig.io
https://github.com/digitalocean/nginxconfig.io



Перенос из KVM в VMware


подошло:
qemu-img convert -f qcow2 centos7-docuwiki.qcow2 -O vmdk centos7-docuwiki.vmdk
qemu-img convert -f raw -O vmdk centos7-docuwiki.raw centos7-docuwiki.vmdk

испробованные варианты
qemu-img convert -f qcow2 myImage.qcow2 -O vmdk myNewImage.vmdk
esxcli system module load -m multiextent
vmkfstools -i myImage.vmdk outputName.vmdk -d thin

qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 SC-1.qcow2 SC-1.vmdk
esxcli system module load -m multiextent
vmkfstools -i myImage.vmdk outputName.vmdk -d thin

не взлетело:
https://client.cloud4y.ru/index.php/knowledgebase/57/-KVM-Xen---VMware---QEMU.html
qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 centos7-docuwiki.qcow2 centos7-docuwiki.vmdk

esxcli system module load -m multiextent
vmkfstools -i centos7-wiki.vmdk centos7_wiki.vmdk -d thin


dokuwiki



https://www.dokuwiki.org/ru:dokuwiki
https://www.dokuwiki.org/ru:install
https://www.dokuwiki.org/install:fedora
https://www.dokuwiki.org/install:nginx

все страницы по умолчанию сохраняются в папке /var/www/html/dokuwiki/data/pages/ при обновлении или восстановлении, после установки нужно заменить эту папку, а также файлы аудентификации, находящиеся тут: /var/www/html/dokuwiki/conf/ acl.auth.php local.php и users.auth.php
а потом заново установить плагины

установка плагинов в dokuwiki
https://www.dokuwiki.org/plugin:addnewpage
https://www.dokuwiki.org/plugin:bookcreator
https://www.dokuwiki.org/plugin:dw2pdf
https://www.dokuwiki.org/plugin:odt
https://www.dokuwiki.org/tips:pdfexport


Install Composer on CentOS 7
# sudo yum -y update
# sudo yum install git zip unzip
# cd /tmp
# sudo curl -sS https://getcomposer.org/installer | php
или
# php -r "readfile('https://getcomposer.org/installer');" | php
# mv composer.phar /usr/local/bin/composer
$ php /usr/local/bin/composer --version

https://github.com/mpdf/mpdf/
composer require mpdf/mpdf

проверить php
php -i | grep php.ini
php -i | grep "Configuration File"

HTML в PDF
Генерируем PDF-файлы в веб-проекте: программа wkhtmltopdf


PS.
после установки dokuwiki удалить файл install.php
(или перенести, он пригодится если слетела авторизация)


Установка xrdp на CentOS 7
установка XRDP, VNC и SSH на Ubuntu и Debian.
разница между DE и WM, а также работа в голых иксах

бекап
lftp - Синхронизация папок по ftp
Как добавить задание в планировщик cron в Linux/UNIX

15 2 * * * /home/пользователь/backup.sh 2>&1 >/dev/null


изменение времени файлов, удаление истории посещения и команд в linux
сброс пароля
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)
Данная методика работает почти на всех ОС линукс.

аварии, ошибки
Восстанавливаем свалившийся в busybox из-за ошибки initramfs Linux
Монтирование LVM томов (CentOS)
Перестал реплицироваться сервер MySQL

не видит сетевую карту
yum install pciutils
lspci -k -nn | grep -i 'ethernet'
lspci | grep Eth видит, а ip a - нет
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum install kmod-e100
reboot

ошибки работы с yum
yum update — multilib Как решить проблему Error: Protected multilib versions
Процесс обновления на aws (sudo yum update) завис из-за нехватки памяти, после этого попытки sudo yum update приводили к сообщению
Помогло:

yum upgrade --setopt=protected_multilib=false --skip-broken

https://www.centos.org/forums/viewtopic.php?t=67121
yum --enablerepo=extras install epel-release
yum install keychecker
keychecker

package-cleanup --dupes Отобразить список дублирующих пакетов
package-cleanup –cleandupes удаление дублирующих пакетов более старой версии

ошибки при обновлении
Пробуем другое зеркало.
http://centos-mirror.rbc.ru/pub/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
error: Failed dependencies:
	epel-release = 7 is needed by remi-release-7.6-2.el7.remi.noarch

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh remi-release-7.rpm


yum clean all
Это очистит все тайники yum, включая кэшированные зеркала ваших репозиториев yum. На следующем запуске появится новый список зеркал.


дополнительно
Веб-сервер на основе Nginx и PHP-FPM
Оптимальная настройка Nginx
Виртуальные хосты в Apache и Nginx

Установка стека LEMP в Ubuntu 18.04
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04
Настройка сервера Linux Nginx, PHP 7, MySQL (LEMP) с поддержкой сертификата Let’s Encrypt в Ubuntu Linux 18.04 Bionic
https://www.digitalocean.com/community/tutorials/nginx-ubuntu-18-04-ru

Настройте Perl-FastCGI на сервере CentOS 7 Nginx

Webmin



sudo rpm --import http://www.webmin.com/jcameron-key.asc
sudo yum install webmin
sudo chkconfig webmin on


Drupal
https://help.ubuntu.ru/wiki/drupal
Перед началом использования создайте для Drupal базу данных с помощью клиента mysql:
mysql -u root -p -e "CREATE DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;"
Также желательно завести отдельного пользователя MySQL, который будет иметь доступ только к созданной базе:
mysql -u root -p
вводим там запросы:





MySQL: Полный список часто используемых и полезных команд
посмотреть всех пользователей
SELECT User, Host FROM mysql.user;
SELECT User, Host, Password, password_expired FROM mysql.user;
увидеть разрешения для пользователя
SHOW GRANTS FOR 'test'@'localhost'
отзыв всех разрешений
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'test'@'localhost'
удалить пользователя test
drop user 'test'@'localhost'
SHOW DATABASES;
удалить базу
DROP DATABASE имя_базы_даных;

«Could not load MODX config file»
/setup/index.php


chown -R www-data:www-data /var/www/

ошибки
Как установить 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



Как установить WordPress на Ubuntu с LEMP (Linux, Nginx, MySQL, PHP)
https://websiteforstudents.com/install-typo3-on-ubuntu-17-04-17-10-with-nginx-mariadb-and-php/
https://docs.joomla.org/Nginx

Расшариваем веб-сайт на localhost в глобальную сеть интернет.
centos docker yii



установка dokuwiki centos php nginx часть 1

посмотреть часть 2

Настройка брадмаузера



https://www.certdepot.net/rhel7-get-started-firewalld/
https://www.8host.com/blog/nastrojka-brandmauera-firewalld-v-centos-7/
https://itproffi.ru/firewalld-ustanovka-i-nastrojka-zony-nat-probros-portov/
Настройка firewalld CentOS 7 с примерами команд
Использование ipset во встроенном брандмауэре CentOS 7

краткий рабочий пример
vpn pptp centos7
установка sams2 centos

firewall-cmd --state
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --list-all
firewall-cmd --get-zones
firewall-cmd --get-services

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=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=external --list-services
firewall-cmd --list-all
systemctl restart firewalld
sudo systemctl enable 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

углубиться в firewall-cmd
http://notes-unix.blogspot.com/2015/06/firewalld.html
Использование firewall-cmd:
... получение списка всех поддерживаемых зон:
# firewall-cmd --get-zones
... получение активных зон
# firewall-cmd --get-active-zones
... задание зоны по умолчанию
# firewall-cmd --set-default-zone=
... добавление интерфейса в зону
# firewall-cmd [--zone=] --add-interface=
... удаление интерфейса из зоны
# firewall-cmd [--zone=] --remove-interface=
... сделать запрос, относится ли интерфейс к зоне
# firewall-cmd [--zone=] --query-interface=
... включение "режима паники", блокирующего весь сетевой трафик
# firewall-cmd --enable-panic
... Отключение "режима паники"
# firewall-cmd --disable-panic

Включение службы/маскарадинга/блока на постоянно:

Эти опции доступны только после перезагрузки или перезапуска. Для того чтобы иметь опции, изменяемые в среде выполнения, и постоянные опции, необходимо обеспечить оба варианта.
Опция --permanent должна быть первой для всех постоянных вызовов
... Пример: включение службы http в зоне public на постоянно
# firewall-cmd --permanent --zone=public --add-service=http
... Пример: Включение порта 443/TCP для https в пределах зоны home на постоянно:
# firewall-cmd --permanent --zone=home --add-port=443/tcp

Включение/Отключение службы в пределах зоны:
... получение списка всех поддерживаемых служб
# firewall-cmd --get-services
... включение службы в пределах зоны
# firewall-cmd [--zone=] --add-service=
... отключение службы для зоны
# firewall-cmd [--zone=] --remove-service=
... сделать запрос, включена ли служба в пределах зоны
# firewall-cmd [--zone=] --query-service=
... включение службы в пределах зоны на постоянно
# firewall-cmd --permanent [--zone=] --add-service=
Включение/Отключения маскарадинга:
... включение маскарадинга в пределах зоны
# firewall-cmd [--zone=] --add-masquerade
... отключение маскарадинга для зоны
# firewall-cmd [--zone=] --remove-masquerade
Включение/Отключения блока ICMP:
... включение блока ICMP в пределах зоны:
# firewall-cmd [--zone=] --add-icmp-block=
... отключение блока ICMP для зоны:
# firewall-cmd [--zone=] --remove-icmp-block=
Включение/Отключение перенаправления или переназначения портов:
... включение перенаправления или переназначения портов в пределах зоны
# firewall-cmd [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=
| :toport=[-]:toaddr=
}
... отключение перенаправления или переназначения портов для зоны
# firewall-cmd [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr=
| :toport=[-]:toaddr=
}

... Пример: Перенаправление ssh на узел 127.0.0.2 в пределах зоны home:
# firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
Запуск/Останов/Перезапуск службы firewalld:
# systemctl stop/start/restart firewalld.service
Если хотите использовать собственные правила статического брандмауэра совместно со службами iptables и ip6tables, установите iptables-services, отключите FirewallD, а также включите iptables и ip6tables:
# yum install iptables-services
# systemctl mask firewalld.service
# systemctl enable iptables.service
# systemctl enable ip6tables.service
Для задействования своих правил статического межсетевого экрана используйте /etc/sysconfig/iptables и /etc/sysconfig/ip6tables.

проверить какие порты открыты:
netstat -nlp
netstat -anp | grep 8080
nmap -sT -O localhost
lsof -i | grep 8080

iptables -L -v -n
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

сохранить:
/usr/libexec/iptables/iptables.init save

Стандартные зоны FirewallD:

Drop - неизменяемая зона
Все входящие сетевые пакеты сбрасываются, ответ на них недопустим. Возможны только исходящие сетевые соединения.
Block - неизменяемая зона
Все входящие сетевые соединения отклоняются с сообщениями icmp-host-prohibited (для IPv4) и
icmp6-adm-prohibited (для IPv6). Возможны только инициированные в рамках данной системы сетевые соединения.
Trusted - неизменяемая зона
Разрешены все сетевые соединения.
Public
Разрешены лишь отдельные входящие соединения. Остальные компьютеры сети считаются ненадёжными.
Предназначено для использования в общественных местах.
External
Разрешены лишь отдельные входящие соединения. Остальные компьютеры сети считаются ненадёжными. Предназначено для использования во "внешних" сетях с активированным режимом маскарадинга, особенно с применением роутеров.
DMZ
Разрешены лишь отдельные входящие соединения.Предназначено для компьютеров в личной "безоружной" зоне с ограниченным общественным доступом к внутренней сети.
Work
Разрешены лишь отдельные входящие соединения. Остальные компьютеры сети, по большей части, считаются надёжными.
Предназначено для использования в рабочем пространстве.
Home
Разрешены лишь отдельные входящие соединения. Остальные компьютеры сети, по большей части, считаются надёжными. Предназначено для использования в домашних сетях.
Internal
Предназначено для использования во "внутренних" сетях. Остальные компьютеры сети, по большей части, считаются надёжными. Разрешены лишь отдельные входящие соединения.


http://linux-notes.org/udalit-iptables-pravilo/

iptables -L your_chain_name -n -v
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -D INPUT номер_строки

очистить все правила iptables
iptables -F
iptables -X


# iptables -L INPUT --line-numbers
# iptables -L INPUT -n --line-numbers | less
# iptables -L INPUT -n --line-numbers | grep 172.16.0.101

посмотреть правила
iptables -S

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



развернуть
В этой статье мы рассмотрим установку 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.

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

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

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



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




Docker на i386-ом компьютере
https://launchpad.net/ubuntu/+source/docker.io
https://hub.docker.com/r/i386/
https://hub.docker.com/r/i386/centos/

Centos 6

docker search i386/centos
docker pull i386/centos:centos6
docker run --name centos6.9_bash -it i386/centos:centos6 /bin/bash
docker ps -a

docker start centos6.9_bash
docker attach centos6.9_bash

yum install epel-release
yum install python34

docker export centos6.9_bash | docker import - uzverss/centos6.9_i386_cython
docker images
docker save uzverss/centos6.9_i386_cython > centos6.9_i386_cython.tgz
docker rmi uzverss/centos6.9_i386_cython
docker load -i centos6.9_i386_cython.tgz
docker inspect uzverss/centos6.9_i386_cython
docker login
docker push uzverss/centos6.9_i386_cython:latest
docker logout
docker search uzverss
docker rmi uzverss/centos6.9_i386_cython
docker pull uzverss/centos6.9_i386_cython:latest
docker rm centos6.9_bash
docker run --name centos6.9_bash -it uzverss/centos6.9_i386_cython /bin/bash

Centos 7

docker pull i386/centos:latest
docker run --name centos7_bash -it i386/centos:latest /bin/bash



если есть необходимость, то ещё установить python-tools
http://ithelp21.ru/ustanovka-python-3-6-na-centos/

cd /usr/src
curl -O https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xf Python-3.6.5.tar.xz
cd Python-3.6.5

./configure
make
make install

Сборка с оптимизацией



http://rpm.pbone.net/

вместо make install checkinstall



cd
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

pip install -U pip
pip install -U pyrasite
pip install -U virtualenv
pip install -U xonsh
pip install -U cython



exec "$SHELL"
pyenv update
pyenv versions
pyenv install 3.6.5


напоминалка по командам centos
https://habr.com/post/301292/

отображение команд и опций
# yum help

список названий пакетов из репозиторий
# yum list

список всех доступных пакетов
# yum list available

список всех установленных пакетов
# yum list installed

установлен ли указанный пакет
# yum list installed httpd

список установленных и доступных пакетов
# yum list all

список пакетов, относящихся к ядру
# yum list kernel

отображение информации о пакете
# yum info httpd

список зависимостей и необходимых пакетов
# yum deplist httpd

найти пакет, который содержит файл
# yum provides "*bin/top"

поиск пакета по имени и описанию
# yum search httpd

# yum search yum

получить информацию о доступных обновлениях безопасности
# yum updateinfo list security

вывести список групп
# yum grouplist

вывести описание и содержимое группы
# yum groupinfo "Basic Web Server"

установка группы пакетов «Basic Web Server»
# yum groupinstall "Basic Web Server"

удаление группы
# yum groupremove "Basic Web Server"

Проверка на доступные обновления
# yum check-update

список подключенных репозиториев
# yum repolist

информация об определенном репозитории
# yum repoinfo epel

информация о пакетах в указанном репозитории
# yum repo-pkgs epel list

установить все пакеты из репозитория
# yum repo-pkgs reponame install

удалить пакеты установленные из репозитория
# yum repo-pkgs reponame remove

создать кэш
# yum makecache

проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)
# yum check

# yum check dependencies

просмотр yum истории (вывод списка транзакций)
# yum history list

просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)
# yum history info 9

отмена транзакции
# yum history undo 9

повторить
# yum history redo 9

дополнительно можно просмотреть лог
# cat /var/log/yum.log

удалить пакеты сохраненные в кэше
# yum clean packages

удалить все пакеты и метаданные
# yum clean all

установить пакет
# yum install httpd

удаление пакета
# yum remove httpd

обновить пакет
# yum update httpd

обновить все пакеты
# yum update

обновить до определенной версии
# yum update-to

установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)
# yum localinstall httpd.rpm

или
# yum install httpd.rpm

установить с http
# yum localinstall http://server/repo/httpd.rpm

откатиться к предыдущей версии пакета
# yum downgrade

переустановка пакета (восстановление удаленных файлов)
# yum reinstall httpd

удаление ненужных более пакетов
# yum autoremove

создание локальных репозиториев (createrepo ставится отдельно)
# createrepo

установка обновлений по расписанию (yum-cron устанавливается отдельно)
# yum-cron



Опции Yum

ответить «yes» при запросе,
-y

# yum update -y

ответить «no» при запросе
--assumeno

использовать Yum без плагинов
--noplugins

или отключить определенный плагин
--disableplugin=fastestmirror

включить плагины, которые установлены, но отключены
# yum --enableplugin=ps

включить отключенный репозиторий
# yum update -y --enablerepo=epel

отключить репозиторий
# yum update -y --disablerepo=epel

скачать пакеты, но не устанавливать
(на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/')
# yum install httpd --downloadonly


Cледующие команды доступны после установки пакета yum-utils

найти из какого репозитория установлен пакет
# find-repos-of-install httpd

найти процессы, пакеты которых обновлены и требуют рестарта
# needs-restarting

запрос к репозиторию, узнать зависимости пакета, не устанавливая его
# repoquery --requires --resolve httpd

синхронизировать yum репозиторий updates в локальную директорию repo1
# reposync -p repo1 --repoid=updates

проверить локальный репозиторий на целостность
# verifytree URL

завершить транзакции
# yum-complete-transaction

установить необходимые зависимости для сборки RPM пакета
# yum-builddep

управление конфигурационными опциями и репозиториями yum
# yum-config-manager

запрос к локальной базе yum, отображение информации о пакете
(использованная команда, контрольная сумма, URL с которого был установлен и другое)
# yumdb info httpd

скачать rpm пакеты из репозитория
# yumdownloader

скачать src.rpm пакет из репозитория
(должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS)
yumdownloader --source php


Конфигурационные файлы Yum и их расположение

Основной конфигурационный файл
/etc/yum.conf

директория, с конфигурациями (например, yum плагины)
/etc/yum/

директория, содержащая информацию о репозиториях
/etc/yum.repos.d/


Некоторые опции yum.conf:

Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum')
cachedir=/var/cache/yum/$basearch/$releasever

Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)
keepcache=1

уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)
debuglevel=2

лог файл (по умолчанию '/var/log/yum.log')
logfile=/var/log/yum.log

обновлять устаревшие пакеты
obsoletes=1

проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)
gpgcheck=1

включение плагинов. Значения: 0 или 1 (по умолчанию 1)
plugins=1



Некоторые полезные плагины

Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями
yum-plugin-changelog

выбирает более быстрые репозитории из списка зеркал
yum-plugin-fastestmirror

добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.
yum-plugin-keys

блокировать указанные пакеты от обновления, команда yum versionlock
yum-plugin-versionlock

добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов
yum-plugin-verify


Работа Yum через прокси сервер

Для всех пользователей:
добавить в секцию [main] в /etc/yum.conf
proxy="http://server:3128"

при необходимости указать пароль, добавить
proxy_proxy_username=user
proxy_password=pass

указать прокси для отдельного пользователя
# export http_proxy="http://server:3128"


Alpine Linux
https://alpinelinux.org/downloads/
https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management
https://pkgs.alpinelinux.org/packages
https://wiki.alpinelinux.org/wiki/XFCE_Setup

docker search i386/alpine
docker pull i386/alpine
docker run --name alpine_sh -it i386/alpine /bin/sh

apk update
apk info
apk search
apk add python3
apk add cython

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

pip install -U pip
pip install -U pyrasite
pip install -U virtualenv
pip install -U xonsh

docker export alpine_sh | docker import - uzverss/alpine_i386_cython
docker push uzverss/alpine_i386_cython

чтобы подключаться по ssh под рутом
vi /etc/ssh/sshd_config
PermitRootLogin yes
затем /etc/init.d/sshd restart


uzverss docker команды
установка Django в virtualenv с помощью pip через proxy с pyenv


ознакомиться

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 в глобальную сеть интернет.



полезное для серваков, часть 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-сайта




ознакомиться
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 (РЕШЕНО)


Ввод 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, и наоборот




firewall-cmd
Создание мультизональных конфигураций межсетевого экрана с помощью Firewalld
Firewalld, установка и настройка, зоны, NAT, проброс портов
Настройка firewalld CentOS 7 с примерами команд
Использование ipset во встроенном брандмауэре CentOS 7
vpn pptp centos7

13 - Готовим CentOS 7. Установка и настройка firewalld
Установка
yum -y install firewalld

Запуск
systemctl start firewalld

Статус
systemctl status firewalld

Зоны
- drop – входящие сетевые пакеты сбрасываются, без ответа, допускаются только исходящие соединения
- block – входящие сетевые соединения отклоняются с сообщением icmp-host-prohibited, допускаются только сетевые соединения инициированные внутри нашей системы.
- public – при недоверии к компьютерам, разрешается устанавливать только конкретные входящие соединения.
- external – для использования во внешних сетях с разрешенным маскарадингом, особенно для роутеров, разрешается устанавливать только конкретные входящие соединения
- dmz – для компьютеров собственной demilitarized zone которые публично доступны с ограниченным доступом к нашей внутренней сети, разрешается устанавливать только конкретные входящие соединения.
- work/home/internal – максимальное доверие к компьютерам, уверенность в том, что они не приченят вреда нашему компьютеру, разрешается устанавливать только конкретные входящие соединения
- trusted – все сетевые соединения разрешены.

Посмотреть текущую зону
firewall-cmd --get-default-zone

Для смены зоны например на home
firewall-cmd --set-default-zone=home

Либо непосредственно в конфиге
nano /etc/firewalld/firewalld.conf

Получить текущую конфигурацию для нашей зоны public
firewall-cmd --zone=public --list-all

После внесение изменений перезагрузить FirewallD можно так
firewall-cmd --reload

режим паники, блокирующий все сетевые соединения
firewall-cmd --panic-on

отмена режима паники
firewall-cmd --panic-off

добавить порт к зоне
firewall-cmd [--zone=] --add-port=[-]/ [--timeout=]

удалить порт из зоны
firewall-cmd [--zone=] --remove-port=[-]/ [--timeout=]


Добавим 80 порт в доверенные
firewall-cmd --permanent --add-port=80/tcp

Посмотреть список сервисов
firewall-cmd --list-services

Добавим ssh в доверенные
firewall-cmd --permanent --add-port=2222/tcp

firewall-cmd --reload

Посмотрим что получилось
firewall-cmd --list-all

Ставим в автозагрузку
systemctl enable firewalld


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
ls /usr/lib/firewalld/services/
cat /usr/lib/firewalld/services/ipsec.xml

/etc/firewalld/services/l2tp.xml




/etc/firewalld/services/pptp.xml




chmod 640 /etc/firewalld/services/*.xml restorecon /etc/firewalld/services/*.xml
Контексты SELinux - Маркирование файлов

firewall-cmd варианты
firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o enp3s0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT


установка 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


vpn l2tp centos7
посмотреть
настройка pptp
1 отключаем Selinux
# nano /etc/sysconfig/selinux
меняем значение
SELINUX=disabled



После перезагрузки проверьте статус SELinux командой «sestatus»
sestatus

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:
# yum install -y ppp pptp pptpd pptp-setup
# chkconfig pptpd on

или systemctl enable pptpd

2 Настройка конфигов

Файл /etc/pptpd.conf



localip — ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
remoteip - пул ip адресов для раздачи клиентам VPN.
Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

listen внешний_ip

Файл /etc/ppp/options.pptpd



добавлен метод mschap2
гугловские DNS, заменить на свои.
ms-dns 8.8.8.8
ms-dns 8.8.4.4

Файл /etc/ppp/chap-secrets



В файле /etc/ppp/chap-secrets указываются аутентификационные данные пользователей для CHAP аутентификации:

client server Pa$$word *
client - логин
server - указывается имя сервера к которому можно подсоединиться (параметр name), можно заменить на *
Pa$$word - пароль клиента
* - Разрешает соединения с любых IP

Устанавливаем права на файл паролей, чтобы только root его мог читать:
chmod 600 /etc/ppp/chap-secrets

Файл /etc/sysctl.conf



изменение значения «0» на «1» net.ipv4.ip_forward = 1 и отключение ipv6
Перечитываем конфигурацию.

sysctl -p

cat /proc/sys/net/ipv4/ip_forward

ps ax | grep pptpd
ip a | grep ppp0
lsof -i TCP:1723
netstat -an | grep -i listen
systemctl status pptpd

смотрим логи
systemctl status pptpd
cat /var/log/messages |grep pptp
last |grep ppp0
tail /var/log/secure
grep -i pptp /var/log/messages
grep -i pptp /var/log/pptpd.log

кто логинился в систему
Команда  Журнал логов	  Описание
last	/var/log/wtmp	  История успешных входов/выходов
lastb	/var/log/btmp	  История неудавшихся попыток входа
lastlog	/var/log/lastlog  Список последних подключавшихся пользователей

изменение времени файлов, удаление истории посещения и команд в linux

опции /etc/ppp/options.pptpd
Создание PPTP-сервера для реализации защищенного доступа к домашней сети в операционных системах семейства Linux

Опция ppp
По умолчанию эта опция закомментирована символом “#”. Ее функция заключается в указании точного местоположения сервиса pppd, который является управляющим для PPTP-сервера. Путь по умолчанию — /usr/sbin/pppd.

Опция option
Этот тэг указывает демону pptpd на путь к файлу с остальными настройками PPTP-соединения, такими как используемое шифрование канала и способ авторизации PPTP-пользователей. По умолчанию эта строка указывает на файл /etc/ppp/options.pptpd, который создается при установке.

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

Опция stimeout х
Данная опция служит для указания точного времени ожидания PPTP-пакетом, прежде чем он попадет в управляющую программу pptpctrl и будет передан клиенту. По умолчанию этот показатель равен 10 с. Параметр X — время в секундах. Таким образом осуществляется защита от DoS-атак.

Опция noipparam
По умолчанию этот тэг отключен. При включении данного параметра IP-адрес клиента не передается скриптам ip-up через демон pppd. То есть pppd не будет знать реальный адрес PPTP-клиента.

Опция bcrelay interface
Данная опция позволяет PPTP-клиентам рассылать бродкасты, которые сервер получает по сетевому интерфейсу с названием interface. По умолчанию этот тэг закомментирован. Примером интерфейса может служить eth0 или ham0.

Опция connections n
По умолчанию максимальное количество соединений с PPTP-сервером может быть не более 100. Эта опция вручную указывает на количество соединений, где “n” — цифровое значение. Отметим, что максимальное количество соединений ограничивается также списком IP-адресов в опции remoteip, но эта функция работает лишь в том случае, если опция delegate неактивна.

Опция delegate
По умолчанию эта опция отключена. Ее включение автоматически отключает опцию remoteip, через которую демон pptpd выдает адреса PPTP-клиентам, таким образом заставляя выдавать виртуальные внутрисетевые адреса с помощью radius сервера или файла chap-secrets.

Опция listen ip
Указывает на определенный IP-адрес, на котором PPTP-сервер будет прослушивать 1723-й порт, где “ip” — указываемый IP-адрес. По умолчанию PPTP-сервер работает на всех локальных интерфейсах операционной системы (eth0, ppp0, ham0 и т.п.).

Опция localip ip-address
Данная опция позволяет явным образом указать диапазон IP-адресов или отдельный IP-адрес, который будет использоваться в качестве адреса PPTP-сервера в виртуальной сети. Если указан один IP-адрес, то он применяется для всех PPTP-клиентов, в противном случае (если указан диапазон адресов) каждому клиенту назначается свой виртуальный адрес сервера, поэтому их количество должно совпадать со значением, описанным в опции remoteip. Задавать несколько IP-адресов сервера необходимо в тех случаях, когда для каждого клиента указывается персональный IP-адрес (например, в файле chap-secrets), благодаря чему можно ограничить доступ каждого клиента в определенный участок локальной сети на основании правил iptables. Параметр ip-address может выглядеть следующим образом: 192.168.0.1, когда указан один адрес для всех клиентов, либо 192.168.0.2-254, когда указывается диапазон адресов.

Опция remoteip ip-address
В этом параметре указывается диапазон IP-адресов, которые будут получать PPTP-клиенты. Функция работает только в том случае, когда опция delegate неактивна, то есть закомментирована. Количество IP-адресов ограничивает и количество максимальных соединений с PPTP-сервером. Параметр ip-address может выглядеть так: 192.168.0.1, когда указан один адрес для одного-единственного клиента (в этом случае к PPTP-серверу может подключиться лишь один клиент), либо 192.168.0.2-254, если указывается диапазон адресов.

Опция speed x
Данный параметр отвечает за максимальную скорость соединения, с которой происходит обмен данными между сервером и клиентом. По умолчанию эта опция (параметр “x”) имеет значение 115 200 байт/с и является также максимально допустимой для pppd. В реальности скорость может быть значительно выше, но только если указано именно это значение.

Опция logwtmp
Раскомментирование этой строки позволит передавать PPTP-серверу лог аутентификации пользователей через стандартную функцию logwtmp, что даст возможность автоматизировать процесс сбора информации по заходам клиентов. Однако в некоторых случаях этот модуль не устанавливается и его (файл pptpd-logwtmp.so) необходимо переписать вручную из дистрибутива pptpd в папку /usr/lib/pptpd/. В противном случае сервер будет генерировать дополнительную лишнюю информацию о том, что модуль не загружен, а в некоторых экспериментальных версиях он просто не будет загружаться.
Все опции описаны на английском языке, прочесть их можно, набрав команду “man pptpd.conf”. Для того чтобы организовать доступ к нескольким компьютерам в локальной сети, необходимо отредактировать конфигурационный файл pptpd.conf следующим образом:

option /etc/ppp/options.pptpd
debug
localip 192.168.193.1
remoteip 192.168.193.234-238

IP-адрес 192.168.193.1 — это адрес сервера, а диапазон адресов от 192.168.193.234 до 238 — это адреса, которые будут выдаваться клиентам PPTP-сервера. Опция debug включена для возможной отладки сервера. Этот конфигурационный файл предполагает раздачу адресов самим демоном pptpd. После редактирования файла pptpd.conf необходимо изменить параметры аутентификации и шифрования в файле /etc/ppp/options.pptpd. Рассмотрим все возможные параметры, которые можно прописать в этом файле.

Параметр name
Данная опция отвечает за название сервиса, которое прописывается в файле аутентификации /etc/ppp/chap-secrets. По умолчанию название соответствует названию сервиса — pptpd.

Параметры refuse-pap, refuse-chap, refuse-mschap
Данные параметры запрещают авторизацию по старым протоколам аутентификации, таким как PAP, CHAP и MS CHAP v1, но, если использование этих протоколов необходимо, строки должны быть закомментированы. Аналогичными являются опции -pap, -chap, -chapms (они применяются в том случае, если pptpd установлен на компьютере с ОС семейства BSD). Для активации аутентификации по этим протоколам вместо знака “–” должен стоять знак “+”.

Параметр require-mschap-v2, +chapms-v2
Данная опция разрешает аутентификацию пользователей по самому защищенному из протоколов — MS CHAP v2. По умолчанию в конфигурационном файле разрешен только этот протокол аутентификации пользователей.

Параметр require-mppe-128, mppe-128, mppe-40, mppe-stateless, “mppe required, stateless”
Названные параметры относятся к шифрованию MPPE, которое может быть использовано лишь совместно с протоколом аутентификации MS CHAP v2. Каждая из опций строго определяет наличие шифрования и не позволяет установить связь PPTP-клиентам, у которых оно отключено. Цифры 40 и 128 отвечают за стойкость шифрования, рекомендуется шифрование со 128-битным ключом. Для того чтобы PPTP-клиенты могли подключаться к серверу без использования шифрования, которое увеличивает трафик, а также нагрузку на процессор как клиента, так и сервера, необходимо закомментировать все эти строки.

Параметр ms-dns ххх.ххх.ххх.ххх
Всего в конфигурационном файле может существовать две записи этой опции. С ее помощью можно указать первичный и вторичный DNS сервера для PPTP-клиентов.

Параметр proxyarp
Включение этого параметра позволяет PPTP-клиентам работать с локальной сетью без добавления правил маскарадинга (NAT) в цепочки брандмауэра iptables. Данная функция действует через средства ARP (Address Resolution Protocol) и его таблицы. Однако таким образом нельзя регулировать доступ в разные подсети клиентов и доступ конкретных клиентов. Чтобы эта функция работала, необходимо, чтобы осуществлялось перенаправление пакетов ядром (чтобы функция ip_forward была равна единице). Если используются цепочки iptables, этот параметр следует закомментировать. По умолчанию данная опция включена.

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

Параметр logfile x
Данная опция указывает точное местоположение файла (“x”), в который будет записываться отладочная информация. По умолчанию эта функция отключена, а все записи по соединению заносятся в системный журнал. Для ее работы необходимо также закомментировать параметр “nologfd”, который запрещает ее использование.

Параметр nologfd
Данная опция блокирует запись в системный журнал через системную функцию stderr. По умолчанию она активна. Для получения отладочной информации ее необходимо закомментировать.

Параметры novj и novjccomp
Названные параметры запрещают компрессию, которая используется в ранних клиентах Windows 9x/Mе. По умолчанию опция включена.

Параметр nobsdcomp
Если в качестве операционной системы применяется платформа Linux, а не BSD (OpenBSD, FreeBSD), то необходимо раскомментировать эту функцию.

Параметр nodefaultroute
Данная функция отключает автоматическое изменение таблицы маршрутизации при установлении PPTP-соединения. По умолчанию pppd при установлении соединения PPTP-клиента с сервером меняет IP-адрес используемого по умолчанию шлюза на IP-адрес PPTP-клиента. В этом случае Интернет на компьютере-сервере просто пропадет. Поэтому если используется PPTP-сервер, то данную опцию следует указать.
О других опциях, которые применяются реже, можно прочесть, набрав в командной строке “man pppd”, поскольку options.pptpd относится не только к демону pptpd, но и к основному управляющему пакету pppd, который и устанавливает соединение по VPN-туннелю.

3 настройка фрайвола
firewall-cmd настройка брадмаузера

firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
firewall-cmd --direct --get-all-rules
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=public --list-ports
firewall-cmd --list-rich-rules

firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
firewall-cmd --zone=public --add-port=1723/tcp --permanent

firewall-cmd --zone=public --remove-interface=enp3s0 --permanent
firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --add-port=1723/tcp --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --add-masquerade
firewall-cmd --query-masquerade

firewall-cmd --reload
systemctl restart firewalld

для удаления правила --add- меняется на --remove-

в случаях проблем с firewalld Перечитать правила и сбросить текущие подключения
firewall-cmd --complete-reload


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

firewall-cmd --reload
systemctl restart firewalld

iptables -S

cat /etc/firewalld/direct.xml

ls /usr/lib/firewalld/services/
cat /usr/lib/firewalld/services/ipsec.xml

/etc/firewalld/services/l2tp.xml




/etc/firewalld/services/pptp.xml




chmod 640 /etc/firewalld/services/*.xml restorecon /etc/firewalld/services/*.xml

Контексты SELinux - Маркирование файлов

firewall-cmd варианты
firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o enp3s0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT

узнать
firewall-cmd --direct --get-all-rules
удалить
firewall-cmd --direct --permanent --remove-rule .....

firewall-cmd ошибки
# firewall-cmd --reload
Error: list index out of range

nano /etc/firewalld/direct.xml
исправить ошибочную запись

fail2ban
https://github.com/fail2ban/fail2ban/tree/master/config/action.d

----------------------------------------------------------------------------------------------------------------------------
Файл(ы)
Описание
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/fail2ban.local
Глобальные настройки службы и настройки "по умолчанию"
/etc/fail2ban/filter.d/*.conf
/etc/fail2ban/filter.d/*.local
Фильтры, определяющие действия для обнаружения неудачных попыток аутентификации. В общем случае, это правила анализа системных журналов.

/etc/fail2ban/action.d/*.conf
/etc/fail2ban/action.d/*.local
/etc/fail2ban/action.d/*.py

Действия, определяющие порядок блокировки/разблокировки.
В том числе, действия могут быть заданы как сценарии на языке Python (*.py).

/etc/fail2ban/jail.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.d/*.local

Определения комбинаций фильтров и действий.Фильтры и действия идентифицируются по именам файлов без расширений .conf/.local.

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

Сервис Fail2ban хранит настройки в каталоге /etc/fail2ban.
файл jail.conf, содержит стандартные настройки он перезаписывается при обновлении пакета Fail2ban, потому его редактировать нельзя
Файл jail.conf содержит раздел [DEFAULT], после которого следует раздел для индивидуальных сервисов. Файл jail.local может переопределить любое из этих значений. Файлы применяются в алфавитном порядке:

/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf,
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local,

sudo yum install epel-release
yum -y install ipset systemd-python
yum --disablerepo=* --enablerepo=epel -y install fail2ban fail2ban-systemd
(можно проще без отключения реп)
yum -y install fail2ban fail2ban-systemd

вместе с ним установятся также и зависимые утилиты,
# такие как: fail2ban-firewalld, fail2ban-sendmail, fail2ban-server

yum update -y selinux-policy*

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Чтобы получить более подробный вывод, введите:
sudo fail2ban-client status sshd

nano /etc/fail2ban/jail.local



nano /etc/fail2ban/jail.d/sshd.local



nano /etc/fail2ban/filter.d/pptp.conf



nano /etc/fail2ban/jail.d/pptpd.local



Конфигурация одним файлом

nano /etc/fail2ban/jail.local



systemctl restart pptpd
systemctl restart firewalld
systemctl restart fail2ban

enable = true — проверка ssh активна.
action Ссылается на соответствующий файл действия в /etc/fail2ban/action.d/ используется для получения IP-адреса, который необходимо заблокировать, используя фильтр, доступный в /etc/fail2ban/action.d/firewallcmd-ipset.conf.
ignoreip — используется для установки списка IP-адресов, которые не будут забанены. Список IP-адресов следует указывать через пробел.
bantime — время блокировки, в секундах.
maxretry — количество попыток перед перед блокировкой.
findtime — время, на протяжении которого рассчитывается количество попыток перед баном (maxretry).
logpath = /var/log/messages путь к файлу лога. Но если у вас не включен режим debug в настройках конфигурации pptp, то нужно это сделать, просто раскомментировать строчку с debug в файле /etc/ppp/options.
filter - Ссылается на соответствующий файл фильтра в /etc/fail2ban/filter.d/
usedns : определяет, используется ли обратный DNS для реализации запретов. Установка этого значения в «no» приведет к запрету самих IP-адресов вместо имен хостов. Параметр «warn» будет пытаться использовать обратный DNS для поиска имени хоста и забанить таким образом, но будет регистрировать активность для просмотра.
destemail : это адрес, на который будет отправлено уведомление по электронной почте, если вы настроили свое действие на почтовые оповещения.
sendername : это будет использоваться в поле email from для сгенерированных уведомлений


смотрим пишется ли что-то в логи fail2ban
tail /var/log/fail2ban.log
fail2ban-client -vv -d 2>&1 | grep sshd | grep -Ev "'addfailregex'|'addignoreip'|'action'"

https://www.fail2ban.org/wiki/index.php/MANUAL_0_8

Отслеживание записей неудачного входа
cat /var/log/secure | grep 'Failed password'
tail /var/log/secure


iptables -vnL

fail2ban-client status
fail2ban-client status sshd
fail2ban-client status pptp

Разблокировка IP-адреса
Чтобы удалить IP-адрес из списка запрещенных, для параметра IPADDRESS задан соответствующий IP-адрес, который необходимо разблокировать.
fail2ban-client set sshd unbanip IPADDRESS
fail2ban-client set pptp unbanip IPADDRESS
или
firewall-cmd --direct --permanent --remove-rule ipv4 filter f2b-sshd 0 -s 188.134.7.221

Если вы часто подключаетесь к своему серверу по pptp, и возможно забудете пароль или еще что-то, и не хотите быть забанеными, внесите свой ip адрес (или несколько, или подсеть) в файл /etc/fail2ban/jail.local строчкой через пробел

ignoreip = 127.0.0.1/8 192.168.6.0/24 123.123.123.123

sudo firewall-cmd --direct --get-all-rules
sudo ipset list fail2ban-sshd

sudo /etc/ppp/options.pptpd
раскомментируем debug (снять #)

снятие блокировки
Linux удаляет IP из fail2ban f2b

firewall-cmd --direct --get-all-rules
ipv4 filter f2b-pptp 0 -s 192.168.107.99 -j REJECT --reject-with icmp-port-unreachable

cat /etc/firewalld/direct.xml

проверьте, не заблокирован ли ваш IP:
iptables -L -n

Если ваш IP был заблокирован, найдите номер строки вашего IP-адреса в списке запрещенных

iptables -L f2b-pptp -v -n --line-numbers
1 278 16680 REJECT all -- * * 192.168.107.99 0.0.0.0/0 reject-with icmp-port-unreachable
2 390K 19M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Теперь вы можете использовать `iptables -D chain rulenum`, чтобы удалить запись с вашим IP-адресом.
iptables -D f2b-pptp 1

Это удалит строку 1:
iptables -L f2b-pptp -v -n --line-numbers
1 390K 19M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Если вам нужно удалить другой IP-адрес из списка запрещенных IP-адресов ssh / sshd, вам нужно снова запустить `iptables -L f2b-sshd -v -n --line-numbers`, так как номера строк меняются каждый раз, когда вы удаляете одну запись


у fail2ban нет способа отличить неудачный вход в систему от разрыва соединения PPTP-регулятора из-за причудливого формата журналирования pptpd. Таким образом, регулярные входы в систему будут считаться неудачными, и IP-адрес в конечном итоге будет заблокирован. (Вам нужно будет снять запрет вручную, используя SSH, или просто хитро спроектировать значения bantime / findtime / maxretry, чтобы разрешить регулярное использование, одновременно предотвращая перебор)

Если необходимо отправлять почту, то надо установить и настроить пакет ssmtp


разное
https://unixhow.com/3707/kak-ustanovit-pptp-vpn-klient-na-centos-rhel
https://www.prado.lt/how-to-set-up-pptp-client-on-debian-9
https://wiki.ubuntu.com/VPN
modprobe ppp-generic

lsmod | grep pptp
grep -i pptp /var/log/*
grep -i pptp /var/log/messages
grep -i pptp /var/log/syslog

https://linuxconfig.org/how-to-establish-pptp-vpn-client-connection-on-centos-rhel-7-linux
pppd[32087]: LCP: timeout sending Config-Requests
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

http://pptpclient.sourceforge.net/howto-debian.phtml
http://pptpclient.sourceforge.net/howto-diagnosis.phtml#lots_of_data
https://www.adminsehow.com/2010/04/connect-to-pptp-vpn-from-linux-only-by-one-command/
https://askubuntu.com/questions/590114/pptp-client-doesnt-connect-by-command-line
pppd pty "pptp IP_OR_FQDN_VPN_SERVER --nolaunchpppd" file /etc/ppp/options.pptp user USERNAME password PASSWORD

замените IP_OR_FQDN_VPN_SERVER на IP или DNS вашего VPS-сервера.
замените USERNAME своим именем пользователя VPN.
замените ПАРОЛЬ своим паролем VPN.
подождите примерно 10-15 секунд, затем запустите команду ifconfig, вы увидите там интерфейс ppp0, если его нет, вы можете устранить неполадки, заглянув в системный журнал вашего linux
Если у вас есть какие-либо пользовательские настройки, вам может понадобиться отредактировать файл /etc/ppp/options.pptp.
чтобы отключить форму VPN, используйте следующую команду:

killall pppd

проверить порты
netstat -ntulp
netstat -ntlp | grep LISTEN
ss -ltupn
lsof -nP -i | grep LISTEN
nmap localhost
получить ip адрес
curl ipinfo.io/ip
wget -O - -q icanhazip.com
nmap адрес

ошибки
http://blog.inelsis.ru/?p=165
VPN не подключается.
LOG
pptpd[16913]: GRE: read(fd=8,buffer=6097c0,len=8260) from network failed: status = -1 error = Protocol not available
pptpd[16913]: CTRL: GRE read or PTY write failed (gre,pty)=(8,6)
pppd[16914]: Modem hangup
Решение.
настроить options.pptpd
Добавить.
mtu 900
mru 900
Провайдер чтото сделал.


настройка OpenVPN
OpenVPN-Server на Centos 7

Устанавливаем репозиторий EPEL (если нет)
# yum install epel-release

Устанавливаем NET-Tools (если нет)
# yum install net-tools

Установка OpenVPN-Server и Easy-RSA
# yum install openvpn easy-rsa

Создаем директорию для генерации сертификатов и копируем туда Easy-RSA
# mkdir /etc/openvpn/easy-rsa
# cp -rf /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa

Переходим в директорию и создаем файл vars
# cd /etc/openvpn/easy-rsa
# vi vars

Записываем в файл vars



Делаем файл исполняемым
# chmod +x vars

Создание ключа и сертификата для OpenVPN Сервера


Инициализация каталог PKI



Создать ключ CA
# ./easyrsa build-ca

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

Создадим ключ сервера (название сервера srv-openvpn)
# ./easyrsa gen-req srv-openvpn nopass
опция nopass — отключение пароля для srv-openvpn

Подпишем ключ srv-openvpn используя наш CA-сертификат
# ./easyrsa sign-req server srv-openvpn

на вопрос: Confirm request details: — ответить: yes
в процессе у нас спросят пароль, который мы задавали CA

Проверим файлы сертификата, что бы убедится, что сертификаты сгенерировались без ошибок
# openssl verify -CAfile pki/ca.crt pki/issued/srv-openvpn.crt
pki/issued/srv-openvpn.crt: OK

Создание ключа клиента


# cd /etc/openvpn/easy-rsa

Сгенерируем ключ клиента client-01
# ./easyrsa gen-req client-01 nopass

Подпишем ключ client-01, используя наш CA сертификат
# ./easyrsa sign-req client client-01

на вопрос: Confirm request details: — ответить: yes
в процессе у нас спросят пароль, который мы задавали CA

Проверим файлы сертификата
# openssl verify -CAfile pki/ca.crt pki/issued/client-01.crt
pki/issued/client-01.crt: OK

Дополнительная настройка OpenVPN сервера


Сгенерируем ключ Диффи-Хеллмана
# ./easyrsa gen-dh

Сгенерируем CRL ключ необходимый для отзыва клиентских сертификатов
# ./easyrsa gen-crl

Для того, что бы отозвать сертификат надо выполнить команду (НА БУДУЩЕЕ)
# ./easyrsa revoke client-02
после каждого отозванного сертификата необходимо обновлять CRL ключ

Копируем сертификаты сервера
# cp pki/ca.crt /etc/openvpn/server/
# cp pki/issued/srv-openvpn.crt /etc/openvpn/server/
# cp pki/private/srv-openvpn.key /etc/openvpn/server/
# cp pki/dh.pem /etc/openvpn/server/
# cp pki/crl.pem /etc/openvpn/server/

Копируем сертификаты клиента
# cp pki/ca.crt /etc/openvpn/client/
# cp pki/issued/client-01.crt /etc/openvpn/client/
# cp pki/private/client-01.key /etc/openvpn/client/

Настройка OpenVPN сервера


Создадим файл конфигурации server.conf

# cd /etc/openvpn
# vi server.conf

Записываем в файл server.conf



Настройка Firewalld


Отредактировать файл /etc/sysctl.conf:
Добавить:
net.ipv4.ip_forward = 1

Выполняем команду
# sysctl -p

cat /proc/sys/net/ipv4/ip_forward

Настройка



Запустим OpenVPN и добавим его в автозагрузку
# systemctl start openvpn@server
# systemctl enable openvpn@server

Проверим
# systemctl status openvpn@server

Настройка OpenVPN клиента


Создадим файл конфигурации client-01.ovpn
# cd /etc/openvpn/client
# vi client-01.ovpn

Записываем в файл client-01.ovpn



в строке ‘remote xx.xx.xx.xx 1194‘ надо прописать IP-адрес вместо ‘xx.xx.xx.xx‘

Теперь для надо заархивировать сертификаты (ca.crt, client-01.crt), ключ клиента (client-01.key), файл конфигурации (client-01.ovpn), и передать их на ПК, который будет подключаться к OpenVPN серверу

OpenVPN объединяем ключи и конфигурацию клиента в один файл
https://interface31.livejournal.com/87234.html
https://dimetrius.net/linux/ethernet-and-vpn/ob-edinenie-konfiga-i-klyuchej-openvpn-v-odin-fajl.html

откроем файл конфигурации клиента и закомментируем в нем строки содержащие пути к ключам и сертификатам (пути даны сугубо условно):

#ca C:\\Users\\Andrey\\OpenVPN\\keys\\ca.crt
#cert C:\\Users\\Andrey\\OpenVPN\\keys\\ivanov.crt
#key C:\\Users\\Andrey\\OpenVPN\\keys\\ivanov.key
Если вы используете TLS-аутентификацию, то дополнительно закомментируйте:

#tls-auth C:\\Users\\Andrey\\OpenVPN\\keys\\ta.key 1
Теперь перейдем в самый конец файла и создадим там несколько секций в которые скопируем содержимое ключей и сертификатов:



В секцию ca мы копируем содержимое корневого сертификата ca.crt, в секцию key - содержимое ключа клиента, а в секцию cert - открытый ключ из его сертификата, обратите внимание, что копируется содержимое начиная от строки BEGIN и заканчивая строкой END включительно, как есть, без каких либо изменений. Открыть сертификаты и ключи можно обычным Блокнотом, либо любым иным текстовым редактором.

Вместо строк
ca ca.crt
cert user1.crt
key user1.key

вставляем следующую конструкцию...



Если вы используете TLS-аутентификацию, то добавьте секцию tls-auth и скопируйте в нее содержимое ключа ta.key:



И добавьте в файл опцию:
key-direction 1

Теперь файл конфигурации можно сохранить и передать на клиентское устройство. А дальше все достаточно просто и практически не требует вмешательства администратора, многие пользователи вполне способны сделать все самостоятельно. Щелкаем правой кнопкой на значок графической оболочки OpenVPN в системном лотке, выбираем Импорт конфигурации и указываем на полученный файл.



подключить клиента из консоли:
openvpn --config /etc/openvpn/client/client2.ovpn &> /dev/hull

с поддержкой dns
https://github.com/jonathanio/update-systemd-resolved
настройка клиента openvpn
openvpn --config /etc/openvpn/client/имя_сети.ovpn --config /etc/openvpn/scripts/update-systemd-resolved.conf &> /dev/hull

Для подключения с андройда использовать:
https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-android/
официальный клиент OpenVPN Connect – Fast & Safe SSL VPN Client
продвинутый клиент OpenVPN for Android

https://openvpn.net/download-open-vpn/
https://openvpn.net/community-downloads/
https://build.openvpn.net/downloads/releases/

запуск клиента
openvpn --config client.ovpn
ip a show tun0

Описание команд и параметров OpenVPN

ошибки

Определение правильного MTU
ping -M do -s 1500 -c 1 www.example.com
Уменьшайте значение 1500 на 10 каждый раз, пока пинг не будет успешным. Как только пинг завершится успешно, используемым значением будет MTU, которое вы должны использовать.
OpenVPN требует установки значения MSS. MSS - это значение для MTU минус 40).
Например. Если ваш MTU 1460, ваш MSS 1420
mssfix 1420

DNS
https://github.com/jonathanio/update-systemd-resolved



ссылки
https://www.altlinux.org/L2TP_VPN_Client_Server
Настраиваем VPN PPTP соединение из командной строки
http://hww.ru/wp/2019/04/ustanovka-i-nastrojka-vpn-servera-na-centos-7/
Настройка VPN-сервер PPTPD (черновик)
Как настроить VPN с помощью PPTP

https://reversed.top/2014-07-07/pptp-add-route-automatically/
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
https://www.dmosk.ru/miniinstruktions.php?mini=firewalld-centos
https://losst.ru/nastrojka-firewall-centos-7
Использование ipset во встроенном брандмауэре CentOS 7
https://itproffi.ru/firewalld-ustanovka-i-nastrojka-zony-nat-probros-portov/
http://fliplinux.com/redhat-centos-7-firewalld-pptp.html
Использование ipset во встроенном брандмауэре CentOS 7
https://onedayadmin.sytes .net/fail2ban-zashita-servera-ot-brutforsa/

Описание некоторых sysctl переменных ядра Linux (sysctl proc linux kernel tune)
Тюнинг сети и безопасности TCP/IP с помощью sysctl.conf
https://linux-audit.com/blocking-ip-addresses-in-linux-with-iptables/
https://wiki.archlinux.org/index.php/Fail2ban_(Русский)
Защищаем сервер на CentOS 7 с помощью firewalld и fail2ban
Установка и настройка Fail2Ban в Centos 7
ЗАЩИТА SSH ПРИ ПОМОЩИ FAIL2BAN В CENTOS 7
Настройка и использование Fail2ban на Linux
https://www.digitalocean.com/community/tutorials/how-fail2ban-works-to-protect-services-on-a-linux-server
Установка и настройка fail2ban
КАК FAIL2BAN ЗАЩИЩАЕТ СЕРВИСЫ LINUX



vpn pptp openvpn centos7
Настройка L2TP
http://hww.ru/wp/2019/04/ustanovka-i-nastrojka-vpn-servera-na-centos-7/
https://github.com/hwdsl2/setup-ipsec-vpn

cp /etc/sysctl.conf /etc/sysctl.conf.bak
можно так



но достаточно и так (здесь я отключил ip6)



на самом деле нужен лишь один параметр
net.ipv4.ip_forward=1

Перечитываем конфигурацию.
sysctl -p

cat /proc/sys/net/ipv4/ip_forward

Настройка firewall-cmd
по настройке подробно тут vpn pptp openvpn centos7
надо лишь добавить порты для l2tp

firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
firewall-cmd --direct --get-all-rules
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=public --list-ports
firewall-cmd --list-rich-rules

firewall-cmd --zone=public --remove-interface=enp3s0 --permanent
firewall-cmd --zone=external --change-interface=enp3s0 --permanent

firewall-cmd --zone=external --add-port=500/udp --permanent
firewall-cmd --zone=external --add-port=4500/udp --permanent
firewall-cmd --zone=external --add-port=1701/udp --permanent

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --add-masquerade
firewall-cmd --query-masquerade

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

firewall-cmd --reload
firewall-cmd --direct --get-all-rules


cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig
nano /etc/xl2tpd/xl2tpd.conf



Для использования сервера RADIUS или DHCP, оставьте отключенными опции ip range и local ip. Если соединение нестабильно, попробуйте добавить length bit = yes в раздел lns default. Чтобы не использовать PPP аутентификацию, замените require authentication = yes на refuse authentication = yes.

mcedit /etc/ppp/options.xl2tpd




Настройка IPsec
Есть несколько вариантов и пакетов для настройки IPsec: ipsec-tools, LibreSwan (OpenSwan) и strongSwan. ipsec-tools (racoon) наименее функционален, но для тех, кто пришёл из *BSD, он может быть более близок. Однако, в отличие от *BSD, Linux не использует отдельный интерфейс для IPsec. strongSwan – это ответвление от FreeS/WAN. LibreSwan – ответвление от Openswan (который сам является ответвлением от FreeS/WAN) с сохранением его оригинальных разработчиков. Мы будем использовать именно LibreSwan, который мы уже ранее установили. Обход NAT установлен по умолчанию в файле конфигурации LibreSwan, таким образом никаких особых этапов настройки не требуется.

Желательно иметь каждую настройку VPN в своём собственном файле, что может быть сделано раскомментированием последней строки в /etc/ipsec.conf:
#include /etc/ipsec.d/*.conf

Основные конфигурационные файлы для LibreSwan это:
/etc/ipsec.conf – определяет параметры IPSEC-соединений и параметры подключений в целом;
/etc/ipsec.secrets – ключи и пароли для шифрования

Файл /etc/ipsec.conf разбит на разделы:
config setup – глобальные параметры и опции
conn %default – параметры ipsec-соединений по-умолчанию. Если в отдельных параметрах соединений не указан параметр, то используются параметры отсюда.
Например: conn SomeTunnel – раздел с параметрами соединения SomeTunnel

Файл /etc/ipsec.secrets содержит неограниченное количество типов ключей (паролей).

Основные параметры команды ipsec, которая управляет подключениями LibreSwan:
start|restart|stop;
ipsec status|statusall — для просмотра состояния IPSEC-соединений;
up|down|route|unroute — для управления IPSEC-соединений.

Логи хранятся в /var/log/auth.log и /var/log/daemon.log.

Создаем файл настроек с таким содержимым:

mcedit /etc/ipsec.d/l2tp-ipsec.conf



где 1.1.1.1 заменяем на ваш внешний IP.
conn L2TP-PSK-NAT – служебное слово conn означает название соединения. После него будут параметры, которые характеризуют соединение.
left= и right= – адреса хостов. Слова символизируют то, что хосты находятся с разных сторон. Не имеет значения, в какой из них вы впишете свой адрес, система автоматически определит, какой из адресов относится к ее интерфейсу. Поэтому на разных хостах вполне можно использовать одинаковый конфиг. Вместо адреса можно использовать ключевое слово %any в виде right=%any. Тогда можно будет подключаться с любого адреса. Так выглядит общая конфигурация, которую можно использовать:
left=%defaultroute
leftprotoport=udp/l2tp
leftid=@vpn.example.com
right=%any
rightprotoport=udp/%any
type=tunnel – тип соединения. Может принимать значения tunnel, transport или passthrough.
authby=secret – что будет использоваться в качестве ключа: PSK (парольное слово) или RSA (ключ)
auto=start – опция определяет, когда включать соединение. Может принимать значения: start (автоматически стартовать), add (стартовать в ответ на инициацию от другого хоста), ignore (игнорировать соединение), manual (стартовать вручную), route (назначение мне осталось непонятно, используется крайне редко).
Ну и так как мы задали тип авторизации с помощью PSK, то давайте запишем секретное слово в файл ipsec.secrets.

vim /etc/ipsec.d/default.secrets
: PSK "SecretKey"

Ключ может быть задан строкой в кавычках или шестнадцатеричным числом. В следующем примере PUT_VPN_SERVER_IP должен быть заменён на IP-адрес сервера. Можно использовать доменное имя, но оно не рекомендовано разработчиками LibreSwan. Опция %any позволяет любым клиентам использовать этот PSK. Также можно IP не указывать как в нашей конфигурации выше. Примеры:

PUT_VPN_SERVER_IP %any : PSK 0x87839cfdab5f74bc211de156d2902d128bec3243
# Или используйте простой текстовый ключ вместо шестнадцатеричного:
# PUT_VPN_SERVER_IP %any : PSK "password_pass"
Прописываем в /etc/ppp/chap-secrets свои логины и пароли

vim /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *

Настроим logrotate для /var/log/xl2tpd.log



Запускаем и тестируем.

systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd

смотрим логи
tail -f /var/log/xl2tpd.log

Шпаргалка по работе с пакетным менеджером Yum (Yellowdog Updater, Modified), который используется в популярных Linux дистрибутивах: RedHat, CentOS, Scientific Linux (и других). В целях экономии места вывод команд не представлен.

развернуть

Оглавление



Команды

Опции Yum

Пакет Yum-Utils

Конфигурационные файлы

Плагины

Работа через прокси





отображение команд и опций

# yum help


список названий пакетов из репозиторий

# yum list


список всех доступных пакетов

# yum list available


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

# yum list installed


установлен ли указанный пакет

# yum list installed httpd


список установленных и доступных пакетов

# yum list all


список пакетов, относящихся к ядру

# yum list kernel


отображение информации о пакете

# yum info httpd


список файлов пакета

# rpm -ql httpd


список зависимостей и необходимых пакетов

# yum deplist httpd


найти пакет, который содержит файл

# yum provides "*bin/top"


поиск пакета по имени и описанию

# yum search httpd


# yum search yum


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

# yum updateinfo list security


вывести список групп

# yum grouplist


вывести описание и содержимое группы

# yum groupinfo "Basic Web Server"


установка группы пакетов «Basic Web Server»

# yum groupinstall "Basic Web Server"


удаление группы

# yum groupremove "Basic Web Server"


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

# yum check-update


список подключенных репозиториев

# yum repolist


информация об определенном репозитории

# yum repoinfo epel


информация о пакетах в указанном репозитории

# yum repo-pkgs epel list


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

# yum repo-pkgs reponame install


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

# yum repo-pkgs reponame remove


создать кэш

# yum makecache


проверить локальную базу rpm (поддерживаются параметры dependencies, duplicates, obsoletes, provides)

# yum check


# yum check dependencies


просмотр yum истории (вывод списка транзакций)

# yum history list


просмотр информации определенной транзакции (установленные пакеты, установленные зависимости)

# yum history info 9


отмена транзакции

# yum history undo 9


повторить

# yum history redo 9


дополнительно можно просмотреть лог

# cat /var/log/yum.log


удалить пакеты сохраненные в кэше

# yum clean packages


удалить все пакеты и метаданные

# yum clean all


установить пакет

# yum install httpd


удаление пакета

# yum remove httpd


обновить пакет

# yum update httpd


обновить все пакеты

# yum update


обновить до определенной версии

# yum update-to


установить из локальной директории (поиск/установка зависимостей будут произведены из подключенных репозиториев)

# yum localinstall httpd.rpm


или

# yum install httpd.rpm


установить с http

# yum localinstall http://server/repo/httpd.rpm


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

# yum downgrade


переустановка пакета (восстановление удаленных файлов)

# yum reinstall httpd


удаление ненужных более пакетов

# yum autoremove


создание локальных репозиториев (createrepo ставится отдельно)

# createrepo


установка обновлений по расписанию (yum-cron устанавливается отдельно)

# yum-cron






Опции Yum



ответить «yes» при запросе,

-y


# yum update -y


ответить «no» при запросе

--assumeno


использовать Yum без плагинов

--noplugins


или отключить определенный плагин

--disableplugin=fastestmirror


включить плагины, которые установлены, но отключены

# yum --enableplugin=ps


включить отключенный репозиторий

# yum update -y --enablerepo=epel


отключить репозиторий

# yum update -y --disablerepo=epel


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

(на Centos 7 x86_64 будут скачаны в '/var/cache/yum/x86_64/7/base/packages/')

# yum install httpd --downloadonly




Cледующие команды доступны после установки пакета yum-utils



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

# find-repos-of-install httpd


найти процессы, пакеты которых обновлены и требуют рестарта

# needs-restarting


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

# repoquery  --requires --resolve httpd


синхронизировать yum репозиторий updates в локальную директорию repo1

# reposync -p repo1 --repoid=updates


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

# verifytree URL


завершить транзакции

# yum-complete-transaction


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

# yum-builddep


управление конфигурационными опциями и репозиториями yum

# yum-config-manager


запрос к локальной базе yum, отображение информации о пакете

(использованная команда, контрольная сумма, URL с которого был установлен и другое)

# yumdb info httpd


скачать rpm пакеты из репозитория

# yumdownloader


скачать src.rpm пакет из репозитория

(должен быть подключен соответствующий репозиторий, например в '/etc/yum.repos.d/CentOS-Sources.repo' в CentOS)

yumdownloader --source php




Конфигурационные файлы Yum и их расположение



Основной конфигурационный файл

/etc/yum.conf


директория, с конфигурациями (например, yum плагины)

/etc/yum/


директория, содержащая информацию о репозиториях

/etc/yum.repos.d/




Некоторые опции yum.conf:



Директория, где yum хранит кэш и файлы базы (по умолчанию '/var/cache/yum')

cachedir=/var/cache/yum/$basearch/$releasever


Определяет должен или нет Yum хранить кэш заголовков и пакетов после успешной установки. Значения: 0 или 1. (по умолчанию 1)

keepcache=1


уровень вывода отладочных сообщений. Значения: 1-10 (по умолчанию 2)

debuglevel=2


лог файл (по умолчанию '/var/log/yum.log')

logfile=/var/log/yum.log


обновлять устаревшие пакеты

obsoletes=1


проверка подписи пакетов. Значения: 0 или 1 (по умолчанию 1)

gpgcheck=1


включение плагинов. Значения: 0 или 1 (по умолчанию 1)

plugins=1






Некоторые полезные плагины



Добавляет опцию командной строки для просмотра ченжлога перед/после обновлениями

yum-plugin-changelog


выбирает более быстрые репозитории из списка зеркал

yum-plugin-fastestmirror


добавляет команды keys, keys-info, keys-data, keys-remove, которые позволяют работать с ключами.

yum-plugin-keys


блокировать указанные пакеты от обновления, команда yum versionlock

yum-plugin-versionlock


добавление команд yum verify-all, verify-multilib, verify-rpm для проверки контрольных сумм пакетов

yum-plugin-verify




Работа Yum через прокси сервер



Для всех пользователей:

добавить в секцию [main] в /etc/yum.conf

proxy="http://server:3128"


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

proxy_proxy_username=user
proxy_password=pass


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

# export http_proxy="http://server:3128"



Создание RPM пакета для Fedora

Быстрое создание rpm пакета в CentOS с помощью Checkinstall
Установите обработчики rpm пакетов:
yum install -y rpm-build rpmdevtools

После установки выполните следующую команду. Она создаст зависимости rpm пакетов:
rpmdev-setuptree

К сожалению Checkinstall недоступен в репозитариях CentOS. Солный список rpm пакетов доступен на следующей странице:
http://rpm.pbone.net/index.php3?stat=3&search=checkinstall&srodzaj=3

Его нужно скачать и установить:
wget -no-check-certificate https://filebox.ece.vt.edu/~mclint/puppet/files/checkinstall-1.6.2-3.el6.1.x86_64.rpm
rpm -i checkinstall-1.6.2-3.el6.1.x86_64.rpm

Раньше использовалась другая ссылка и когда она перестала работать я чуть не пришел у ужас. В общем нашел другую, скачал и разместил у себя на сервере:
wget /wp-content/uploads/2016/04/01/checkinstall-1.6.2-3.el6.1.x86_64.rpm

После этого checkinstall готов к использованию. Используйте его вместо make install при сборке пакетов.

Следующая конструкция не будет устанавливать приложение, а подготовит пакет готовый к установке и покажет его местонахождение:
checkinstall -install=no

Например:

**********************************************************************

Done. The new package has been saved to

/root/rpmbuild/RPMS/x86_64/httpd-2.2.31-1.x86_64.rpm
You can install it in your system anytime using:

rpm -i httpd-2.2.31-1.x86_64.rpm

**********************************************************************

Готовый пакет можно установить следующей командой:
rpm -i /root/rpmbuild/RPMS/x86_64/httpd-2.2.31-1.x86_64.rpm

Если же Вы собрали пакет для обновления существующего в системе, тогда используйте:
rpm -U /root/rpmbuild/RPMS/x86_64/httpd-2.2.31-1.x86_64.rpm

https://habrahabr.ru/post/301292/

EPEL (Extra Packages for Enterprise Linux) — это основанный сообществом открытый и бесплатный проект репозитория предоставляемый командой Fedora, который содержит высококачественные пакеты дополнительного программного обеспечения для Linux дистрибутивов.

Read more... )
https://www.shellhacks.com/ru/epel-repo-centos-7-6-install/



посмотреть
базовая установка

Первым делом — выполняем обновление системы. Стоит отметить, в CentOS используется свой менеджер по работе с файлами — yum.
# yum -y update

Данная команда с ключом -y позволит выполнить быстрое обновление системы — во всех ситуациях, когда потребуется ввести подтверждение пользователя/администратора, это будет сделано автоматически.

Следующим этапом будет установка редактора nano и перенаправление всех почтовых сообщений на адрес root’а:
# yum -y install nano

# echo %почтовыйадрес% >~/.forward

# chcon —u system_u ~/.forward
Настраиваем локаль и русскую раскладку:
# localectl set—locale LANG=«ru_RU.UTF-8» LC_NUMERIC=«C» LC_TIME=«POSIX» LC_MESSAGES=«POSIX»
# localectl set—keymap us ru —no—convert
# localectl set—x11—keymap us,ru pc105 grp:ctrl_shift_toggle —no—convert
# localectl status
   System Locale: LANG=ru_RU.UTF—8
                  LC_NUMERIC=C
                  LC_TIME=POSIX
                  LC_MESSAGES=POSIX
       VC Keymap: us
VC Toggle Keymap: ru
      X11 Layout: us,ru
       X11 Model: pc105
     X11 Variant: grp:ctrl_shift_toggle
# sed —i —follow—symlinks ‘s/vconsole.font=[^ ]*/vconsole.font=latarcyrheb-sun16/g’ \
/etc/sysconfig/grub
# sed —i —follow—symlinks ‘s/vconsole.keymap=[^ ]*/vconsole.keymap=ru/g’ \
/etc/sysconfig/grub
# grub2—mkconfig —output=/boot/grub2/grub.cfg

После перезагрузки мы сможем переключаться по CTRL+SHIFT на русскую раскладку.

Настройка менеджера пакетов yum:

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

# nano —w /etc/yum.conf
installonly_limit=3
# yum —y install yum—cron yum—utils

Включаем проверку новых версий пакетов (информация о новых версиях будет приходить по почте, сами пакеты обновляться автоматически не будут):

# nano —w /etc/yum/yum—cron.conf
download_updates = no
# systemctl enable yum—cron.service
# systemctl start yum—cron.service

Базовая настройка операционной системы CentOS 7 завершена.

https://www.gotoadm.ru/basic-settings-centos-7/

CentOS Полезные советы
---------------------------------------------------------------------


Настройка русской локализации utf-8 в CentOS (старое)
Настройка русской локализации utf-8 в CentOS

locale -a | grep ru
нет русской локали то ее необходимо сделать. Команда для этого выглядит так:
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8

файлы находящиеся в папке /usr/share/i18n/ принадлежат glibc-common-2.x.x и если вы их не наблюдаете там, то необходимо разбираться с самим glibc-common

touch /etc/sysconfig/i18n
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

запись в /etc/environment перебивает этот файл, т.е. если там есть LANG="en_US.UTF-8" то в /etc/sysconfig/i18n можно писать что угодно


если пустой /usr/share/i18n/locales/ и выдаёт ошибку
haracter map file `UTF-8' not found: No such file or directory
cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory

yum -y install glibc-locale-source glibc-langpack-en
localedef -f UTF-8 -i en_US en_US.UTF-8



yum install yum-plugin-fastestmirror
yum install yum-plugin-priorities
yum -y install epel-release

кракозябры в консоли
unicode_start

в fedora это лечится так:
dnf install glibc-langpack-ru
localectl set-locale LANG=ru_RU.utf8
проверить
localectl
можно ещё поправить /etc/vconsole.conf список раскладок
# KEYMAP="ruwin_alt-UTF-8"
KEYMAP="ruwin_alt_sh-UTF-8"
FONT="UniCyrExt_8x16"
затем
sudo systemctl restart systemd-vconsole-setup
и пересобрать initramfs:
sudo dracut -f

если нужна раскладка, которой нет в системе, то добавлять её нужно сюда:
/lib/kbd/keymaps/legacy/i386/qwerty/
https://github.com/A-Projects/Ruchey/
переделать раскладку
vim /lib/kbd/keymaps/legacy/i386/qwerty/ru.map.gz

/etc/vconsole.conf
KEYTABLE="ru"
MODEL="pc105"
LAYOUT="us,ru"
VARIANT="intl"
OPTIONS="grp:alt_shift_toggle,grp_led:scroll"

настройка раскладки и локали
system-config-language
system-config-keyboard

универсальные инженерные раскладки, имеющие одинаковый набор и расположение символов, как для кириллицы, так и для латиницы
https://github.com/A-Projects/Ruchey/

минимальная графика
yum groupinstall "X Window System"
yum install gdm fluxbox
(без gdm и кучи что он потащит нормально запустить иксы не выйдет, приколочено гвоздями)

CentOS-репозитории
Дополнительные репозитории совместимые с CentOS

дополнительные репозитории для centos
https://wiki.colobridge.net/files/centosrepo.sh



после установки репозитория следует отключить его установкой параметра enabled=0 (По умолчанию там будет enabled=1) Например для EPEL это можно сделать в файле параметров репозитория /etc/yum.repos.d/epel.repo Для RPMforge в файле /etc/yum.repos.d/rpmforge.repo




После этого пакеты из этих репозиториев не будут доступны если вы не используете в команде установки пакета или обновления системы параметр
--enablerepo=<имя репозитория>

Например:
yum --enablerepo=epel install iftop
yum --enablerepo=rpmforge install iftop

https://packages.fedoraproject.org/
https://docs.fedoraproject.org/en-US/epel/getting-started/
https://copr.fedorainfracloud.org/

Yum, шпаргалка

У начинающих пользователей Linux могут возникнуть затруднения на самом первом этапе — не получится проверить текущее состояние сети командой ifconfig (будет выдаваться сообщение — команда не найдена). Это не проблема, это особенность работы CentOS, поэтому данную команду необходимо запускать от суперпользователя (администратора) командой:
Read more... )
http://www.gotoadm.ru/network-settings-in-centos-7/
https://sysadmin-note.ru/nastrojka-seti-v-centos-7/




Для работой с cisco по com-порту удобно пользоваться PuTTY, но необходимо дать права на пользование.
По умолчанию к устройствам /dev/tty* имеют доступ пользователи из группы «dialout». Посмотреть:

ls -al /dev/ttyS0
ответ

crw-rw---- 1 root dialout 4, 64 мая 5 07:42 /dev/ttyS0
можно увидеть, что доступ открыт для группы dialout

нужно добавить себя в эту группу:

sudo adduser <username> dialout
Перезагрузится.

случай сложнее, используется контроллер
Serial controller: MosChip Semiconductor Technology Ltd. PCI 9865 Multi-I/O Controller

usermod -a -G plugdev,dialout NameUser
id NameUser

lspci -v
lspci -nn
lspci -xvv

sudo dmidecode
dmesg | grep tty

sudo apt install setserial

setserial /dev/ttyS0 -a
setserial /dev/ttyS4 -a
setserial /dev/ttyS5 -a

stty -g -F /dev/ttyS0
stty -g -F /dev/ttyS4
stty -g -F /dev/ttyS5

stty -a < /dev/ttyS0
stty -a < /dev/ttyS4
stty -a < /dev/ttyS5

Стандартная скорость, бит/сек: 50,75,110,150,300,600,1200,1800,2000,2400,3600,4800,7200,9600,14400,19200,28800,38400,57600,115200
Проверка COM порта под linux
Установка minicom и подключение по консольному порту к коммутатору
Программирование COM порта


сканер штрихкодов
Silicon Labs CIPHERLAB 308 USB-to-RS232
https://forum.ubuntu.ru/index.php?topic=11431.0

lsusb -v
setserial -g /dev/ttyS*
sudo modprobe usbkbd
/dev/ttyUSB0

screen /dev/ttyUSB0 115200
screen -S session_name -X at window_number stuff ^C
screen -S session_name -X at window_number stuff $'\003'
screen -S session_name -X -p window_number stuff $'\003'

stty -a
lsof /dev/ttyUSB0
picocom --baud 115200 --flow n /dev/ttyUSB0
minicom -l -8 -c on
minicom -l -8 -c on -b 115200 -D /dev/ttyUSB0

http://ru.cipherlab.com/document.asp?id=1450

дисплей покупателя
Вывод информации на дисплей покупателя
Програмируем символы валют для дисплея покупателя
https://www.ascii-codes.com/cp866.html
http://docs.artix.su/display/ArtixDoc46/Epson

настройка дисплея
обязательно разрешить переключение кодовой страницы

Дисплей покупателя: Epson
Параметры подключения:
порт: /dev/ttyS1
Кодовая страница: cp866
Переключать кодовую страницу: вкл
Ширина строк: 20
Задержка сообщений: 0


Для начала работы инициализируем дисплей покупателя очистив память и экран индикации командой ESC @:
$ echo -n -e \\x1B\\x40 > /dev/ttyUSB0

стандартная проверка:
$ echo -n -e Hello, world!\\n > /dev/ttyUSB0

Отображение

Для индикации в дисплеях покупателя используется VFD или LCD панель обычно содержащая 2-е строки по 20 символов. Каждый символ в зависимости от модели дисплея может состоят из матрицы от 5*7 до 8*8 точек. Для данного примера используется дисплей с размером символа 5 точек по горизонтали и 7 точек по вертикали.

Символы закодированы в ПЗУ дисплея и доступны для вывода в диапазоне от 0x20 до 0xFF байта. И если диапазон от 0x20 до 0x7F, это стандартная кодовая страница ANSI, то диапазон от 0x80 до 0xFF выделен для дополнительных кодовых страниц, например кириллицы. Для переключения кодовых страниц используется команда ESC t n, где n, это номер кодовой страницы. Пример:



для замены символы доллара(код 0x26 в таблице символов нашего дисплея) на символ тенге с таким-же кодом, нам понадобится ESC/POS команда следующего вида:
$ echo -n -e \\x1b\\x26\\x01\\x24\\x24\\x05\\x50\\x50\\x5f\\x50\\x50 > /dev/ttyUSB0

Включаем загруженные символы командой ESC % n, где значение n единица или ноль в зависимости от того, включены или нет загруженные символы:
$ echo -n -e \\x1b\\x25\\x01 > /dev/ttyUSB0

Проверяем работу:
$ echo -n -e 1500$ > /dev/ttyUSB0

Программирование

Теперь осталось сделать автоматическим при подключении инициализацию кириллицы и загрузку символа тенге. Для этого нам необходимо установить для udev правила автоматического запуска bash-скрипта при подключение дисплея покупателя к Raspberry Pi. Командой udevadm узнаём код вендора и модели нашего дисплея.
$ udevadm info -q all -n /dev/ttyUSB0 | grep -E -i -w '.*VENDOR_ID.*|.*MODEL_ID.*'

E: ID_MODEL_ID=2303
E: ID_VENDOR_ID=067b

Создаём правила 90-init-vfd-display.rules:
$ sudo nano /etc/udev/rules.d/90-init-vfd-display.rules

, следующего содержания:



и скрипт:
$ sudo nano /usr/local/bin/init-vfd-display.sh

#!/bin/bash

sleep 20

echo -n -e \\x1B\\x40 > /dev/ttyUSB0
echo -n -e \\x1B\\x74\\x07 > /dev/ttyUSB0
echo -n -e \\x1B\\x26\\x01\\x24\\x24\\x05\\x50\\x50\\x5F\\x50\\x50 > /dev/ttyUSB0

sleep 3

Делаем исполняемым bash-скрипт и активируем наши правила:
$ sudo chmod +x /usr/local/bin/init-vfd-display.sh
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger --action=add
$ sudo service udev restart

Пробуем одновременно использовать символ доллара и тенге переключая их поочерёдно.
$ echo -n -e 1$ =\\x1B\\x25\\x01 181,95$ \\x1B\\x25\\x00 > /dev/ttyUSB0

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

Для корректной работы с ДП установим скорость передачи данных:
stty -F /dev/ttyUSB0 9600

Для очистки экрана дисплея выполним команду:
echo -e -n "\x0c\x0b" > /dev/ttyUSB0

echo — команда вывода в терминал. Опция -e — включает поддержку вывода escape-последовательностей, -n — указывает, что не надо выводить перевод строки. Допускается запись -en.
0с — очистка экрана дисплея и отмена строчного режима, 0b — перемещает курсор в верхнюю крайнюю левую позицию. Символ > — управление потоком (перенаправляет вывод). В данном случае в файл /dev/ttyUSB0 нашего устройства

команду изменяющую скорость для передачи данных на устройство можно было записать и так:
stty 9600 < /dev/ttyUSB0

Ну и для вывода сообщений на русском языке выполним:
echo -n "Привет!" | iconv -f UTF-8 -t CP866 > /dev/ttyUSB0

| — перенаправляет вывод одной команды на вход другой (конвейер). В нашем случае последовательность символов "Привет!" не выводится в файл устройства сразу, а передаётся на "конвертирование" утилите iconv. iconv — преобразует из одной кодировки в другую.



Работа с СОМ-портом на Си в linux
Неизвестный UART: теория




среда рабочего стола часть 2

Linux

рабочий стол в консоли


themes
site themes
Freedesktop
http://debian-art.org/
https://debianforum.ru/index.php?board=45.0

https://www.reddit.com/r/unixporn/
https://www.linux.org.ru/gallery/
https://github.com/sleekmason/extra-themes

ЛЕГКО СОЗДАВАЙТЕ СВОИ СОБСТВЕННЫЕ ТЕМЫ GTK НА ОСНОВЕ NUMIX С OOMOX
Графическое приложение для создания различных цветовых вариаций тем Oomox (на основе Numix), Materia (ex-Flat-Plat) и Arc (GTK2, GTK3, Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus и Suru ++ иконки темы.
https://github.com/themix-project/oomox

годные тёмные темы
https://github.com/B00merang-Project/B00merang-Themes
https://github.com/Ferdi265/numix-solarized-gtk-theme +++
Solarized-Dark-COLORPACK ++
https://github.com/rtlewis88/rtl88-Themes/tree/Solarized-Dark-gtk-theme-colorpack
Material-Solarized Complete-Desktop
https://github.com/rtlewis88/rtl88-Themes/tree/Material-Solarized
Solarized-BLACK
https://github.com/rtlewis88/rtl88-Themes/tree/Solarized-BLACK
https://github.com/schemar/solarc-theme
material-black-MAGIC - Semi-Transparent Variety Pack
https://github.com/rtlewis88/rtl88-Themes/tree/material-black-MAGIC
Breeze-Noir-Dark-GTK ++
https://github.com/L4ki/Breeze-Noir-Dark-GTK
Harmony-Dark ++
https://github.com/L4ki/Harmony-Dark
Back To Black +++
https://github.com/L4ki/Back-To-Black-GTK-3-Theme
Dark-Side +++
https://github.com/paullinuxthemer/Dark-Side
Dark-openSUSE
https://github.com/L4ki/Dark-openSUSE-GTK-2-3-Theme
Breeze-Blue-Dark +
https://github.com/L4ki/Breeze-Blue-Dark-GTK-3-Theme
Gently +
https://github.com/L4ki/Gently-GTK-3-Theme
Cyanogen ++
https://gitlab.gnome.org/cbowman57/cyanogen-theme
XFCE Dark Themes - Box Set ++
https://github.com/solsticeman/XFCE-Themes
Kogir-dark ++
https://github.com/freefreeno/Kogir
Baebae-gtk ++
https://github.com/freefreeno/Baebae-KDE
Karitim-Dark-GTK ++
https://github.com/freefreeno/Karitim-dark-gtk
Steel-Teal Theme
https://github.com/solsticeman/Steal-Teal-GTK3.20-Theme
NiteFlite Темы +
Hacking_Parrot_OS +
Arc Night
https://github.com/malvery/gtk-theme-arc-night
Ambiance DS BlueSB12
Trinity +
https://github.com/Elbullazul/Trinity
E5150
https://github.com/ju1464/E5150_Themes
ChromeOs-Dark
https://github.com/rtlewis88/rtl88-Themes/tree/ChromeOS-Dark
https://github.com/catppuccin/catppuccin
https://github.com/catppuccin/gtk
Hacking_Parrot

(эта только под gtk2)
https://www.opendesktop.org/p/1015989/
https://www.opendesktop.org/content/show.php/Emerge?content=157362
Dark-Olympic

Tk
https://github.com/Geballin/TTK-Theme-chooser
https://github.com/rdbende/gtkTtk
https://github.com/rdbende/Azure-ttk-theme
https://github.com/rdbende/Sun-Valley-ttk-theme

закосы под CDE
Common Desktop
https://github.com/B00merang-Project/Solaris-9
CDE-Solaris gtk2
CDE / Motif theme GTK3/4
Breeze CDE
CDE for KDE
cdepanel

закосы под винду
https://github.com/grassmunk/Chicago95
https://github.com/Stanton731/Memphis98
Redmond97
https://github.com/matthewmx86/Redmond97
XP Professional
https://github.com/B00merang-Project/Windows-XP
Aero
https://github.com/Elbullazul/Windows-7
Redstone
https://github.com/B00merang-Project/Windows-10
Server 2019
https://github.com/B00merang-Project/Windows-Server-2019/
Server 2003
https://github.com/B00merang-Project/Windows-Server-2003

иконки
https://win98icons.alexmeub.com/
https://www.gnome-look.org/p/1331475/

темы для qmmp
https://skins.webamp.org/

OS/2 Warp 4
https://github.com/B00merang-Project/OS-2-Warp-4/



Wayland
https://github.com/varmd/wayward
https://github.com/natpen/awesome-wayland
https://github.com/solarkraft/awesome-wlroots

запуск
cat ~/.profile


'XDG_SESSION_TYPE=wayland gnome-session'

weston labwc sway swayfx riverwm hyprwm hyprland nwg-shell miracle-wm wayfire wlmaker waybox niri

панель
https://github.com/Alexays/Waybar
https://github.com/LBCrion/sfwbar
https://codeberg.org/dnkl/yambar

DE
https://wiki.archlinux.org/index.php/Desktop_environment_(Русский)
https://lorwiki.org.ru/wiki/Список_DM,_WM_и_прочих_компонентов_рабочего_окружения

KDE
https://kde.org/distributions
https://neon.kde.org/
https://www.trinitydesktop.org/index.php
https://github.com/KDE/kde1-kdebase
https://github.com/heliocastro/kde1
https://github.com/heliocastro/kde2
Сборка KDE4 для Slackware 15.0 в стиле KTown — сборка на основе патчей PBSLACKS.
https://github.com/BrunoLafleur/pbslacks


XFCE
https://forum.xfce.org/index.php
https://goodies.xfce.org/projects/panel-plugins/start
https://docs.xfce.org/start
https://github.com/rhino-linux/unicorn

sudo apt-get install xfce4-whiskermenu-plugin
sudo apt-get install xfce4-clipman-plugin
sudo apt-get install menulibre

xfce4-settings-editor

профили дисплея в xfce4
xrandr --verbose --query
xfce4-display-settings
xfconf-query -c displays -lv
~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml

https://docs.xfce.org/xfce/xfce4-settings/4.16/display
«Диспетчер настроек» > «Экран» > «Дополнительно» > создать профиль для текущей конфигурации

https://b00merang-project.github.io/
https://www.xfce-look.org/p/1314848
https://github.com/B00merang-Project/Unity-7
https://github.com/B00merang-Project/Windows-7
https://github.com/B00merang-Project/Windows-XP
https://github.com/B00merang-Project/Windows-95
https://github.com/B00merang-Project/Solaris-9



LXQt
https://lxqt-project.org/
https://github.com/lxqt/lxqt-themes
https://www.opendesktop.org/browse?cat=446
https://github.com/AzumaHazuki?tab=repositories



Enlightenment
https://www.enlightenment.org/
https://www.enlightenment.org/docs/distros/ubuntu-start.md
https://repo.4e.by/
https://www.enlightenment-themes.org/
https://www.pling.com/s/Enlightenment/browse/
https://github.com/search?q=Enlightenment+themes&type=repositories



Etoile
http://etoileos.com/downloads/
https://github.com/etoile/Etoile
http://gnustep.org/
https://www.altlinux.org/GNUstep_(DE)
http://download.opensuse.org/repositories/X11:/GNUstep/
/usr/lib64/GNUstep/Applications/EtoileMenuServer

В состав Etoile входят подсистемы:

  • CoreObject - фреймворк для определения и организации взаимодействия объектов. Поддерживает сохранение состояния объекта (persistence) и лог версионных изменений (versioning), путем записи всех поступающих к объектам запросов.
  • LanguageKit - набор средств компиляции, основанных на использовании LLVM, для разработки на динамических языках программирования поверх Objective-C runtime.
  • EtoileFoundation - основной фреймворк Etoile, базирующийся на методах OpenStep;
  • EtoileUI - высокоуровневый тулкит для построения пользовательского интерфейса;
  • Camaelon - движок для отображения визуальных тем;
  • LuceneKit - фреймворк для организации полнотекстового поиска;
  • UnitKit - фреймворк для тестирования приложений;
  • MediaKit - мультимедиа подсистема;
  • SystemConfig - система для конфигурирования;
  • ScriptKit - средство для создания приложений на языках, отличных от Objective-C и Smalltalk;
  • Azalea - оконный менеджер;
  • AddressKit - средства для работы с адресной книгой, совместимы с AddressesKit для Mac OS X;
  • AZDock и AZSwitch - управляющая панель (dock) и менеджер переключения задач;
  • MenuServer - реализация MacOS-подобных горизонтальных меню;
  • StepChat - Jabber-клиент;
  • Vindaloo - программа для просмотра PDF;
  • Typewriter - текстовый редактор.



CDE
https://sourceforge.net/projects/cdesktopenv/
https://sourceforge.net/p/cdesktopenv/wiki/LinuxBuild/
http://toastytech.com/guis/sol.html
https://guidebookgallery.org/screenshots/cde15solaris9

закосы
CDE Plasma 5
Цвета: https://www.opendesktop.org/p/1252211/
Декорации: https://www.opendesktop.org/p/1252116/
Даже панельку чувак запилил: https://www.opendesktop.org/p/1231243/

XFCE Common Desktop
https://github.com/B00merang-Project/Solaris-9

Fvwm CDE тема.
http://fvwmforums.org/wiki/Decor/CDE/

https://github.com/NsCDE/NsCDE (FVWM)

А кто это у нас тут КДЕ под СДЕ косит? Оригинал таки!

настроить fb
sudo vi /etc/default/grub
Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT, and add video=hyperv_fb:[the resolution you want].

русские шрифты
$xset +fp /usr/share/fonts/X11/75dpi-ISO8859-5/
$Update Cache xfonts
sudo xset fp rehash
sudo fc-cache -fv
нужно руками править «fonts.alias, fonts.dir, encodings.dir» и вручную добавлять шрифты в систему




Прочие
https://system76.com/cosmic/
https://github.com/pop-os/cosmic-epoch
https://www.dracolinux.org/
https://lumina-desktop.org/
https://unityd.org/
https://lomiri.com/
https://edeproject.org/
https://sde-gui.github.io/
https://github.com/onflapp/gs-desktop
https://plainde.github.io/
https://github.com/plainDE
https://sourceforge.net/projects/orbitiny-desktop/
https://github.com/Nitrux/maui-shell
https://github.com/lirios/shell
https://github.com/JeffHoogland/moksha
https://github.com/codic12/worm

https://arcan-fe.com/
https://github.com/letoram
https://durden.arcan-fe.com/
https://github.com/letoram/durden

https://github.com/HeyPuter/puter
https://github.com/getumbrel/umbrel


http://rus-linux.net/lib.php?name=/po/00_base_xwin.koi


WM
https://wiki.archlinux.org/index.php/Window_manager_(Русский)
https://pkgsrc.se/wm
https://www.freshports.org/x11-wm/
http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/wm/
https://packages.gentoo.org/categories/x11-wm
http://www.xwinman.org/others.php
http://wiki.opennet.ru/TWM
разница между DE и WM, а также работа в голых иксах
gtk3 мышка колёсико WM
http://lib.ru/unixhelp/fonty.txt Кирилизация


Awesome WM
https://wiki.archlinux.org/index.php/Awesome_(Русский)
https://help.ubuntu.ru/wiki/awesome

super + number переход на другой тэг, где тэг это номер клавиши, точнее его положение (проводя аналогию с другими wm, тэг = вирт. рабочий стол).
super + shift + number перенести текущее окно на другой тэг.
super + j, super+k переход между окнами.
super + shift + j или super + shift + k поменять местами два окна.
super + Space изменение отображения окон. (В awesome очень много видов отображений — тайлинговые: вертикально, горизонтально; композитные — можно мышкой таскать; приложение в фокусе на весь экран и пр.)
super + Enter запустить терминал.
super + r запуск программы.
super+shift+c закрыть окно.
super+shift+r перезапустить awesome.
super+shift+q выйти из awesome.

i3
GOAPPLE: быстрая настройка I3-wm
https://github.com/Avdushin/GOAPPLE

sway
https://github.com/swaywm/sway
https://wiki.archlinux.org/title/sway
https://wiki.gentoo.org/wiki/Sway
SwayWM — сам себе UnixPorn


DWM
https://wiki.archlinux.org/title/Dwm
Создание простого для использования конфига DWM


FVWM
https://www.fvwm.org/Wiki/Config/
https://wiki.archlinux.org/title/FVWM
https://ru.bmstu.wiki/index.php?title=FVWM
FVWM - Строим свой wm (с преферансом и куртизанками)
Первые шаги с FVWM
https://man.freebsd.org/cgi/man.cgi?query=fvwm
http://arnaud.fortier-family.com/wiki/doku.php/fvwm/config
https://github.com/yaoguai/fvwm-min/blob/master/config
https://lorwiki.org.ru/wiki/FVWM
http://ironphoenix.org/fvwm/configs/

https://www.fvwm.org/
https://github.com/fvwmorg/
http://fvwm-crystal.sourceforge.net/
http://fvwm-nightshade.github.io/Fvwm-Nightshade/
https://github.com/urob/fvwm-tiling
https://fvwm-themes.sourceforge.net/
https://www.box-look.org/browse?cat=143
http://fvwm.xirr.com/non-std.html
https://vakuumverpackt.de/fvwm/
https://github.com/vakuum/fvwm-mtp


fvwm1
https://github.com/fvwmorg/fvwm1
http://fvwm.xirr.com/fvwm1.html
https://github.com/NishiOwO/fvwm1



fvwm2

Minim
Black Crystal
fvwm starter's kit

простейший конфиг, ~/.fvwm/config




конфиги с лора
https://gitlab.com/z_m_c/fvwm
https://github.com/Minda1975/FVWM-configs
https://github.com/Minda1975/FVWM-configuration
https://github.com/Minda1975/Minimal-FVWM
https://github.com/Minda1975/Again-FVWM
https://github.com/alexmihajlov/fvwm
https://github.com/yaoguai/fvwm-min
https://github.com/v1cont/ydesk
https://pastebin.com/fsrBZNJ0
https://pastebin.com/2QTFp3bN
https://pastebin.com/W1LYmYbr
https://github.com/111LUX/FVWM
https://github.com/zoomten/fvwm2-sgi
https://github.com/dmatveev/.fvwm

.fvwm2rc Дональда Кнута

https://github.com/NsCDE/NsCDE (закос под CDE)

зависание fvwm-menu-desktop во время создания меню и сбой с исключением python при использовании --get-menus
ValueError: Name node can't be used with "'True'" constant
https://gitlab.freedesktop.org/xdg/pyxdg/-/commit/9b913229ace838958e51a16cabc41905a2460f7b
Начиная с Python 3.8.4, когда ast.Name экземпляр создается с помощью True, Falseи None, возникает ошибка ValueError [1][2]



fvwm-crystal
править файлы
/usr/share/fvwm-crystal/fvwm/preferences/DeskPageX
/usr/share/fvwm-crystal/fvwm/preferences/DefaultTerminal
/usr/share/fvwm-crystal/fvwm/components/functions/Keyboard-Modifiers
изменить



/usr/share/fvwm-crystal/fvwm/components/bindings/Misc-Keybindings
/usr/share/fvwm-crystal/fvwm/components/bindings/Misc-Keybindings_NumLock
добавить между # Main menu и # XDG application menu



отображение программ тут
/usr/share/fvwm-crystal/fvwm/Applications/

дефолтные клавиши
Alt+Right_Win вызывает меню приложений, а Alt+Menu вызывает системное меню
Alt + ` открывает QuakeConsole
Alt + Shift + ` открывает новый терминал
Alt + F1, F2, F3, F4, F5, F6, F7, F8 переключает рабочие столы
Alt + h, j, k, l и Alt + Shift + h, j, k, l перемещают активное окно в различные позиции на экране.
Alt + KP_1, KP_2, KP_3, KP_4, KP_5, KP_6, KP_7, KP_8, KP_9 аналогично вышеописанной функции
KP_/ сворачивает окно в заголовок и обратно
Alt + Shift + F1, F2, F3, F4, F5, F6, F7, F8 перемещают активное окно на соответствующий рабочий стол
Alt + Shift + KP_ или Alt + Shift + Backspace закрывает активное окно
Alt + KP_ или Alt + Backspace сворачивает текущее окно
Полный же список клавиш можно узнать из файлов /usr/share/doc/fvwm-crystal/Keyboard bindings.txt.gz и /usr/share/doc/fvwm-crystal/Mouse bindings.txt.gz


Openbox
obconf obmenu obmenu-generator obkey obsession obbrowser obapps

https://github.com/shaggyz/obmenu-qt
https://github.com/keithbowes/obmenu
https://github.com/0x10/obmenu2

openbox тайлинг
https://github.com/Minda1975/window-managers-configs/blob/master/config/openbox/rc.xml

themes:
установка тем
tar -xavf Nord-Openbox.tar.xz && tar -czvf Nord-Openbox.obt Nord-Openbox
obconf

https://github.com/sleekmason/Themes/tree/master/Openbox-themes

Nord Openbox theme
Xinit
E5150 Openbox
Arcbox
GreyBox
neo
Obiwine
Retro 5 Classic/98
Windows Classic [2000/ME/XP] inspired Openbox theme
Retro 6 XP Luna
Retro 7 Aero/Vista
Retro 4 Wrap
Micro 95
twm theme
Retro 1 China Terminal
Indigo
Black Irish OpenBox Theme
Tron Green
M4qu3l4n-01-Box
Oxygen: Medium Grey OB Theme
KDE4 Plastik OB
waldorf1314
Sapphire
NOXMOD
Hatta
Black Leather
stagnant
ACIDbox
BlueFear
Field+Stream
Sea2Sky
pudding pop
Goth/Industrial 2
Concrete
Debianized Focus Pocus
CoalMine
Storm
stellar
Inkpot Openbox
OpenRoyal



Fluxbox
https://wiki.archlinux.org/index.php/Fluxbox_(Русский)
http://fluxbox.sourceforge.net/docbook/ru/html/book1.html
Как настроить Fluxbox за 5 минут в Debian/Ubuntu или Fedora
http://bisheng-linux.blogspot.com/2011/07/5-minute-guide-to-fluxbox.html
http://www.linuxcookbook.ru/articles/nastroyka-fluxbox
https://addy-dclxvi.github.io/post/my-fluxbox/

Поместить в ~./fluxbox/startup
setxkbmap -layout "us,ru" -option "alt_shift_toggle,grp_led:scroll"
добавить там же в автозапуск
exec fluxbox & fbpid=$! sleep 1 { & fbsetbg -l &xxkb & } & wait $fbpid

автомонтирование
https://rmkrug.wordpress.com/2011/10/21/fluxboxandautomount/#comment-21
apt-get install udisks-glue

nano ~/.udisks-glue



sudo apt install xxkb
nano ~/.xxkbrc




рецепт выше не обязателен, вместо xxkb годится fbxkb, раскладка лучше системная, запуск лучше сделать однократным

Поместить в ~./fluxbox/startup перед exec fluxbox
pkill -9 fbxkb
/usr/bin/fbxkb &


~/.fluxbox/start_check.sh

start_check.sh




темы
sudo apt install lxappearance
~/.fluxbox/styles
https://www.box-look.org/browse/cat/139/
https://tenr.de/styles/
https://www.deviantart.com/customization/skins/themes/fluxbox/
https://github.com/sleekmason/Configuration/tree/master/.fluxbox
https://github.com/sleekmason/Configuration/tree/master/Fluxbox/styles

как добавить выключение и перезагрузку в меню fluxbox

nano $HOME/.fluxbox/menu



nano $HOME/.fluxbox/fbfav





WindowMaker
https://github.com/window-maker/wmaker
http://manpages.ubuntu.com/manpages/trusty/ru/man1/wmaker.1x.html
http://wiki.linuxformat.ru/wiki/LXF107:Освойтесь_в_Window_Maker

https://github.com/gnustep
GNUstep: разрывая все шаблоны
https://www.nextop.de/NeXTstep_3.3_Developer_Documentation/

http://www.cs.mun.ca/~gstarkes/wmaker/
https://www.linux.org.ru/tag/windowmaker?section=3
GlassHexagons window maker theme
https://lonelymachines.org/windowmaker-themes/newer-themes/
Чтобы установить новую тему, достаточно распаковать архив в $HOME/GNUstep/Library/WindowMaker/Themes/

Под кнопкой Mod обычно подразумевается клавиша Alt на стандартной клавиатуре
F12	            Открыть меню приложений
F11	            Открыть список окон
Control+Escape	    Открыть меню для окна
Mod1+H	            Скрыть активное приложение1
Mod1+M	            Свернуть активное окно
Mod1+Up	            Активное окно наверх
Mod1+Down	    Активное окно вниз
Mod1+Tab	    Следующее окно из списка
Mod1+Shift+Tab	    Предыдущее окно из списка
Mod1+Control+Right  Следующее рабочее пространство
Mod1+Control+Left   Предыдущее рабочее пространство

Control+Up	Втянуть активное окно
Control+Left	Распахнуть активное окно по горизонтали
Control+Right	Распахнуть активное окно по вертикали
Control+Down	Распахнуть активное окно
Control+F11	Изменить размер окна


если вы случайно отключите WMClip и WMDock, единственный способ вернуть их в зад - отыскать в этом файле строки и заменить "YES" на "NO"
DisableClip = YES;
DisableDock = YES;

чтобы было нормальное изменение окон со стрелочками и размером, то вытащить из свежего дебиановского архива, напр
http://deb.debian.org/debian/pool/main/w/wmaker/wmaker_0.95.9-3.debian.tar.xz
debian/debianfiles/conf/WindowMaker и заменить ~/GNUstep/Defaults/WindowMaker

баги
если при смене обоев Apperance -> Васkground -> Gradient вылезает ошибка



то исправить в ~/GNUstep/Defaults/WMRootMenu



на





IceWM
cp /usr/share/icewm/menu $HOME/.icewm/menu
добавить в $HOME/.icewm/menu
menufile Programs1 folder programs1
создать меню programs1
vi $HOME/.icewm/programs1




vi $HOME/.icewm/startup



chmod +x $HOME/.icewm/startup

https://idesk.sourceforge.net/html/usage.html
https://wiki.archlinux.org/title/Idesk_(Русский)
sudo apt install idesk

распаковать в ~/.icewm/themes
https://github.com/bbidulock/icewm-extra-themes
Shades of Grey
Windows 2000 / ME inspired IceWM Theme
Windows7SE-Ice
IceWindows7
xp-new
Coronas Debian
Emerge2
Sky
Saphire-G
Icepuma
Ecogreen IceWM Theme
Blue Crystal IceWM Theme
Neon Theme Cyberpunk
Cupertino
TrueGrey +
https://gitlab.com/JackGrumbler/truegrey
IceGraphite +
https://github.com/vinceliuice/Graphite-gtk-theme
Icewm Minimal Black theme +
Icewm nord style ++
https://www.pling.com/s/Gnome/p/1267246/
https://github.com/EliverLara/Nordic
https://github.com/EliverLara/Nordic-Polar
Icewm TokyoNight style


pekwm
https://github.com/pekwm/pekwm
https://wiki.archlinux.org/title/PekWM
https://giters.com/gapan/xdgmenumaker
mmaker --no-desktop pekwm
xdgmenumaker -f pekwm > ~/.pekwm/menu

добавить в ~/.pekwm/menu



pekwm_theme search
pekwm_theme show spiff-p
pekwm_theme install spiff-p

https://github.com/sleekmason/Configuration/tree/master/.pekwm


e16
https://www.enlightenment.org/e16
https://sourceforge.net/projects/enlightenment/files/

apt install libimlib2-dev libxft-dev libxinerama-dev libxrandr-dev libxcomposite-dev libsndfile-dev
как опции
libedbus-dev libpango1.0-dev libxpresent-dev
libpulse-dev libasound2-dev pulseaudio-esound-compat osspd
mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev




apt purge libedbus-dev libpango1.0-dev libxpresent-dev и тд
apt autoremove

Следующие команды отображают список всех удалённых пакетов, чьи файлы настройки всё ещё остаются в системе (если таковые имеются):
sudo dpkg -l | awk '/^rc/ { print $2 }'
Эти пакеты могут быть удалены с помощью команды apt-get purge.
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

Памятка по управлению пакетами в Debian и Ubuntu

поддержка тем GTK
sudo apt install lxappearance

годные темы
http://themes.effx.us/previews
http://themes.effx.us/e16
http://themes.effx.us/packages/e16/
https://github.com/dharrop/themes

7teenE Aliens Chaos Chrome BrushedMetal BrushedMotif Chaos Ganymede GreyMarble Industrial Metallique Nebulon

wget -P ~/.e16/themes http://themes.effx.us/packages/e16/BrushedMetal.etheme


w9wm
полнофункциональный апплет глобального меню
https://github.com/rilian-la-te/vala-panel-appmenu

sudo apt install w9wm 9menu
echo "9menu -label 'X_progs' thunar xfce4-terminal SeaMonkeyPortable chromium-browser mousepad nitrogen exit" > $HOME/.w9wmrc
w9wm -grey -virtuals 12
левый Ctrl+Shift+левая_кнопка_мышки - меню записанное в .w9wmrc
правая_кнопка_мышки - меню w9wm
средняя_кнопка_мышки - выбор рабочего стола


ctwm
https://www.ctwm.org/themes.html
https://datagubbe.se/twm/
http://www.xwinman.org/ctwm.php
http://troubleshooters.com/linux/ctwm/
http://www.reivax.org/projets/cts/


bspwm
https://codeberg.org/Karter_Kein/dotfiles


cwm
https://man.openbsd.org/cwmrc.5
https://findelabs.com/post/cwm-config/
https://romanzolotarev.com/openbsd/cwm.html


tvtwm
https://www.freshports.org/x11-wm/tvtwm
https://gitweb.gentoo.org/user/lmiphay.git/tree/x11-wm/tvtwm/tvtwm-11.ebuild
https://github.com/da4089/tvtwm
https://sourceforge.net/projects/tvtwm7/


qtile
https://qtile.org/
https://github.com/qtile/qtile
https://pypi.org/project/qtile/
https://github.com/qtile/qtile-examples/
https://pypi.org/project/qtile-profiles/
https://wiki.archlinux.org/title/Qtile
https://www.reddit.com/r/qtile/
https://github.com/Andrey0189/qtile-rice
https://github.com/DaniDiazTech/Qtile-Config
https://codeberg.org/Oglo12/personal-qtile-config
https://pastebin.com/k8yQqRUx

pip install qtile


Текстовые WM (wm в tty)
Viper Window Manager (VWM) — это легкий, расширяемый оконный менеджер для консоли.
http://vwm.sourceforge.net/index.html

Monotty Desktopio Текстовая среда рабочего стола внутри вашего терминала
https://github.com/netxs-group/vtm
https://github.com/directvt/vtm

Twin - это оконная среда с поддержкой мыши, оконным менеджером, эмулятором терминала и сетевыми клиентами, все внутри текстового дисплея.
https://github.com/cosmos72/twin


Прочие
afterstep nextspace
sawfish jwm
fvwm1 mwm vtwm olvwm fwmx blackbox
dwm xmonad spectrwm herbstluftwm notion ratpoison stumpwm musca exwm berry
qtile

https://ftp.gwdg.de/pub/x11/x.org/contrib/window_managers/
https://sunsite.icm.edu.pl/pub/X11/contrib/window_managers/


https://wiki.archlinux.org/index.php/Comparison_of_tiling_window_managers_(Русский)


menu WM
vdesk 3 && mousepad
update-alternatives --config x-terminal-emulator
update-menus
https://www.debian.org/doc/packaging-manuals/menu.html/
/etc/menu/,/usr/share/menu/,/usr/lib/menu/,~/.menu/

pdmenu jgmenu

http://menumaker.sourceforge.net
https://github.com/gapan/xdgmenumaker

https://github.com/themad/xmenud/blob/master/xmenud.py
wget -P $HOME/bin https://raw.githubusercontent.com/themad/xmenud/master/xmenud.py
python2 xmenud.py
chmod +x xmenud.py
xmenud.py -t
xmenud.py -t -n

wget -P $HOME/Downloads/ https://sites.google.com/site/jvinla/myGtkMenu-1.3.tar.gz
mkdir -p $HOME/lib/myGtkMenu/
tar -xvzf $HOME/Downloads/myGtkMenu-1.3.tar.gz -C $HOME/lib/myGtkMenu/



chmod +x $HOME/bin/myGtkMenu





Прочие
Arcan
https://arcan-fe.com/
https://github.com/letoram



Windows

Litestep


Litestep как альтернативный рабочий стол на TS
Создание тем для LiteStep
http://litestep.info/overview/litestep-manual.html

blackbox


https://bb4win.sourceforge.net/bblean/
http://blackbox4windows.com
https://spoonm.org/bbzero/
http://www.boxshots.org/
http://www.boxshots.org/styles.zip
http://xoblite.net/

http://bb4win.sourceforge.net/styles.html
Радикальное решение всех проблем с интерфейсом Windows 8

bblean не отображается tray windows
Причина, по которой половина или более значков не отображаются, связана с тем, что explorer работает под bblean. Вам нужно будет убить его перед запуском оболочки blackbox, попробуйте что-то вроде этого

start_bb.bat



или грохнуть в taskmgr процесс explorer, затем запустить bbLean


bbIconBox.rc



Прочие


https://gnustep.github.io/windows/installer.html
http://sharpe.sourceforge.net/Download.html
https://github.com/McYoloSwagHam/win3wm
https://github.com/fuhsjr00/bug.n
https://github.com/workspacer/workspacer
https://github.com/TimUntersberger/nog
https://github.com/LGUG2Z/komorebi

https://www.astonshell.ru/
https://www.lighttek.com/talisman.htm
https://www.stardock.com/products/windowblinds/
https://www.actualtools.com/windowmanager/
https://maxto.net/ru

https://virtuawin.sourceforge.io/
https://windowspager.sourceforge.net/
https://winlaunch.org/

https://learn.microsoft.com/ru-ru/windows/powertoys/always-on-top
https://learn.microsoft.com/ru-ru/windows/powertoys/fancyzones



среда рабочего стола часть 1

Soft
консольная подборка

линуксовые софтинки

https://nosystemd.org/

https://flathub.org/
https://snapcraft.io/
https://appimage.github.io/apps/
https://github.com/ostreedev/ostree
https://prism-break.org/ru/categories/gnu-linux/

системные утилиты
память: earlyoom zram-config
песочница: firejail

configure-debian command-not-found
мониторинг: wireshark tcpdump wavemon lshw atop hping3 inxi neofetch ncdu nmon htop sysstat tcpdump pstree iptraf ntopng iftop ngrep
shelltool cmdtool

эмуляторы терминала
xfce4-terminal hotwire tilix terminator sakura lilyterm tabby xonsh wezterm

alacritty


useful tabbed hotkeys:
Ctrl-Shift Return open new tab
Ctrl-Shift-h previous tab
Ctrl-Shift-l next tab
Ctrl-Shift-j move selected tab one to the left
Ctrl-Shift-k move selected tab one to the right
Ctrl-Shift-u toggle autofocus of urgent tabs
Ctrl-Tab toggle between the selected and last selected tab
Ctrl-‘ open dmenu to either create a new tab appending the entered string or select an already existing tab.
Ctrl-q close tab
Ctrl-u focus next urgent tab
Ctrl-[0..9] jumps to nth tab
F11 Toggle fullscreen mode.


mkdir -p ~/.config/alacritty/themes
git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes



вместо {theme} любое из перечисленного

campbell chicago95 gnome_terminal kitty linux konsole_linux msx terminal_app tango_dark ubuntu xterm zenburn
gotham falcon iris monokai_charcoal omni
cyber_punk_neon dark_pride gruvbox_dark rainbow inferno

alacritty old version
git clone --branch yaml https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes




дисковые
whdd badblocks gparted
https://www.r-studio.com/ru/free-linux-recovery/
https://www.cgsecurity.org/wiki/TestDisk_Download
https://github.com/whdd/whdd
https://dmde.ru/
http://www.hddsuperclone.com/

файловые
файловый менеджер
krusader dolphin konqueror nautilus nemo thunar pcmanfm zzzfm sunflower rox-filer doublecmd qtfm emelfm2 tkdesk mc lfm sfbm

архиваторы: file-roller peazip
https://github.com/samyk/rarcrack
утилиты: pup-volume-monitor

usb
Ventoy WoeUSB WoeUSB-ng ROSA_ImageWriter
https://github.com/jsamr/bootiso (терминальный)

cdrom
https://cdemu.sourceforge.io/


desktop
утилиты
display servers: xpra xnest xephyr xdmx Xvfb
тайлинг: qtile (WM) pytule xtile
композитор: picom xcompmgr compton
управлялки: xhost xdotool autokey ctrlwm wmctrl sxhkd xwinmosaic vdesk
x2x
xkill
моник: xinerama fbset xrandr arandr lxrandr autorandr xlayoutdisplay brightnessctl magnus touchegg
клава: fbxkb xmodmap
принтер: cups xsane
webcamera: droidcam
вывод инфы: screenfetch neofetch Xfdashboard xlsclients
скриншот: scrot


menu
dmenu rofi ulauncher xlunch pdmenu gmrun menutray xlunch fbmenugen obmenu-generator jgmenu mygtkmenu xmenud menumaker xdgmenumaker Whisker Menu

panel bar
plank perlpanel wbar bbdock fbpanel cairo-dock hpanel qtpanel bmpanel bmpanel2 adesk adeskbar adeskmenu avant-window-navigator polybar stalonetray taskbar

буффер обмена
clipit xclip xsel xfce4-clipman
https://github.com/hluk/CopyQ
pyperclip


безопасность
Инструменты Kali Linux

VeraCrypt gpg seahorse keepassxc cryptomator cryfs
https://github.com/Manisso/fsociety

мониторинг: wireshark tcpdump wavemon lshw atop hping3
etherape если "invalid cast from 'GtkLabel' to 'GnomeCanvas'" то apt-get install libgnomeui-0

Timeshift защищает вашу систему, делая инкрементальные снимки файловой системы через регулярные промежутки времени
https://github.com/teejee2008/timeshift

восстановление удалённых файлов: photorec extundelete scalpel foremost

безопасное удаление
wipe -rfi /path/to/директория/

файл
shred -u /path/to/file
shred -u -n 35 -z /path/to/file1 /path/to/file2 /path/to/file3
shred -u -z *.txt

диск
shred --iterations 3 -z -v /dev/sdd1
--iterations 3 - 3 прохода;
-z - шлифануть дополнительно нулями (чтобы скрыть факт зачистки);
-v - ход процесса;
-n - количество перезаписи

https://github.com/samyk/rarcrack

разработка
https://www.hex-rays.com/products/ida/support/download_freeware.shtml
редакторы текста
IEP sublimetext CudaText textadept wxmedit scite tea-qt fresh helix
suplemon
заменить в suplemon/suplemon/modules/crypt.py 'from Crypto' на 'from Cryptodome'

l3afpad focuswriter

bokken cutter
hexdump hexedit ghex bless ImHex
radiff2 diffuse meld
sttr
HeildiSQL

настольные приложения из веб страниц
https://github.com/tw93/Pake

https://docs.dust3d.org/en/latest/install.html
http://www.draftsight.com/download-linux-ubuntu

интернет
браузеры
thorium ungoogled-chromium min qutebrowser
librefox waterfox librewolf seamonkey
qtweb nyxt luakit

qutebrowser
https://www.linux.org.ru/gallery/screenshots/17451995?cid=17452598
в браузере уже есть встроеный блокировщик рекламы - надо только базы обновить, жмешь по очереди : Tab Enter все базы обновлены




RSS
miniflux


скачивание
rtmpdump youtube-dl yt-dlp you-get ytfzf streamlink Hitomi-Downloader
aria2 axel wpull
qbittorrent transmission deluge rtorrent ctorrent
tribler

https://localsend.org/ru (обмен файлами)

звонки, видео чаты, переписка
sflphone-gnome zoiper3 mumble pidgin gajim
https://discordapp.com/
https://tox.chat/clients.html
https://jami.net/ (аналог skype)
https://dino.im/ (аналог skype чат-клиент Jabber/XMPP )
https://github.com/signalapp
https://element.io/
https://www.ejabberd.im/
https://github.com/simplex-chat/simplex-chat

https://session.foundation/
https://getsession.org/
https://github.com/session-foundation

https://github.com/qTox/qTox
https://github.com/TokTok/qTox

https://github.com/gkdr/carbons
https://github.com/Junker/purple-xmpp-http-upload

Matrix: децентрализованные открытые мессенджеры с E2E-шифрованием. Обзор возможностей и настройка своего сервера
https://github.com/element-hq/dendrite
https://github.com/matrix-org/purple-matrix/

https://github.com/conversejs/converse.js
https://open-store.io/app/conversejs.luigi311

клиент WhatsApp (неофициальный)
https://github.com/WAClient/WALC


https://keybase.io/ ( безопасный обмен сообщениями и файлами.)
https://github.com/rustdesk/rustdesk/ (аналог TeamViewer.)


office
https://gitlab.com/mayan-edms/mayan-edms
https://github.com/zhoubear/open-paperless
https://github.com/zealdocs/zeal/

pdf djvu fb2
okular qpdfview zathura djview4 llpp fbless fbpdf jfbview fbgs fbida fim
koreader foliate fbreader coolreader mobi
pip3 install epy-reader
flibgolite
pdfcrack exiftool

переводчики
https://github.com/argosopentech/argos-translate
https://crow-translate.github.io/es/
https://github.com/soimort/translate-shell
https://github.com/Dushistov/sdcv
https://github.com/pot-app/pot-desktop

шрифты:               font-manager
распознавалка текста: cuneiform tesseract
будильник:            ding



видео
видеомонтаж: cinelerra
скринкастинг: vokoscreen-ng recordmydesktop obs-studio
Скринкастинг в Linux (FFmpeg)
передача потока: streamlink

стриминг
https://github.com/bluenviron/mediamtx
стриминг через ffmpeg в MediaMTX
ffmpeg -re -i input.mp4 -c:v copy -c:a copy -f rtsp rtsp://localhost:8554/mystream
ffmpeg -re -stream_loop -1 -i file.ts -c copy -f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream
ffmpeg -re -stream_loop -1 -i file.ts -c copy -f rtsp rtsp://myuser:mypass@localhost:8554/mystream
чтение с сервера
ffmpeg -i rtsp://localhost:8554/mystream -c copy output.mp4
ffmpeg -rtsp_transport tcp -i rtsp://localhost:8554/mystream -c copy output.mp4
образ docker
docker run --rm -it --network=host bluenviron/mediamtx:latest


adobe flash
https://archive.org/download/standalone_flash_players
https://archive.org/search.php?query=subject%3A%22flash+player%22&page=2
https://archive.org/download/adobe-flash-player-32-for-various-systems-and-flash-lite-pdfs.

аудио
плееры: mpv moc exo mpd ncmpcpp sonata gimmix gmusicbrowser cantata xmms2 ario
https://www.musicpd.org/clients/
mixxx
audacious deadbeef qmms AIMP6
радио: curseradio radiotray-lite
observer obplayer libretime XFB rivendell
микшеры: pavucontrol volwheel
теги: EasyTAG Kid3 puddletag eyed3 mtag
ffmpeg


https://katamotz.net/katahots/ (текст в аудио)
https://github.com/pot-app/pot-desktop
https://github.com/psemiletov/beseda
https://github.com/gkarsay/parlatype (аудио в текст)
https://github.com/openai/whisper
https://github.com/ggerganov/whisper.cpp
https://github.com/peteonrails/voxtype (whisper)
https://github.com/openai/whisper

https://www.musicpd.org/clients/
https://github.com/notandy/ympd

https://github.com/YaLiC/mpcwebshell
https://github.com/hyperblast/beefweb
https://github.com/swingmx/swingmusic
https://github.com/ampache/ampache

графика
nitrogen feh fim fbgrab
azpainter mtpaint lazpaint xnviewmp webp ristretto
gimp inkscape krita pinta


ИИ
https://github.com/aandrew-me/tgpt
https://github.com/dylanjcastillo/shell-genie
https://github.com/szczyglis-dev/py-gpt
https://github.com/LAION-AI/Open-Assistant

Кошельки
https://bitpay.com/
https://coin.space/bitcoin-wallet/
https://blockstream.com/green/
https://jaxx.io/downloads
https://mymonero.com/
https://samouraiwallet.com/download
https://www.bitcoinarmory.com/download/
https://atomicwallet.io/#download-block
https://bitcoincore.org/en/download/
https://bither.net/linux64/
https://electrum.org/#download
https://www.exodus.com/download/
https://github.com/dashpay/dash
https://www.coinomi.com/en/downloads/
https://gnosis-safe.io/
https://guarda.com/desktop/
https://www.mycrypto.com/
https://www.ledger.com/ledger-live/download
https://trezor.io/start/
https://ton.org/wallets

https://github.com/makevoid/paperbank

https://github.com/bluppfisk/coindicator

OSINT
https://github.com/cipher387/osint_stuff_tool_collection

советы и ссылки
Вместо бубна: огромная подборка инструментов сисадмина
Более чем 80 средств мониторинга системы Linux

изменение времени файлов, удаление истории посещения и команд в linux

записать на флешку, софт для записи, ошибки при установке
возня с флешкой

Как установить глобальное меню и HUD в Xubuntu 18.04

настройка Thunar
добавление поиска файлов в PCManFm

Пересобираем mc с поддержкой samba
Настройка xdg-open под свой файловый менеджер
как изменить браузер в Thunderbird
как изменить приложения по умолчанию в debian

Скринкастинг в Linux (FFmpeg)
примеры конвертации с помощью ffmpeg
Извлекаем звуковую дорожку из видео-файла
конвертирования музыкальной библиотеки
Конвертация видеоформатов .mts или .m2ts в avi
Конвертирование видео G2M3/G2M4
Конвертирование ID3-тэгов в mp3-файлах с кодировки windows-1251 (cp1251) в utf-8
Восстановление видео файлов
Как убрать шум с аудиозаписи

работа с кодировкой файлов
работа с кодировками

Как установить Multimedia Playing Server (MPD)
Эквалайзер для MPD

скриншоты в иксах и консоли, разрешение экрана в tty
рабочий стол в консоли
почта в консоли mutt и msmtp
youtube-dl 4k video
как скачать видео, которое передаётся как rtmp-поток
Как получить прямую ссылку на музыку из ВКонтакте?
Пользовательские настройки Bash
командная строка в стиле DOS
Разноцветные терминалы
русификация gtk1
Gtk-WARNING **: Загружаемый модуль тем не найден в > module_path: "pixmap"

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

Подсветка в nano
Idle Highlighting Themes
IEP тема оформления
делаем vim удобным
VIM как IDE для разработки на Python
Sublime Text 3 и консоль python

Установка Microsoft Office 2010 на Linux
Как активировать Microsoft Office 2010 на Linux
Конвертируем документы в Ubuntu

Краткая памятка по работе с архиваторами из консоли в Linux
Как стереть перезаписываемый диск из командной строки
Как создать ISO образ в Linux


Как создавать диалоговые блоки в интерактивных shell скриптах

Переводите любой выбранный текст с помощью комбинации клавиш и оповещений
Послеустановочный скрипт для Ubuntu/Linux mint
свежий LibreOffice
установка flashplugin для chromium 32 bits в Debian 8 Jessie
список плагинов для chrome
сборки chromium
FirefoxPortable


Связка ключей в Google Chrome и Chromium
https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/linux_password_storage.md
https://linuxthebest.net/svyazka-klyuchey-v-google-chrome-i-chromium/
sudo nano /usr/share/applications/google-chrome.desktop
sudo nano /usr/share/applications/chromium-browser.desktop
или
sudo nano /usr/share/applications/chromium.desktop
Exec=chromium-browser --password-store=basic %U
вместо Exec=/usr/bin/chromium %U


Устанавливаем Viber в Ubuntu и ее форках
https://zalinux.ru/?p=2163 [обновлено в 2023]
Установите зависимости:



Скачайте установочный пакет:
wget https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb

Установите пакет:
sudo dpkg -i viber.deb

устарело
https://linuxthebest.net/kak-vse-taki-ustanovit-viber-v-debian-gnu-linux-i-ubuntu/
sudo dpkg -i viber.deb
sudo apt install -f
Она должна была бы доустановить недостающие зависимости, но сейчас просто удалит криво установленый Viber, потому что он нам ни к чему.

Открываем терминал в каталоге с пакетом «viber.deb» и поочередно выполняем:
dpkg-deb -x viber.deb viber
dpkg-deb --control viber.deb viber/DEBIAN

ищем в долгом списке после слова «Depends:» libcurl3 и перепечатываем на libcurl4
внимание — очень важный шаг, без которого метод не сработает. Обязательно нужно удалить пустую строку в этом же файле. Она прячется в самом конце. сохраните документ и вернитесь обратно в терминал
dpkg -b viber viberlibcurl4.deb

Менеджер dpkg создаст пакет «vibercurl4.deb». Теперь его можно установить любым способом. Например, так:
sudo dpkg -i viberlibcurl4.deb


Очистка Debian или Ubuntu от файлов, оставшихся после удаления пакетов

apt-get и виндовые прокси ( NTLM-proxy, MS Proxy Server ISA ...)
работа в консоли через прокси (wget и тд)

Массовое переименование в консоли
Удаление файлов без возможности восстановления в Linux
Создание "неудаляемой" папки или файла в Linux
Шифрование разделов
Шифрование файлов
steghide - тайные послания, внедрить текст в рисунок
Временный swap

Debian 8 Jessie и 9 Stretch, напильник, рецепты
ubuntu 16.04 и напильник
Как установить deb-пакет в Arch Linux
обновление FreeBSD
UTF в консоли FreeBSD

Искусство командной строки
КОМАНДНАЯ СТРОКА. СПРАВОЧНИК АДМИНИСТРАТОРА
Соответствие команд MS DOS командам Linux
Искусство командной строки
Искусство программирования на языке сценариев командной оболочки

Памятка по управлению пакетами в Debian и Ubuntu
Yum, шпаргалка
Шпаргалка по управлению сервисами CentOS 7 с systemd
коротко об systemd
работа с сетевыми интерфейсами
установка сервера терминалов XRDP на Debian 9.
Установка xrdp на CentOS 7
Восстанавливаем свалившийся в busybox из-за ошибки initramfs Linux




виндовые софтинки
https://live.sysinternals.com/
https://technet.microsoft.com/ru-ru/sysinternals/pstools.aspx
https://technet.microsoft.com/ru-ru/sysinternals/processexplorer.aspx
https://download.sysinternals.com/files/ProcessExplorer.zip
https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
https://technet.microsoft.com/ru-ru/sysinternals/
ExtPart.exe

http://www.nirsoft.net/utils/nircmd.html
Commando VM: Windows для хакеров
Утилиты NirSoft для извлечения информации из Windows
https://pogostick.net/~pnh/ntpasswd/
https://github.com/sensepost/impersonate (sudo)
Узнать ключ активации Windows

https://www.microsoft.com/ru-ru/store/apps
https://github.com/microsoft/winget-cli
https://appget.net/
https://appget.net/packages
Как Microsoft убила AppGet
https://chocolatey.org/

https://www.nliteos.com/
https://nsudo.m2team.org/ru-ru/Download.html
http://www.eusing.com/free_registry_cleaner/registry_cleaner.htm
https://geekuninstaller.com/ru/download
https://www.chuyu.me/en/index.html
http://www.steffengerlach.de/freeware/scn2.zip
https://virtuawin.sourceforge.io/
http://windowspager.sourceforge.net/
http://winlaunch.org/
https://ueli.app/#/
https://github.com/Open-Shell/Open-Shell-Menu
http://www.classicshell.net/

https://sourceforge.net/projects/myclip/
https://voidtools.com/ru-ru/
https://www.7-zip.org/
https://codecguide.com/
https://www.farmanager.com/
https://doublecmd.sourceforge.io/
http://www.dnosp.com/
https://conemu.github.io/
https://www.putty.org/
http://www.9bis.net/kitty/
https://www.autohotkey.com/
https://github.com/M2TeamArchived/NSudo

https://hdd.by/victoria.html
https://crystalmark.info/en/download/#CrystalDiskInfo

https://www.r-studio.com/ru/free-linux-recovery/
https://www.cgsecurity.org/wiki/TestDisk_Download
https://www.partitionwizard.com/download.html
http://www.pspad.com/ru/
https://notepad-plus-plus.org/
http://softvoile.com/flashnote/
https://www.sumatrapdfreader.org
https://mh-nexus.de/en/hxd/
http://www.winhex.com/winhex/
https://www.hex-rays.com/products/ida/support/download_freeware.shtml
http://nlcalc.narod.ru/
Process Killer

https://www.heidisql.com/download.php

Small CD Writer
https://www.exactaudiocopy.de/

https://www.getpaint.net/
https://www.xnview.com/en/xnviewmp/
https://www.faststone.org/FSViewerDetail.htm

https://mpc-hc.org/
https://codecguide.com/download_kl.htm
https://www.aimp.ru/
https://www.getmusicbee.com/
https://www.foobar2000.org/

http://links.twibright.com/download/binaries/win32/
JustCode
https://github.com/minbrowser/min/releases/
https://ftp.mozilla.org/pub/

https://keepassxc.org/download/#windows
https://www.veracrypt.fr/en/Downloads.html

TDSSKiller
https://ru.malwarebytes.com/adwcleaner/
http://z-oleg.com/secur/avz/download.php
https://free.drweb.ru/download+cureit+free/
https://www.anvir.net/

https://github.com/gorhill/uBlock/

RDP Wrapper Library by Stas'M
https://github.com/stascorp/rdpwrap/
https://web.archive.org/web/20200506092848/https://github.com/stascorp/rdpwrap
https://github.com/asmtron/rdpwrap/
https://gitlab.com/adam.lukaitis/rdpwrap
https://gitlab.com/artrojort/rdpwrap

https://lcc-win32.services.net/

https://cygwin.com/
https://msys2.github.io/
https://sourceforge.net/projects/mingw-w64/
https://gnuwin32.sourceforge.net/
https://unxutils.sourceforge.net/
https://win-bash.sourceforge.net/
https://frippery.org/busybox/
https://sourceforge.net/projects/busybox-for-windows/
https://github.com/bmatzelle/gow/

https://www.msys2.org/
http://www.mingw.org/
https://mingw-w64.org/doku.php
Установка MinGW/MSYS и настройка окружения для разработчика
Установка MinGW/MSYS и настройка окружения для разработчика часть 1
Установка MinGW/MSYS и настройка окружения для разработчика часть 2
Установка MinGW/MSYS и настройка окружения для разработчика часть 3

Установка Cygwin для Windows


https://prism-break.org/ru/categories/windows/
https://nsis.sourceforge.io/Main_Page

Log Parser
Log Parser Studio

доступ к Интернету и службе Центра обновления Windows в более ранних версиях Windows
https://legacyupdate.net/

софт для windows XP
https://github.com/zachflower/awesome-windows-xp

браузер на основе chromium для windows XP
https://win32subsystem.live/supermium/
https://github.com/win32ss/supermium


16ти разрядные под win 64
http://www.dosemu.org/
https://github.com/dosemu2/dosemu2
https://www.dosbox.com/
https://github.com/dosbox-staging/dosbox-staging

http://www.vdosplus.org/
http://vdosplus.org/files/vDosPlus-201511.zip
http://www.vdosplus.org/tips.htm?tip5
https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/xkeyb/xkeyb/xkeyb19x.zip
распаковать в папку vDosPlus, добавить путь в файле vDosPlus\autoexec в параметре %PATH

C:\xkeyb19x;

также добавить туда диски и сетевые пути, типа

USE T: \\tsclient\tmp
USE F: C:\DOS\GAMES

https://sfwriter.com/ws-vdos.htm#fonts
скопировать шрифты consola или lucon из C:\Windows\Fonts в папку vDosPlus, затем вписать в файл vDosPlus\config эти строки

WP = WS
FONT = CONSOLA


https://github.com/otya128/winevdm
https://github.com/leecher1337/ntvdmx64
https://vdos.info/
http://takeda-toshiya.my.coocan.jp/msdos/


http://downloadarchive.documentfoundation.org/libreoffice/old/

Быстрый поиск драйверов на сайте Microsoft
Как сменить язык вода пароля при входе в систему windows
Сброс или изменение пароля Windows с помошью Linux
Как УЗНАТЬ пароль Windows?
Удаление неудаляемых веток реестра
Обход ограничений FAT32/NTFS
Создание символьной ссылки для папки в Windows 8.1, 8, 7, Vista
dd for windows

Список команд Windows ( Windows CMD )
оснастки командной строки windows
Консольные команды windows rundll32
Настройка командной строки Windows.
консольная подборка



macOS софтинки
http://www.macattorney.com/free.html

скины
https://skins.webamp.org/
https://archive.org/details/winampskins


обои
xsetroot -mod 15 15 -fg rgb:4/4/4 -bg rgb:1/1/1

просмотр и конвертация .webp
sudo apt-get install webp
for i in `find . -iname "*.webp"`; do dwebp $i -o $i.png; rm $i; done
find . -type f | sed 'p;s:.webp.:.:' | xargs -n2 mv

https://www.reddit.com/r/EarthPorn/
https://www.pling.com/browse?cat=295
https://www.nasa.gov/multimedia/imagegallery/index.html
https://www.astrobin.com/users/Wolfgang-Promper/
https://pxhere.com/
https://www.pinterest.ru/
https://www.deviantart.com/aeon-lux/gallery
https://www.deviantart.com/leohao73/gallery/all
https://www.artstation.com/grivetart
https://www.artstation.com/pao
https://www.eve-wallpaper.com/latest
https://www.perrikschelatphotography.com/browse
https://www.flickr.com/photos/113243238@N08/
https://www.flickr.com/photos/gregor_samsa/albums/72157712825456666
http://saitprofoto.rasfokus.ru/photos/best
https://fotografersha.livejournal.com/1147526.html
https://thanhphatbn.com/vi-ai-cung-can-desktop-an-tuong-moi-anh-em-tai-bo-suu-tap-hinh-nen-phong-cach-steampunk-cuc-chat
https://interfacelift.com/wallpaper/downloads/date/any/
http://nordtrails.com/galleries/
https://35photo.pro/korolevsergey/
https://35photo.pro/aleksey1965
https://35photo.pro/ryabkovvladimir/
https://www.drive2.ru/users/andreyenkin/
http://anpash.ru/
https://wallpapercave.com/denali-national-park-and-preserve-wallpapers
https://wallpapersafari.com/
https://www.peakpx.com/en/search?q=landscape
https://www.desktopbackground.org/
https://pibig.info/priroda/
https://kartinkin.net/pics/priroda/
https://ru.wallpapers-fenix.eu/
https://github.com/Minda1975/My-wallpapers/tree/master/Space
http://www.old-hard.ru/articles/old_windows_wallpapers_and_screensavers
https://packages.altlinux.org/ru/search?branch=p9&query=photo+wallpapers
http://git.altlinux.org/srpms/w/
https://github.com/LinuxKits/Distro-wallpapers/
https://www.wallpaperflare.com/
https://www.wallpaperbetter.com/en/hd-wallpaper-etfdz
https://www.wallpapertip.com/wpic/mTooox_debian-gnu-linux/

https://habr.com/ru/company/vdsina/blog/552536/
xsetroot -gray
convert -size 1920x1080 pattern:gray50 wallpaper.png

wget -O - -q reddit.com/r/EarthPorn.json | jq '.data.children[] |.data.url' | xargs feh
wget -O - -q reddit.com/r/earthporn.json | jq '.data.children[] |.data.url' | tail -1 | xargs feh --bg-fill
wget -O - -q reddit.com/r/earthporn.json | jq '.data.children[] |.data.url' | head -3 | tail -1 | xargs feh --bg-fill
exec $(wget -O - -q reddit.com/r/earthporn.json | jq '.data.children[] |.data.url' | head -3 | tail -1 | xargs feh --bg-scale)



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. 24th, 2026 10:55 pm
Powered by Dreamwidth Studios