вторник, 19 мая 2026 г.

Как настроить SSH-ключи для входа без пароля (пошагово)

Надоело вводить пароль при каждом подключении к серверу? SSH-ключи решают проблему и безопаснее.


Шаг 1. Сгенерируйте ключи
ssh-keygen -t ed25519 -C "ваша@почта"
Нажимайте Enter (можно оставить без пароля).

Шаг 2. Посмотрите, что получилось
ls ~/.ssh/ — два файла: id_ed25519 (приватный, никому не давать) и id_ed25519.pub (публичный, можно показать).

Шаг 3. Скопируйте публичный ключ на сервер
ssh-copy-id user@server (введите пароль от сервера один раз).

Шаг 4. Проверьте
ssh user@server — зашли без пароля? Готово.

Шаг 5. (Опционально) отключите вход по паролю на сервере
sudo nano /etc/ssh/sshd_config → PasswordAuthentication no
sudo systemctl restart sshd

📌 Совет: сделайте бэкап папки ~/.ssh — потеря ключа = потеря доступа.

среда, 22 апреля 2026 г.

Настройка безопасности на свежеустановленном сервере

1) Поставить fail2ban

sudo apt install fail2ban

Создать файл 

sudo nano /etc/fail2ban/jail.local


[DEFAULT]

bantime = 1h

findtime = 10m

maxretry = 5

#(чтобы себя не забанить, можно добавить ip и другие дополнительно сюда)

ignoreip = 127.0.0.1/8 

# backend логов (обычно auto)

backend = auto

[sshd]

enabled = true

port = ssh

logpath = %(sshd_log)s


Стартонуть сервис:

sudo systemctl start fail2ban.service


Проверить статус:

sudo systemctl status fail2ban.service


Автозапуск:

sudo systemctl enable fail2ban.service


Статус:

sudo fail2ban-client status

sudo fail2ban-client status sshd


2) Настроить фаирвол:

Проверить существующие правила:

sudo iptables -L -n -v

sudo nft list ruleset


Посмотреть что слушается на сервере:

sudo apt install net-tools

sudo netstat -tulpn


Поставить ufw

sudo apt install ufw


Базовые правила защиты активировать:

sudo ufw default deny incoming

sudo ufw default allow outgoing


Разрешить ssh 

sudo ufw allow OpenSSH


Включить фаирвол

sudo ufw enable


3) Обезопасить ssh

nano /etc/ssh/sshd_config

Изменить:

PermitRootLogin no

MaxAuthTries 3

ClientAliveInterval 300

ClientAliveCountMax 2

X11Forwarding no


Перезапуск:

sudo systemctl restart ssh


4) Сделать аудит системы на безопасность c помощью lynis:

cd /tmp

git clone https://github.com/CISOfy/lynis

cd lynis

sudo ./lynis audit system


вторник, 21 апреля 2026 г.

Быстрый разбор состояния контейнеров

Жив ли контейнер и что видно снаружи. Это стартовая точка. Тут не копаем глубоко - просто понимаем состояние системы: работает ли контейнер, есть ли нагрузка, и не падает ли он.


Показывает, какие контейнеры реально запущены и нет ли рестарт-циклов.

docker ps

Живая нагрузка по CPU, памяти и сети - быстрый индикатор перегруза.

docker stats

Последние события: ошибки, таймауты, неожиданные рестарты.

docker logs --tail 100 container

Вход внутрь контейнера как в обычную Linux-систему.

docker exec -it container sh

Реальные процессы и их нагрузка.

ps aux

Диск внутри контейнера - частая скрытая проблема.

df -h

вторник, 14 апреля 2026 г.

Bat — подсветка синтаксиса. Аналог Cat







Bat
 — клон команды cat с расширенной подсветкой синтаксиса для большого количества языков программирования и разметки, он также поставляется с интеграцией Git для демонстрации изменений файлов. Его другие функции включают автоматическое разбиение на страницы, объединение файлов, темы для подсветки синтаксиса и различные стили для представления результатов.


четверг, 9 апреля 2026 г.

Настройка zabbix агента на сервере для мониторинга в zabbix

