AstralLinuxGuide | v3.3 from 24.10.2023

This commit is contained in:
2023-10-24 01:51:26 +03:00
parent 76ef3f0244
commit 1c5fc01ba6
3 changed files with 513 additions and 367 deletions

View File

@@ -1,17 +1,19 @@
![AstGuide.png](https://i.imgur.com/vQ8j1NO.png) ![AstGuide.png](https://i.imgur.com/vQ8j1NO.png)
# Дополнительная информация о данном LegacyInfo.md # Дополнительная информация о данном LegacyInfo.md
``` - Здесь будут опубликованы неактуальные команды/утилиты, чтобы не засорять основной README.md
Здесь будут опубликованы неактуальные команды/утилиты, чтобы не засорять основной README.md
Данная статья рассчитана на настройку под Ubuntu (рекомендуется) / Debian.
В случае если у вас Arch Linux или другие UNIX подобные системы - Ознакомьтесь с репозиторием необходимых пакетов.
Если необходимые пакеты отсутствуют, то попробуйте найти их в AUR/Snap/Flatpak.
В случае с AUR изучайте билд скрипт для вашей же безопасности.
Некоторые функции могут не работать конкретно на вашей системе. В этом случае не нужно винить автора статьи. - Данная статья рассчитана на настройку под Ubuntu / Debian. Основные рекомендации также могут быть применены для ARM
За подробной поддержкой обращайтесь в мой дискорд Astralium Org. - https://discord.gg/7XkGYJbtZg систем. Однако, если у вас Arch Linux или другие Unix системы - пожалуйста ознакомьтесь с документацией по установке
``` пакетов на эту ОС или поищите альтернативные пакеты.
- < NOTICE > Для AUR репозиториев настоятельно рекомендуется проверять исходники скрипта установки. В любом случае это
рекомендуется делать и для других репозиториев.
- < NOTICE > Некоторые функции могут работать неправильно или вовсе не работать на вашей системе.
### Специально для CentOS 8 (Не поддерживается автором статьи) ### Специально для CentOS 8 (Не поддерживается автором статьи)
``` ```
@@ -78,4 +80,109 @@ zip -r surv.zip /home/Survival
zip -r sb.zip /home/SkyBlock zip -r sb.zip /home/SkyBlock
# Либо используйте встроенный tar # Либо используйте встроенный tar
```
### IPTables (UFW/FIREWALLD) - Закрытие порта SSH, SFTP (22) + ICMP DROP
- На самом деле не рекомендую делать такое с динамическим IP, иначе вы рискуете потерять доступ к вашей серверной машине
```
# Быстродействие (Без закрытия SSH порта):
# sudo apt install ufw && sudo ufw allow 22/tcp && sudo nano /etc/ufw/before.rules
# Для before.rules:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ИЗМЕНИТЬ НА СЛЕДУЮЩЕЕ ЗНАЧЕНИЯ ufw-before-input
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
# Сохраняем конфигурацию через наш nano редактор (CTRL X + Y + ENTER)
# Перезагружаем UFW
sudo ufw reload
# Теперь все пинги блокируются извне
# Ниже представлена информация из документации v2.0 (Прошлая)
# Базовые настройки IPTables | Запрет пинга на ваш дедик | Запрет входа с других айпи по SSH (только ваш)
iptables -A INPUT -s IP/32 -p icmp -j DROP
# Или через FirewallD
sudo firewall-cmd --add-icmp-block=echo-request --permanent
# Разрешить свой айпи для входа через SSH,SFTP - ПУНКТ ДЕЛАТЬ ПЕРВЫМ ИЗ ВСЕХ!
iptables -A INPUT -p tcp --dport 22 -s YourIP -j ACCEPT
# Дропнуть порт 22 (aka SSH, SFTP). < ! > ДЕЛАТЬ ПОСЛЕ РАЗРЕШЕНИЯ < ! >
iptables -A INPUT -p tcp --dport 22 -j DROP
# Установка
apt-get install iptables-persistent
# Можно обойтись без этого и просто настроить восстановление правил IPTables через crontab :)
# Правила iptables необходимо создать, затем выполнить следующую команду
service iptables-persistent start
# Поскольку утилита является демоном — прекратить ее работу нельзя, однако можно очистить список правил
service iptables-persistent flush
# Обновить правила, если persistent уже был установлен
dpkg-reconfigure iptables-persistent
```
### IPTables - Закрытие портов на нескольких серверных машинах
- Здесь вы подробно узнаете как легко и быстро закрыть порты
```
# Представим что у нас есть два сервера VDS / VPS
# Первый сервер под маркой X - Это у нас будет Proxy сервер (Фильтр различных ботов, пакетов (TCP))
# Второй сервер под маркой Y - Это у нас будет Survival сервер (Основное выживание)
# На сервере X пропишите следующие команды в данном порядке, как они даны (Свреху вниз)
iptables -A INPUT -s <IP Y> -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
# На сервере Y пропишите следующие команды в данном порядке, как они даны (Сверху вниз)
iptables -A INPUT -p tcp -s <IP X> --dport <PORT Y (Survival)> -j ACCEPT
iptables -A INPUT -p tcp --dport <PORT Y (Survival)> -j DROP
# После манипуляций на каждом VDS / VPS нужно ввести данную команду
apt install iptables-persistent
# Если у вас он уже был установлен, то просто обновите правила используя команду
dpkg-reconfigure iptables-persistent
# Если хотите можете также ознакомиться со списком ваших правил iptables на каждой из виртуальных машин
iptables --list
# Узнать номера всех правил
iptables -L --line-numbers
# Удалять правила можно следующим способом
iptables -D INPUT ЧИСЛО
``` ```

735
README.md
View File

@@ -1,29 +1,42 @@
![AstGuide.png](https://i.imgur.com/vQ8j1NO.png) ![AstGuide.png](https://i.imgur.com/vQ8j1NO.png)
# О Мини-Проекте AstralLinuxGuide
### Плановые изменения по работе с Linux OS # Вступление AstralLinuxGuide (Unix System's)
- Конфигурации для Minecraft ( **_Folia_** by PaperMC ) от **VuTuV и DIDIRUS**
- Продвинутые конфигурации AntiXray под каждый мир **_( PaperMC )_** от **VuTuV** ### Последние изменения в этом репозитории
- Информация по настройке TCP Shield (рекомендуется) / Neo Protect (Возможно будет выложено в свободный доступ)
- Удобные скрипты на Shell для работы с вашими серверами и скринами (screen) (Возможно будет выложено в свободный доступ) - [От <\/didirus>](https://github.com/DIDIRUS4) добавлена базовая информация по работе с nft \(nftables - современная
утилита на замену iptables\).
- [От <\/didirus>](https://github.com/DIDIRUS4) небольшие изменения в дизайне и стиле этого репозитория.
# Дополнительная информация # Дополнительная информация
- [MinecraftRecommendations.md](MinecraftRecommendations.md) - [MinecraftRecommendations.md](MinecraftRecommendations.md)
- [VanillaIssues.md](VanillaIssues.md) - [VanillaIssues.md](VanillaIssues.md)
- [LegacyInfo.md](LegacyInfo.md) - [LegacyInfo.md](LegacyInfo.md)
# Дополнительная информация о данном README.md # Дополнительная информация о данном README.md
- Версия документа v3.2 от 08.04.2023
```
Данная статья рассчитана на настройку под Ubuntu (рекомендуется) / Debian.
В случае если у вас Arch Linux или другие UNIX подобные системы - Ознакомьтесь с репозиторием необходимых пакетов.
Если необходимые пакеты отсутствуют, то попробуйте найти их в AUR/Snap/Flatpak.
В случае с AUR изучайте билд скрипт для вашей же безопасности.
Некоторые функции могут не работать конкретно на вашей системе. В этом случае не нужно винить автора статьи. ### Версия документа v3.3 от 24.10.2023
За подробной поддержкой обращайтесь в мой дискорд Astralium Org. - https://discord.gg/7XkGYJbtZg
``` - Данная статья рассчитана на настройку под Ubuntu / Debian. Основные рекомендации также могут быть применены для ARM
систем. Однако, если у вас Arch Linux или другие Unix системы - пожалуйста ознакомьтесь с документацией по установке
пакетов на эту ОС или поищите альтернативные пакеты.
- < NOTICE > Для AUR репозиториев настоятельно рекомендуется проверять исходники скрипта установки. В любом случае это
рекомендуется делать и для других репозиториев.
- < NOTICE > Некоторые функции могут работать неправильно или вовсе не работать на вашей системе.
### Ссылки на нас
- [Наш Telegram](https://t.me/AstraliumOrg)
- [Наш Discord](https://discord.gg/7XkGYJbtZg)
- [Наш Сайт](https://www.astralium.su)
- [Наш Github](https://github.com/AstraliumMC)
# Основные ссылки на контент # Основные ссылки на контент
[Получить Adoptium Temurin](https://adoptium.net/) __| Нажмите, чтобы скачать Java |__ [Получить Adoptium Temurin](https://adoptium.net/) __| Нажмите, чтобы скачать Java |__
[Получить Fabric](https://fabricmc.net/) __| Нажмите, чтобы скачать Fabric |__ [Получить Fabric](https://fabricmc.net/) __| Нажмите, чтобы скачать Fabric |__
@@ -31,50 +44,64 @@
[Получить Paper/Folia/Velocity](https://papermc.io/) __| Нажмите, чтобы скачать PaperMC Software |__ [Получить Paper/Folia/Velocity](https://papermc.io/) __| Нажмите, чтобы скачать PaperMC Software |__
# Настройка вашего Linux сервера # Настройка вашего Linux сервера
### Основное ### Основное
- Основные рекомендуемые компоненты для вашей системы Linux. - Основные рекомендуемые компоненты для вашей системы Linux.
В основном все команды выполняются от `root` пользователя или с помощью `sudo` *(Если `sudo` отсутствует на вашей системе, то установите его через `apt` / `pamac` / `pacman`)* В основном все команды выполняются от `root` пользователя или с помощью `sudo` *(Если `sudo` отсутствует на вашей
системе, то установите его через `apt` / `pamac` / `pacman` или альтернативную команду на вашей системе)*
### Обновление пакетов машины ### Обновление пакетов машины
```
Для Ubuntu/Debian sudo apt update -y && sudo apt upgrade -y - Для Ubuntu / Debian и форков этих систем -> `sudo apt update -y && sudo apt upgrade -y`
Для Arch Linux sudo pamac update --no-confirm && sudo pamac upgrade --no-confirm
```
- Для Arch Linux и форков этой системы -> `sudo pamac update --no-confirm && sudo pamac upgrade --no-confirm`
### Полезные утилиты для вашего сервера ### Полезные утилиты для вашего сервера
```
htop - Утилита для мониторинга всех запущенных процессов (Подобно top, но красивее)
screen - Важная утилита для создания сессий на вашей серверной машине
zip unzip - Утилита для архивации/деархивации файлов в .zip (рекомендую tar)
iptables - Полезная утилита для настройки IPv4 и IPv6 флагов (Firewall) (рекомендую)
ufw - Управление Firewall'ом IPTables, только проще (рекомендую)
firewalld - Управление Firewall'ом IPTables, только проще (рекомендую)
iptraf-ng - Мониторинг сети (рекомендую)
nload - Мониторинг сети (рекомендую)
vnstat - Мониторинг сети (рекомендую)
smartmontools - Позволяет протестировать оборудование системы
dnsutils - Управление DNS (Может потребоваться для некоторых утилит)
neofetch - Утилита для красивого отображения вашей ОС и некоторых параметров
fontconfig - Данный пакет шрифтов может потребоваться для некоторых утилит*
# Удобная установка всех полезных пакетов в одну строку + FIREWALLD (Работает с IPTables) - htop - Утилита для мониторинга всех запущенных процессов
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools firewalld -y - ~atop - Считайте практически идентичным ПО, что и утилита выше
- ~~gtop - Считайте практически идентичным ПО, что и утилита выше
- screen - Важная утилита для создания сессий на вашей серверной машине
- ~zip unzip - Утилита для архивации/разархивации файлов в .zip (рекомендую tarball'ы (.tar.gz))
- ~iptables - Полезная утилита для настройки Netfilter & FireWall вашей системы
- ~ufw - Управление Firewall'ом IPTables, только проще
- ~firewalld - Управление Firewall'ом IPTables, только проще
- nftables - Управление Netfilter & FireWall системы (рекомендую)
- ~iptraf-ng - Мониторинг сети
- nload - Мониторинг сети в виде графика (рекомендую)
- vnstat - Мониторинг сети с выводом скорости и пакетов (рекомендую)
- wireshark - Продвинутое ПО для мониторинга трафика ваших сетевых интерфейсов с возможностью создания дампов .pcap (
рекомендую)
- smartmontools - Позволяет протестировать оборудование системы (физические накопители HDD, SDD) (рекомендую)
- dnsutils - Управление DNS (Может потребоваться для некоторых утилит)
- neofetch - Утилита для красивого отображения вашей ОС и некоторых параметров
- ~fontconfig - Данный пакет шрифтов может потребоваться для некоторых утилит*
# Удобная установка всех полезных пакетов в одну строку + UFW (Работает с IPTables) ### Удобная установка всех полезных пакетов в одну строку + FIREWALLD (Работает с IPTables)
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools ufw -y
# Удобная установка всех полезных пакетов в одну строку только с IPTables - `sudo apt update -y && sudo apt upgrade -y && sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools firewalld -y`
sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools -y
```
### Установка Java на вашу серверную машину ### Удобная установка всех полезных пакетов в одну строку + UFW (Работает с IPTables)
- Вы научитесь легко и просто устанавливать и удалять Java с вашего сервера
- `sudo apt update -y && sudo apt upgrade -y && sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools ufw -y`
### Удобная установка всех полезных пакетов в одну строку только с IPTables
- `sudo apt update -y && sudo apt upgrade -y && sudo apt install htop screen vnstat zip unzip iptables nload neofetch dnsutils iptraf-ng vnstat fontconfig smartmontools -y`
### Удобная установка всех НЕОБХОДИМЫХ (не все пакеты с префиксом '~' включены) пакетов в одну строку с NFTables
- `sudo apt update -y && sudo apt upgrade -y && sudo apt install htop screen vnstat nftables nload neofetch iptraf-ng vnstat smartmontools -y`
# Установка Java на вашу серверную машину
- Вы научитесь легко и просто устанавливать или удалять Java на вашей системе
- Для начала зайдите в SFTP клиент и перейдите в раздел ~/opt (Можно любой, но этот в качестве основы) - Для начала зайдите в SFTP клиент и перейдите в раздел ~/opt (Можно любой, но этот в качестве основы)
- В Linux изначально придумана команда для упаковки архивов и распаковки архивов - В Linux изначально придумана команда для упаковки архивов и распаковки архивов
- Использовать команду tar можно с использованием следующих параметров: - Использовать команду tar можно с использованием следующих параметров:
``` ```
-c | --create — создать архив -c | --create — создать архив
-a | --auto-compress — дополнительно сжать архив с компрессором который автоматически определить по расширению архива. -a | --auto-compress — дополнительно сжать архив с компрессором который автоматически определить по расширению архива.
@@ -88,478 +115,488 @@ sudo apt install htop screen ufw vnstat zip unzip iptables nload neofetch dnsuti
``` ```
- Пример перемещения файлов по системе Linux - Пример перемещения файлов по системе Linux
``` ```
# < ! > НЕ ОБЯЗАТЕЛЬНЫЕ КОМАНДЫ < ! > < ! > НЕ ОБЯЗАТЕЛЬНЫЕ КОМАНДЫ < ! >
mv /home/others/Test /others2 mv /home/others/Test /others2
# Также вы можете использовать флаг* -v чтобы увидеть подроную информацию о процессе Также вы можете использовать флаг* -v чтобы увидеть подроную информацию о процессе
# ~ — тильда, дает понять системе, что это корневой каталог root (~) ~ — тильда, дает понять системе, что это корневой каталог root (~)
# Пример: Вы юзер test, то при вводе cd, вы попадете в каталог /home/test/ Пример: Вы юзер test, то при вводе cd, вы попадете в каталог /home/test/
# Т.е ~/others2 и т.д Т.е ~/others2 и т.д
mv -v ~/home/others/Test ~/others2 mv -v ~/home/others/Test ~/others2
# Вы можете также использовать приставку sudo к команде mv Вы можете также использовать приставку sudo к команде mv
# Теперь вы знакомы с командой для перемещения файлов, но рекомендуется еще раз закрепить материал Теперь вы знакомы с командой для перемещения файлов, но рекомендуется еще раз закрепить материал
# Попробуйте данные команды на каком-то пустом сервере, либо можете установить WSL2 на вашу систему Попробуйте данные команды на каком-то пустом сервере, либо можете установить WSL2 на вашу систему
# Рекомендуемый дистрибутив ОС для создания Проектов (Серверов) — Ubuntu, Debian Рекомендуемый дистрибутив ОС для создания Проектов (Серверов) — Ubuntu, Debian
``` ```
### Начало процесса установки Java на ваш Linux сервер ### Начало процесса установки Java на ваш Linux сервер
- Установка и распаковка архива при помощи "tar" — встроенная утилита упаковки/распаковки архива с файлами в Linux
- Установка и распаковка архива при помощи "tar" — встроенная утилита упаковки/распаковки архива с файлами в Unix
системах (Debian / Ubuntu / MacOS точно)
``` ```
# Архив уже должен быть установлен / перемещен в выбранную вами директорию Архив уже должен быть установлен / перемещен в выбранную вами директорию
# Чтобы установить архив, вы можете использовать в качестве передачи файлов SFTP приложение Чтобы установить архив, вы можете использовать в качестве передачи файлов SFTP приложения на выбор
# WinSCP, либо же скачать сразу из консоли - wget <url> WinSCP / FileZilla / Dolphin (KDE) / Nautilus (GNOME) / Termius, либо же скачать сразу из консоли - wget <url>
# Команду писать без <>
# Вы также можете использовать - curl
# Если в вашей системе данная утилита отсутствует, то вы можете установить её самостоятельно
sudo apt install curl • curl https://api.papermc.io/v2/projects/paper/versions/1.20.2/builds/246/downloads/paper-1.20.2-246.jar -o paper.jar
# Пример использования: Теперь давайте его распакуем — после распаковки появится папка с нашей Java
curl https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/499/downloads/paper-1.19.4-499.jar -o paper.jar
# Теперь давайте его распакуем — после распаковки появится папка с нашей Java • tar -xvf archive.tar.gz
# Выполните команду:
tar -xvf archive.tar.gz Например архив с Java называется:
Скачиваем к примеру Adoptium JDK Java 17 под x86 / arm (ex: aarch64) платформу (Ubuntu, Debian, Arch, MacOS)
# Например архив с Java называется: Быстрая установка Adoptium Temurin Java Development Kit 17
Скачиваем к примеру Adoptium JDK Java 18 под amd64 платформу (Ubuntu, Debian, Arch) • cd /opt && sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && ln -svf /opt/jdk-17.0.6+10/bin/java /usr/bin/java && java -version
# Быстрая установка Adoptium Temurin Java Development Kit 17 < ! > Название архива может быть иное < ! >
cd /opt && sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz && ln -svf /opt/jdk-17.0.6+10/bin/java /usr/bin/java && java -version Информацию об установке Java ниже можете не применять при вводе команды выше.
Для распаковки архива потребувется ввести всего одну команду (Уже применена в примерной установке выше):
# < ! > Название архива может быть иное < ! > • tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
# Информацию об установке Java ниже можете не применять при вводе команды выше.
# Для распаковки архива потребувется ввести всего одну команду (Уже применена в примерной установке выше):
tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz • sudo wget <url>
# Выполните данные команды для скачивания архива: Из примера выше
Команда для терминала -> curl https://api.papermc.io/v2/projects/paper/versions/1.20.2/builds/246/downloads/paper-1.20.2-246.jar -o paper.jar
sudo wget TARGET_URL В нашем случае это не PaperMC, а Java, поэтому:
• sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
# Из примера выше Также можно использовать утилиту CURL, заместо WGET
curl https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/499/downloads/paper-1.19.4-499.jar -o paper.jar • sudo curl <url> -o <output_file.extension>
# В нашем случае это не PaperMC, а Java, поэтому: Все версии Java доступны по этой ссылке: https://github.com/orgs/adoptium/repositories
sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz Мы рекомендуем использовать LTS релизы JDK 17 версии
# Также можно использовать утилиту CURL, заместо WGET
sudo curl ссылка -o выходной_файл.расширение
# Все версии Java доступны по этой ссылке: https://github.com/orgs/adoptium/repositories Если вы сделали всё правильно, то теперь вы получите информацию о вашей Java при вводе данной команды:
• java -version
# Если вы сделали всё правильно, то теперь вы получите информацию о вашей Java при вводе данной команды:
java -version
``` ```
### Создание "Линка" для нашего файла Java в папке с самой Java ### Создание "Линка" для нашего файла Java в папке с самой Java
- Вы можете подробно изучить про команду ln и ее параметры - Вы можете подробно изучить про команду ln и ее параметры
``` ```
# Линки — тоже самое что ярлык, те кто когда либо имели систему Windows / MacOS Линки — тоже самое что ярлык, те кто когда либо имели систему Windows / MacOS
# Могут знать про создание ярлыка при помощи клика ПКМ по файлу Могут знать про создание ярлыка при помощи клика ПКМ по файлу
# Но у нас ведь нет интерфейса, поэтому будем использовать команду "ln" Но у нас ведь нет интерфейса, поэтому будем использовать команду "ln"
# *Кстати можно делать линки также через WinSCP — Клиент SFTP, FTP . . . *Кстати можно делать линки также через WinSCP — Клиент SFTP, FTP . . .
# Создаем ярлык (линк) для нашего исполняемого файла Создаем ярлык (линк) для нашего исполняемого файла
# Выполните команду: Выполните команду:
# Заместо ... пишем название папки с Java — /opt/.../bin/java Заместо ... пишем название папки с Java — /opt/.../bin/java
ln -svf /opt/.../bin/java /usr/bin/java
# Если вы все сделали правильно, то вы успешно установили Java на вашу машину • ln -svf /opt/.../bin/java /usr/bin/java
# Проверить активную Java
java -version
# Если вам вывело информацию о версии (Обычно это 2-3 строки), то все успешно. Если вы все сделали правильно, то вы успешно установили Java на вашу машину
# Иначе, проверяйте под какую архитектуру вы скачали JDK архив. Проверить активную Java
• java -version
Если вам вывело информацию о версии (Обычно это 2-3 строки), то все успешно.
Иначе, проверяйте под какую архитектуру вы скачали JDK архив.
``` ```
### Удаление Java с нашего сервера ### Удаление Java с нашего сервера
- Мы не будем использова бесполнезные команды по типу: `sudo apt remove *java*`
``` ```
# Для начала перейдем в корень сервера ~ Мы не будем использовать бесполезные команды по типу: `sudo apt remove *java*`
# Далее переходим по пути ~/usr/bin Для начала перейдем в корень сервера ~
# Используем удобный вам способ для поиска файлов — мне было удобно через WinSCP Клиент Далее переходим по пути ~/usr/bin
# Находим файл "Java" — он должен быть единственный в данной директории! Используем удобный вам способ для поиска файлов — мне было удобно через WinSCP Клиент
# Спокойно без боязни удаляем его — Готово вы удалили активную Java с вашего сервера, однако Находим файл "Java" — он должен быть единственный в данной директории!
# Она все еще существует как папку и архив по пути ~/opt Спокойно без боязни удаляем его — Готово вы удалили активную Java с вашего сервера, однако
# Можно сделать это через команды Она все еще существует как папку и архив по пути ~/opt
Можно сделать это через команды
cd /usr/bin && sudo rm java cd /usr/bin && sudo rm java
# Проверить наличие активной Java, можно введя команду Проверить наличие активной Java, можно введя команду
java -version java -version
# При успехе, у вас должно вывести ошибку. При успехе, у вас должно вывести ошибку.
``` ```
### Настройка безопасного входа на сервер - Linux ### Настройка безопасного входа на сервер - Linux
- В качестве альтернативы простым паролям, мы будем использовать Rsa_Keys с форматом шифрования SHA
``` ```
# Открываем приложение основной терминал системы (Kosnole, Yakuake или любой другой.) В качестве альтернативы простым паролям, мы будем использовать Rsa_Keys с форматом шифрования SHA
Открываем приложение основной терминал системы (Kosnole, Yakuake или любой другой.)
ssh-keygen # По умолчанию генерирует 2048 Битный ключ ssh-keygen # По умолчанию генерирует 2048 Битный ключ
ssh-keygen -b 4096 # Генерация ключа с мощностью 4096 Бит (Лучше чем 2048) ssh-keygen -b 4096 # Генерация ключа с мощностью 4096 Бит (Лучше чем 2048)
ssh-keygen -b 8192 # Генерация ключа с мощностью 8192 Бит (Лучше чем 4096) ssh-keygen -b 8192 # Генерация ключа с мощностью 8192 Бит (Лучше чем 4096)
# Далее внимательно читаем логи, вы уже почти создали пару ключей на вашем ПК ~/users/ВашЮзер/.ssh Далее внимательно читаем логи, вы уже почти создали пару ключей на вашем ПК ~/users/ВашЮзер/.ssh
# Чтобы передать ключ на наш сервер, воспользуемся данной командой (Вам потребуется войти с использованием "старого" пароля) Чтобы передать ключ на наш сервер, воспользуемся данной командой (Вам потребуется войти с использованием "старого" пароля)
# Однако, мы всегда можем делать это вручную, но можно и через команду ниже: Однако, мы всегда можем делать это вручную, но можно и через команду ниже:
cat ~/.ssh/id_rsa.pub | ssh USER@IP "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys" cat ~/.ssh/id_rsa.pub | ssh USER@IP "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
# < ! > Подсказка для всех < ! > < ! > Подсказка для всех < ! >
# Если вы не хотите использовать такой способ авторизации, то установите очень сильный, надежный, ультра мега крутоооой пароль :) Если вы не хотите использовать такой способ авторизации, то установите очень сильный, надежный, ультра мега крутоооой пароль :)
# Самое главное не палите своего юзера, ведь только тогда вас не будут брутить, Самое главное не палите своего юзера, ведь только тогда вас не будут брутить,
# Т.к попросту не будут знать пользователя для старта брутфорса. Т.к попросту не будут знать пользователя для старта брутфорса.
# В таком случае рекомендую использовать Firewall. В таком случае рекомендую использовать Firewall.
# Давайте все же перейдем к нашим RSA ключикам. Давайте все же перейдем к нашим RSA ключикам.
# Вы можете вручную просто вписать информацию из публичного RSA ключа в '~/.ssh/authorized_keys' Вы можете вручную просто вписать информацию из публичного RSA ключа в '~/.ssh/authorized_keys'
# На своем устройстве получите информацию из файлы id_rsa.pub, например cat id_rsa.pub На своем устройстве получите информацию из файлы id_rsa.pub, например cat id_rsa.pub
# Впишите данную информацию из файла id_rsa.pub в файл authorized_keys вашего юзера Linux '~/.ssh/authorized_keys' Впишите данную информацию из файла id_rsa.pub в файл authorized_keys вашего юзера Linux '~/.ssh/authorized_keys'
# При использовании данного способа, пожалуйста соблюдайте бдительность, чтобы ничего не сломать в вашей системе При использовании данного способа, пожалуйста соблюдайте бдительность, чтобы ничего не сломать в вашей системе
# Останется ввести только и вы примените изменения из подсказки выше: Останется ввести только и вы примените изменения из подсказки выше:
sudo systemctl restart ssh sudo systemctl restart ssh
# ... USER@IP ... ... USER@IP ...
# Подставьте ваши данные заместо шаблона Подставьте ваши данные заместо шаблона
# USER — Логин, ваш пользователь на серверной машине USER — Логин, ваш пользователь на серверной машине
# IP — Ваш IP от серверной машины IP — Ваш IP от серверной машины
# ВНИМАНИЕ! Мы начинаем отключать парольную аутентификацию на сервере, будьте аккуратны ВНИМАНИЕ! Мы начинаем отключать парольную аутентификацию на сервере, будьте аккуратны
# *Автор не несет ответвенности, если вы вдруг сломаете вход на вашу серверную машину, *Автор не несет ответвенности, если вы вдруг сломаете вход на вашу серверную машину,
# Обязательно создавайте бэкапы ваших игровых серверов* Обязательно создавайте бэкапы ваших игровых серверов*
Перед этим убедитесь, что у вас установлены пакеты:
# Перед этим убедитесь, что у вас установлены пакеты: • apt install sudo
• apt install nano или apt install vim
apt install sudo sudo — Нужно использовать если у вас основной user != root
apt install nano или apt install vim nano — Удобный редактор текста в терминате
vim — Редактор немного посложнее, но если освоитесь - будет очень удобно его использовать
# sudo — Нужно использовать если у вас основной user != root Как сохранить файл через nano
# nano — Удобный редактор текста в терминате CTRL + X , Y (yes), ENTER
# vim — Редактор немного посложнее, но если освоитесь - будет очень удобно его использовать
# Как сохранить файл через nano Как сохранить файл через vim
# CTRL + X , Y (yes), ENTER После открытия файла
• vim file.txt
Для ввода информации нажмите I (i), у вас появтся надпись снизу слева --INSERT-- или --ВСТАВКА--
После чего заносите любую информацию в файл и нажимаете:
CTRL C, далее пишите :wq
:wq запишет и закроет файл.
:q! просто закроет файл.
Подробнее в документации к vim или nano.
# Как сохранить файл через vim Готово, теперь вы умеете сохранять файлы, но все таки перейдем к отключению парольной авторизации
# После открытия файла Вводим команду:
# vim file.txt
# Для ввода информации нажмите I (i), у вас появтся надпись снизу слева --INSERT-- или --ВСТАВКА--
# После чего заносите любую информацию в файл и нажимаете:
# CTRL C, далее пишите :wq
# :wq запишет и закроет файл.
# :q! просто закроет файл.
# Подробнее в документации к vim или nano.
# Готово, теперь вы умеете сохранять файлы, но все таки перейдем к отключению парольной авторизации • sudo nano /etc/ssh/sshd_config
# Вводим команду:
sudo nano /etc/ssh/sshd_config Вам нужно найти или написать данную строчку:
# Вам нужно найти или написать данную строчку:
PasswordAuthentication no PasswordAuthentication no
# После сохраняем файл (Мы используем nano в качестве редактора текстовых файлов) После сохраняем файл (Мы используем nano в качестве редактора текстовых файлов)
# Далее нам необходимо перезагрузить SSH клиент Далее нам необходимо перезагрузить SSH клиент
# < ! > Советуем проверить доступ к SSH < ! > < ! > Советуем проверить доступ к SSH < ! >
# Вернитесь в PowerShell и введите Вернитесь в PowerShell и введите
ssh USER@IP ssh USER@IP
ssh USER@IP -i ./ключ ssh USER@IP -i ./ключ
# Если вы пытаетесь зайти через GNU Linux, то используйте команду ниже Если вы пытаетесь зайти через GNU Linux, то используйте команду ниже
sudo ssh USER@IP -i ключ sudo ssh USER@IP -i <key>
# ... USER@IP ... USER@IP
# Подставьте ваши данные заместо шаблона Подставьте ваши данные заместо шаблона
# USER — Логин, ваш пользователь на серверной машине USER — Логин, ваш пользователь на серверной машине
# IP — Ваш IP от серверной машины IP — Ваш IP от серверной машины
# Далее если все хорошо, перезагружаем ssh Далее если все хорошо, перезагружаем ssh
sudo systemctl restart ssh sudo systemctl restart ssh
# Готово, теперь зайти на вашу серверную машину через пароли не получится, используем только ключи авторизации (rsa) Готово, теперь зайти на вашу серверную машину через пароли не получится, используем только ключи авторизации (rsa)
# Для удобства входа через пароли можете использовать пакет данных sshpass Для удобства входа через пароли можете использовать пакет данных sshpass
``` ```
### Различные команды и бенчмарки, которые возможно вам понадобятся ### Различные команды и бенчмарки, которые возможно вам понадобятся
- В основном подойдет для мониторинга и наблюдения за жизнедеятельностью вашей серверной машины
``` ```
# Информация по системе В основном подойдет для мониторинга и наблюдения за жизнедеятельностью вашей серверной машины
Информация по системе
# Скорость интернета на вашем сервере (Установка + автозапуск) Скорость интернета на вашем сервере (Установка + автозапуск)
sudo apt install speedtest-cli && speedtest-cli sudo apt install speedtest-cli && speedtest-cli
# Через бенчмарк Через бенчмарк
sudo wget -qO- bench.sh | bash sudo wget -qO- bench.sh | bash
# Информация о системе (Установка + автозапуск) Информация о системе (Установка + автозапуск)
sudo apt install neofetch && neofetch sudo apt install neofetch && neofetch
# Встроенные Linux команды (Примеры) Встроенные Linux команды (Примеры)
lscpu lscpu
lspci lspci
uname -a uname -a
``` ```
### IPTables (UFW/FIREWALLD) - Закрытие порта SSH, SFTP (22) + ICMP DROP # NFTables Мануал по базовому использованию и аргументам
- На самом деле не рекомендую делать такое с динамическим IP, иначе вы рискуете потерять доступ к вашей серверной машине
```
# Быстродействие (Без закрытия SSH порта):
# sudo apt install ufw && sudo ufw allow 22/tcp && sudo nano /etc/ufw/before.rules
# Для before.rules:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ИЗМЕНИТЬ НА СЛЕДУЮЩЕЕ ЗНАЧЕНИЯ ufw-before-input
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP
# Сохраняем конфигурацию через наш nano редактор (CTRL X + Y + ENTER)
# Перезагружаем UFW
sudo ufw reload
# Теперь все пинги блокируются извне
# Ниже представлена информация из документации v2.0 (Прошлая)
# Базовые настройки IPTables | Запрет пинга на ваш дедик | Запрет входа с других айпи по SSH (только ваш)
iptables -A INPUT -s IP/32 -p icmp -j DROP
# Или через FirewallD
sudo firewall-cmd --add-icmp-block=echo-request --permanent
# Разрешить свой айпи для входа через SSH,SFTP - ПУНКТ ДЕЛАТЬ ПЕРВЫМ ИЗ ВСЕХ!
iptables -A INPUT -p tcp --dport 22 -s YourIP -j ACCEPT
# Дропнуть порт 22 (aka SSH, SFTP). < ! > ДЕЛАТЬ ПОСЛЕ РАЗРЕШЕНИЯ < ! >
iptables -A INPUT -p tcp --dport 22 -j DROP
# Установка
apt-get install iptables-persistent
# Можно обойтись без этого и просто настроить восстановление правил IPTables через crontab :)
# Правила iptables необходимо создать, затем выполнить следующую команду
service iptables-persistent start
# Поскольку утилита является демоном — прекратить ее работу нельзя, однако можно очистить список правил
service iptables-persistent flush
# Обновить правила, если persistent уже был установлен
dpkg-reconfigure iptables-persistent
``` ```
### IPTables - Закрытие портов на нескольких серверных машинах • nft -a list ruleset - посмотреть весь список таблиц, цепочек и правил с их хендлами
• nft add table inet/ip/ip6 filter - добавить таблицу (создать) inet (ipv4+ipv6) / ip (ipv4) / ip6 (ipv6) filter (название таблицы)
• nft delete table inet filter - удалить таблицу filter
• nft add chain inet filter Name - создать пустую цепочку (не рекомендуется)
• nft add chain inet filter Name { type filter hook input/output priority 0/1/2... \; policy accept \; } - как пример мы можем создать цепочку правил на вход или выход (input/output соответственно с приоритетами (ниже - главнее) и разрешающей политикой для входа пакетов
• nft add chain inet filter Name { policy drop \; } - изменить политику цепочки на дроп пакетов (опасно, прежде чем добавлять данную политику на input и output необходимо разрешить SSH соединение для дальнейшего управления серверной машинокй, иначе вы потеряете доступ к машине и потребуется вход в рекавери режим или удаленную консоль (например, как у Hetzner Cloud)
• nft add rule inet filter Name iifname "eth0" tcp dport 25565 accept/drop - мы разрешим или дропнем пакеты при подключении к порту 25565 TCP на интерфейсе eth0
- Здесь вы подробно узнаете как легко и быстро закрыть порты Разрешаем входящие подключения к tcp и udb портам
``` Разрешим подключаться к серверу по ssh, но только со своего компьютера:
# Представим что у нас есть два сервера VDS / VPS
# Первый сервер под маркой X - Это у нас будет Proxy сервер (Фильтр различных ботов, пакетов (TCP))
# Второй сервер под маркой Y - Это у нас будет Survival сервер (Основное выживание)
# На сервере X пропишите следующие команды в данном порядке, как они даны (Свреху вниз)
iptables -A INPUT -s <IP Y> -j ACCEPT • sudo nft add rule inet filter input iifname eth0 ip saddr 172.28.80.14 tcp dport 22 counter accept
iptables -A INPUT -s 127.0.0.1 -j ACCEPT То есть мы добавляем правило (addr rule) в таблицу filter и в цепочку input (inet filter input).
Описываем правило:
Для аргумента входящего интерфейса eth0 (iifname eth0),
Для аргумента адреса источника 172.28.80.14 (ip saddr 172.28.80.14)
Для аргумента tcp порта назначения 22 (tcp dport 22).
Дальше указываем действия:
Чтобы команда nft list ruleset показывала счетчик пакетов, которые проходят правило, добавляем counter,
разрешаем прохождение таких пакетов (accept).
После чего мы можем посмотреть отображение нашего правила или правил с помощью nft list
• nft -a list ruleset
В своих правилах вы можете использовать следующее:
# На сервере Y пропишите следующие команды в данном порядке, как они даны (Сверху вниз) ip saddr <ip-адрес> — исходящий ip адрес;
ip daddr <ip-адрес> — ip адрес назначения (в цепочки input является адресом сервера к которому идет подключение);
tcp sport <порт> — исходящий tcp порт;
tcp dport <порт> — порт tcp назначения (в цепочки input является портом сервера к которому идет подключение);
udp sport <порт> — исходящий udp порт;
udp dport <порт> — порт udp назначения;
iifname <имя интерфейса> — имя входящего интерфейса;
oifname <имя интерфейса> — имя исходящего интерфейса.
В примере разрешаем подключаться к сервисам только из локальной сети:
iptables -A INPUT -p tcp -s <IP X> --dport <PORT Y (Survival)> -j ACCEPT • sudo nft add rule inet filter input iifname eth0 ip saddr 172.28.80.0/24 tcp dport {80, 443} counter accept
iptables -A INPUT -p tcp --dport <PORT Y (Survival)> -j DROP Разрешаем подключаться к loopback интерфейсу
Для того чтобы сервисы внутри системы могли нормально работать, обязательно нужно разрешить все подключения к loopback интерфейсу:
# После манипуляций на каждом VDS / VPS нужно ввести данную команду • sudo nft add rule inet filter input iifname lo counter accept
Разрешаем ping сервера
Разрешим пинговать наш сервер, другими словами разрешим входящие icmp запросы:
apt install iptables-persistent • sudo nft add rule inet filter input ip saddr 172.28.80.0/24 icmp type echo-request counter accept
Чтобы разрешить icmp нужно указать протокол и тип запроса:
# Если у вас он уже был установлен, то просто обновите правила используя команду icmp type echo-request — когда кто-то пингует наш сервер ему посылаются запросы (echo-request);
icmp type echo-reply — когда наш сервер кого-то пингует то в ответ он получает ответы (echo-reply).
Меняем политику цепочки input
После того как мы добавили все разрешающие правила в цепочке input, поменяем её политику на drop:
dpkg-reconfigure iptables-persistent • sudo nft add chain inet filter input '{ policy drop; }'
То есть смена политик выполняется таким образом:
• nft add chain <семейство> <цепочка> <таблица> { policy accept; } — разрешающая политика;
• nft add chain <семейство> <цепочка> <таблица> { policy drop; } — запрещающая политика.
# Если хотите можете также ознакомиться со списком ваших правил iptables на каждой из виртуальных машин Также рекомендую всегда добавлять следующие условия/аргументы в фаерволл системы
iifname "lo" accept - разрешаем локальный трафик для избежания конфликтов в системе в случае, если у нас policy drop
ct state established,related,new accept - разрешаем коннтрейкинг стейты на уже созданные, новые соединения
iptables --list В общем говоря, если вы блокируете весь входящий трафик, то вы должны вручную разрешать и настраивать вашу сеть под все ваши сервисы,
поскольку любые блокировки входящего / исходящего трафика для нужного ПО могут повлиять на стабильную работы вашей системы
# Узнать номера всех правил Сохранение правил и последующая их загрузка системой при ребуте или перезагрузке службы nftables:
• echo '#!/usr/sbin/nft -f' > /etc/nftables.conf && echo 'flush ruleset' >> /etc/nftables.conf && nft list ruleset >> /etc/nftables.conf
iptables -L --line-numbers Чтобы включить автоматическое сохранение правил и восстановление после запуска вашей системы, пропишите следующую команду
• sudo systemctl enable nftables.service && sudo systemctl start nftables.service && sudo systemctl status nftables.service
# Удалять правила можно следующим способом
iptables -D INPUT ЧИСЛО
``` ```
### SQL DataBase ### SQL Мануал по базовому использованию и простым командам на SQL языке
``` ```
# Установка MySQL Установка MySQL
sudo apt install mysql-server sudo apt install mysql-server
# Установка MariaDB (Лучше чем MySQL, является его форком) Установка MariaDB (Лучше чем MySQL, является его форком)
sudo apt install mariadb-server sudo apt install mariadb-server
# Вход в саму БД Вход в саму БД
sudo mysql sudo mysql
# Создать БД Создать БД
CREATE DATABASE IF NOT EXISTS DATABASE_NAME; CREATE DATABASE IF NOT EXISTS DATABASE_NAME;
# Удалить БД Удалить БД
DROP DATABASE IF EXISTS DATABASE_NAME; DROP DATABASE IF EXISTS DATABASE_NAME;
# Список БД Список БД
SHOW DATABASES; SHOW DATABASES;
# Создать юзера Создать юзера
CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD'; CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD';
# Создать юзера для MariaDB Создать юзера для MariaDB
CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD'; CREATE USER IF NOT EXISTS 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD';
# Изменить пароль юзеру Изменить пароль юзеру
ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD'; ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'DATABASE_USER_NEW_PASSWORD';
# Изменить пароль юзеру для MariaDB Изменить пароль юзеру для MariaDB
ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD'; ALTER USER 'DATABASE_USER'@'localhost' IDENTIFIED BY 'DATABASE_USER_NEW_PASSWORD';
# Удалить юзера Удалить юзера
DROP USER IF EXISTS 'DATABASE_USER'@'localhost'; DROP USER IF EXISTS 'DATABASE_USER'@'localhost';
# Список юзеров Список юзеров
SELECT user, host FROM mysql.user; SELECT user, host FROM mysql.user;
# Выдать права юзеру на определенную БД Выдать права юзеру на определенную БД
GRANT ALL PRIVILEGES ON database_name.table_name TO 'DATABASE_USER'@'localhost'; GRANT ALL PRIVILEGES ON database_name.table_name TO 'DATABASE_USER'@'localhost';
# Выдать все права юзеру на все БД Выдать все права юзеру на все БД
GRANT ALL PRIVILEGES ON *.* TO 'DATABASE_USER'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'DATABASE_USER'@'localhost';
# Список всех прав юзера БД Список всех прав юзера БД
SHOW GRANTS FOR 'DATABASE_USER'@'localhost'; SHOW GRANTS FOR 'DATABASE_USER'@'localhost';
# Сделать дамп всей БД Сделать дамп всей БД
mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD --all-databases > DATABASE_CUSTOM_DUMP_NAME.sql mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD --all-databases > DATABASE_CUSTOM_DUMP_NAME.sql
# Сделать дамп определенной БД Сделать дамп определенной БД
mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD DATABASE_NAME > DATABASE_CUSTOM_DUMP_NAME.sql mysqldump -uDATABASE_USER -pDATABASE_USER_PASSWORD DATABASE_NAME > DATABASE_CUSTOM_DUMP_NAME.sql
# Если вы хотите скопировать ваш дамп БД в другое место Если вы хотите скопировать ваш дамп БД в другое место
cp /var/lib/mysql/DATABASE_CUSTOM_DAMP_NAME.sql /home/testuser/ cp /var/lib/mysql/DATABASE_CUSTOM_DAMP_NAME.sql /home/testuser/
``` ```
### Отключение пароля для `$ sudo {cmd}` ### Отключение пароля для `$ sudo {cmd}`
```
# Для начала создайте файл (Делать от sudo или root пользователя)
# sudo visudo -f /etc/sudoers.d/sudowpass
sudo nano /etc/sudoers.d/sudowpass
# В файл sudowpass нужно вписать следующее: ```
Для начала создайте файл (Делать от sudo или root пользователя)
sudo visudo -f /etc/sudoers.d/sudowpass
• sudo nano /etc/sudoers.d/sudowpass
В файл sudowpass нужно вписать следующее:
YourUserHere ALL=(ALL) NOPASSWD:ALL YourUserHere ALL=(ALL) NOPASSWD:ALL
# Или сделаем проще с автоопределением вашего юзера (Делать с правами рута) - $USER ALL=(ALL) NOPASSWD:ALL Или сделаем проще с автоопределением вашего юзера (Делать с правами рута) - $USER ALL=(ALL) NOPASSWD:ALL
touch /etc/sudoers.d/sudowpass && echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/sudowpass && cat /etc/sudoers.d/sudowpass touch /etc/sudoers.d/sudowpass && echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/sudowpass && cat /etc/sudoers.d/sudowpass
``` ```
### Передача файлов по SSH через `scp` ### Передача файлов по SSH через `scp`
``` ```
scp USER@IP:/путь_для_файлааругой_сервер названиеайликааашем_сервере scp USER@IP:/путь_для_файлааругой_сервер названиеайликааашем_сервере
# Использовать scp с кастомным портом SSH Использовать scp с кастомным портом SSH
# Для примера передадим файл test.dat на наш сервер Linux Для примера передадим файл test.dat на наш сервер Linux
scp -P 999 root@127.0.0.1:/home/path/to/path/test.dat /home/path/to/but/here/test.dat scp -P 999 root@127.0.0.1:/home/path/to/path/test.dat /home/path/to/but/here/test.dat
# У вас запросит пароль, если вы используете ключи, то добавьте -i У вас запросит пароль, если вы используете ключи, то добавьте -i
``` ```
### Создание пользователя `замена ~ root` ### Создание пользователя `замена ~ root`
```
# Замените '$name' вашим новым кастомным юзером
adduser $name
# Выдача прав на sudoers для нового юзера
# usermod -aG sudo $name
adduser $name sudo
# Забрать группу sudoers у $name
deluser $name sudo
``` ```
Замените '$name' вашим новым кастомным юзером
• adduser $name
Выдача прав на sudoers для нового юзера
usermod -aG sudo $name
• adduser $name sudo
Забрать группу sudoers у $name
• deluser $name sudo
```
### Настройка языковых пакетов на Linux ### Настройка языковых пакетов на Linux
``` ```
sudo dpkg-reconfigure locales sudo dpkg-reconfigure locales
# Выберите сначала Англ раскладку UTF=8 Выберите сначала Англ раскладку UTF=8
# После выберите пунктом выше C.UTF-8 и нажмите Ok После выберите пунктом выше C.UTF-8 и нажмите Ok
# Вы можете настроить языковые пакеты для себя. Вы можете настроить языковые пакеты для себя.
``` ```
# Раздел главных настроек нашего серверного ядра # Раздел главных настроек нашего серверного ядра
### Защита вашего сервера ### Защита вашего сервера
- Не используйте плагины с левых сайтов! Хотя я и использую плагины из других источников, однако я имею определенные знания для поиска дыр в них, поэтому использую в итоге плагины с чистым кодом. Вам определенно не рекомендую как новичкам (Возможно здесь имеются тоже люди, которые разбираются в этом, но всё таки статья ориентирована на начинающую категорию пользователей.
- Не используйте плагины с левых сайтов! Хотя я и использую плагины из других источников, однако я имею определенные
знания для поиска дыр в них, поэтому использую в итоге плагины с чистым кодом. Вам определенно не рекомендую как
новичкам (Возможно здесь имеются тоже люди, которые разбираются в этом, но всё таки статья ориентирована на начинающую
категорию пользователей.
``` ```
Если вы хотите сохранить безопасность вашего сервера и ваших игроков, Если вы хотите сохранить безопасность вашего сервера и ваших игроков,
то лучше всего скачайте оригинальные плагины, то лучше всего скачайте оригинальные плагины,
а если нужно купить, то лучше купите их. а если нужно купить, то лучше купите их. Однако, автор также использует общедоступные и приватные ресурсы от BM сообщества администраторов/разработчиков
``` ```
- Закрывайте все ненужные порты, а нужные открывайте! - Закрывайте все ненужные порты, а нужные открывайте!
``` ```
Это конечно не критично, но лучше всего закрыть все порты. Это конечно не критично, но лучше всего закрыть все или лишние порты и открыть только необходимые.
После установки UFW / FIREWALLD они автоматически закрываются, После установки UFW / FIREWALLD они автоматически закрываются,
кроме 22*, однако мы рекомендуем вручную открыть SSH/SFTP порт. кроме 22*, однако мы рекомендуем вручную открыть SSH/SFTP порт. Внимательно смотрите стандартные политики, которые ставятся вместе с пакетом при устанвоке
``` ```
# О создании игрового сервера в Minecraft # О создании игрового сервера в Minecraft
### Рекомендуемое ПО для запуска сервера ### Рекомендуемое ПО для запуска сервера
- Если вы планируете разрабатывать модовый сервер, то определенно рекомендую __[Fabric](https://fabricmc.net/)__ - Если вы планируете разрабатывать модовый сервер, то определенно рекомендую __[Fabric](https://fabricmc.net/)__
> Моды можно найти [здесь](https://modrinth.com/mods) или [здесь](https://www.curseforge.com/minecraft/mc-mods)
> Моды можно найти [на этой платформе](https://modrinth.com/mods)
- Если вы планируете разрабатывать обычный сервер, то определенно рекомендую __[PaperMC](https://papermc.io/)__ - Если вы планируете разрабатывать обычный сервер, то определенно рекомендую __[PaperMC](https://papermc.io/)__
> Рекомендуемое ПО Для разработки ___Proxy___ сервера __[Velocity с сайта PaperMC](https://papermc.io/)__ > Рекомендуемое ПО Для разработки ___Proxy___ сервера __[Velocity с сайта PaperMC](https://papermc.io/)__
> Плагины можно найти [на этой платформе](https://modrinth.com/plugins)
> Подробнее узнать доп. информацию > Подробнее узнать доп. информацию
- [MinecraftRecommendations.md](MinecraftRecommendations.md) - [MinecraftRecommendations.md](MinecraftRecommendations.md)
### VDS/DEDICATED или PANEL HOSTING? ### VIRTUAL/DEDICATED или PANEL сервер?
- __Автор__ данного поста не поддерживает панельные хосты из-за их серьезных ограничений. Если вы хотите создать качественный Проект, то пожалуйста присмотритесь к использованию выделенных или виртуальных серверов с полным доступом.
- __Автор__ данного поста НЕ ПОДДЕРЖИВАЕТ низкокачественные панельные хосты из-за их серьезных ограничений или
уязвимостей. Если вы хотите создать
качественный Проект, то вам определенно стоит присмотреться к использованию выделенных (dedicated) или виртуальных (
virtual dedicated/private) серверов с полным
доступом SSH (Secure Shell).
# Об авторе # Об авторе
### Какое ПО используется для разработок игровых проектов (Сервер-сайд) ### Какое ПО используется для разработок игровых проектов (Сервер-сайд)
- Я пользуюсь этим ПО: __[Fabric](https://fabricmc.net/) | [PaperMC (+Velocity)](https://papermc.io/)__
- Я пользуюсь этим ПО: __[Fabric](https://fabricmc.net/) | [PaperMC](https://papermc.io/)__
### Какое ПО используется для разработок игровых клиентов (Клиент-сайд) ### Какое ПО используется для разработок игровых клиентов (Клиент-сайд)
- Я пользуюсь этим ПО: __[Fabric](https://fabricmc.net/)__ - Я пользуюсь этим ПО: __[Fabric](https://fabricmc.net/)__
### Какое ПО используется для подключения к серверу по SSH, SFTP ### Какое ПО используется для подключения к серверу по SSH, SFTP
- Я пользовался этими ПО на Windows: __[Termius (SSH Free, SFTP ~~Пробная версия~~ (Уже Always Free), ~~потом платно~~](https://termius.com/) | [WinSCP (SFTP)](https://winscp.net/eng/download.php)__
- (Актуально) Я использую на данный момент: __[Dolphin KDE](https://apps.kde.org/ru/dolphin/) | [Yakuake KDE](https://apps.kde.org/ru/yakuake/) | [Konsole KDE](https://apps.kde.org/ru/konsole/)__ - Я пользовался этими ПО на Windows: __[Termius](https://termius.com/) | [WinSCP](https://winscp.net/eng/download.php)__
- Мое любимое ПО для Linux систем: __[Dolphin](https://apps.kde.org/ru/dolphin/) | [Yakuake](https://apps.kde.org/ru/yakuake/) | [Konsole](https://apps.kde.org/ru/konsole/) | [Nautilus](https://apps.gnome.org/Nautilus/)__
- Мое любимое ПО для MacOS: __Finder | Terminal | Terminal | Console__
- Глобальное свободное ПО, которое я бы рекомендовал к использованию: __Termius | FileZilla | DBeaver | VSCode |
Intellij IDEA | JetBrains ToolBox__
# Disclaimer, as well as dedicated to copyright lovers <3
- Any mention &| exploitation of third-party resources &| products doesn't actually violate the copyrights of the companies &| organizations to which they belong, since all information in writing or software form types can be found in open sources of search engines, for example Yandex & Google.

View File

@@ -1,15 +1,17 @@
# Дополнительная информация о данном VanillaIssues.md # Дополнительная информация о данном VanillaIssues.md
``` - Здесь будут опубликованы дополнительные письменные/видео материалы, чтобы не засорять основной README.md
Здесь будут опубликованы дополнительные письменные/видео материалы, чтобы не засорять основной README.md
Данная статья рассчитана на настройку под Ubuntu (рекомендуется) / Debian.
В случае если у вас Arch Linux или другие UNIX подобные системы - Ознакомьтесь с репозиторием необходимых пакетов.
Если необходимые пакеты отсутствуют, то попробуйте найти их в AUR/Snap/Flatpak.
В случае с AUR изучайте билд скрипт для вашей же безопасности.
Некоторые функции могут не работать конкретно на вашей системе. В этом случае не нужно винить автора статьи. - Данная статья рассчитана на настройку под Ubuntu / Debian. Основные рекомендации также могут быть применены для ARM
За подробной поддержкой обращайтесь в мой дискорд Astralium Org. - https://discord.gg/7XkGYJbtZg систем. Однако, если у вас Arch Linux или другие Unix системы - пожалуйста ознакомьтесь с документацией по установке
``` пакетов на эту ОС или поищите альтернативные пакеты.
- < NOTICE > Для AUR репозиториев настоятельно рекомендуется проверять исходники скрипта установки. В любом случае это
рекомендуется делать и для других репозиториев.
- < NOTICE > Некоторые функции могут работать неправильно или вовсе не работать на вашей системе.
# Почему ванильные сервера испытывают трудности? # Почему ванильные сервера испытывают трудности?