Mostrando entradas con la etiqueta Proxy. Mostrar todas las entradas
Mostrando entradas con la etiqueta Proxy. Mostrar todas las entradas

jueves, 18 de junio de 2015

Cambio de proxy denegado por el administrador del sistema

Aparece el siguiente mensaje al querer cambiar el proxy en chrome ó en internet explorer?


El acceso a esta característica está deshabilitado por una restricción establecida por el administrador del sistema.



Abrimos el regedit -> Tecla Windows y en "Buscar programas y archivos" escribimos regedit y damos enter:




Vamos desplegando hasta llegar a la ruta y vemos los valores del panel derecho:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel



Hacemos un backup exportando la config antes de modificarla por las dudas. Botón derecho sobre la solapa "Control Panel" del panel izquierdo y exportamos con un nombre que recordemos:



Finalmente cambiamos los valores de la derecha a cero qudando así:




Listo, ya podremos cambiar la configuración del proxy de chrome y de internet explorer:



miércoles, 23 de julio de 2014

Balanceo de Carga y Alta Disponibilidad en un Webserver con Apache y Perl

Tenemos 2 servidores webs cada uno escuchando en el mismo puerto la misma aplicacion.

El script irá distribuyendo aleatoriamente entre ambos servidores, en caso que alguno tenga el puerto bajo, es decir que la aplicación esté baja reenviará las peticiones al webserver que esté arriba.

En el index por default del apache configuramos lo siguiente (quitar los espacios después del signo <)

ServerBalance# vi /var/www/index.html
< html>
< FORM ACTION="/cgi-bin/index.cgi">
< /html>

Verificamos que en el VirtualHost de apache tengamos habilitada la ejecución de scripts cgi:

ServerBalance# vi /etc/apache2/sites-available/default
....
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
....

Reiniciamos el apache:

ServerBalance# /etc/init.d/apache2 reload


Creamos un script en perl en la ruta donde tenemos el cgi-bin y ponemos lo siguiente:

ServerBalance# vi /usr/lib/cgi-bin/redirect.pl
#!/usr/bin/perl
$lower_limit = 1;
$upper_limit = 3;
my $random_number = int(rand($upper_limit-$lower_limit)) + $lower_limit;
if ($random_number == 1)
{
  $result = `nmap -sT -P0 server01 -p 80|grep open`;
  if ($? == 0)
  {
   print "Location: http://server01:80/app\n\n";
  }
   else
   {
    print "Location: http://server02:80/app\n\n";
   }
}
else
{
  $result = `nmap -sT -P0 server02 -p 80|grep open`;
  if ($? == 0)
  {
   print "Location: http://server02:80/app\n\n";
  }
   else
  {
   print "Location: http://server01:80/app\n\n";
  }
}


domingo, 2 de marzo de 2014

Autenticando Squid en Active Directory



Requerimientos: Squid >= 2.5 (con LDAP helpers)

Versión de Squid utilizada:


root@squid-testing:~# squid -v
Squid Cache: Version 2.7.STABLE9


LDAP Helpers (ldap_auth y squid_ldap_group):


root@squid-testing:~# locate ldap_auth
/usr/lib/squid/ldap_auth
/usr/share/doc/squid/README.auth_module.ldap_auth.gz

root@squid-testing:~# locate squid_ldap_group
/usr/lib/squid/squid_ldap_group
/usr/share/man/man8/squid_ldap_group.8.gz


Antes de modificar la configuración del squid testeamos por la línea de comandos:


/usr/lib/squid/ldap_auth -R -D usuario@mi.dominio.net -w 'password_de_usuario' -b "dc=mi,dc=dominio,dc=net" -f "sAMAccountName=%s" -h ip_del_AD


Ejemplo:

root@squid-testing:~# /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor' -b "dc=global,dc=company,dc=domain" -f "sAMAccountName=%s" -h 192.168.0.1


Luego de ejecutar el comando previo, queda esperando que ingresemos usuario y password separado por un espacio, en mi caso:

