Pazartesi, Aralık 23, 2024

Türkiye Layer 7 Anti-DPI

anti-dpi, dpi nasıl atlatılır, sansürü geçme yöntemi

Zamanında Türkiye üzerinde kullanılan DPI kardeşlerin nasıl geçilebildiği ve bu konuda neler yapılması gerektiğini hiç anlatmadık. Bugün Kernel bazında yapacağımız değişiklikler ile sansürün etrafından dolaşıcaz ve erişim engelli çoğu yeri geçmiş olacağız.

Peki bu işin olayı nedir?

Orijinal SYN Paketlerini göndermeden hemen önce sahte SYN ve ACK paketleri ile bağlantının spoof edilmesi ve DPI cihazını atlatmak

Bağımlılıklarımızı kuralım, iptables kardeşimize eklentimiz ve olmazsa olmazımız git

apt install linux-headers-$(uname -r)
apt install libxtables-dev xtables-addons xtables-addons-common git

Git’ten repomuzu çekelim ve gerekenleri yapalım.

git clone https://downloads.mertcangokgoz.com/netfilter-spooftcp.zip
cd netfilter-spooftcp
nano Makefile

Şu şekilde olacak

PWD         := $(shell pwd)
KVERSION    := $(shell uname -r)
KERNEL_DIR   = /usr/src/linux-headers-$(KVERSION)/
XTABLES_LIBDIR ?= $(shell pkg-config xtables --variable=xtlibdir)
ccflags-y += -O3
obj-m := xt_SPOOFTCP.o

all: libxt_SPOOFTCP.so mod strip

strip: libxt_SPOOFTCP.so mod
    strip libxt_SPOOFTCP.so
    strip --strip-debug xt_SPOOFTCP.ko

libxt_SPOOFTCP.so: libxt_SPOOFTCP.o
    $(CC) ${CFLAGS} ${LDFLAGS} -shared -lxtables libxt_SPOOFTCP.o -o libxt_SPOOFTCP.so

libxt_SPOOFTCP.o:
    $(CC) ${CFLAGS} -O3 -fPIC -c libxt_SPOOFTCP.c -o libxt_SPOOFTCP.o

mod:
    make -C $(KERNEL_DIR) M=$(PWD) modules
clean:
    make -C $(KERNEL_DIR) M=$(PWD) clean
    rm -f libxt_SPOOFTCP.so libxt_SPOOFTCP.o
install: all
    install -m 0644 libxt_SPOOFTCP.so $(XTABLES_LIBDIR)/
    modprobe ip6_tables
    -rmmod xt_SPOOFTCP
    insmod xt_SPOOFTCP.ko
    install -m 0644 xt_SPOOFTCP.ko /lib/modules/$(KVERSION)/kernel/net/netfilter/

Kurulum için

sudo make
sudo make install

/lib/xtables içerisine libxt_SPOOFTCP.so kopyalayın. Gerekirse sudo insmod xt_SPOOFTCP.ko Komutunu vermeyi unutmayın.

Sorunsuz şekilde işlemler tamamlandıysa eklentimizin çalıştığını şu şekilde görebilirsiniz.

iptables -j SPOOFTCP --help

Bu yöntem ile örneğin pastebin için kural seti şu şekildedir.

iptables -t mangle -A POSTROUTING -d 104.22.0.0/16 -p tcp --dport 443 --syn -j SPOOFTCP --ttl 14 --tcp-flags PSH,ACK --delay 5 --payload-length 1 --md5 --ts 

Kural setlerini kayıt etmeyi ve sistem başlangıcında tekrar kullanımını sağlamayı unutmayınız.

apt install iptables-persistent
netfilter-persistent save