На клиенте:

Открываешь конфиг:

sudo nano /etc/zabbix/zabbix_agentd.conf

Ключевые параметры:

Server=ip сервера
ServerActive=ip сервера
Hostname=хостнейм как в системе обезательно

Что это значит:

  • Server — кто может опрашивать (passive checks)
  • ServerActive — куда агент сам отправляет данные (active checks)
  • Hostname — ДОЛЖЕН совпадать с тем, что будет в Zabbix

Перезапуск агента

sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent

Проверка:

sudo systemctl status zabbix-agent

Проверка порта (очень важно)

Агент слушает 10050/tcp

На клиенте:

ss -tulnp | grep 10050

Если есть firewall:

sudo ufw allow 10050/tcp

Добавление хоста в Zabbix

В веб-интерфейсе Zabbix:

Configuration → Hosts → Create host

Заполняешь:

  • Host name:
     (должен совпадать с agent)
  • Interfaces:
    • IP: 
    • Port: 10050
  • Templates:
    • Linux by Zabbix agent

понедельник, 6 апреля 2026 г.

Glances - инструмент для мониторинга системы


Glances
 — это кросплатформенный инструмент для мониторинга системы на основе командной строки, написанный на языке Python, использующий библиотеку psutil для получения информации о системе. Так вы можете отслеживать использование процессора, средней нагрузки, памяти, сетевых интерфейсов, дискового ввода/вывода, процессов и файловой системы.

Информация о системе которая может выводится Glances:

  • Информация о процессоре (пользовательские приложения, системные программы и незанятые программы).

  • Общая информация о памяти, включая RAM, Swap, Free memory и т. д.

  • Средняя загрузка процессора за последние 1, 5 и 15 минут.

  • Скорость загрузки/выгрузки по сети.

  • Общее количество процессов, активных и спящих процессов и т. д.

  • Информация о скорости дискового ввода/вывода (чтение или запись).

  • Подключенные устройства, использующие диск в настоящее время.

  • top-процессы с использованием ЦП/памяти, именами и местоположением приложения.

  • Текущие дата и время.

  • Подсветка процесса, который потребляет максимальные системные ресурсы, красным цветом.

понедельник, 23 марта 2026 г.

Установка MTProto Proxy для Telegram на сервер с linux

 MTProto Proxy для Telegram

MTProto Proxy — это специальный прокси-сервер, который понимает только Telegram.

Telegram нативно его поддерживает, ничего дополнительного на телефон ставить не нужно.

────────────────────────────────────────────────────────────

Шаг 1. Подключись к серверу

Открой терминал (или PuTTY на Windows) и подключись по SSH:

ssh root@ТВОЙ_IP_АДРЕС

Замени ТВОЙ_IP_АДРЕС на реальный IP твоего сервера.

────────────────────────────────────────────────────────────

Шаг 2. Установи Docker

Docker позволяет запускать приложения в контейнерах — это как мини-виртуальные машины.

Нам он нужен чтобы запустить MTProto Proxy одной командой.

# Обновляем список пакетов и устанавливаем необходимые зависимости
apt update && apt upgrade -y
apt install -y curl wget sudo ufw

# Включаем файрволл (если ещё не включён)
ufw --force enable

# Устанавливаем Docker автоматически
curl -fsSL https://get.docker.com | sh

Подожди пока установка завершится (1-2 минуты).

────────────────────────────────────────────────────────────

Шаг 3. Запусти MTProto Proxy

# Запускаем официальный MTProto Proxy от Telegram
# Порт 443 — стандартный HTTPS-порт, выглядит безопасно
docker run -d \
  --name mtproto-proxy \
  --restart always \
  -p 443:443 \
  telegrammessenger/proxy:latest

Разберём параметры:

  • --name mtproto-proxy — даём контейнеру имя, чтобы легко управлять

  • --restart always — автоматически перезапускается при сбоях и при перезагрузке сервера

  • -p 443:443 — открываем порт 443 (TCP)

  • telegrammessenger/proxy:latest — официальный образ от Telegram

────────────────────────────────────────────────────────────

Шаг 4. Получи данные для подключения

