miércoles, 6 de julio de 2011

Instalación MySQL 5.5 en FreeBSD 8.x

Instalando MySQL 5.5:

  1. ingresamos a la carpeta: /usr/ports/databases/mysql55-server
  2. ejecutamos: make install
  3. luego de la instalación procederemos a crear la clave del root de mysql
    1. corremos mysql en modo seguro: /usr/local/etc/rc.d/mysql-server onestart
    2. conectamos por medio del cliente mysql: mysql -u root mysql
    3. actualizamos la clave:
      update user set Password=PASSWORD('clave') where User='root';
    4. borramos usuarios en blanco que resultan luego de la instalación:
      delete from user where user='';
    5. actualizamos privilegios:
      flush privileges;
    6. salimos del cliente mysql:
      quit
  4. editamos el archivo /etc/rc.conf para permitir que MySQL cargue al inicio del sistema agregando la siguiente línea:
    mysql_enable="YES"
  5. reiniciar el sistema y realizar las pruebas de MySQL.

domingo, 21 de noviembre de 2010

Squid Dual Wan con Freebsd + PF

Cada vez es más común tener problemas de anchos de banda, y poco a poco las líneas a Internet proveidas por las operadoras no son suficiente, lo que a continuación se muestra es una alternativa de distribuir entre dos conexiones a Internet el tráfico de una sola red lan utilizando FreeBSD, Packet Filter PF y SQUID.

Escenario:
Conexion a Internet A:
   IP del Router  : 192.168.1.1,
   IP del servidor:192.168.1.2.
Conexion a Internet B:

  IP del Router  : 192.168.2.1,
  IP del servidor: 192.168.2.2.
Conexion a RedLocal
  Ip del servidor 192.168.0.1
  Ip RedLocal 192.168.0.0/24

Configurando PF:
(La instalación de PF sobre FreeBSD se encuentra detallada en este enlace del blog: "Configurar un firewall en freebsd con pf")
En /etc/pf.conf
#definir la primera interfaz externa junto a su puerta de enlace gw
ext_if1="em0"
ext_gw1="192.168.1.1"
#definir la segunda Interfaz externa junto a su puerta de enlace
ext_if2="em1"

ext_gw2="192.168.2.1"
#definir la interfaz Interna:
int_if="em2"
#definir la redLocal
redlocal="192.168.0.1/24"
#definir reglas de Nateo para las dos conexiones externas
nat on $ext_if1 from $redlocal to any ->($ext_if1)
nat on $ext_if2 from $redlocal to any ->($ext_if2)
#definir las reglas de redirección para SQUID Transparenterdr on $int_if inet proto tcp from $redlocal to any port 80 ->127.0.0.1 port 3128
#para https transparente se enviará directamente al sitio sin pasar por squid
#definir reglas de acceso
block all
pass quick on lo0 all
pass in quick on $int_if proto tcp from $redlocal to $int_if port 3128 flags S/SA modulate state
pass in quick on $int_if proto tcp from $redlocal to 127.0.0.1 port 3128 flags S/SA modulate state
#definir reglas de enrutado para TCP (muy importante!!)
pass in on $int_if route-to \

{($ext_if1 $ext_gw1),($ext_if2 $ext_gw2)} round-robin \
proto tcp from $redlocal to any flags S/SA modulate state

pass out on $ext_if1 route-to \
($ext_if2 $ext_gw2) from $ext_if2 to any

pass out on $ext_if2 route-to \
($ext_if1 $ext_gw1) from $ext_if1 to any

Hasta aqui PF, puede enrutar cualquier paquete que provenga desde la redlan por medio de las dos puertas de salida utilizando el método RoundRobin para el balanceo de las conexiones entre las dos líneas.
 
en SQUID:
((la Instalación de SQUID en FreeBSD se encuentra detallada en: Squid en FreeBSD))
Squid incluye el parametro tcp_outgoing_address, el cual te permitirá indicar desde que IP debe conectarse Squid. en este caso se deben colocar las dos IP's externas del servidor del servidor, por ejemplo que se desea segmentar en dos bloques de 100 ip's para cada conexión externa, en
/usr/local/etc/squid/squid.conf:
acl localnet_A src 192.162.0.1-192.162.0.100/24
acl localnet_B src 192.162.0.101-192.162.0.200/24

tcp_outgoing_address 192.168.1.2 localnet_A
tcp_outgoing_address 192.168.2.2 localnet_B

de esta manera las computadoras con ip's entre 1y 100 pasarán por una conexión mientras que desde 101 hasta 200 pasarán por otra.