* Estás vendo o arquivo para a categoría ‘Artigos Técnicos’

Eliminar configuración “slave” MySQL

Unha tarefa bastante habitual é configuración dun escravo para a replicación de datos, para obter así unha seguridade ante unha eventual caída do servidor principal de base de datos.

A operación é sinxela e consta de so dúas instruccións que terán que ser executadas no servidor escravo:

stop slave;
CHANGE MASTER TO MASTER_HOST=”;

Con estas dúas operacións asegurámonos de que o servidor escravo deixe de propagar os cambios rexistrados no servidor mestre(principal).

DNS Cache poisoning

Envenenando a cache DNS. Recentemente (relativamente), 07/07/2008 detectouse unha vulnerabilidade do DNS que se ven arrastrando dende a creación do protocolo. A vulnerabilidade pode provocar que as respostas que dan os servidores DNS sexan incorrectas.

Dan Kaminsky (www.doxpara.com) sacou á luz o tremendo bug que tiña o protocolo DNS. Na súa web (www.doxpara.com) dispón de un botón para comprobar que os DNS que temos configurados non son vulnerables.

Actualmente todavía continuan algúns servidores de nomes ca vulnerabilidade. En BandaAncha.eu podedes comprobar unha lista. Aquí tedes o enlace: http://bandaancha.eu/analizador-dns. Esa lista non é fiable o 100% xa que, as consultas non teñen por qué ser satisfeitas polo servidor ó que consultamos e pouco a pouco todos os servidores van aplicando os parches de seguridade, polo que pode que nos toque un que teña a vulnerabilidade e outro que non.

Para estar completamente seguros eu recomendo usar OpenDNS. Dende o primeiro momento non estiveron afectados e incluso dicen que nunca estiveron afectados. Os servidores DNS de OpenDNS son:

208.67.222.222
208.67.220.220

Para comprobar se un servidor está afectado podemos usar:

dig @IP_SERVIDOR +short porttest.dns-oarc.net TXT

So temos que substituir IP_SERVIDOR pola dirección IP do servidor IP a consultar.

Rexistros SPF DNS

Para evitar que se envíen correos dende un dominio de forma fraudulenta, inventouse o SPF (Sender Policy Framework). Con isto veríficase o servidor dende onde se envía o correo, faise por IP e nome de dominio.  Algúns dos servizos máis comunmente usados como Gmail, Yahoo ou Hotmail implementan este tipo de políticas, ademáis de que nalgúns casos rechazan ou marcan como SPAM correos, se o dominio non implementa a política SPF. Polo tanto é recomendable ter configurado unha política SPF para asegurarse de cumplir os máximos requisitos dos servidores de correo máis exixentes.

Por exemplo, se usamos as IP’s 10.1.1.1 e 10.2.2.2 para enviar correo electrónico, e temos un rexistro smtp.omeudominio.com que apunta a un servidor SMTP, podemos xerar o seguinte rexistro SPF(exemplo de configuración para o servidor BIND):

omeudominio.com. IN TXT “v=spf1 ip4:10.1.1.1 ip4:10.2.2.2 a:smtp.omeudominio.com -all”

En OpenSPF podedes atopar máis información de como configurar este rexistro de tipo TXT.

MySQL 5.1 Particións “Partition Pruning”

Pouco a pouco irei falando das novas características do MySQL 5.1. É a nova versión de MySQL que todavía está en RC (Release Candidate).

Unha das características máis esperadas son as particións, pero polo momento parece que será unha característica que se atopará moi “verde” no momento de facer a versión GA (Generally Available).

Se queredes comenzar a xogar con todas as novas opcións, como particións e eventos, podedes descargala de:  MySQL 5.1.

Continuar Lendo »

Discos de máis de 32 GB en Fat32

Os sistemas de Microsoft traen limitacións para formatear discos de máis de 32 GB en FAT32, aínda que o sistema de ficheiros si soporta volumens maiores (Ata 2 TB).

Para poder formatear volumens maiores existe a utilidade Fat32format . O uso é sinxelo:

fat32format.exe unidade

Aplicacións Blackberry dende o teu servidor web

Para poder instalar unha aplicación de Blackberry dende o teu propio servidor necesitas que o mesmo envíe unha serie de cabeceiras para que o dispositivo Blackberry se entere de que tipo de contido vai a descargar. Os novos tipos MIME a engadir son:

.cod application/vnd.rim.cod
.jad text/vnd.sun.j2me.app-descriptor
.jar application/java-archive

