gcc -Wall proxy_server.c sha256.c hmac.c -o proxy_server
gcc -Wall proxy_client.c sha256.c hmac.c -o proxy_clientCopy proxy_server to remote server.
Run server:
./proxy_server
Proxy Server listening on port 7000 (PID: 2945643)Options:
./proxy_server -h
Usage: proxy_server [-x xor-byte] [-l listen] [-k secret-key][--help]
Example:
./proxy_server -l 8000 -x 0x55Run client (on local machine):
./proxy_client
Local Proxy listening on port 9000 for browser connections.
Forwarding to Remote XOR-Proxy at 78.125.145.15:7000Options:
./proxy_client -h
Usage: proxy_client [-s server-host] [-x xor-byte] [-l listen] [-k secret-key] [-p server-port] [--help]
Example:
./proxy_client -p 8000 -s 78.125.134.94 -l 9000 -x 0x55Теперь Локальный Прокси-Сервер (proxy_client.c) будет принимать адрес цели от браузера и передавать его через зашифрованный туннель вашему удаленному серверу. Браузер, настраиваем на использование HTTP/HTTPS-прокси: 127.0.0.1:9000.
Youtube работает.
Этот юнит будет управлять программой proxy_server.c.
📄 Файл: /etc/systemd/system/xor-proxy.service
[Unit]
Description=Remote XOR Proxy Server (Data Obfuscation)
After=network.target
[Service]
[Service]
Type=simple
ExecStart=/home/ubuntu/proxy_server -k superpassword
User=ubuntu
Group=ubuntu
Restart=always
RestartSec=5s
StandardOutput=journal
StandardError=journal
# Автоматический перезапуск в случае сбоя
Restart=always
RestartSec=5s
# Стандартный вывод и ошибки будут перенаправлены в журнал systemd (journalctl)
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Этот юнит будет управлять программой proxy_client.c.
📄 Файл: /etc/systemd/system/http-proxy-client.service
Важное замечание: Если ваш удаленный сервер работает на другом компьютере, замените REMOTE_PROXY_IP и REMOTE_PROXY_PORT в коде proxy_client.c на реальные данные перед компиляцией.
[Unit]
Description=Remote XOR Proxy Server (Data Obfuscation)
After=network.target
[Service]
[Service]
Type=simple
ExecStart=/home/ubuntu/proxy_client -k superpassword
User=ubuntu
Group=ubuntu
Restart=always
RestartSec=5s
StandardOutput=journal
StandardError=journal
# Автоматический перезапуск в случае сбоя
Restart=always
RestartSec=5s
# Стандартный вывод и ошибки будут перенаправлены в журнал systemd (journalctl)
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
🚀 Активация и запуск сервисов
После создания файлов выполните следующие команды для каждого сервиса (например, сначала для xor-proxy):
Шаг 1: Перезагрузка systemd
Сообщите systemd о новых файлах конфигурации. Bash
sudo systemctl daemon-reloadШаг 2: Включение автозапуска
Включите сервисы, чтобы они запускались автоматически при загрузке системы. Bash
sudo systemctl enable xor-proxy.service
sudo systemctl enable http-proxy.serviceШаг 3: Запуск сервисов
Запустите сервисы вручную. Важно: Сначала запустите удаленный сервер, затем локальный. Bash
sudo systemctl start xor-proxy.servicesudo systemctl start http-proxy.serviceШаг 4: Проверка статуса и логов
Проверьте, что сервисы запущены и работают. Bash
sudo systemctl status xor-proxy.service
sudo systemctl status http-proxy.serviceДля просмотра всех логов, которые генерируют ваши программы (включая сообщения printf), используйте journalctl: Bash
sudo journalctl -u remote-xor-proxy -f -n 100 sudo journalctl -u local-http-proxy -f -n 100