Feb 09 2006
SOCKS5 Proxy
Acest document este o prezentare a instalarii unui server proxy SOCKS5 pentru Linux
Nu garantez acuratetea sau corectitudinea informatiilor prezentate. Ceea ce prezint este practic logul instalarii acestui serviciu pe sistemul propriu. Nu raspund in nici un fel de daunele pe care le poate produce aceasta instalare pe sistemul tau, utilizarea acestor informatii se face pe propria raspundere !
Pentru comentarii, intrebari sau sugestii, email support@redhog.ro
Configurare
Ca sistem de operare rulez RedHat Linux 7.3. Daca sistemul tau este configurat similar cu al meu, poti face copy&paste la comenzile din exemplu. Altfel incearca sa adaptezi comenzile din exemplu la propriul sistem.
Instalare SOCKS5
In aceasta sectiune voi prezenta pasii pentru download si compilare SOCKS5.
Obtinerea pachetului SOCKS5
O solutie ar fi pagina SOCKS Proxy Protocol si Download socks5 link. Dupa completarea formularului, vor trimite socks5-v1.0r8.tgz (sau orice ala ultima versiune).
O alta posbilitate este acest link socks5-v1.0r11.tar.gz. Dar este pe propriul risc
In general tin sursele in /usr/local/src/, deci propun acest director pentru kitul de instalare
Compilare SOCKS5
1. Extragerea fisierelor:
cd /usr/local/src tar -zxf tar/socks5-v1.0r8.tgz
Aceasta va crea un director /usr/local/src/socks5-v1.0r8 cu toate fisierele sursa in el. In acest punct, trebuie sa citesti INSTALL si README din director.
Si acum sa incepem compilarea :
cd /usr/local/src/socks5-v1.0r8 ./configure --with-threads make make install > socks5.log
Daca nu sunt erori (si nu ar trebui sa fie daca Linuxul este configurat corect) pachetul a fost instalat si configurat corect.
Configurare SOCKS5
In acest moment SOCKS5 este instalat, trebuie doar configurat inainte de a-l utiliza.
Premize
Inainte de a crea fisierul de configurare, iata scopul pentru care am instalat SOCKS5 proxy:
Linuxul meu este firewall/gateway pentru reteaua interna. Deoarece am doar o singura adresa IP rutabila, pentru reteau interna folosesc IP masquerading. Deci scopul simplu este:
- SOCKS5 proxy server pe Linux
- proxy pentru LAN-ul intern
- nu am nevoie de autentificare user/password
/etc/socks5.conf
Acesta este fisierul de configurare /etc/socks5.conf, suficient pentru scopul meu
# /etc/socks5.conf set SOCKS5_MAXCHILD 3 set SOCKS5_NOIDENT set SOCKS5_TIMEOUT 5 interface 192.168.1. - eth1 auth 192.168.1. - - permit - - 192.168.1. - - - - deny - - - - - - - # end of file
Simplu
Liniile precedate de # sunt comentarii. - este wildcard.
- set SOCKS5_MAXCHILD 3
- Numarul maxim de procese child. Implicit este 64, care este cu mult mai mult decat necesar, deci 3.
) - set SOCKS5_NOIDENT
- Nu verifica IDENT-ul pentru clienti (pentru a grabi lucrurile)
- set SOCKS5_TIMEOUT 5
- Timeout dupa 5 minute de inactivitate. Cand primeste timeout, conexiunea se inchide.
- interface 192.168.1. – eth1
- Permite toate conexiunile de pe 192.168.1.* (LAN intern) de pe orice port pe interfata eth1. Aceasta interfata primeste cererile de proxy.
- auth 192.168.1. – -
- Permite toate cererile de proxy de la 192.168.0.*, pe orice port pentru orice user.
- permit – - 192.168.1.* – - – -
- Permite oricarui user din 192.168.1.* sa trimita orice tip de comanda de pe orice port la orice combinatie destinatie:port.
- deny – - – - – - -
- Neaga orice nu este permis in mod explicit
Pentru mai multe detalii despre aceste optiuni consulta socks5.conf man pages man socks5.conf. Exemple de configuratii in examples\
Pornirea socks5
Sa testam daca merge :
/usr/local/bin/socks5 -f -s
porneste socks5 in foreground, toate mesajele se afiseaza pe ecran. Ar trebui sa apara cam asa :
18210: Socks5 starting at Mon Dec 14 18:23:45 1998 in normal mode
Daca apare este perfect, marge ! Acum il oprim si il pornim cum trebuie :
killall socks5 /usr/local/bin/socks5 -t -s 2>> /var/log/socks5.log
Acum ruleaza. Aceasta comanda poate fi pusa in /etc/rc.local Personal eu recomand urmatorul script in /etc/init.d/socks5 cu chmod 700 si cu link in directorul /etc/rc.d/rcX.d corespunzator nivelului pe care ruleaza linuxul
)
#!/bin/bash
#
# chkconfig: 345 86 24
# description: This script takes care of starting and stopping socks5.
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/local/bin/socks5 ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting socks5: "
if [ $(ps -defa | grep ^ftp| wc -l) -gt 0 ]; then
failure $"SOCKS5 startup"
echo $"SOCKS5: already running"
return 1
fi
/usr/local/bin/socks5 -t -s 2>>/var/log/socks5.log
RETVAL=$?
[ $RETVAL -ne 0 ] && failure $"SOCKS5 startup"
[ $RETVAL -eq 0 ] && success $"SOCKS5 startup"
echo
;;
stop)
# Stop daemons.
echo -n "Shutting down socks5: "
killall -9 /usr/local/bin/socks5
RETVAL=$?
[ $RETVAL -eq 0 ] && success $"SOCKS5 stop"
[ $RETVAL -ne 0 ] && failure $"SOCKS5 stop"
echo
;;
restart|reload)
$0 stop
$0 start
;;
status)
status socks5
;;
*)
echo "Usage: socks5 {start|stop|status|restart|reload}"
exit 1
esac
exit 0
#### end of code