Isto é válido para calqueira servidor web, simplemente ten que soportar engadir novos tipos MIME.

Recuperar Grub bootloader

Todos tivemos problemas algunha vez co noso grub. Normalmente é sinxelo recuperalo, pero últimamente cos discos SATA xurde algún que outro problema.

Método que eu usaba ata o momento:

  • Arrancamos o sistema con un disco arrancable alternativo (USB, cdrom, etc.)
  • Poñémonos como root (sudo su, su, etc..)
  • Montamos a partición do sistema que queremos recuperar o arranque (mount /dev/sda1 /mnt/sistema)
  • Facemos a partición a raíz do sistema (chroot /mnt/sistema)
  • Por último executamos grub-install /dev/sda ou grub-install hd0, ou o disco no que se atope a partición de sistema.

O método que me resultou, despois de que me fallara o anterior:

  • Arrancamos o sistema con un disco arrancable alternativo (USB, cdrom, etc.)
  • Poñémonos como root (sudo su, su, etc..)
  • Accedemos ó grub, co comando grub
  • Logo aparecerá unha shell cun prompt grub> . Ahí executaremos:
  • find /boot/grub/stage1
    Este comando proporcionará a información da partición que contén o sistema, como exemple (hd0,1)
  • grub>root (hd0,1)
  • grub>setup (hd0)
  • E por último saímos do grub, grub>quit

Logo de usar calqueira dos dous métodos (sempre que algún deles funcione) reiniciamos e xa temos o grub funcionando de novo.

Controlando Swap en Linux, swappiness

Por norma xeral facer swap en Linux provoca unha caida do rendimento brutal (na maioría dos casos), pero por outro lado necesitamos que o swap exista e que se use no momento no que a memoria do sistema se agote.

Para configurar isto dunha maneira optima temos a variable: /proc/sys/vm/swappiness. Por defecto esta variable ten un valor de 60, e pode tomar valores de 0 a 100.

Explicamos estes valores: canto máis alto sexa este valor, máis preferencia terá o Swap sobre a memoria do sistema. Según as miñas probas se o valor é 60, indica que o se a memoria libre do sistema é menor que o 60% tenderase a usar o swap.

Recoméndase tratar de evitar o uso do swap sempre que sexa posible, xa que, a memoria do sistema é máis rápida que o acceso a disco. Por outro lado, nun portátil deberase evitar o acceso a disco o máximo posible para optimizar a duración da batería. Para iso podemos usar un valor menor que 20, para que o uso do swap sexa o menor posible.

Para facer que este valor perdure nos reinicios deberemos configuralo no ficheiro de configuración: /etc/sysctl.conf. A liña a engadir:

vm.swappiness=10 # O número é o que deberedes variar ata conseguir o voso valor óptimo.

Para liberar o swap:

swapoff particion_swap
swapon particion_swap

É seguro, pero lento, pero é recomendable facer probas nun sistema que non sexa de producción.

Copia recursiva dun directorio a un servidor FTP

Vamos a ver un modo sinxelo para facer unha copia de todos os ficheiros e subdirectorios dun directorio a un servidor FTP. Isto pode servir para facer un backup a disco dun directorio dun modo sinxelo e sobre todo a baixo coste.

A utilidade que usamos é ncftpput.

O comando:

ncftpput -R -u usuario -p contrasinal ip_servidor directorio_remoto ficheiros_a_copiar

Ca opción “-R” indicamos que o copiado sexa recursivo. As outras opcións creo que quedan bastante claras, pero sempre podemos facer:

man ncftpput

Función para parsear una URL a caracteres UNICODE especiales

Esta función modifica los caracteres del iso-8859-1 extendido, ñ, á, etc. A un formato válido de URL con código UNICODE preparado para peticiones URL.

Public Function stringToUnicod(ByVal myString As String) As String
Dim longitud As Integer
Dim i As Integer
Dim nAscii As Integer
Dim result As String
Dim caracter As String
result = “”
longitud = Len(myString)
For i = 1 To longitud
caracter = Mid(myString, i, 1)
nAscii = AscW(caracter)
If nAscii > 159 Then
result = result & “%” & Hex(nAscii)
Else
result = result & caracter
End If
Next i
stringToUnicod = result

End Function

Es decir, esta función convierte MONDOÑEDO en MONDO%F1EDO, para que un servidor web lo acepte.

Código por: Jose Pazos