Compare commits
8 Commits
868dec5ab3
...
gitea-draf
| Author | SHA1 | Date | |
|---|---|---|---|
| 08a4112420 | |||
| a420980165 | |||
| c4ce5155fe | |||
| e34afe876c | |||
| b24d95ac83 | |||
| 0891a4dcc1 | |||
| c8d7f83fcc | |||
| abd5f2c97a |
28
docs/assets/logo.svg
Normal file
28
docs/assets/logo.svg
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 175.000000 198.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,198.000000) scale(0.100000,-0.100000)"
|
||||
fill="#ffffff" stroke="none">
|
||||
<path d="M202 1689 l-92 -231 250 -620 c137 -342 262 -639 277 -661 31 -45 98
|
||||
-92 153 -107 47 -13 155 -13 205 1 58 16 123 65 155 116 32 49 100 214 100
|
||||
240 0 28 -153 434 -160 426 -4 -4 -42 -102 -85 -218 -42 -115 -86 -219 -96
|
||||
-230 -19 -19 -19 -19 -38 0 -10 11 -40 78 -66 150 -26 72 -89 243 -140 380
|
||||
-51 138 -152 412 -225 610 -73 198 -135 363 -139 367 -3 4 -48 -97 -99 -223z"/>
|
||||
<path d="M783 1906 c-60 -19 -107 -51 -139 -93 -27 -36 -114 -232 -114 -259 0
|
||||
-12 59 -178 130 -366 12 -32 25 -58 29 -58 4 0 43 96 86 213 43 116 85 220 95
|
||||
230 16 17 17 17 37 0 14 -12 111 -262 289 -743 147 -399 271 -736 276 -750 9
|
||||
-22 22 5 104 209 l93 234 -229 573 c-126 315 -241 598 -255 629 -35 79 -75
|
||||
126 -137 160 -45 24 -66 29 -138 32 -52 2 -101 -2 -127 -11z"/>
|
||||
<path d="M1412 1737 c-34 -94 -62 -178 -62 -185 0 -20 173 -443 179 -437 2 3
|
||||
35 80 73 171 l67 165 -91 230 c-51 126 -94 229 -97 229 -3 0 -34 -78 -69 -173z"/>
|
||||
<path d="M834 1116 c-35 -16 -72 -58 -80 -93 -17 -67 30 -145 99 -164 83 -22
|
||||
159 29 172 116 15 101 -97 184 -191 141z"/>
|
||||
<path d="M242 850 c-5 -14 -36 -90 -68 -169 -31 -79 -57 -150 -57 -156 0 -17
|
||||
176 -455 183 -455 7 0 130 333 130 353 0 15 -151 402 -170 437 -7 12 -10 10
|
||||
-18 -10z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
86
docs/misc/gitea.md
Normal file
86
docs/misc/gitea.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Кастомизация Gitea
|
||||
|
||||
```sh
|
||||
sudo su - git
|
||||
cd /var/lib/gitea/custom
|
||||
```
|
||||
|
||||
```sh
|
||||
mkdir -p /var/lib/gitea/custom/public/css
|
||||
mkdir -p /var/lib/gitea/custom/templates/custom
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo nano /var/lib/gitea/custom/templates/custom
|
||||
```
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="/custom/css/custom.css">
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo -u git mkdir css
|
||||
sudo -u git nano css/custom.css
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo systemctl restart gitea
|
||||
```
|
||||
|
||||
```sh
|
||||
sudo nano /etc/gitea/app.ini
|
||||
```
|
||||
https://docs.gitea.com/administration/customizing-gitea
|
||||
https://docs.gitea.com/administration/config-cheat-sheet
|
||||
|
||||
```ini title="app.ini"
|
||||
[server]
|
||||
LANDING_PAGE = explore
|
||||
|
||||
[other]
|
||||
SHOW_FOOTER_VERSION = false
|
||||
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false
|
||||
SHOW_FOOTER_POWERED_BY = false
|
||||
ENABLE_FEED = false
|
||||
|
||||
[i18n]
|
||||
LANGS = en-US,ru-RU
|
||||
NAMES = English,Русский
|
||||
|
||||
[repository]
|
||||
DISABLE_STARS = true
|
||||
|
||||
[ui.meta]
|
||||
AUTHOR = Artem Tishenko: Personal Git Repository Hub
|
||||
DESCRIPTION = A personal hub for managing Git repositories by Artem Tishenko.
|
||||
KEYWORDS = Artem Tishenko, Artyom Tishchenko, Git, self-hosted, personal projects, repositories, Gitea
|
||||
```
|
||||
|
||||
|
||||
```sh
|
||||
mkdir -p /var/lib/gitea/custom/templates/base
|
||||
cd /var/lib/gitea/custom/templates/base
|
||||
# перейти туда
|
||||
wget https://raw.githubusercontent.com/go-gitea/gitea/refs/tags/v1.22.3/templates/base/footer_content.tmpl
|
||||
|
||||
# remove help - https://docs.gitea.com
|
||||
# remove explore - explore.repos
|
||||
# remove sign_in (just visit /user/login)
|
||||
wget https://github.com/go-gitea/gitea/raw/refs/tags/v1.22.3/templates/base/head_navbar.tmpl
|
||||
|
||||
|
||||
mkdir -p /var/lib/gitea/custom/templates/repo
|
||||
cd /var/lib/gitea/custom/templates/repo
|
||||
# remove packages
|
||||
# remove wiki
|
||||
# remove repo.activity
|
||||
# remove repo.issues
|
||||
# remove repo.pulls
|
||||
# remove watch, fork
|
||||
wget https://raw.githubusercontent.com/go-gitea/gitea/refs/tags/v1.22.3/templates/repo/header.tmpl
|
||||
```
|
||||
|
||||
```sh
|
||||
# <a class="item" href="https://kb.tishenko.dev/" target="_blank">Knowledge base</a>
|
||||
/var/lib/gitea/custom/templates/custom/extra_links.tmpl
|
||||
```
|
||||
@@ -32,10 +32,11 @@ echo "<your-id-rsa.pub>" >> .ssh/authorized_keys
|
||||
ssh <user>@<IPv4>
|
||||
```
|
||||
|
||||
Желательно обновить все пакеты.
|
||||
Желательно обновить все пакеты и перезагрузить сервер.
|
||||
```sh
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Можно придумать серверу имя, оно будет отображаться в терминале после `<user>@`.
|
||||
@@ -56,6 +57,12 @@ sudo nano /etc/ssh/sshd_config
|
||||
- `PermitRootLogin no` - запрещаем авторизацию по SSH под `root`.
|
||||
- `PasswordAuthentication no` - запрещаем авторизацию по SSH по паролю.
|
||||
|
||||
После внесения изменений в конфиг, необходимо перезагрузить `sshd`.
|
||||
```sh
|
||||
# На некоторых системах ssh вместо sshd
|
||||
sudo systemctl reload sshd
|
||||
```
|
||||
|
||||
??? question "А что будет, если потерять SSH-ключ?"
|
||||
|
||||
Хостинг предоставляет доступ к `VNC` или другие методы подключения к серверу, которые не требуют подключения по SSH. Однако в таком случае будет необходим доступ к личному кабинету хостинга.
|
||||
@@ -76,10 +83,15 @@ Host <host>
|
||||
Port <ssh-port>
|
||||
```
|
||||
|
||||
Можно проверить, что подключение проходит без ошибок
|
||||
Можно проверить, что подключение проходит без ошибок.
|
||||
```sh
|
||||
# Если конфиг настроен
|
||||
ssh <host>
|
||||
```
|
||||
```sh
|
||||
# Без конфига
|
||||
ssh <user>@<IPv4> -p <ssh-port>
|
||||
```
|
||||
|
||||
## Настройка фаерволла c UFW
|
||||
|
||||
@@ -87,7 +99,7 @@ ssh <host>
|
||||
```sh
|
||||
# Установка UFW
|
||||
sudo apt update
|
||||
sudo apt install ufw
|
||||
sudo apt install ufw -y
|
||||
|
||||
# Открываем порт, используемый для SSH (по умолчанию 22)
|
||||
sudo ufw allow <ssh-port>/tcp
|
||||
@@ -142,8 +154,108 @@ sudo ufw status verbose
|
||||
sudo ufw delete allow "Nginx Full"
|
||||
```
|
||||
|
||||
## Настройка Fail2Ban
|
||||
|
||||
[Fail2Ban](https://github.com/fail2ban/fail2ban) - базовая защита сервера от brute-force аттак.
|
||||
|
||||
```sh
|
||||
sudo apt update
|
||||
sudo apt install fail2ban -y
|
||||
sudo systemctl enable fail2ban
|
||||
```
|
||||
|
||||
Теперь нужно [правильно настроить Fail2Ban](https://github.com/fail2ban/fail2ban/wiki/Proper-fail2ban-configuration).
|
||||
|
||||
```sh
|
||||
# Создаём файл с пользовательскими настройками
|
||||
sudo nano /etc/fail2ban/jail.local
|
||||
```
|
||||
|
||||
Настройка защиты SSH сервера.
|
||||
```ini
|
||||
[sshd]
|
||||
# Единственный обязательный параметр
|
||||
enabled = true
|
||||
|
||||
# Можно не указывать, если используется стандартный порт
|
||||
port = <ssh-port>
|
||||
|
||||
# Пример настроек. Эти параметры можно не указывать, тогда будут использованы
|
||||
# значения по умолчанию.
|
||||
# Если в течении 24 часов
|
||||
findtime = 86400
|
||||
# произведено 3 неудачных попытки логина,
|
||||
maxretry = 3
|
||||
# то банить IP навсегда.
|
||||
bantime = -1
|
||||
```
|
||||
|
||||
!!! tip "Более строгий конфиг для `fail2ban`"
|
||||
|
||||
Если на сервере настроена авторизация по ключу, можно смело использовать такой конфиг.
|
||||
|
||||
При авторизации по ключу, бан возможен только в случае указания неправильного имени пользователя, что исключено при использовании корректно настроенного SSH-конфига. В случае случайного бана всегда можно зайти на сервер через личный кабинет хостинга.
|
||||
|
||||
```ini
|
||||
[sshd]
|
||||
enabled = true
|
||||
port = <ssh-port>
|
||||
# Если произведена хотя бы одна неудачная попытка логина,
|
||||
maxretry = 1
|
||||
# то банить IP навсегда.
|
||||
bantime = -1
|
||||
```
|
||||
|
||||
|
||||
```sh
|
||||
# Применяем настройки
|
||||
sudo fail2ban-client reload
|
||||
```
|
||||
|
||||
После установки и первоначальной настройки `fail2ban` лучше перезагрузить сервер, иначе `fail2ban` может не заработать.
|
||||
```sh
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
??? tip "Дополнительные команды `fail2ban`"
|
||||
|
||||
```sh
|
||||
# Вывести список активных jail's
|
||||
sudo fail2ban-client status
|
||||
|
||||
# Вывести информацию по конкретному jail, в т. ч. список заблокированных IP
|
||||
sudo fail2ban-client status <jail-name>
|
||||
|
||||
# Разблокировать IP
|
||||
sudo fail2ban-client set <jail-name> unbanip <IP>
|
||||
|
||||
# Вывести логи fail2ban
|
||||
sudo tail -f -n 100 /var/log/fail2ban.log
|
||||
```
|
||||
|
||||
## Дополнительно
|
||||
|
||||
```sh
|
||||
# Вывести записи о неудачных попытках входа в систему
|
||||
sudo lastb | head -n 20
|
||||
|
||||
# Очистить записи о неудачных попытках входа в систему
|
||||
sudo truncate -s 0 /var/log/btmp
|
||||
|
||||
# Показывает, кто в системе прямо сейчас
|
||||
sudo w
|
||||
|
||||
# Логи попыток входа
|
||||
sudo grep "Accepted password" /var/log/auth.log | tail -n 20
|
||||
sudo grep "Failed password" /var/log/auth.log | tail -n 20
|
||||
sudo grep "Invalid user" /var/log/auth.log | tail -n 20
|
||||
|
||||
# Очистить логи с попытками входа
|
||||
sudo truncate -s 0 /var/log/auth.log
|
||||
```
|
||||
|
||||
## Полезные ссылки
|
||||
- [Initial Server Setup with Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04)
|
||||
- [UFW Essentials: Common Firewall Rules and Commands](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands)
|
||||
- [VPS cheatsheet](https://habr.com/ru/articles/756804/)
|
||||
- [VPS cheatsheet](https://habr.com/ru/articles/756804/)
|
||||
- [Fail2Ban](https://github.com/fail2ban/fail2ban)
|
||||
@@ -7,6 +7,7 @@ edit_uri: edit/main/docs/
|
||||
theme:
|
||||
name: material
|
||||
language: ru
|
||||
logo: assets/logo.svg
|
||||
favicon: assets/favicon.ico
|
||||
|
||||
icon:
|
||||
|
||||
Reference in New Issue
Block a user