Socks5 proxy su ss5

Iš Žinynas.
10:13, 20 spalio 2017 versija, sukurta \dev\null (Aptarimas | indėlis)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija → (skirt)
Jump to navigation Jump to search

Konfigūracija aprašyta ir tinka CentOS 5/6.

Diegiam paketus[keisti]

wget http://downloads.sourceforge.net/ss5/ss5-3.8.9-8.src.rpm
yum install gcc.x86_64 rpm-build.x86_64 openldap-devel.x86_64 pam-devel.x86_64 openssl-devel.x86_64 libgssapi-devel
rpmbuild --rebuild ss5-3.8.9-8.src.rpm
rpm -i ~/rpmbuild/RPMS/x86_64/ss5-3.8.9-8.x86_64.rpm

/etc/opt/ss5/ss5.conf konfigūracija[keisti]

#set SS5_VERBOSE # Jeigu kažkas neveikia, atkomentuojame šias dvi eilutes, kad nustatytume kur yra problema.
#set SS5_DEBUG # Debug režimas plačiau aprašo programos veikimą į programos žurnalus.
auth 77.219.203.170 - - # Kuriems ip duosime prieigą (be username/password) galima padaryti 0.0.0.0 (leidimas visiems).
permit -  77.219.203.170 - 0.0.0.0/0   - - - - # Ši eilutė ip adresui 77.219.203.170 leidžia viską, bet čia galima daryti įvairias filtracijas, blokavimus prie tam tikrų domenų/url/ip adresų ir t.t.

Išsaugome failą, mūsų konfigūracija bevertė jeigu norime naudoti kelis IP serveryje, t.y eth0:0, eth0:1 ir t.t. Tuomet reikia daryti papildomą konfigūraciją su srautų nukreipimais bei fake useriais. Reiks fake userių dėl UID, pagal kuriuos nukreipinėsime srautus skirtingiems IP. Plačiau aprašyta žemiau.

Multiple IP konfigūracija serveryje[keisti]

Sakykime turime kelis ip serveryje, kaip padaryti, kad iš išorės jungiantis prie tam tikro ip, jis būtų naudojamas kaip proxy ip? Jeigu dar nesukonfigūravote kelių ip savo CentOS serveryje siųlyčiau tai padaryti paskaičius straipsnį čia. Pasirašome scriptą kuris palengvins mūsų darbą.

#!/bin/sh
ID="-I"
if [ "$1" == "stop" ]; then
ID="-D"
fi
iptables -t mangle $ID OUTPUT -m owner --uid-owner 501 -j MARK --set-mark 501
iptables -t nat $ID POSTROUTING -m mark --mark 501 -j SNAT --to-source 105.229.218.30
iptables -t mangle $ID OUTPUT -m owner --uid-owner 502 -j MARK --set-mark 502         
iptables -t nat $ID POSTROUTING -m mark --mark 502 -j SNAT --to-source 105.229.218.31
iptables -t mangle $ID OUTPUT -m owner --uid-owner 503 -j MARK --set-mark 503
iptables -t nat $ID POSTROUTING -m mark --mark 503 -j SNAT --to-source 185.105.215.32
if [ "$1" == "stop" ]; then
killall ss5
else
/etc/init.d/ss5 stop
ss5 -u user1 -b 105.229.218.30:1080
ss5 -u user2 -b 105.229.218.31:1080
ss5 -u user3 -b 185.105.215.32:1080
fi

Kaip matome kiekvienas vartotojas užbindinamas su atskira ss5 instancija/atskiru useriu bei ip:portu. Pridedam fake vartotojus, kadangi serveris turi 3 ip, mums reiks trijų vartotojų...

useradd user1 -s /bin/false -p YourPasswordHere 
useradd user2 -s /bin/false -p YourPasswordHere 
useradd user3 -s /bin/false -p YourPasswordHere 

Scriptą išsaugome kur nors į /etc/mano_scriptas ir įdedame į /etc/rc.local, kad jį paleistų t.y

/etc/mano_scriptas
chmod +x /etc/mano_scriptas