[APORTE] Crear nuestro propio proxy con un VPS
Publicado: Lun Jul 18, 2016 12:23 pm
Viendo que muchos tienen problemas aqui para encontrar un proxy estable para usar con openvpn o similares les dejo esta pequeña guia para crear nuestro propio proxy para que se conecten ustedes unicamente.
1 - Conseguimos un VPS
Necesitamos un VPS(yo tengo uno porque tengo muchas paginas y servicios web), en argentina les recomiendo Hostinger(no es lo mejor, pero para nosotros es mas que suficiente), tenemos 100MB/s y 1TB por mes en el plan mas barato (78 pesos) y podemos pagar en efectivo por rapipago o pagofacil(ademas de tarjeta claro).
http://www.hostinger.com.ar/hosting-vps
Tambien google cloud o amazon web services que nos da un tiempo de prueba gratuito, pero despues si o si necesitamos tarjeta (visa o mastercard).
Obviamente hay otros más, como wiroos(de los soretes de taringa), si tiene servidores en argentina quizas el ping sea un poco más bajo, pero el de hostinger ya tiene un buen ping.
2 - Instalamos un SO
Una vez que tengamos el vps le instalamos Debian(la guia es para debian, si quieren instalar otro SO quizas los comandos y ubicaciones de archivos cambien un poco).
3 - Obtenemos nuestros datos
Ahora necesitamos la direccion IP del VPS, en el panel de control vamos a buscar nuestra direccion IP y contraseña root que nos servira para conectarnos desde nuestra pc. No deberia ser muy dificil de encontrar, en el panel de control debe estar muy en claro cual es nuestra ip.
4 - Instalamos el servidor proxy
Ahora nos vamos a conectar por ssh a nuestro VPS, en windows podemos usar putty, en linux y os x no necesitamos instalar nada, solo abrimos la consola o puty y ponemos los siguientes comandos(el xxx.xxx.xxx.xxx es la direccion de nuestro vps):
ssh [email protected]
**ingresamos la contraseña que sacamos del panel del control del vps**
apt-get install squid3
**a veces nos hace una preguntas, generalmente le respondemos con si/yes o s/y**
Dejamos que se instale y no cerremos la consola aun que la vamos a necesitar más adelante...
5 - Editamos el archivo de configuracion
Ahora accedemos por sftp o ftp con filezilla o nuestro explorador de archivos con las mismas credenciales con las que accedimos por ssh, generalmente la configuracion es algo asi:
Servidor: xxx.xxx.xxx.xxx(direccion de nuestro vps)
Puerto: 22
Protocolo: SFTP
Usuario: root
Contraseña: la contraseña root de nuestro vps
una vez conectado vamos a buscar y editar este archivo: /etc/squid/squid.conf
lo podemos descargar a nuestra pc y editarlo o simplemente elejimos "Ver y editar" con filezilla
Buscamos la linea:
http_port 3128
y la cambiamos por:
http_port 8080
tambien puede funcionar el puerto 80, pero si tenemos un servidor web no es recomendable, otros puertos no creo que funcionen
dependiendo de el archivo de configuracion que tengamos tal vez sea necesario cambiar esta linea:
http_access deny all
por:
http_access allow all
AVISO: allow all va a permitir que cualquiera acceda a nuestro proxy, yo les aconsejo que agreguen una contraseña(mas abajo las instrucciones), porque los bots que buscan proxy tardan 10 minutos en encontrar tu proxy y llenarte de peticiones raras, en 48 horas vas a tener ciento de peticiones en 1 minuto(no es joda), asi que eviten usar un proxy publico sin contraseña.
Y subimos el archivo y reemplazamos el antiguo (/etc/squid/squid.conf) de nuestro vps
OPCIONAL
Si queremos limtar el numero de usuarios de nuestro servidor podemos agregar estas lineas:
acl limitusercon maxconn 1
http_access deny all limitusercon
El numero 1 es la cantidad maxima de conexiones permitidas, si solo la vamos a usar nosotros con una es suficiente, si vamos a compartir con otros le aumentamos e numero, si por casualidad alguien se conecta y lo queremos sacar podemos reiniciar el servidor con "service squid3 restart" y conectarnos rapidamente antes de que el otro usuario se conecte(tambien podemos bloquear la direccion ip desde el archivo de configuracion).
Importante: aún no probé con esta configuración asi que puede no funcionar, si el servidor despues de reiniciar no conecta remuevan esas lineas.
Servidor con contraseña
Para que nos pida contraseña cada vez que accedemos reemplazamos la linea "http_access deny all" o "http_access allow all" por esto:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
y ejecutamos desde la consola con ssh:
htpasswd -c /etc/squid3/passwords minombre
e ingresamos una contraseña
6 - Reiniciamos el servidor proxy
Volvemos a la consola o putty que dejamos abierta y ponemos esto:
service squid3 restart
y listo! ya deberiamos tener nuestro servidor proxy funcionando, ahora solo queda agregar la configuracion a nuestros archivos ovpn, quedaria algo como esto:
http-proxy xxx.xxx.xxx.xxx 8080
http-proxy-retry
http-proxy-timeout 5
http-proxy-option VERSION 1.1
http-proxy-option CUSTOM-HEADER Host www.claro.com.ar
http-proxy-option CUSTOM-HEADER X-Online-Host www.claro.com.ar
si tienen contraseña el proxy usen este modelo, ponen en un archivo(ej:contrasena.txt) el nombre de usuario de acceso(1ra linea) y la contraseña(2da linea)
http-proxy xxx.xxx.xxx.xxx 8080 /ruta/absoluta/a/contrasena.txt basic
http-proxy-retry
http-proxy-timeout 15
http-proxy-option VERSION 1.1
http-proxy-option EXT1 Host www.claro.com.ar
http-proxy-option EXT2 X-Online-Host www.claro.com.ar
en android usen 'openvpn for android', el 'openvpn connect' no funciona con contraseña de proxys, en windows funciona bien con NMDVPN
con openvpn for anroid necesita poner la ruta absoluta a donde esta el archivo con la contraseña de nuestro proxy(ej: /mnt/sdcard/proxy-cont.txt), en windows pueden poner la ruta relativa a nuestro archivo ovpn
Pueden probar con firefox(desde una pc con internet funcional) si funciona bien agregando la configuracion del proxy y viendo si su ip cambia, asi despues si tenemos problemas vamos a saber si es el proxy el que no esta funcionando.
tambien es posible hacerlo con un servidor compartido, que es mas barato, solo necesitan que tenga php y curl instalados y accesibles, pueden ver esto:
http://www.makeuseof.com/tag/create-onl ... r-minutes/
pero les aviso que tiene varias limitaciones, puede que las conversaciones de hangouts, whatsapp y otros similares no funcionen, al igual que torrents, y probablemente youtube(depende del script que usen).
espero que les sirva y ahora si me disculpan tengo que volver a trabajar, mas tarde respondo dudas si tengo tiempo, ciao.
ACTUALIZACION
Para el Http Injector hay que agregar estas lineas al principio del squid.conf :
acl SSL_ports port 22
acl Safe_ports port 22
Y nos conectamos usando las credenciales root ssh que usamos en los anteriores pasos, aunque les aviso que algunos dispositivos y chips no funciona bien, lo mas seguro sigue siendo openvpn, cuando consiga otro vps para instalar un servidor openvpn les hago un tutorial
1 - Conseguimos un VPS
Necesitamos un VPS(yo tengo uno porque tengo muchas paginas y servicios web), en argentina les recomiendo Hostinger(no es lo mejor, pero para nosotros es mas que suficiente), tenemos 100MB/s y 1TB por mes en el plan mas barato (78 pesos) y podemos pagar en efectivo por rapipago o pagofacil(ademas de tarjeta claro).
http://www.hostinger.com.ar/hosting-vps
Tambien google cloud o amazon web services que nos da un tiempo de prueba gratuito, pero despues si o si necesitamos tarjeta (visa o mastercard).
Obviamente hay otros más, como wiroos(de los soretes de taringa), si tiene servidores en argentina quizas el ping sea un poco más bajo, pero el de hostinger ya tiene un buen ping.
2 - Instalamos un SO
Una vez que tengamos el vps le instalamos Debian(la guia es para debian, si quieren instalar otro SO quizas los comandos y ubicaciones de archivos cambien un poco).
3 - Obtenemos nuestros datos
Ahora necesitamos la direccion IP del VPS, en el panel de control vamos a buscar nuestra direccion IP y contraseña root que nos servira para conectarnos desde nuestra pc. No deberia ser muy dificil de encontrar, en el panel de control debe estar muy en claro cual es nuestra ip.
4 - Instalamos el servidor proxy
Ahora nos vamos a conectar por ssh a nuestro VPS, en windows podemos usar putty, en linux y os x no necesitamos instalar nada, solo abrimos la consola o puty y ponemos los siguientes comandos(el xxx.xxx.xxx.xxx es la direccion de nuestro vps):
ssh [email protected]
**ingresamos la contraseña que sacamos del panel del control del vps**
apt-get install squid3
**a veces nos hace una preguntas, generalmente le respondemos con si/yes o s/y**
Dejamos que se instale y no cerremos la consola aun que la vamos a necesitar más adelante...
5 - Editamos el archivo de configuracion
Ahora accedemos por sftp o ftp con filezilla o nuestro explorador de archivos con las mismas credenciales con las que accedimos por ssh, generalmente la configuracion es algo asi:
Servidor: xxx.xxx.xxx.xxx(direccion de nuestro vps)
Puerto: 22
Protocolo: SFTP
Usuario: root
Contraseña: la contraseña root de nuestro vps
una vez conectado vamos a buscar y editar este archivo: /etc/squid/squid.conf
lo podemos descargar a nuestra pc y editarlo o simplemente elejimos "Ver y editar" con filezilla
Buscamos la linea:
http_port 3128
y la cambiamos por:
http_port 8080
tambien puede funcionar el puerto 80, pero si tenemos un servidor web no es recomendable, otros puertos no creo que funcionen
dependiendo de el archivo de configuracion que tengamos tal vez sea necesario cambiar esta linea:
http_access deny all
por:
http_access allow all
AVISO: allow all va a permitir que cualquiera acceda a nuestro proxy, yo les aconsejo que agreguen una contraseña(mas abajo las instrucciones), porque los bots que buscan proxy tardan 10 minutos en encontrar tu proxy y llenarte de peticiones raras, en 48 horas vas a tener ciento de peticiones en 1 minuto(no es joda), asi que eviten usar un proxy publico sin contraseña.
Y subimos el archivo y reemplazamos el antiguo (/etc/squid/squid.conf) de nuestro vps
OPCIONAL
Si queremos limtar el numero de usuarios de nuestro servidor podemos agregar estas lineas:
acl limitusercon maxconn 1
http_access deny all limitusercon
El numero 1 es la cantidad maxima de conexiones permitidas, si solo la vamos a usar nosotros con una es suficiente, si vamos a compartir con otros le aumentamos e numero, si por casualidad alguien se conecta y lo queremos sacar podemos reiniciar el servidor con "service squid3 restart" y conectarnos rapidamente antes de que el otro usuario se conecte(tambien podemos bloquear la direccion ip desde el archivo de configuracion).
Importante: aún no probé con esta configuración asi que puede no funcionar, si el servidor despues de reiniciar no conecta remuevan esas lineas.
Servidor con contraseña
Para que nos pida contraseña cada vez que accedemos reemplazamos la linea "http_access deny all" o "http_access allow all" por esto:
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
y ejecutamos desde la consola con ssh:
htpasswd -c /etc/squid3/passwords minombre
e ingresamos una contraseña
6 - Reiniciamos el servidor proxy
Volvemos a la consola o putty que dejamos abierta y ponemos esto:
service squid3 restart
y listo! ya deberiamos tener nuestro servidor proxy funcionando, ahora solo queda agregar la configuracion a nuestros archivos ovpn, quedaria algo como esto:
http-proxy xxx.xxx.xxx.xxx 8080
http-proxy-retry
http-proxy-timeout 5
http-proxy-option VERSION 1.1
http-proxy-option CUSTOM-HEADER Host www.claro.com.ar
http-proxy-option CUSTOM-HEADER X-Online-Host www.claro.com.ar
si tienen contraseña el proxy usen este modelo, ponen en un archivo(ej:contrasena.txt) el nombre de usuario de acceso(1ra linea) y la contraseña(2da linea)
http-proxy xxx.xxx.xxx.xxx 8080 /ruta/absoluta/a/contrasena.txt basic
http-proxy-retry
http-proxy-timeout 15
http-proxy-option VERSION 1.1
http-proxy-option EXT1 Host www.claro.com.ar
http-proxy-option EXT2 X-Online-Host www.claro.com.ar
en android usen 'openvpn for android', el 'openvpn connect' no funciona con contraseña de proxys, en windows funciona bien con NMDVPN
con openvpn for anroid necesita poner la ruta absoluta a donde esta el archivo con la contraseña de nuestro proxy(ej: /mnt/sdcard/proxy-cont.txt), en windows pueden poner la ruta relativa a nuestro archivo ovpn
Pueden probar con firefox(desde una pc con internet funcional) si funciona bien agregando la configuracion del proxy y viendo si su ip cambia, asi despues si tenemos problemas vamos a saber si es el proxy el que no esta funcionando.
tambien es posible hacerlo con un servidor compartido, que es mas barato, solo necesitan que tenga php y curl instalados y accesibles, pueden ver esto:
http://www.makeuseof.com/tag/create-onl ... r-minutes/
pero les aviso que tiene varias limitaciones, puede que las conversaciones de hangouts, whatsapp y otros similares no funcionen, al igual que torrents, y probablemente youtube(depende del script que usen).
espero que les sirva y ahora si me disculpan tengo que volver a trabajar, mas tarde respondo dudas si tengo tiempo, ciao.
ACTUALIZACION
Para el Http Injector hay que agregar estas lineas al principio del squid.conf :
acl SSL_ports port 22
acl Safe_ports port 22
Y nos conectamos usando las credenciales root ssh que usamos en los anteriores pasos, aunque les aviso que algunos dispositivos y chips no funciona bien, lo mas seguro sigue siendo openvpn, cuando consiga otro vps para instalar un servidor openvpn les hago un tutorial