Skip to content

nsychev/rknmon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RKN Monitor

Service which analyzes how Internet censorship in Russia works. It tries to determine when exactly IP was banned, trying to connect there regularly via different network providers.

How to build it

  1. Clone this repository to your server. Let call directory you cloned the repo $BASE_DIR.

  2. Install dependencies: OpenVPN, EasyRSA, Python 3, MongoDB and some stuff from pip: pymongo, python-telegram-bot (TODO: reqirements.txt)

  3. Buid your own CA in $BASE_DIR/ca: make-cadir ca

  4. Generate server keypair, DH parameters and TA key.

  5. Move that stuff along with conf/server.conf, conf/connect.py and conf/disconnect.py to /etc/openvpn

  6. Ensure MongoDB is running at 127.0.0.1:27017, without authorization.

  7. Add configuration to bot/config.py (TODO: sample config)

  8. Make your iptables more beautiful with some MASQUERADE'ing while connnecting to tap interface:

iptables -t nat -I POSTROUTING -o tap0 -j MASQUERADE
  1. Change sysctl's values net.ipv4.conf.all.rp_filter and net.ip4.conf.tap0.rp_filter to 0

  2. Run OpenVPN, bot/bot.py and bot/poll.py

  3. Generate client pack using /generate bot command. Do not do it using CA.

Clients need just to connect using provided VPN config.

Credits

Author — Nikita Sychev, licensed by MIT

About

System for monitoring proxy blocks in Russia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published