Skip to main content

No project description provided

Project description

sqredirect

Redirection and filtering Source Engine game traffic in a bundle with sqproxy

How it Works?

sqredirect attach eBPF filter(s) to network interface and manipulate with traffic targeting to game ports

eBPF is more efficient way to check/accept/drop packets in Linux

More in Wikipedia

Firewall

As redirection and filtering processed before any firewall rules applied, you also need ensure target (redirect) ports are accessable from external network. If your server placed behind NAT and all rules live in router, you do not need do anything.

Requirements

  • Linux
  • Kernel version >= 4.4, check your by command: uname -r
  • python2 or python3

Installation

TODO: Split into Ubuntu/Debian/Others like in bcc-tools README

Step 1: Install bcc-tools

Step 2: Install sqredirect

python -m pip install sqredirect

https://pypi.org/project/sqredirect/

Usage

Automatically

Only by SQProxy

Non-root running

bcc-tools can't be used w/o root, see https://github.com/iovisor/bcc/issues/1166

But you can use this snippet to restrict usage only to specified user/group:

TL;DR: move python redirect.py $@ to command and add permissions in /etc/sudoers


  1. Copy content of this folder to /usr/src/sqredirect

  2. Create file in /usr/local/bin/sqredirect with content:

    #!/bin/bash
    
    cd /usr/src/sqredirect
    exec python2 /usr/src/sqredirect/redirect.py $@
    
  3. chmod +x /usr/local/bin/sqredirect

  4. Create group network and add user to group

    addgroup network
    usermod -aG network <user-which-should-it-run>
    
  5. Allow run sqredirect command w/o root privileges

    echo "%network ALL=(root) NOPASSWD: /usr/local/bin/sqredirect" > /etc/sudoers.d/network
    

More about sudoers: https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file

Troubleshooting

Problem: I can't reach my server through network

Solution: Rollback any changes at network level, run in console (if you have access):

tc qdisc del dev eth0 root

replace eth0 with your interface name

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqredirect-1.2.2.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

sqredirect-1.2.2-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file sqredirect-1.2.2.tar.gz.

File metadata

  • Download URL: sqredirect-1.2.2.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.1 Darwin/21.2.0

File hashes

Hashes for sqredirect-1.2.2.tar.gz
Algorithm Hash digest
SHA256 b6c92920085dfd55dca3cb9f615ca40af6906da5ac8de2c04b1c029b329127df
MD5 33dc715a23be508cf92a415fd38c3314
BLAKE2b-256 3e7c5508959d9f6a8a97645328d8e4ed8db653ac985d2c7527178a74d4eee421

See more details on using hashes here.

File details

Details for the file sqredirect-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: sqredirect-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.1 Darwin/21.2.0

File hashes

Hashes for sqredirect-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 86cc85cd3ce23cde882adcb6524be784ce2a1fe63f8ff754ef0bc91e79123ffc
MD5 21bd4bc6939c829395219a6882f4190f
BLAKE2b-256 1a58b207d7ea700bf86fa12bbca00ae9e2f30e1d7e1611ff7aeb649a8de339aa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page