morsa Mi-P2ssbuor
OK

Si obtenemos OK es que la autenticación funciona correctamente.


Editamos la configuración del Squid:

root@squid-testing:~# vi /etc/squid/squid.conf

Reemplazamos el auth_param basic program por el comando ejecutado anteriormente y unos parametros más como el realm y las TTLs de las credenciales:

auth_param basic program  /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor' -b "dc=redes,dc=seguridad,dc=net" -f "sAMAccountName=%s" -h 192.168.0.1
auth_param basic children 5
auth_param basic realm Tupperware
auth_param basic credentialsttl 5 minutes

La siguiente acl nos permite el que al abrir el explorardor nos pida credenciales:

acl password proxy_auth REQUIRED

Agregamos una lista de acceso externa llamada GrupoInternet utilizando squid_ldap_group:

external_acl_type GrupoInternet %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=redes,dc=seguridad,dc=net" -D morsa@redes.seguridad.net -w Mi-P2ssbuor -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=Groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net))" -h 192.168.0.1

Agregamos otra lista de acceso llamada Internet utilizando la previa acl (GrupoInternet) y utilizará un grupo en Active Directory llamado GrupoSquidAD donde este grupo estará dentro del contenedor (ou=Groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net):

acl Internet external GrupoInternet GrupoSquidAD

Permitimos acceso a la acl previa con el siguiente linea:


http_access allow Internet 


Reiniciamos el squid:

root@squid-testing:~# /etc/init.d/squid start
Starting Squid HTTP proxy: squid.
root@squid-testing:~# !ps
ps -efa | grep squid
root      3901     1  0 20:14 ?        00:00:00 /usr/sbin/squid -D -YC
proxy     3906  3901 99 20:14 ?        00:00:02 (squid) -D -YC
root      3932 31579  0 20:14 pts/2    00:00:00 grep squid
root@squid-testing:~#


IMPORTANTE: Recordar agregar los usuarios que queremos permitir el acceso a internet deben estar dentro del grupo GrupoSquidAD del Active Directory.


También les dejo una configuración completa del squid para que quede más claro:

root@squid-testing:~# cat /etc/squid/squid.conf
##############################################################        Auth
#############################################################
auth_param basic program /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor -b "dc=redes,dc=seguridad,dc=net" -f "sAMAccountName=%s" -h 192.168.0.1
auth_param basic children 5
auth_param basic realm Redes.Seguridad
auth_param basic credentialsttl 5 minutes

##############################################################       ACL's
#############################################################
acl http proto http

acl port_80 port 80
acl port_443 port 443
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21 20       # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

acl all src all

#Agregado por morsa para bloqueo de youtube
acl no_domains dstdomain "/etc/squid/sitios_denegados.txt"

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl password proxy_auth REQUIRED

external_acl_type GrupoInternet %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=redes,dc=seguridad,dc=net" -D morsa@redes.seguridad.net -w Mi-P2ssbuor -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net))" -h 192.168.0.1

acl Internet external GrupoInternet ARG1-InternetSquid

##############################################################ACCESOS
#############################################################
http_access deny no_domains

http_access allow Internet
http_access allow password

http_access deny all

http_access allow manager localhost
http_access deny manager

http_access allow purge localhost
http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

icp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

cache_mem 100 MB

cache_dir aufs /var/spool/squid 20000 16 256

maximum_object_size 4096 KB

cache_swap_low 95
cache_swap_high 100

access_log /var/log/squid/access.log squid

cache_log /var/log/squid/cache.log

pid_filename /var/run/squid.pid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320

acl permitidos src "/etc/squid/permitidos"
http_access allow permitidos

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

cache_effective_user proxy

cache_effective_group proxy

visible_hostname squid-testing

icon_directory /usr/share/squid/icons

error_directory /usr/share/squid/errors/es-ar

hosts_file /etc/hosts

coredump_dir /var/spool/squid
root@squid-testing:~#

