# PyGuardian - Advanced Linux Server Protection System πŸ›‘οΈ **БистСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Linux-сСрвСра ΠΎΡ‚ брутфорс-Π°Ρ‚Π°ΠΊ с функциями Π‘ΠšΠ Π«Π’ΠžΠ“Πž обнаруТСния Π²Π·Π»ΠΎΠΌΠΎΠ²** [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Telegram](https://img.shields.io/badge/Telegram-Bot-blue.svg)](https://core.telegram.org/bots) ## 🚨 ΠΠžΠ’Π«Π• Π’ΠžΠ—ΠœΠžΠ–ΠΠžΠ‘Π’Π˜ - STEALTH SECURITY ### Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ компромиссов - **Invisible Detection**: БистСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ **Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ** для Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ - **Honeypot Users**: АвтоматичСскоС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ°Π½ΠΎΡ‡Π½Ρ‹ΠΌΠΈ ΡƒΡ‡Π΅Ρ‚ΠΊΠ°ΠΌΠΈ - **Behavioral Analysis**: Анализ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния послС Π²Ρ…ΠΎΠ΄Π° - **Silent Response**: Вихая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π΅Π· увСдомлСния Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ ### АвтоматичСскиС ΠΊΠΎΠ½Ρ‚Ρ€ΠΌΠ΅Ρ€Ρ‹ - **Password Rotation**: МгновСнная смСна ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ скомпромСтированных Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² - **Session Termination**: ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСссий - **Stealth Blocking**: Бкрытая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΡ… IP - **Evidence Collection**: Π‘Π±ΠΎΡ€ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π² для Π°Π½Π°Π»ΠΈΠ·Π° ## 🎯 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности - **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ**: ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ auth.log ΠΈ дСтСкция Π°Ρ‚Π°ΠΊ - **АвтоматичСская Π·Π°Ρ‰ΠΈΡ‚Π°**: Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° IP ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ - **Telegram ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅**: ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π±ΠΎΡ‚Π° Π±Π΅Π· Π²Π΅Π±-интСрфСйса - **πŸ”₯ STEALTH MODE**: Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ нСйтрализация Π²Π·Π»ΠΎΠΌΠΎΠ² - **Session Management**: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ SSH сСссиями - **Password Security**: АвтоматичСская смСна ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΏΡ€ΠΈ компромиссС - **🌐 CLUSTER MANAGEMENT**: Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ мноТСствСнными сСрвСрами - **Agent Deployment**: АвтоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ SSH - **Multi-Server Control**: Π•Π΄ΠΈΠ½Ρ‹ΠΉ Telegram-интСрфСйс для всСх сСрвСров - **ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° firewall**: iptables ΠΈ nftables - **АвтоматичСский Ρ€Π°Π·Π±Π°Π½**: По Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ с увСдомлСниями - **Π‘Π΅Π»Ρ‹ΠΉ список**: Π—Π°Ρ‰ΠΈΡ‚Π° Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… IP ΠΎΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ - **Бтатистика**: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Π°Ρ‚Π°ΠΊ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄ΠΎΠ² - **ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ**: ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ## πŸ“‹ ВрСбования - **ОБ**: Linux (Ubuntu 20.04+, CentOS 8+, Debian 11+) - **Python**: 3.10 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ - **ΠŸΡ€Π°Π²Π°**: root (для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с firewall) - **Firewall**: iptables ΠΈΠ»ΠΈ nftables - **Telegram**: Π’ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π° ΠΈ admin ID ## πŸš€ Быстрая установка ### 1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория ```bash git clone https://github.com/your-org/pyguardian.git cd pyguardian ``` ### 2. АвтоматичСская установка ```bash sudo chmod +x install.sh sudo ./install.sh ``` ### 3. Настройка Telegram Π±ΠΎΡ‚Π° #### Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΎΡ‚Π°: 1. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ `/newbot` Π±ΠΎΡ‚Ρƒ [@BotFather](https://t.me/BotFather) 2. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ инструкциям ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ 3. Π£Π·Π½Π°ΠΉΡ‚Π΅ ваш Telegram ID Ρ‡Π΅Ρ€Π΅Π· [@userinfobot](https://t.me/userinfobot) #### ОбновлСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: ```bash sudo nano /etc/pyguardian/config.yaml ``` ```yaml telegram: bot_token: "YOUR_BOT_TOKEN_HERE" admin_id: YOUR_TELEGRAM_ID ``` ### 4. Запуск сСрвиса ```bash # Запуск sudo systemctl start pyguardian # Автозапуск sudo systemctl enable pyguardian # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса sudo systemctl status pyguardian # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π»ΠΎΠ³ΠΎΠ² sudo journalctl -u pyguardian -f ``` ## βš™οΈ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | ОписаниС | По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ | |----------|----------|--------------| | `max_attempts` | ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π·Π° time_window | 5 | | `time_window` | Окно Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² сСкундах | 60 | | `unban_time` | ВрСмя автоматичСской Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ | 3600 | | `auth_log_path` | ΠŸΡƒΡ‚ΡŒ ΠΊ auth.log | `/var/log/auth.log` | | `check_interval` | Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΠΎΠ³Π° | 1.0 | ### Firewall настройки #### Для iptables: ```yaml firewall: backend: "iptables" chain: "INPUT" target: "DROP" iptables: table: "filter" ``` #### Для nftables: ```yaml firewall: backend: "nftables" nftables: table: "inet pyguardian" chain: "input" ``` ### Π‘Π΅Π»Ρ‹ΠΉ список IP ```yaml whitelist: - "127.0.0.1" - "::1" - "192.168.1.0/24" # Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ - "10.0.0.0/8" # VPN ΡΠ΅Ρ‚ΡŒ ``` ## πŸ€– ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Telegram Π±ΠΎΡ‚Π° ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ | Команда | ОписаниС | |---------|----------| | `/start` | ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ ΠΈ информация ΠΎ систСмС | | `/status` | Бтатистика Π°Ρ‚Π°ΠΊ ΠΈ систСма | | `/top10` | Π’ΠΎΠΏ-10 Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΡ… IP Π·Π° сутки | | `/details ` | Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ информация ΠΏΠΎ IP | | `/ban ` | Ручная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° IP | | `/unban ` | Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° IP | | `/list` | Бписок всСх Π·Π°Π±Π°Π½Π΅Π½Π½Ρ‹Ρ… IP | | `/help` | Π‘ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ | ### 🚨 НовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ управлСния Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ | Команда | ОписаниС | |---------|----------| | `/compromises` | Бписок ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Π·Π»ΠΎΠΌΠΎΠ² | | `/sessions` | АктивныС SSH сСссии | | `/kick ` | Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ сСссию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | | `/generate_password ` | Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ | | `/set_password ` | Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ | ### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ``` /details 192.168.1.100 /ban 10.0.0.50 /unban 203.0.113.1 # НовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ бСзопасности /sessions /kick admin /generate_password ubuntu /compromises ``` ## πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ### ДСтСкция Π°Ρ‚Π°ΠΊ БистСма отслСТиваСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ события Π² auth.log: - `Failed password` - `Invalid user` - `authentication failure` - `Too many authentication failures` - `Failed publickey` - `Connection closed by authenticating user` ### УвСдомлСния Π² Telegram - ⚠️ АвтоматичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° IP - πŸ”“ Ручная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°/Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° - 🟒 АвтоматичСская Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ - ❌ БистСмныС ошибки - 🚨 ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π°Ρ‚Π°ΠΊΠΈ ### Π›ΠΎΠ³ΠΈ систСмы ```bash # БистСмныС Π»ΠΎΠ³ΠΈ sudo journalctl -u pyguardian -f # Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Π»ΠΎΠ³ΠΈ sudo tail -f /var/log/pyguardian.log # Π›ΠΎΠ³ΠΈ ошибок sudo journalctl -u pyguardian -p err ``` ## πŸ”§ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвисом ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ```bash # Бтатус sudo systemctl status pyguardian # Запуск sudo systemctl start pyguardian # ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° sudo systemctl stop pyguardian # ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ sudo systemctl restart pyguardian # ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ sudo systemctl reload pyguardian # Автозапуск sudo systemctl enable pyguardian # ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автозапуск sudo systemctl disable pyguardian ``` ### ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов ```bash # ИспользованиС памяти sudo systemctl show pyguardian --property=MemoryCurrent # ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ процСссов sudo systemctl show pyguardian --property=TasksCurrent # ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ sudo systemctl show pyguardian --property=ActiveEnterTimestamp ``` ## πŸ› οΈ Ручная установка (Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ) ### 1. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° систСмы ```bash # Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip python3-venv iptables # CentOS/RHEL sudo yum install python3 python3-pip iptables # ΠΈΠ»ΠΈ sudo dnf install python3 python3-pip iptables ``` ### 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ```bash sudo useradd -r -s /bin/false pyguardian sudo mkdir -p /opt/pyguardian /var/lib/pyguardian sudo chown pyguardian:pyguardian /var/lib/pyguardian ``` ### 3. Установка PyGuardian ```bash # ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ git clone https://github.com/your-org/pyguardian.git cd pyguardian # ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² sudo cp -r src/ main.py requirements.txt /opt/pyguardian/ sudo cp config/config.yaml /etc/pyguardian/ sudo cp systemd/pyguardian.service /etc/systemd/system/ # Установка зависимостСй cd /opt/pyguardian sudo pip3 install -r requirements.txt # ΠŸΡ€Π°Π²Π° sudo chmod +x /opt/pyguardian/main.py sudo chown -R root:root /opt/pyguardian # Systemd sudo systemctl daemon-reload ``` ## πŸ” Диагностика ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ### ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с запуском #### Ошибка "Permission denied" ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° ls -la /opt/pyguardian/main.py # Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° sudo chmod +x /opt/pyguardian/main.py ``` #### Ошибка "Module not found" ```bash # ΠŸΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости sudo pip3 install -r /opt/pyguardian/requirements.txt --force-reinstall ``` #### Ошибка доступа ΠΊ auth.log ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствованиС Ρ„Π°ΠΉΠ»Π° ls -la /var/log/auth.log # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° sudo chmod 644 /var/log/auth.log ``` ### ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с firewall #### iptables Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ статус sudo iptables -L -n # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ lsmod | grep ip_tables # Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ sudo modprobe ip_tables ``` #### nftables Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ статус sudo nft list ruleset # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ nftables sudo apt install nftables # Ubuntu/Debian sudo yum install nftables # CentOS/RHEL ``` ### ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Telegram #### Π‘ΠΎΡ‚ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ID Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ sudo cat /etc/pyguardian/config.yaml | grep -A 3 telegram # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сСтСвоС соСдинСниС curl -s "https://api.telegram.org/botYOUR_TOKEN/getMe" ``` #### УвСдомлСния Π½Π΅ приходят ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ID администратора # Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ Π²Ρ‹ написали Π±ΠΎΡ‚Ρƒ /start # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ sudo journalctl -u pyguardian | grep -i telegram ``` ### ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ #### ВысокоС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ```yaml # ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² config.yaml performance: max_memory_mb: 50 cleanup_interval: 1800 # 30 ΠΌΠΈΠ½ΡƒΡ‚ max_records_age: 259200 # 3 дня ``` #### Высокая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° диск ```yaml # Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ monitoring: check_interval: 2.0 # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 2 сСкунды # ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ logging: log_level: "WARNING" # МСньшС Π»ΠΎΠ³ΠΎΠ² ``` ## πŸ“ˆ ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ### Grafana + Prometheus (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) ```bash # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ экспорта ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· systemd sudo systemctl status pyguardian --output=json ``` ### ВстроСнная статистика Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚ прСдоставляСт: - ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π°Ρ‚Π°ΠΊ Π·Π° дСнь - Π’ΠΎΠΏ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΡ… IP - ИспользованиС памяти - ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы - Бтатистику ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… событий ## πŸ” Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ### Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ 1. **РСгулярно обновляйтС** ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Π΅Π»ΠΎΠ³ΠΎ списка 2. **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΡŒΡ‚Π΅ Π»ΠΎΠ³ΠΈ** Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний 3. **Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ VPN** для доступа ΠΊ сСрвСру 4. **НастройтС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅** ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 5. **ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ провСряйтС** список Π·Π°Π±Π°Π½Π΅Π½Π½Ρ‹Ρ… IP ### Π€Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ - `/etc/pyguardian/config.yaml` - основная конфигурация - `/var/lib/pyguardian/guardian.db` - Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… SQLite - `/var/log/pyguardian.log` - Π»ΠΎΠ³ΠΈ прилоТСния ### ΠŸΡ€Π°Π²Π° доступа ```bash # ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ root ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹) sudo chmod 600 /etc/pyguardian/config.yaml # Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… sudo chmod 600 /var/lib/pyguardian/guardian.db # Π›ΠΎΠ³ΠΈ sudo chmod 644 /var/log/pyguardian.log ``` ## πŸ“š API ΠΈ интСграция ### Webhook увСдомлСния (планируСтся) ```yaml # Π’ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях webhooks: on_ban: "https://your-domain.com/webhook/ban" on_unban: "https://your-domain.com/webhook/unban" ``` ### REST API (планируСтся) - `GET /api/stats` - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ статистики - `POST /api/ban` - Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π±Π°Π½ IP - `DELETE /api/ban/` - Ρ€Π°Π·Π±Π°Π½ IP ## πŸ”„ ОбновлСниС ### АвтоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ```bash # Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ cd /tmp git clone https://github.com/your-org/pyguardian.git cd pyguardian # ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСрвис sudo systemctl stop pyguardian # ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ (сохраняя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ) sudo cp -r src/ main.py requirements.txt /opt/pyguardian/ sudo pip3 install -r /opt/pyguardian/requirements.txt # Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис sudo systemctl start pyguardian ``` ### ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠŸΡ€ΠΈ обновлСниях провСряйтС ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: ```bash # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ python3 -c "import yaml; yaml.safe_load(open('/etc/pyguardian/config.yaml'))" ``` ## 🀝 Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 1. Π€ΠΎΡ€ΠΊΠ½ΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ 2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (`git checkout -b feature/amazing-feature`) 3. ЗафиксируйтС измСнСния (`git commit -m 'Add amazing feature'`) 4. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π² Π²Π΅Ρ‚ΠΊΡƒ (`git push origin feature/amazing-feature`) 5. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Pull Request ## πŸ“„ ЛицСнзия Distributed under the MIT License. See `LICENSE` for more information. ## πŸ’¬ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° - **Issues**: [GitHub Issues](https://github.com/your-org/pyguardian/issues) - **Telegram**: [@pyguardian_support](https://t.me/pyguardian_support) - **Email**: support@pyguardian.dev ## 🎯 ΠŸΠ»Π°Π½Ρ‹ развития - [ ] Web-интСрфСйс (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) - [ ] REST API - [ ] Webhook увСдомлСния - [ ] Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ - [ ] МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для Π΄Π΅Ρ‚Π΅ΠΊΡ†ΠΈΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ - [ ] ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° IPv6 - [ ] ΠšΠ»Π°ΡΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ - [ ] Экспорт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Prometheus --- **PyGuardian** - Made with ❀️ for Linux system administrators