Подожди 10 секунд и посмотри логи:

docker logs mtproto-proxy

В логах найди строки:

[*]   Secret 1: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[*]   t.me link for secret 1: https://t.me/proxy?server=ТВОЙ_IP&port=443&secret=xxxxxxxxx

Сохрани эту ссылку — она нужна для подключения в Telegram.

────────────────────────────────────────────────────────────

Шаг 5. Открой порт в файрволле

# Разрешаем входящие подключения на порт 443 (TCP)
ufw allow 443/tcp

────────────────────────────────────────────────────────────

Шаг 6. Подключи прокси в Telegram

Вариант 1 — По ссылке (самый простой)

Открой ссылку https://t.me/proxy?server=... из шага 4 на телефоне.

Telegram автоматически предложит добавить прокси.

Вариант 2 — Вручную

  1. Откройте Настройки в Telegram

  2. Перейдите в Данные и хранилище → Прокси

  3. Нажмите Добавить прокси

  4. Выберите тип: MTPROTO

  5. Введите:

   - Сервер: IP-адрес вашего VPS

   - Порт: 443

   - Секрет: строка из шага 4

  1. Нажмите Сохранить и Подключить

────────────────────────────────────────────────────────────

Управление прокси

# Проверить работает ли прокси
docker ps

# Посмотреть логи
docker logs mtproto-proxy

# Перезапустить
docker restart mtproto-proxy

# Остановить
docker stop mtproto-proxy

# Запустить
docker start mtproto-proxy

среда, 18 февраля 2026 г.

Бэнчмарк скорости интернета

 wget -qO- bench.sh | bash -------------------- A Bench.sh Script By Teddysun -------------------
Version            : v2026-01-31
Usage              : wget -qO- bench.sh | bash
----------------------------------------------------------------------
CPU Model          : Intel(R) Core(TM) i5-2415M CPU @ 2.30GHz
CPU Cores          : 4 @ 2692.172 MHz
CPU Cache          : 3072 KB
AES-NI             : ✓ Enabled
VM-x/AMD-V         : ✓ Enabled
Total Disk         : 237.5 GB (189.0 GB Used)
Total RAM          : 7.7 GB (3.1 GB Used)
Total Swap         : 3.8 GB (24.0 KB Used)
System Uptime      : 0 days, 1 hour 1 min
Load Average       : 0.62, 0.73, 1.09
OS                 : Arch Linux
Arch               : x86_64 (64 Bit)
Kernel             : 6.18.9-arch1-2
TCP Congestion Ctrl: cubic
Virtualization     : Dedicated
IPv4/IPv6          : ✓ Online / ✗ Offline
Organization       : AS198178 365.partners INC
Location           : Yerevan / AM
Region             : Yerevan
----------------------------------------------------------------------
I/O Speed(1st run) : 86.1 MB/s
I/O Speed(2nd run) : 60.3 MB/s
I/O Speed(3rd run) : 48.9 MB/s
I/O Speed(average) : 65.1 MB/s
----------------------------------------------------------------------
Node Name        Upload Speed      Download Speed      Latency      
Speedtest.net    52.43 Mbps        38.18 Mbps          70.44 ms     
Los Angeles, US  50.79 Mbps        70.89 Mbps          217.89 ms    
Dallas, US       54.04 Mbps        65.46 Mbps          192.31 ms    
Montreal, CA     1.84 Mbps         1.60 Mbps           294.46 ms    
Paris, FR        Test failed        
Amsterdam, NL    12.97 Mbps        39.29 Mbps          74.08 ms     
Suzhou, CN       18.98 Mbps        33.76 Mbps          292.47 ms    
Ningbo, CN       1.00 Mbps         1.55 Mbps           349.37 ms    
Hong Kong, CN    1.75 Mbps         2.24 Mbps           306.61 ms    
Singapore, SG    43.40 Mbps        38.45 Mbps          231.26 ms    
Taipei, CN       Test failed        
Tokyo, JP        4.45 Mbps         43.42 Mbps          295.14 ms    
----------------------------------------------------------------------
Finished in        : 8 min 0 sec
Timestamp          : 2026-02-18 22:09:04 MSK
----------------------------------------------------------------------