jueves, 8 de agosto de 2013

Proxy Reverso para Glassfish con Apache

Ya he explicado como hacer un reverse proxy en el anterior post:

http://www.redes-seguridad.com.ar/2013/08/reverse-proxy-con-apache-2-en-debian.html


Pero con Glassfish no me funcionaba así que habilité el módulo  "rewrite":

# a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!


Reiniciamos apache:

# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .


Editamos la config del apache:

# vim /etc/apache2/httpd.conf

 ProxyPreserveHost on
 RewriteEngine on
 ProxyPass /glassfish http://mi_glassfish.com.ar:8080/
 ProxyPassReverse /crp http://mi_glassfish.com.ar:8080/
 Redirect / http://mi_glassfish.com.ar:8080/
 RewriteRule ^/(.*) mi_glassfish.com.ar:8080/$1 [P,L]


Reiniciamos apache:

# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .


Fuente: http://czetsuya-tech.blogspot.com.ar/2012/07/how-to-port-forward-apaches-80-to.html#.UfkTqvkyaN1


Reverse Proxy con Apache 2 en Debian

Instalamos modulo para apache:

# apt-get install libapache2-mod-proxy-html
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common file
  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcap2
  libdb4.7 libexpat1 libgcrypt11 libgnutls26 libgpg-error0 libldap-2.4-2
  libmagic1 libpcre3 libsasl2-2 libsasl2-modules libtasn1-3 libxml2
  mime-support openssl perl perl-modules sgml-base ssl-cert xml-core
Suggested packages:
  www-browser apache2-doc apache2-suexec apache2-suexec-custom rng-tools
  gnutls-bin libsasl2-modules-otp libsasl2-modules-ldap libsasl2-modules-sql
  libsasl2-modules-gssapi-mit libsasl2-modules-gssapi-heimdal ca-certificates
  perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make
  sgml-base-doc openssl-blacklist debhelper
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common file
  libapache2-mod-proxy-html libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libcap2 libdb4.7 libexpat1 libgcrypt11 libgnutls26
  libgpg-error0 libldap-2.4-2 libmagic1 libpcre3 libsasl2-2 libsasl2-modules
  libtasn1-3 libxml2 mime-support openssl perl perl-modules sgml-base ssl-cert
  xml-core
0 upgraded, 31 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.9 MB of archives.
After this operation, 55.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y


Configuramos el httpd con lo siguiente:

# vim /etc/apache2/httpd.conf
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
ProxyRequests Off

    Order deny,allow
    Allow from all

ProxyPass /web http://www.mi_web_server.com.ar/
ProxyPassReverse /web http://www.mi_web_server.com.ar/
ProxyPreserveHost On


Reiniciamos apache:


# /etc/init.d/apache2 restart
Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.0.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.0.1 for ServerName


Para solucionar el warning previo, editamos el archivo de configuración de apache:

# vim /etc/apache2/apache2.conf
ServerName nombre_server


Reiniciamos el apache y vemos que ahora no aparece el warning:

# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Fuente: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html


jueves, 6 de junio de 2013

Whitelist squid without authentication


Editamos la configuración del squid (squid.conf) y agregamos el archivo donde pondremos las webs de las lista blanca:


# vim /etc/squid/squid.conf
acl whitelist dstdomain "/etc/squid/sites.whitelist.txt"
acl all src all
acl password proxy_auth REQUIRED
http_access allow whitelist
http_access allow password http_access deny all

Editamos el archivo de listas sin autenticacion de proxy:

# vim /etc/squid/sites.whitelist.txt
www.redes-seguridad.com.ar

Chequeamos la config del squid:

# squid -k check

Si no tenemos ningun error reiniciamos el squid:

# /etc/init.d/squid reload

Por ejemplo si queremos activar office sin que autentique:

# vim /etc/squid/sites.whitelist.txt
#Activacion de Office:
go.microsoft.com
activation.sls.microsoft.com