From 283d5fef2907b5987dfb25ad80f82767687c62cc Mon Sep 17 00:00:00 2001 From: pycm1k Date: Fri, 22 May 2026 09:23:27 +0000 Subject: [PATCH] first commit --- telemt/docker-compose.yaml | 29 +++++++++++++++++++ telemt/telemt-config/telemt.toml | 46 +++++++++++++++++++++++++++++++ wg-easy/config/wg-easy.db | Bin 0 -> 94208 bytes wg-easy/config/wg0.conf | 39 ++++++++++++++++++++++++++ wg-easy/docker-compose.yaml | 38 +++++++++++++++++++++++++ 5 files changed, 152 insertions(+) create mode 100644 telemt/docker-compose.yaml create mode 100644 telemt/telemt-config/telemt.toml create mode 100644 wg-easy/config/wg-easy.db create mode 100644 wg-easy/config/wg0.conf create mode 100644 wg-easy/docker-compose.yaml diff --git a/telemt/docker-compose.yaml b/telemt/docker-compose.yaml new file mode 100644 index 0000000..3ed3abe --- /dev/null +++ b/telemt/docker-compose.yaml @@ -0,0 +1,29 @@ +services: + telemt: + image: ghcr.io/telemt/telemt:latest + container_name: telemt + restart: unless-stopped + environment: + RUST_LOG: "info" + volumes: + - ./telemt-config/telemt.toml:/app/config.toml:ro + ports: + - "11.101.0.254:9443:9443/tcp" + - "11.101.0.254:9090:9090/tcp" + - "11.101.0.254:9091:9091/tcp" + cap_drop: [ALL] + cap_add: [NET_BIND_SERVICE] + read_only: true + ulimits: + nofile: + soft: 65536 + hard: 65536 + tmpfs: + - /tmp:rw,nosuid,nodev,noexec,size=16m + + networks: + overlay_net: + +networks: + overlay_net: + external: true diff --git a/telemt/telemt-config/telemt.toml b/telemt/telemt-config/telemt.toml new file mode 100644 index 0000000..e6103ec --- /dev/null +++ b/telemt/telemt-config/telemt.toml @@ -0,0 +1,46 @@ +show_link = "*" + +[general] +prefer_ipv6 = false +fast_mode = true +use_middle_proxy = false + +[general.links] +public_host = "moamo.duckdns.org" # Домен для генератора ссылок в API +public_port = 443 +show = "*" + +[general.modes] +classic = false +secure = false +tls = true + +[server] +port = 9443 +listen_addr_ipv4 = "0.0.0.0" +listen_addr_ipv6 = "::" + + +[server.api] +enabled = true +listen = "0.0.0.0:9091" # API доступен только из локалки +read_only = true # Без функции записи +whitelist = [] + +[censorship] +tls_domain = "moamo.duckdns.org" # домен для SNI (пример! см. ниже) +mask = true # Включает проксирование реального сайта +mask_port = 443 +fake_cert_len = 2048 + +[access.users] +pycm1k_PC = "1f07e0ef009c1093ab00a319df2e034f" +pycm1k_mob = "e6e245ae24803a238fd590aff8c10011" +Guzel = "f6d3be367f53d4a4143761a84283d8dc" +user4 = "2f750614c7f86c2f9a55ea97800b0901" +user5 = "0d16957b75ea8e18c993d6541ccce203" + +[[upstreams]] +type = "direct" +enabled = true +weight = 10 diff --git a/wg-easy/config/wg-easy.db b/wg-easy/config/wg-easy.db new file mode 100644 index 0000000000000000000000000000000000000000..6a0e14d8a98d36f28b87b18f1fa650ca56e9437c GIT binary patch literal 94208 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 wdi_@% literal 0 HcmV?d00001 diff --git a/wg-easy/config/wg0.conf b/wg-easy/config/wg0.conf new file mode 100644 index 0000000..c6cb926 --- /dev/null +++ b/wg-easy/config/wg0.conf @@ -0,0 +1,39 @@ +# Note: Do not edit this file directly. +# Your changes will be overwritten! + +# Server +[Interface] +PrivateKey = EHMSZLuis/jEpPsG/TDYZQKQ54NC9bVdsfrvsuvYPUA= +Address = 11.2.2.1/24, fdcc:ad94:bacf:61a4::cafe:1/112 +ListenPort = 30351 +MTU = 1420 + +PreUp = +PostUp = iptables -t nat -A POSTROUTING -s 11.2.2.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 30351 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -s fdcc:ad94:bacf:61a4::cafe:0/112 -o eth0 -j MASQUERADE; ip6tables -A INPUT -p udp -m udp --dport 30351 -j ACCEPT; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -A FORWARD -o wg0 -j ACCEPT; +PreDown = +PostDown = iptables -t nat -D POSTROUTING -s 11.2.2.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 30351 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -s fdcc:ad94:bacf:61a4::cafe:0/112 -o eth0 -j MASQUERADE; ip6tables -D INPUT -p udp -m udp --dport 30351 -j ACCEPT; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -D FORWARD -o wg0 -j ACCEPT; + +# Client: pycm1k_mob (2) +[Peer] +PublicKey = MWg1eoLgk33nISm+wdNq0VqDgcjwm0Ca67fVMmXJ5B4= +PresharedKey = 7mHaccI99dTOTadsE16JtDYBiALe7OEEColhjwD3UVc= +AllowedIPs = 11.2.2.2/32, fdcc:ad94:bacf:61a4::cafe:2/128 + +# Client: Guz_mob (3) +[Peer] +PublicKey = TH82PnmFEvhll2+Q7khacquBcjFp4hDez5xJOIGqfgE= +PresharedKey = rUO4yWosBVw6NLaOVwl3KmBmI5NiN4oYrFgj2xeslvk= +AllowedIPs = 11.2.2.3/32, fdcc:ad94:bacf:61a4::cafe:3/128 + +# Client: RT (4) +[Peer] +PublicKey = vj5BUw8SSLSZzIgMVQ3yz1yBKUO2ALb13iQWRJoKHSs= +PresharedKey = 7bupfK6uW4KGIQ3/MnRkliQwfNSM32sHPzgaSEDio3o= +AllowedIPs = 11.2.2.4/32, fdcc:ad94:bacf:61a4::cafe:4/128, 192.168.30.0/24, 11.2.2.4/32 + +# Client: vm_mts (5) +[Peer] +PublicKey = ggg+wnwD4roCBRePtXeTSqtu16PPKb7w8RWyY8aOIRg= +PresharedKey = i6ATEWiKSIHTBi+8ecxk9BLuA0G4W955roZCeVdP3v4= +AllowedIPs = 11.2.2.5/32, fdcc:ad94:bacf:61a4::cafe:5/128, 11.200.0.0/24, 11.1.1.0/24 + diff --git a/wg-easy/docker-compose.yaml b/wg-easy/docker-compose.yaml new file mode 100644 index 0000000..a439ee9 --- /dev/null +++ b/wg-easy/docker-compose.yaml @@ -0,0 +1,38 @@ +volumes: + etc_wireguard: + +services: + wg-easy: + environment: + # Optional: +# - PORT=30351 + # - HOST=0.0.0.0 + - INSECURE=true + + image: ghcr.io/wg-easy/wg-easy:15.3.0 + container_name: wg-easy + networks: + overlay_net: + ipv4_address: 11.101.0.1 + volumes: + - ./config:/etc/wireguard + - /lib/modules:/lib/modules:ro + ports: + - "30351:30351/udp" + - "30777:51821/tcp" + restart: unless-stopped + cap_add: + - NET_ADMIN + - SYS_MODULE + # - NET_RAW # ⚠️ Uncomment if using Podman + sysctls: + - net.ipv4.ip_forward=1 + - net.ipv4.conf.all.src_valid_mark=1 + - net.ipv6.conf.all.disable_ipv6=0 + - net.ipv6.conf.all.forwarding=1 + - net.ipv6.conf.default.forwarding=1 + + +networks: + overlay_net: + external: true