воскресенье, 21 декабря 2025 г.

Список ip/domain

https://github.com/v2fly/domain-list-community/tree/master/data


https://github.com/RockBlack-VPN/ip-address

Установка L2TP сервера Ubuntu Server 25.10 на Raspberry Pi + fail2ban

1. Подготовка системы

Обновляем систему и ставим нужные пакеты:

sudo apt update sudo apt upgrade -y sudo apt install xl2tpd ppp -y

Проверим, что сервис установлен:

systemctl status xl2tpd

2. Настройка xl2tpd

Конфигурация /etc/xl2tpd/xl2tpd.conf

sudo nano /etc/xl2tpd/xl2tpd.conf

Пример минимальной конфигурации:

[global] port = 1701 [lns default] ip range = 10.10.10.10-10.10.10.100 local ip = 10.10.10.1 require chap = yes refuse pap = yes require authentication = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes

3. Настройка PPP

Файл /etc/ppp/options.xl2tpd

sudo nano /etc/ppp/options.xl2tpd
ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 1.1.1.1 noccp auth idle 1800 mtu 1460 mru 1460 hide-password name l2tpd lcp-echo-interval 30 lcp-echo-failure 4
require-mschap-v2

4. Пользователи VPN

Файл /etc/ppp/chap-secrets

sudo nano /etc/ppp/chap-secrets

Формат:

username server password ip

Пример:

vpnuser l2tpd strongpassword *

Права доступа обязательны:

sudo chmod 600 /etc/ppp/chap-secrets

5. Включение маршрутизации

Создайте отдельный конфигурационный файл:

sudo nano /etc/sysctl.d/99-ipforward.conf

Добавьте:

net.ipv4.ip_forward=1

Примените:

sudo sysctl --system

Проверьте:

sysctl net.ipv4.ip_forward

Ожидаемый результат:

net.ipv4.ip_forward = 1


6. NAT (если нужен доступ в интернет)

Предположим, внешний интерфейс — eth0.

sudo iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT

8. Запуск сервиса

sudo systemctl restart xl2tpd sudo systemctl enable xl2tpd

Проверка логов:

journalctl -u xl2tpd -f

✅ Окончательное исправление (с сохранением после перезагрузки)

Установка:

sudo apt install iptables-persistent

Во время установки:

  • согласись сохранить текущие правила IPv4

Если уже установлено — сохрани вручную:

sudo netfilter-persistent save

Проверка после перезагрузки:

iptables -t nat -L -n -v


При подключении абонента поднимается интерфейс ppp. Когда подключений нет интрфейса нет в ifconfig


Установка и настройка Fail2Ban (Ubuntu Server 25.10)


sudo apt update sudo apt install fail2ban -y

Базовая конфигурация

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Перезапуск:

sudo systemctl enable fail2ban --now sudo systemctl restart fail2ban

Проверка:

sudo fail2ban-client status sudo fail2ban-client status sshd Если перестало работать: Причина может быть в аппаратных offload-функциях сетевого интерфейса (GRO/GSO/TSO/RX/TX). xl2tpd + pppol2tp непереносимы к агрегации и изменению размеров UDP-пакетов. Это типичная и подтверждённая проблема: Raspberry Pi L2TP без IPsec NAT современные ядра Linux Очень важно понимать: offload-функции могут включаться автоматически: после обновления ядра после перезагрузки после обновления firmware NIC после изменения драйвера Поэтому проблема и «плавающая». Обязательное действие: сделать fix постоянным Иначе после перезагрузки всё сломается снова. Создайте сервис: sudo nano /etc/systemd/system/disable-eth0-offload.service [Unit] Description=Disable NIC offloading for L2TP stability After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ethtool -K eth0 tx off rx off tso off gso off gro off RemainAfterExit=yes [Install] WantedBy=multi-user.target Активировать: sudo systemctl daemon-reload sudo systemctl enable disable-eth0-offload sudo systemctl start disable-eth0-offload Проверка: sudo ethtool -k eth0 | egrep 'tso|gso|gro' Все значения должны быть off