Подготовка окружения

apt update
apt install tmux python3-pip python3-venv -y

tmux new -s flask
sudo -i

mkdir -p /app/flask
cd /app/flask

mkdir -p /app/flask/venv
python3 -m venv venv
source venv/bin/activate

pip3 install flask flask_talisman

Генерация сертификата для Flask API

openssl req -x509 -newkey rsa:4096 -keyout private_key.pem -out certificate.pem -days 10000 -nodes

Создаем main.py на сервере

nano /app/flask/main.py
from flask import Flask, request
from flask_talisman import Talisman
import subprocess
#openssl req -x509 -newkey rsa:4096 -keyout private_key.pem -out certificate.pem -days 10000 -nodes

app = Flask(__name__)
token = "mysecrettoken"

# Настройте Talisman для обеспечения безопасности вашего приложения
talisman = Talisman(app, content_security_policy=None)

@app.route('/execute', methods=['POST'])
def execute_command():
    data = request.get_json()
    client_token = data.get('token', '')
    
    # Проверьте, является ли токен действительным и соответствует ли он ожидаемому значению
    if client_token != token:
        return {'error': 'Неверный токен доступа'}, 401

    command = data.get('command', '')
   
    try:
        result = subprocess.run(command, shell=True, text=True, capture_output=True)
        output = result.stdout
        return {'output': output}
    except Exception as e:
        return {'error': str(e)}

if __name__ == '__main__':
    # Замените параметры на ваши SSL-сертификат и ключ
    app.run(host='0.0.0.0', port=34702, ssl_context=('certificate.pem', 'private_key.pem'), debug=True)

И СТАРТУЕМ

python3 main.py

Создаем main.py на клиенте

import requests
import json

token = 'mysecrettoken'
# Замените URL на адрес вашего Flask API сервера
url = 'https://142.54.160.100:34702/execute'

# Замените команду на то, что вы хотите выполнить
command = 'ls -al /app/flask/'

data = {'command': command, 'token': token}

response = requests.post(url, json=data, verify=False)

if response.status_code == 200:
    result = response.json()
    print(str(result["output"]))
else:
    print("Ошибка при выполнении команды:", response.status_code)

И выполняем команду в скрипте

python3 main.py

МОИ ПРОЕКТЫ:

✅ БЕСПЛАТНЫЕ СЕРВЕРА

https://t.me/root_cheap_bot

VPN Без блокировок (Xray VPN)!

https://t.me/vpnxray_bot ЕСТЬ 🔥 БЕСПЛАТНЫЙ ПЕРИОД

🎉 Бесплатный ChatGPT в Телеграм

https://t.me/botangpt_bot

Я В ТЕЛЕГРАМ https://t.me/worldranger ТЕЛЕГРАМ КАНАЛ https://t.me/linuxlife ТЕЛЕГРАМ ЧАТ https://t.me/linuxlife_chat

$$$ Поддержать канал: $$$

https://yoomoney.ru/to/4100116391953093

ВК сообщество https://vk.com/club198153108

ЯндексДзен https://dzen.ru/linuxlifepage