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
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
- bcc-tools >= 0.10.0 (depends on Kernel version, see https://github.com/iovisor/bcc/releases)
- Install instruction (non-Debian 10)
- Install instruction (Debian 10)
- You can check the current version via
python -c 'import bcc; print(bcc.__version__);'
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
-
Copy content of this folder to
/usr/src/sqredirect -
Create file in
/usr/local/bin/sqredirectwith content:#!/bin/bash cd /usr/src/sqredirect exec python2 /usr/src/sqredirect/redirect.py $@
-
chmod +x /usr/local/bin/sqredirect -
Create group network and add user to group
addgroup network usermod -aG network <user-which-should-it-run>
-
Allow run
sqredirectcommand w/o root privilegesecho "%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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6c92920085dfd55dca3cb9f615ca40af6906da5ac8de2c04b1c029b329127df
|
|
| MD5 |
33dc715a23be508cf92a415fd38c3314
|
|
| BLAKE2b-256 |
3e7c5508959d9f6a8a97645328d8e4ed8db653ac985d2c7527178a74d4eee421
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86cc85cd3ce23cde882adcb6524be784ce2a1fe63f8ff754ef0bc91e79123ffc
|
|
| MD5 |
21bd4bc6939c829395219a6882f4190f
|
|
| BLAKE2b-256 |
1a58b207d7ea700bf86fa12bbca00ae9e2f30e1d7e1611ff7aeb649a8de339aa
|