[Unit] Description=wgcloak UDP transport client Wants=network-online.target After=network-online.target [Service] Type=simple User=wgcloak Group=wgcloak ExecStart=/usr/bin/wgcloak client --config /etc/wgcloak/client.toml Restart=on-failure RestartSec=2s TimeoutStopSec=15s UMask=0077 # Keep the control socket in a private runtime directory. RuntimeDirectory=wgcloak-client RuntimeDirectoryMode=0750 Environment=XDG_RUNTIME_DIR=/run/wgcloak-client # Process and filesystem hardening. Review paths if the deployment changes. NoNewPrivileges=true PrivateTmp=true PrivateDevices=true ProtectSystem=strict ProtectHome=true ProtectKernelTunables=true ProtectKernelModules=true ProtectControlGroups=true LockPersonality=true RestrictSUIDSGID=true RestrictNamespaces=true RestrictRealtime=true MemoryDenyWriteExecute=true RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 SystemCallArchitectures=native [Install] WantedBy=multi-user.target