M

mateomorrison

Usuario (República Dominicana)

Primer post: 21 jun 2010Último post: 6 feb 2011
6
Posts
12
Puntos totales
0
Comentarios
Que hacer este 14 de febrero
Que hacer este 14 de febrero
OfftopicporAnónimo2/6/2011

Hola, hoy les dejo como y que hacer este 14 de FEBRERO denominado como: SanValentin... Bien comienzo... Si estas soltero: Y quieres una relación... pero DUDAS que ella te acepte como su mitad... 1- Regalale flores 2- Llámala a las 12:03 SIN EXENCIÓN DE PAÍSES... ! Y dile que adonde se ven.. Etc... 3- Cuando la veas... Mirala a los ojos...No que parescas un re-boludo pero que seas tu mismo... 4- Cuando habla mirale a la boca... 5- Lo mas divertido... Le diras lo que sientes por ella Ej: TeAmo demasiado y no quiero perderte, Sabes, Me gustas y quiero que tu seas mi sanvalentin 6- Si acepta Estas de suerte y si no... Bueno pues TEJODISTE Si estas en una relacion: Te recomiendo que siempres seas fiel, que tengas nadamas una mujer... por que lo que sufre una mujer cuando la engana no es poco, yo como hombre comento esto... 1- Regalale flores, ositos y/oChocolates 2- Enviale Mensajes de textos que digan IlY<3 o TAmoDemaSiado...TeExtrano!TePuedesCnectarPa hablar cntigo? o AdondeNosjuntmos mi puchurringa (o como le digas) 3- Cuando la veas... Buscas el momento, y lo haces perfecto... Lo haces romantico le dices lo que sientes.. 4- Quieres besarla? NOO es muy pronto todavia vamos por el 4 paso... ~ Entonces le vas a comprar algo segun lo que siente por ella... 5- Ahora si... La besas... Escuchas canciones junto a ella... Las canta juntos 6- TeDeseo suerte si no te pegan xd oqno... Trata de ser lo mas fiel y romantico y carinoso y caballeroso que puedas... BUENA SUERTE

0
0
C
Como crear un server de MU
Hazlo Tu MismoporAnónimo6/21/2010

Como crear un server de mu? Bueno aca les dejo como realizar un server de mu: Introducción Antes de crear un servidor de Mu Online hay que tener en cuenta lo siguiente: Requisitios mínimos del PC: 512 MB de Memoria RAM 1 GB de Espacio en Disco 1.8 Ghz (o más) Partición D:/ (Aconsejable) Además, debes utilizar el PC casi exclusivamente para el servidor, no debes jugar o descargar cosas ya que podrías generar LAG a tus jugadores y sopesar el gasto económico que genera tener el PC encendido 24 horas online. Nota: Crear un servidor de Mu Online con fines comerciales es ilegal. Este es un manual con fines didácticos, por lo que los autores no se hacen responsables del uso del mismo. 1. Instalación del servidor 1.1. Programas necesarios: Microsoft SQL Server 2000 Server Files de la versión que desees crear el servidor En la sección de Descargas: MuOnline/Files & SQL los puedes encontrar. 1.2. Instalación de la SQL Haz click sobre los enlaces (en negrita) para ver las imágenes DESCARGAR SQL Server 2000 Extrae el archivo ENS_SQLEVAL.EXE, o el ejecutable de la SQL que te hayas descargado. Una vez lo hayas extraido pulsa en el archivo Autorun.exe para comenzar la instalación. Pasos a seguir para la instalación de la SQL: 1.- Elige las opciones 'Componentes de SQL 2000' e 'Instalar Servidor de base de datos' -> SQL-1 y SQL2 (puede no ser exactamente igual a la imagen ya que mi sql es el enterprise) 2.- Pulsa en 'Siguiente' -> SQL-3 3.- Selecciona 'Equipo Local' (Local Computer) y a continuación haz click en el botón 'Siguiente' -> SQL-4 4.- Selecciona la opción 'Crear una nueva instancia de SQL Server o instalar herramientas cliente' y haz click en 'Siguiente' -> SQL-5 5.- Escribe el nombre de usuario y de la compania y pulsa 'Siguiente' -> SQL-6 6.- Acepta los términos del contrato de licencia -> SQL-7 7.- Selecciona la opción 'Herramientas cliente y servidor' (Server & Client Tools) y pulsa 'Siguiente' -> SQL-8 8.- Selecciona 'Predeterminada' (Default) y haz click en 'Siguiente' -> SQL-9 9.- Selecciona la opción 'Tipica' y a continuación pulsa en 'Siguiente' -> SQL-10 10.- Marca la oción 'Usar la misma cuenta para cada servicio. Iniciar autoomáticamente el servicio SQL Server' y 'Utilizar la cuenta del sistema local' y click en 'Siguiente' -> SQL-11 11.- Selecciona 'Modo de autenticación de Windows' y haz click en 'Siguiente' -> SQL-12 12.- Finalizar Una vez hayas instalado la SQL reinicia el PC. Volver al Índice 1.3. Extraer los files Descomprime la carpeta MuServer en el disco duro D:/ para que quede de la siguiente forma D:/MuServer (Es aconsejable crear el servidor en el disco duro D:/ aunque también es posible crearlo en el C:/) Volver al Índice 1.4. Crear las bases de datos Haz click sobre los enlaces (en negrita) para ver las imágenes Ahora crearemos las bases de datos MuOnline y Ranking, como se indica en los siguientes pasos: 1.- Abrir el Administrador Corporativo de la SQL (Menú inicio -> Microsoft SQL Server -> Administrador Corporativo) -> BASEDATO-1 2.- Crear una nueva base de datos (database) llamada 'MuOnline' -> BASEDATO-2 y BASEDATO-3 3.- Hacer click con el botón derecho del ratón sobre la base de datos MuOnline y pulsa 'Restaurar base de datos' -> BASEDATO-4 4.- Selecciona la opción 'Desde Dispositivos' y haz click 'Dispositivos' para seleccionar un dispositivo -> BASEDATO-5 5.- Haz click en el botón 'Agregar' -> BASEDATO-6 6.- Selecciona el destino de los db baks -> BASEDATO-7 y BASEDATO-8 7.- Pulsa OK 8.- Elige la opción 'Forzar restauración sobre la base de datos existente' -> BASEDATO-9 y BASEDATO-10 9.- Debajo de donde dice 'Mover al nombre de archivo fisico' tenemos que cambiar la ubicación -> BASEDATO-11 y BASEDATO-12 10- Haz click en OK 11- Hacer lo mismo con la Base de datos "Ranking" DESDE EL PASO 2 Volver al Índice 1.5. OBDC DNS Haz click sobre los enlaces (en negrita) para ver las imágenes Sigue los siguientes pasos para crear las OBDC: 1.- Abre el Menú Inicio, selecciona 'Panel de Control' -> Abre la aplicación 'Herramientas Administrativas' y a continuación 'Orígenes de datos (OBDC)' -> Selecciona la pestaña 'DNS de Sistema' -> ODBC-1 2.- Haz click en el botón 'Agregar' (Add) -> ODBC-1 3.- Selecciona la opción 'SQL SERVER' que se encuentra al final de la lista -> ODBC-2 4.- Pon el nombre de las OBDC, en el apartado 'Servidor' escribe (local) y finalmente haz click en 'Siguiente' -> ODBC-3 5.- Selecciona las opciones que se muestran en la imagen y haz click en 'Siguiente' -> ODBC-4 6.- Selecciona la opción 'Establecer la siguiente base de datos como predeterminada' y selecciona la base de datos 'MuOnline' -> ODBC-5 7.- Pulsa en finalizar -> ODBC-6 CUADRO EXPLICATIVO DE CÓMO DEBEN QUEDAR LAS BASES DE DATOS NOMBRE DEL ODBC BASE DE DATOS DESTINO DEL ODBC MuOnline MuOnline Ranking Ranking Event Ranking USELOG MuOnline MuOnlineJoinDB MuOnline Volver al Índice 1.6. Modificar los archivos svconfig 1.- Modificamos el archivo svconfig.ini que se encuentra en la carpeta DATA dentro de MU2003_EVENT_SERVER Ubicación-> D:MuserverMU2003_EVENT_SERVERDATAsvconfig.ini Debe quedar de la siguiente forma: [pim_setting] queue_no=4 workerthread_no=4 [odbc_connection] mu2003_dbname = Ranking mu2003_dsn = Ranking mu2003_uid = sa mu2003_pass = byw 2.- Modificamos el archivo svconfig.ini que se encuentra en la carpeta RankingServer Ubicación -> D:MuserverRankingServersvconfig.ini Debe quedar de la siguiente forma: [odbc_setting] dbname=Ranking odbc_dsn=Ranking odbc_uid=sa odbc_pass=byw odbc_con_count=40 [pim_setting] queue_no=4 workerthread_no=10 Volver al Índice 1.7. Modificar las IP Haz click sobre los enlaces (en negrita) para ver las imágenes Abre los siguientes archivos y añade tu número de IP D:MuServerCSConnectserverlist.dat D:MuServerCSdataConnectserverlist.dat D:MuServerCSdataServerList.dat D:MuServerdatacommonserver.cfg En este archivo tienen que cambiar la direccion IP en tres partes, que son: ChaosEventServer, DevilSquareEventServer, EventChipServerIp -> CAMBIOIP-1 D:MuServerdataIpList.dat *D:MuServerdatalangengcommonloc.cfg *D:MuServerdatalangkorcommonloc.cfg *D:MuServerdatalangtaicommonloc.cfg *D:MuServerdatalangchicommonloc.cfg *El archivo lang puede variar dependiendo de los files. Modificar IPs de los links 4 y 8: LINK 4: Ve a la carpeta Links y pulsa con botón derecho del ratón sobre el link 4, pulsa propiedades y añade tu IP D:MuServerJoinServerJoinServer.exe /p55970 /caAquíTuIP /cp55557 Ejemplo: D:MuServerJoinServerJoinServer.exe /p55970 /ca123.1.2.3 /cp55557 LINK 8: Ve a la carpeta Links y pulsa con botón derecho del ratón sobre el link 8, pulsa propiedades y añade tu IP D:MuServerGameServerGameServer.exe AquíTuIP 55970 AquíTuIP 55960 55901 Ejemplo: D:MuServerGameServerGameServer.exe 123.1.2.3 55970 123.1.2.3 55960 55901 Programas de utilidad: Mu Server Links Haz click sobre los enlaces (en negrita) para ver las imágenes Con este programa podemos modificar las IPs de los archivos y links Nota: Sólo podremos usarlo si nuestro servidor se encuentra en el disco duro D:/ Para usarlo seguiremos los siguientes pasos: a) Ejecuta el programa -> LINKS-1 b) Sigue los pasos tal y como se muestra en la imágen -> LINKS-2 DESCARGAR MuServerLinks MuLinksFacil Haz click sobre los enlaces (en negrita) para ver las imágenes Este programa es un clon del programa clásico para ejecutar los links de los servidores MuServerLinks, con la ventaja de que funciona tanto para el disco duro D:/ como para el C:/. Para usarla sigue los siguientes pasos: a) Introduce el programa en la carpeta de tus files b) Ejecuta el programa y configúralo a tu gusto -> MuLinksFacil-1 DESCARGAR MuLinksFacil Mu Ip Changer Haz click sobre los enlaces (en negrita) para ver las imágenes Este es otro programa útil para modificar IPs (No requiere tener el servidor instalado en el disco duro D:/) Para usarlo seguiremos los siguientes pasos: a) Ejecuta el progrma b) Sigue los pasos tal y como se muestra en la imágen -> MuIPChanger-1 DESCARGAR MuIpChanger Volver al Índice 1.8. Modificar el archivo Commonserver.cfg (Experiencia, Drop...) En el archivo commonserver.cfg, a parte de modificar la ip (en distintos sitios), cambiaremos la experiencia, drop, vida de los monstruos, etc Ubicación -> D:MuServerdatacommonserver.cfg A continuación os mostramos el contenido del archivo y los lugares en los que tendrás que hacer cambios: [GameServerInfo] Language = 3 ; Lenguaje (Chino) ItemSerialCheck = 1 ; Verificar o serial de los items SpeedHackPlayerBlock = 1 ; Bloquear SpeedHack AddExperience = 45 ; -> Aquí cambian la experiencia StalkProtocol = 0 StalkProtocolId = gg CharacterDeleteMinLevel = 39 ; Level minimo para poder borrar personaje CreateCharacter = 1 ; Permite crear personajes en el servidor Trade = 1 ; Permite usar trade en el servidor MonsterHp = 0 ; -> Vida de los monstruos [0= 100% de vida] Si te gusto deja puntos o comentario

0
0
Como Crear Un Holo Con Hamachi
Como Crear Un Holo Con Hamachi
Hazlo Tu MismoporAnónimo1/7/2011

Xampp: http://xampp.uptodown.com/ .Net Framework 4.0: http://microsoft-net-framework.uptodown.com/ Mysql 6.3.4: http://kekomundo.com/foro/index.php?topic=37895.0 KekoCms: mediafire.com vcsdsehsvi02jz2 LolxEmu: mediafire.com sd5aybvs1nb4dcf LolxDb: mediafire.com 35xv67mq5o5aaqz Les Recuerdo Que todo es compatible xD primero instalamos el xampp y ya que se nos abra el panel de control palomeamos las primeras 2 casillas y les ponemos running a mysql y apache y luego nos vamos a la siguiente pagina http://localhost.com/ y le damos español y luego chequeo de seguridad ponemos en los 2 cuadros una contraseña y le ponemos y ponemos http y luego changin password. mas abajito saldran otros 2 cuadros, en el primer cuadro le ponemos root y en la segunda su contraseña y luego changin password y ya tendremos nuestra contraseña y no nos podran hackear el holo. abajito saldra phpmyadmin le apretamos alli y nos pedira usuario y contraseña y en usuario le ponemos root y su contraseña y aceptar o continuar. luego creamos una base de datos ejemplo: holodb y le apretamos crear, luego nos vamos a importar y seleccionamos la db y continuar luego extraemos Kekocms v2 en C:/Xampp/HTDOCS ya extraido nos vamos a c:/xampp/htdocs/inc/ip-config y la configuramos pero enves de poner una no-ip ponemos la ip del hamachi y tambien en la ip. en puerto ponemos 90 y ya esta configurado y intentamos entrar a nuestra ip en nuestro navegador Ahora a configurar el emu y page client. extraemos el emulador en el escritorio y lo abrimos luego abrimos un archivo llamado config con bloc de notas y lo configuramos con nuestra db, no la pedira le ponemos holodb o como le pusieron y luego la contraseña en mi caso es 123456 y mas abajo nos pedira ip ponemos la ip del hamachi y en puerto mus 25 y puerto 90 y abrimos el emu y tenemos el holo on -CONFIGUACION DEL PAGE-CLIENT para hacerlo mas facil nos vamos a http://wowfalcon.com/3.5.php y en ip ponemos ip del hamachi en puerto ponemos 90 y en texto lo que quieran y luego le ponen aceptar o generr codigo y copian el codigo y luego se van a c:/xampp/htdocs/inc/tpl/page-client y borramos todo y pegamos el codigo de wowfalcon, cerramos y aceptamos y tendremos nuestro holo creado!!!!. Comenta y dime si te sirvio

0
0
A
ArbiBots - Para los jugadores de runescape
Hazlo Tu MismoporAnónimo1/7/2011

Muy buenos días, este es unos de mis posts y quiero presentar uno que uso mucho y se llama "ARBIBOTS o RSBOT" Este bot consiste que en la noche tu lo dejes ahí trabajando o subiéndote el nivel 1- Descargarlo de http://arbibots.com/download/index.php 2- Descargarse JDK Java... http://www.oracle.com/technetwork/java/javase/downloads/index.html 3- Descomprimir el bot en el escritorio, y poner todo en una carpeta que se llame " BOT " y entonces lo habres 4- Lo abres el ArbiBots_Win 5- Le das a Run 6- En la categoría Files le das a RunScript 7- Pones tus datos (user y contra) 8- Le das a continué 9- ESPERAS que se esta logueando 10- Le das a run scripts... TIENES QUE REGISTRARTE A ARBIBOTS.COM 11- Lo dejas trabajando Le voy agregando imágenes desp... Pueden dejar su comentario por si no le funciono así los ayudo

0
13
Como crear mi Hosting Casero (HC) [parte 1]
Como crear mi Hosting Casero (HC) [parte 1]
TaringaporAnónimo6/21/2010

Echando la vista atrás, al HC yo le veo muchos más inconvenientes que ventajas. Quizás la principal ventaja que a mucha gente se le puede pasar por la cabeza es que te ahorras el dinero del hosting, y así puede ser en algunos casos, pero con varios peros. Si de lo que estamos hablando es de alojar un blog, la realidad es que tanto WordPress.com como Blogger dan un servicio gratuito excelente. WordPress.com (que no hay que confundir con el CMS WordPress, alojado en WordPress.org) lo hace a cambio de publicidad que muestran muy poco a menudo y no permiten que nosotros pongamos nuestra propia publicidad. Blogger sí que permite incluir anuncios de AdSense. A mí personalmente me desagradan los anuncios de AdSense, pero entiendo que éste pueda ser un factor importante a la hora de alojar nuestro blog en un sitio o en otro. Si queremos tener el blog en un dominio propio, WordPress.com nos lo permite por tan sólo 10$ al año, y Blogger también lo permite gratis (por supuesto, el coste de la compra del dominio va aparte). Para alojar páginas estáticas, Google Pages podría valernos perfectamente. Para tener e-mail, alojar páginas estáticas o almacenar documentos con nuestro propio dominio, Google Apps nos lo pone muy fácil. Además, Google recientemente ha añadido a la lista de aplicaciones de Google Apps el Google Sites, que nos permitirá tener un Structured Wiki también en nuestro propio dominio. Si nada de lo anterior nos satisface por completo por falta de versatilidad para lo que queremos hacer, un hosting puede ser razonablemente barato. No soy la persona más indicada para recomendar uno, pero por ejemplo, SigT, un blog cuyo criterio se puede tener muy en cuenta, está en Dreamhost, y no parece que estén descontentos, aunque pueden contarnos algunas batallitas. Iñaki Silanes también se pasó hace poco a Dreamhost. El plan estándar de Dreamhost, que incluye SSH y 5TB de transferencia mensual, sale por 10.95$/mes si contratamos un mes, 9.95$/mes si contratamos un año, 7.95$/mes si contratamos 3 años y 5.95$/mes si contratamos 10 años. Yo llevo poco tiempo en 1and1.es y no tengo ninguna queja sobre ellos, pero en precio y características, definitivamente no son competitivos comparando con Dreamhost. Además, tener un ordenador siempre encendido en casa no es exactamente gratis: además de la electricidad que gasta, sus componentes se van desgastando, sobre todo el disco duro, y si tenemos que reemplazar un disco duro, por menos de unos 60€ seguramente no lo podamos hacer. El HC tiene muchas otras desventajas, entre las que podemos citar: Intervalos sin servicio. Poco ancho de banda de subida. Según el servidor usado, es posible que tengamos poca velocidad de respuesta y las páginas dinámicas no se generen rápidamente. Poca capacidad de respuesta ante picos inesperados de tráfico. Disponibilidad reducida del ordenador que usemos como servidor para otras tareas. Disponibilidad reducida del ancho de banda del que dispongamos para otras tareas (p.e. P2P). No es lo más recomendable tener un dispositivo eléctrico 24×7 encendido: Aunque no es lo más probable, el cable se podría calentar, derretir, generar un cortocircuito y causar un incendio. Preocupación por si el servicio se está dando correctamente. ¿Qué haces con el servidor cuando te vas a ausentar de casa por un espacio prolongado de tiempo? ¿Cómo reaccionar rápidamente ante una avería hardware? ¿Qué haces si se va la luz? Es necesario invertir tiempo en la administración del servidor. ¡Uy! ¡Que mal lo hemos pintado! ¿Y no tiene ninguna ventaja el HC? Pues sí, hay una y muy grande, que puede compensar con creces todos los inconvenientes anteriores: –== APRENDER ==– ¡Y así es! Porque del HC, lo más provechoso es lo que se aprende de las tecnologías web. Con él podremos ver cómo configurar Apache, cómo reparar nuestras bases de datos MySQL, cómo mantener nuestro sistema estable para tener que hacer el mínimo número de paradas posible, cómo crearnos scripts para tener todos los aspectos de nuestro servidor monitorizados y controlados, cómo estudiar los logs, cómo… ¡administrar un servidor web de verdad que sirve páginas de verdad! En mi caso, además, que uso WordPress, el hosting casero me ha permitido hacer lo que he querido con él. He modificado el código como me ha parecido y he instalado los plugins que me han parecido útiles sin las restricciones de WordPress.com. Gracias a eso, también he aprendido un poco de PHP. Bueno, ¿qué has pensado? ¿Sigues queriendo montar tu propio HC? ¡Pues sigue leyendo! El servidor ¡No, no, no! No puedes usar tu nuevo y flamante Quad-Core con 8GB de RAM, una NVidia 8800GTX, 4 discos en RAID y fuente de 1000W como servidor de HC. Estoy de acuerdo que ninguno mejor que ese generará las páginas dinámicas y hará volar al Apache pero: ¿No es ese el ordenador que vas a usar para todo lo demás? ¿Con ese pedazo de tarjeta de vídeo no vas a usarlo para algún juego 3D? ¿Seguro que lo reiniciarás lo justo? ¿Tú te has dado cuenta del ruido que hacen sus ventiladores? Además, el precio del kWh es de unos 0.09 ceńtimos de €, así que a poco que consuma 300W, estamos hablando de 300x24x365x0.09/1000=236€ al año (o 19€ al mes). Sí, ese Pentium III/4/AMD K7 que tienes ahí parado desde hace meses y que no sabes bien qué hacer con él te podría servir, pero apostaría sin dudarlo mucho a que también consume lo suyo y a que hace incluso más ruido que el nuevo. Es una buena opción, y si no te importa mucho el consumo eléctrico, definitivamente podría ser lo que necesitamos. Sin embargo, recordemos que tu casa es ese sitio al que vas después de un duro día y donde esperas encontrar paz, tranquilidad y el descanso del guerrero. Llegar y encontrarte ese odioso ordenador haciendo ruido un día y otro, y otro también y sin que te puedas permitir apagarlo, quizás no es lo que más te apetezca. Sí, ya sé que tú tal vez ya tienes ese mismo ordenador muchos días encendido bajando cosas con aMule y con Bittorrent, pero de vez en cuando lo apagas, ¿no? ¡Ah! ¿Cómo? ¿Que noooooo? Bueno, a lo que quería llegar, es que a menos que tengáis una casa de 200m2 con una habitación por ahí perdida donde encerrar el ordenador bajo llave para no oírlo, seguramente necesitéis otra cosa. Si lo que queremos es el servidor perfecto para un HC profesional, válgame la contradicción, lo que nos hace falta es un ordenador de bajo consumo y sin ventiladores. Hasta hace poco, los procesadores líderes indiscutibles en esta categoría eran los VIA C3 y C7, de los que he hablado extensamente en este blog. Las placas VIA EPIA de formato Mini-ITX han sido durante mucho tiempo elecciones excelentes para este propósito; los drivers para el procesador gráfico no son lo mejor del mundo, pero no es algo realmente importante si sólo la vamos a usar como servidor. Hay otros fabricantes que tienen placas con procesador integrado y chipset de VIA, como las Jetway, las eBox (distribuidas en España por EPATec) o la Elite C7VCM (con fuente de alimentación DC-DC integrada), todas ellas más baratas que las VIA EPIA, pero no creo que me equivoque mucho si digo que probablemente hay muchísima más documentación y experiencia sobre las VIA EPIA que sobre otros modelos (sin entrar en la teórica superior calidad de unas sobre otras). Pero decía “hasta hace poco” porque Intel y AMD no están indiferentes ante este trozo de mercado de procesadores/placas sin ventilador y de bajo consumo. AMD hace tiempo que tiene los procesadores AMD Geode, aunque la verdad es que no han sido muy populares en el segmento de mercado de los procesadores VIA, tal vez porque hasta la salida del Geode NX, el rendimiento de sus predecesores era muy pobre (ejemplos de placas con AMD Geode: ALIX2C2, Albatron KI741CX). Nota: Gracias a Tostadilla por varios de los enlaces. Intel, por su parte, está a punto de descabalgar a sus competidores también en este segmento de mercado igual que ha hecho con AMD en los segmentos de procesadores para ordenadores de sobremesa y en procesadores para portátiles. Su nueva placa base D210GLY, con procesador de refrigeración pasiva Intel Celeron 215 (con arquitectura Core) a 1.2GHz, con un consumo equiparable a las VIA EPIA, y con un precio de 69.50$, es un misil directo a la línea de flotación de las VIA EPIA. Yo no he probado una de estas placas, pero dado el historial de productos de calidad de Intel y su compromiso con la creación de drivers de código abierto, no dudaría ni un momento en recomendar una de estas placas por delante de las de VIA. Por no decir que seguro que a igualdad de frecuencia de reloj, uno de estos Celeron tiene mucho más rendimiento que uno de VIA. Josemanu de La Factoría Secreta acaba de cambiar su VIA EPIA por una de estas placas… ¡a ver qué nos va contando sobre ella! Respecto a otros aspectos del servidor, sólo cabría mencionar la memoria RAM y tal vez el disco duro, pero como cualquier tamaño de disco duro superior a los 10GB será más que suficiente para casi cualquier propósito, quizás lo más determinante pueda ser la RAM. En mi opinión, una cantidad razonable de RAM para manejar con soltura varias peticiones de Apache y el MySQL son 512MB, pero 256MB podrían ser suficientes. Para finalizar la sección, comentar que un portátil definitivamente no es una opción como servidor. Pero ni como servidor de HC ni para tenerlo siempre encendido con programas P2P. Un portátil es un portátil. No están preparados en absoluto para un estado de sobrecalentamiento permanente y a sus pequeños discos duros de 2.5″ no les gusta que les tengan permanentemente dando vueltas y estarán condenados con mucha probabilidad a una muerte prematura si les obligas a ello. Y no se me olvidan los dispositivos de ultra-bajo-consumo que aceptan Linux, como el NSLU2, el LinkStation, la KuroBox o la EFIKA. Aunque se les pueda instalar Linux, en mi opinión no dan la talla para un servidor web completo como el que nos ocupa. Por cierto, Intel está a punto de revolucionar aún más el panorama de los procesadores de bajo consumo con la llegada de los Ultra-Mobile PC (UMPC) y sus procesadores: A100/A110 y su reciente Atom (via Blog Staredsi). El proveedor de Internet Evidentemente, necesitaremos un acceso de banda ancha a Internet, y con este acceso llegará nuestra mayor limitación: el ancho de banda de subida. El acceso de banda ancha más común actualmente en España es el ADSL de 3Mbps de bajada y de 320kbps de subida. La bajada nos importa bien poco, pero la subida es lo que definitivamente determinará el máximo número de usuarios que podremos atender simultáneamente con una cierta fluidez. Esos 40KB/s teóricos de subida pueden parecer poco, pero no son desdeñables, ya que pueden suponer una transferencia máxima mensual teórica de más de 100GB, bastante superior a lo que ofrecen muchos hostings: 320x3600x24x31/8/106=107GB 1KB=103Bytes, 1GB=106Bytes Sin embargo, evidentemente, esta no es una comparación del todo justa, ya que no podemos esperar que el flujo de visitas sea regular, sino que la naturaleza de la web nos trae precisamente lo contrario; exceptuando el tráfico procedente de los buscadores que tal vez sí sea razonablemente uniforme, las visitas normalmente las tendremos a rachas: a ciertas horas del día, cuando se nos cita y enlaza desde otras páginas o cuando publicamos algo nuevo. Si se nos amontonan las visitas, las páginas tardarán considerablemente más en ser descargadas y la experiencia del usuario en nuestra página podría llegar a ser muy pobre, …y eso si no se cansa de esperar y definitivamente la cierra sin que acabe de cargarse. Por tanto, ¿son suficientes esos 40KB/s para dar un servicio razonable? En mi experiencia, en principio, sí, pero vamos a tener que ser cuidadosos con el material que servimos y tenemos que tener bien claro que ante un pico brutal de visitas, vamos a fracasar sin remedio. Por supuesto, no sólo existe la oferta de los 320kbps de subida. Ahora mismo también hay otras compañías de ADSL que ofrecen hasta 1Mbps de subida (con sus “hasta” 20Mbps de bajada). Sin embargo, cuando en algún momento me he planteado contratar alguna de esas alternativas, siempre me he encontrado docenas de mensajes en los foros de personas quejándose de cortes y microcortes frecuentes y reiterados que me han desanimado. Al final, la calidad de una de estas líneas con ADSL 2+ dependerá del ruido de la línea y de la distancia del par de cobre hasta la central telefónica, pero en el mejor de los casos, su calidad parece claramente insuficiente si queremos dar un servicio de la forma más estable posible. Por otra parte, el panorama parece que va a mejorar mucho y muy pronto. ONO ya ofrece 1Mbps de subida, que tal vez sean más estables que los del ADSL 2+ y la aparición del VDSL2 de la mano de Telefónica es inminente, al mismo tiempo que se acerca el FTTH. Otro aspecto que podemos plantarnos es la conveniencia de la IP fija. En Telefónica sale por 12€ al mes, y nos podría facilitar enormemente muchos aspectos del HC. Sin embargo, sólo por lo que cuesta, podríamos contratar un hosting profesional, de modo que es una opción que la mayoría descartaríamos. El dominio Por supuesto, vamos a necesitar uno o más dominios para hacer realidad nuestro proyecto. Si tuviéramos una IP fija, podríamos comprar un dominio a cualquier registrador y hacer que el DNS apuntara a nuestra IP fija. En nuestro servidor tendríamos que configurar un servidor de DNS además de todos los otros servicios que quisiéramos proporcionar. Sin embargo, con una IP dinámica también podremos montar nuestro HC sin problemas gracias a empresas como DynDNS o no-ip.com. En ¿Piensas en si un día te roban el portátil? ya vimos una introducción a cómo funcionan estos servicios y una guía de configuración del ddclient en Debian para que actualice la IP tan pronto como ésta cambie. Suponiendo dicha teoría sabida, vamos a ver cómo ajustar la configuración de DynDNS al entorno de un HC como el que estamos montando. DynDNS pone a nuestra disposición un gran número de dominios base sobre el que crear hostnames (hasta 5 por cuenta) como por ejemplo: barriosesamo.homelinux.org gustavo.blogsite.org supercoco.is-a-geek.org Los dominios disponibles tienen nombres bastante útiles y llamativos, de forma que resulta bastante fácil encontrar una combinación que sea de nuestro agrado. La mía, como los más viejos del lugar saben, fue y es valencia.homelinux.org. Si queremos asociar una IP dinámica a un dominio propio, podemos considerar la opción de comprar el servicio Custom DNS, que sale por 27.5$ al año. Si también compramos el dominio en DynDNS, por ejemplo, uno .com por 15$, al hacer la compra conjunta con el Custom DNS nos hacen un descuento de 5$. Por tanto, la broma de Custom DNS + Dominio nos saldrá por 37.5$/año. En DynDNS no podemos comprar un dominio .es, pero si lo compramos en otro sitio, podemos hacerlo funcionar con el servicio Custom DNS de DynDNS. Yo compré el dominio vicente-navarro.com con el servicio Custom DNS y la configuración del ddclient para actualizar puntualmente ambos dominios era (/etc/ddclient.conf): # Configuration file for ddclient generated by debconf # # /etc/ddclient.conf pid=/var/run/ddclient.pid protocol=dyndns2 use=web, web=checkip.dyndns.org/, web-skip='IP Address' wildcard=yes server=members.dyndns.org login=supercoco password=contrasenyadesupercoco valencia.homelinux.org custom=yes, vicente-navarro.com Como vemos, la única diferencia entre actualizar un hostname de los gratuitos y uno de los Custom DNS es la cadena custom=yes. www.vicente-navarro.com puede ser un CNAME a vicente-navarro.com o podría ser un hostname diferente, en cuyo caso tendríamos que añadir una línea adicional en el ddclient.conf. La línea: use=web, web=checkip.dyndns.org/, web-skip='IP Address' sirve para especificarle al ddclient dónde encontrar la IP a usar para actualizar el servidor de DNS. Poniendo use=web le decimos que acceda a una web (en este caso checkip.dyndns.org) para consultarla. Si nuestro servidor tuviera directamente la IP pública de Internet en uno de sus interfaces, algo cada vez más raro hoy en día, podríamos poner algo así: use=if, if=eth0 El ddclient es capaz de conectarse a ciertos routers de diferentes formas para obtener la dirección directamente del router. Podemos consultar todas las posibilidades en la documentación del ddclient. Para probar el correcto funcionamiento del ddclient, es una buena idea usar la opción -v y la -force también puede ser necesaria para hacer troubleshooting ya que el cliente se niega a enviar una actualización al servidor de DNS si la IP no ha cambiado (lo sabe por la caché que mantiene en /var/cache/ddclient/ddclient.cache): # ddclient -v -force CONNECT: checkip.dyndns.org CONNECTED: SENDING: GET / HTTP/1.0 SENDING: Host: checkip.dyndns.org SENDING: User-Agent: ddclient/3.6.7 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Content-Type: text/html RECEIVE: Server: DynDNS-CheckIP/1.0 RECEIVE: Connection: close RECEIVE: Cache-Control: no-cache RECEIVE: Pragma: no-cache RECEIVE: Content-Length: 105 RECEIVE: RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: 81.39.245.141</body></html> INFO: forcing update of valencia.homelinux.org. INFO: forcing update of vicente-navarro.com. INFO: setting IP address to 81.39.245.141 for valencia.homelinux.org UPDATE: updating valencia.homelinux.org CONNECT: members.dyndns.org CONNECTED: SENDING: GET /nic/update?system=dyndns&hostname=valencia.homelinux.org&myip=81.39.245.141&wildcard=ON HTTP/1.0 SENDING: Host: members.dyndns.org SENDING: Authorization: Basic dmluYWpvOmxhZW5jb250cmFzdGU6LSk= SENDING: User-Agent: ddclient/3.6.7 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Date: Sat, 08 Mar 2008 10:12:15 GMT RECEIVE: Server: Apache RECEIVE: X-UpdateCode: n RECEIVE: Content-Type: text/plain RECEIVE: Connection: close RECEIVE: RECEIVE: good 81.39.245.141 SUCCESS: updating valencia.homelinux.org: good: IP address set to 81.39.245.141 INFO: setting IP address to 81.39.245.141 for vicente-navarro.com UPDATE: updating vicente-navarro.com CONNECT: members.dyndns.org CONNECTED: SENDING: GET /nic/update?system=custom&hostname=vicente-navarro.com&myip=81.39.245.141&wildcard=ON HTTP/1.0 SENDING: Host: members.dyndns.org SENDING: Authorization: Basic dmluYWpvOmxhZW5jb250cmFzdGU6LSk= SENDING: User-Agent: ddclient/3.6.7 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Date: Sat, 08 Mar 2008 10:12:15 GMT RECEIVE: Server: Apache RECEIVE: X-UpdateCode: n RECEIVE: Content-Type: text/plain RECEIVE: Connection: close RECEIVE: RECEIVE: good 81.39.245.141 SUCCESS: updating vicente-navarro.com: good: IP address set to 81.39.245.141 En el fichero /etc/default/ddclient podemos especificar si queremos que ddclient funcione como un demonio, que es lo recomendable (otra opción es planificar el ddclient en el cron) y cada cuánto tiempo debería de chequear si ha habido un cambio de IP (5 minutos por defecto, si lo ponemos más frecuente, es posible que nos denieguen el acceso por abuso del servicio): # Configuration for ddclient scripts # generated from debconf on Sat Mar 10 13:45:30 CET 2007 # # /etc/default/ddclient # Set to "true" if ddclient should be run every time a new ppp connection is # established. This might be useful, if you are using dial-on-demand run_ipup="false" # Set to "true" if ddclient should run in daemon mode run_daemon="true" # Set the time interval between the updates of the dynamic DNS name in seconds. # This option only takes effect if the ddclient runs in daemon mode. daemon_interval="300" Por tanto, cada vez que el ISP nos cambie la IP (algo que normalmente no ocurre en semanas) nos encontraremos con que tendremos unos pocos minutos sin servicio. Otra opción, la óptima, es que nuestro router soporte el protocolo de DynDNS y sea capaz de actualizar el servidor de DNS cada vez que detecte un cambio de IP en la interfaz de WAN. Mi Zyxel 660HW lo soporta, por lo que sí que es capaz de actualizar un hostname como valencia.homelinux.org, pero no es capaz de gestionar hostnames de dominios Custom DNS por defecto: ynDNS mantiene una lista de dispositivos hardware con un cliente DynDNS integrado certificado. El popular Linksys WRT54G es uno de ellos y soporta Custom DNS poniendo una coletilla al nombre del dominio: example.com&system=custom. De todas formas, DynDNS prefiere los clientes software. Para finalizar, podemos comentar la lista de servicios que ddclient soporta según su README, por si preferimos uno alternativo a DynDNS: Dynamic DNS services currently supported include: DynDNS.org - See http://www.dyndns.org for details on obtaining a free account. Hammernode - See http://www.hn.org for details on obtaining a free account. Zoneedit - See http://www.zoneedit.com for details. EasyDNS - See http://www.easydns.com for details. NameCheap - See http://www.namecheap.com for details El sistema operativo A estas alturas, nadie se puede sorprender de que yo recomiende como sistema operativo de nuestro servidor de HC la última versión estable de Debian (en estos momentos la Debian Etch 4.0) con sus correspondientes actualizaciones de seguridad. Las versiones estables de Debian tienen mucha fama por su gran estabilidad a costa de llevar versiones menos recientes pero mucho más probadas. Cuando me pasé a 1and1.es, una de las agradables sorpresas que me llevé fue ver que usaban Debian en sus servidores. Hace unas semanas, cuando se hizo público el famoso exploit que afectaba a casi todas las versiones del kernel, el equipo de seguridad de Debian se apuntó un buen tanto al ser la primera en distribuir un parche de seguridad para el problema. Pero de todas formas, cualquier distribución de Linux bien mantenida, estable y con constantes actualizaciones de seguridad es perfectamente válida para nuestro propósito. Y eso sin querer hacer un desprecio a las diferentes *BSD, que pueden ser una opción tanto o más buena que cualquier Linux, quizás destacando OpenBSD por su foco en la seguridad. Y Windows… pues bueno, se podría tener un servidor de HC con Windows, pero las posibilidades de gestión y actualización remota se reducirían drásticamente. Definitivamente, no es la mejor opción. El router En la mayoría de los casos, nuestro servidor de HC estará detrás de un router que será el que tenga la IP pública del interfaz de WAN y que distribuirá el tráfico entre los equipos conectados a la LAN. Además, no es que sea lo más típico, es que a menos que el servidor de HC sea el único sistema que vaya a acceder a Internet en la casa, tampoco existe otra opción válida. El router tenemos que configurarlo para que nuestro servidor de HC siempre reciba la misma dirección IP por DHCP, algo que la mayoría de routers soportan asociando una dirección MAC determinada con una misma IP. Otra opción es configurar el servidor para que use una IP fija y no la obtenga por DHCP, opción más segura que la primera, pero tendremos que usar una IP fuera del rango de direcciones DHCP que concede el router aunque dentro de la misma subred. Además, tendremos que abrir como mínimo el puerto 80 y configurar el NAT para que las peticiones a dicho puerto vayan a la IP que hemos asignado a nuestro servidor. Otro puerto fundamental es el 22 para permitir el acceso por SSH y así poder hacer mantenimiento remoto del servidor. Opcionalmente, podemos abrir el 25 para SMTP y tal vez el 110 (POP3) y el 143 (IMAP). Los sistemas de la LAN distintos al servidor probablemente no podrán usar el servidor de nombres de Internet para acceder a los servicios que proporciona el servidor (por ejemplo, para ver nuestra página web desde otro sistema de la red), porque el dominio resuelve a una IP que tiene el router, por lo que le estaremos mandado las peticiones al router, no al servidor de HC. Es por ello que, o montamos un pequeño DNS que dé servicio a la LAN, o introducimos en el fichero /etc/hosts de todos los sistemas (incluso en los Windows en c:windowssystem32driversetchosts) una referencia a los hostnames de todos los servicios que tengamos hospedados: 192.168.1.30 www.vicente-navarro.com vicente-navarro.com 192.168.1.30 valencia.homelinux.org Para finalizar, una advertencia sobre el Wi-Fi y su inconveniencia para nuestro propósito. Nuestro servidor de HC debería estar conectado por cable al router. La conexión Wi-Fi, aunque nos pueda parecer que normalmente es muy estable, está sujeta a muchas interferencias sobre las que no tenemos control. Y de entre esas interferencias, yo destacaría la de los vecinos. En mi casa, por ejemplo, yo detecto multitud de señales Wi-Fi diferentes de vecinos que me provocan graves interferencias y que ni siquiera me permiten recibir la señal del router en otra habitación por muchos cambios de canal que pruebe, por lo que me tuve que cablear la casa. Otros casos pueden ser menos graves, pero en cualquier momento puedes encontrarte con que la señal del vecino causa interrupciones en la tuya. Definitivamente, no parece lo más conveniente. El servidor web Hablar de servidor web en un sistema UNIX es casi sinónimo de hablar de Apache. Siempre quise probar el lighttpd, pero nunca llegué a ponerme manos a la obra, así que no puedo contar de primera mano qué tal funciona en un sistema modesto como el mío, pero en general, tiene muy buena prensa, especialmente en lo que toca a consumo de memoria. En la gráfica de Febrero de Netcraft, vemos que lighttpd ya va haciéndose ver con su millón y medio de sitios que lo usan. Creo que es un candidato excelente como servidor web para nuestro HC. Volviendo a Apache, todas las distribuciones tienen un paquete de Apache perfectamente listo para instalar y comenzar a trabajar; cada una con sus peculiaridades de configuración. Lo primero que tendremos que elegir es si queremos Apache 1.3 o Apache 2.x, un viejo debate en el que yo no me atrevo a entrar. Para el desarrollo de Apache 2.0 se reescribió la mayor parche del código y su mayor novedad fue que funcionaba con threads UNIX. Aunque su rendimiento es mejor en general, su adopción ha sido muy lenta porque muchos de los módulos existentes para Apache 1.3 no existían en Apache 2.x y porque la documentación de PHP desaconsejaba usarlo. En la actualidad, las instrucciones de instalación de PHP en entornos con Apache 2 muestran la siguiente advertencia: Warning We do not recommend using a threaded MPM in production with Apache2. Use the prefork MPM instead, or use Apache1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM En Debian tenemos paquetes para Apache 1.3 y para Apache 2.2. En el caso de Apache 2, con distintas posibilidades de MPM (Multi-Processing Module): apache - versatile, high-performance HTTP server apache-common - support files for all Apache webservers apache-dbg - debug versions of the Apache webservers apache-dev - development kit for the Apache webserver apache-doc - documentation for the Apache webserver apache-perl - versatile, high-performance HTTP server with Perl support apache-ssl - versatile, high-performance HTTP server with SSL support apache2 - Next generation, scalable, extendable web server apache2-doc - documentation for apache2 apache2-mpm-event - Event driven model for Apache HTTPD 2.1 apache2-mpm-itk - multiuser MPM for Apache 2.2 apache2-mpm-perchild - Transitional package - please remove apache2-mpm-prefork - Traditional model for Apache HTTPD 2.1 apache2-mpm-worker - High speed threaded model for Apache HTTPD 2.1 apache2-prefork-dev - development headers for apache2 apache2-src - Apache source code apache2-threaded-dev - development headers for apache2 apache2-utils - utility programs for webservers apache2.2-common - Next generation, scalable, extendable web server El paquete apache2-mpm-prefork es el que necesitamos según la documentación de PHP (Apache MPM prefork). Si miramos su descripcción, vemos que permite usar Apache 2 de una forma similar a la que funcionaba Apache 1.3 evitando problemas con librerías que no son thread-safe a cambio de algo de rendimiento: $ apt-cache show apache2-mpm-prefork [...] Description: Traditional model for Apache HTTPD 2.1 This Multi-Processing Module (MPM) implements a non-threaded, pre-forking web server that handles requests in a manner similar to Apache 1.3. It is appropriate for sites that need to avoid threading for compatibility with non-thread-safe libraries. It is also the best MPM for isolating each request, so that a problem with a single request will not affect any other. . It is not as fast, but is considered to be more stable. [...] Y, de hecho, podemos comprobar que es un prerequisito para instalar el mod-php5: $ apt-cache show libapache2-mod-php5 [...] Depends: libbz2-1.0, libc6 (>= 2.3.6-6), libcomerr2 (>= 1.33-3), libdb4.4, libkrb53 (>= 1.4.2), libpcre3 (>= 4.5), libssl0.9.8 (>= 0.9.8c-1), libxml2 (>= 2.6.27), zlib1g (>= 1:1.2.1), mime-support (>= 2.03-1), apache2-mpm-prefork (>> 2.0.52) | apache2-mpm-itk, apache2.2-common, php5-common (= 5.2.0-8+etch10), libmagic1, ucf [...] Los diferentes paquetes apache2-mpm-* lo que hacen es instalar un binario principal de Apache diferente: $ dpkg -L apache2-mpm-prefork | egrep 'bin|lib' /usr/sbin /usr/sbin/apache2 El módulo de MPM que Debian instala por defecto si hacemos un simple “apt-get install apache2” es el apache2-mpm-worker (Apache MPM worker), pero si instalamos el mod-php5, es reemplazado por el apache2-mpm-prefork. En definitiva, para instalar con un sólo comando un sistema LAMP (Linux+Apache+MySQL+PHP) en Debian, sólo necesitaremos ejecutar el siguiente comando: # apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server-5.0 Reading package lists... Done Building dependency tree Reading state information... Done [...] The following NEW packages will be installed: apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libterm-readkey-perl mysql-client-5.0 mysql-common mysql-server-5.0 php5-common php5-mysql [...] Las versiones de Debian Etch son razonablemente recientes: Apache 2.2, MySQL 5.0 y PHP 5. Creo que en un sistema que montamos a nuestro gusto para aprender, tampoco vale la pena irnos a las versiones más viejas. Los hostings profesionales ya son bastante rácanos en cuanto al uso de versiones modernas (¡hace poco me encontré con uno que aún usaba MySQL 3!), como para que nosotros les emulemos. Si la versión es estable para Debian, también lo es para mí. Por tanto, una vez que tenemos el Apache 2.2 instalado, en Debian tenemos un fichero de configuración global en /etc/apache2/apache2.conf. Desde ese fichero se incluye el /etc/apache2/httpd.conf, que por defecto está vacío y preparado para que nosotros introduzcamos nuestras líneas de configuración personalizadas sin tener que alterar el principal. En el fichero ports.conf se especifica el puerto a usar, por defecto el 80. Luego tenemos los directorios de /etc/apache2/: mods-available/ mods-enabled/ sites-available/ sites-enabled/ En el mods-available tenemos los módulos instalados en el sistema. En el sites-available tenemos todos los sitios virtuales configurados en el sistema. En los directorios mods-enabled y sites-enabled tenemos enlaces a los módulos y sitios virtuales que queremos habilitar. En las entradas de compresión y cacheo de Apache vimos cómo habilitar y configurar los módulos: Probando el mod_deflate de Apache Usando el mod_cache de Apache para que el mod_deflate no incremente la carga del servidor Los enlaces los podemos crear y eliminar a mano o con las siguientes herramientas de Debian: a2dismod a2dissite a2enmod a2ensite Tenemos más información sobre los aspectos particulares de configuración de Apache en Debian en el fichero /usr/share/doc/apache2.2-common/README.Debian. Configuración de los sitios virtuales Por defecto, Debian sólo nos deja un sitio virtual configurado en /etc/apache2/sites-available/default que es el que por defecto se usa cuando se accede con un hostname que no tiene una configuración de sitio virtual específica. Tiene el directorio base de documentos en /var/www/apache2-default/ y nos permite recorrer la documentación del servidor sólo desde el navegador del propio servidor, http://localhost/doc/: NameVirtualHost * <VirtualHost *> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> La configuración básica de sitio virtual que yo usaba (/etc/apache2/sites-available/vicente-navarro.com, con enlace en sites-enabled) era: <VirtualHost *> ServerName vicente-navarro.com ServerAlias www.vicente-navarro.com DocumentRoot /var/www/vicente-navarro.com/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/vicente-navarro.com/> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error_vn.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access_vn.log combined ServerSignature On </VirtualHost> Sobre ella, podemos hacer algunos cambios: Si queremos permitir la configuración con ficheros .htaccess, tendremos que quitar las líneas “AllowOverride None“. Si queremos presentar un documento personalizado para errores 404, podemos incluir una línea como: “ErrorDocument 404 /404.php“. Por otra parte, teniendo en cuenta que nuestro ancho de banda de subida es muy limitado, el hotlinking (enlace a las imágenes de nuestro sitio desde otro sitio) es especialmente dañino, por lo que deberíamos de prevenir hasta donde sea posible el “robo de imágenes”. Una buena forma de hacerlo es rechazando las peticiones cuyo referer no sea nuestra propia página o ninguno (hay firewalls que los eliminan, la extensión No-Referer de Firefox también los elimina, e incluso podemos controlarlo en Firefox con el parámetro Network.http.sendRefererHeader). How can I prevent people from “stealing” the images from my web site?: SetEnvIf REFERER "vicente-navarro.com" linked_from_here SetEnvIf REFERER "^$" linked_from_here <FilesMatch ".(gif|jpg|png)"> Order deny,allow Deny from all Allow from env=linked_from_here </FilesMatch> Además, en mi caso, cuando cambié el dominio principal de valencia.homelinux.org a www.vicente-navarro.com, tuve que implementar una redirección 301, para lo que creé un sitio virtual en /etc/apache2/sites-available/valencia.homelinux.org: <VirtualHost *> ServerName valencia.homelinux.org Redirect permanent / http://www.vicente-navarro.com/blog/ ErrorLog /var/log/apache2/error_vho.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access_vho.log combined ServerSignature On </VirtualHost> Por supuesto, podemos crearnos todos los sitios virtuales que queramos. Sobre todo uno de desarrollo es fundamental para ir probando todas las cosas nuevas que queramos implementar sin que sean visibles antes de que estén acabadas. Poniendo en marcha la nueva configuración Cuando hagamos cualquier cambio a los ficheros de configuración de Apache y queramos que tengan efecto interrumpiendo de forma mínima el servicio, tenemos que tener la precaución de chequear que están correctos: # apache2ctl configtest Syntax OK Porque si la sintaxis no fuera correcta o hubiera cualquier otro error: # apache2ctl configtest Syntax error on line 1 of /etc/apache2/sites-enabled/000-default: Invalid command 'ZerverName', perhaps misspelled or defined by a module not included in the server configuration …y no lo hemos verificado antes, el servidor no arrancará y tendremos el servicio parado hasta que consigamos arreglar el error: # apache2ctl restart Syntax error on line 1 of /etc/apache2/sites-enabled/000-default: Invalid command 'ZerverName', perhaps misspelled or defined by a module not included in the server configuration Además, el “apache2ctl restart” mata las conexiones que estuvieran activas en ese momento. Es por eso que es mucho más respetuoso con nuestros visitantes hacer un “apache2ctl graceful“, que espera a que todos los servidores activos acaben antes de reiniciar. Por tanto, para releer la configuración de Apache cuando la cambiemos, haremos: # apache2ctl configtest Syntax OK # apache2ctl graceful No debemos olvidar revisar frecuentemente los posibles errores que puedan aparecer en los logs para asegurarnos de que no haya ningún problema de configuración o que estemos sufriendo algún tipo de ataque. MaxClients En casos de avalanchas de visitas nos encontraremos con que ni la CPU, ni la memoria son nuestro cuello de botella sino, evidentemente, el ancho de banda de subida. Pero en esos casos, si nos entran muchísimas conexiones de diferentes clientes al mismo tiempo, el servidor sí que puede llegar a tener problemas de memoria porque tiene las conexiones abiertas y por el ancho de banda no se están sirviendo. Es por ello que yo descubrí que bajando el número máximo de clientes que se pueden atender (MaxClients) en el apache2.conf de los 150 de por defecto a 50, en casos de avalancha, la máquina no se agobiaba y a aquellos clientes que aceptaba, les servía más o menos correctamente. Había muchos que no eran aceptados, eso sí, pero que en cualquier caso, por el ancho de banda no se les podía haber servido en condiciones, así que mejor rechazarlos desde el principio y así desahogar al servidor: # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 50 MaxRequestsPerChild 0 </IfModule> Tenemos mucha más información sobre cómo configurar Apache en la página de documentación de Apache 2.2. Moderación con el tamaño de lo que publicamos Y es precisamente por la limitación de ancho de banda que debemos de ser contenidos en lo que publicamos en nuestra web. Por ejemplo, una imagen de 300KiB que se muestre en todas las página de nuestro sitio puede suponer una verdadera bofetada a nuestros visitantes que tendrán que esperar segundos y segundos a que la página acabe de cargar… y eso si finalmente esperan y no la cierran antes. Por eso, cuidado con lo que hospedamos y seamos muy tacaños con el escaso ancho de banda con el que contamos. Antes hacía referencia a entradas previas que trataban de la compresión y cacheo de las páginas web. Con dicha técnica podremos reducir al mínimo el volumen de los ficheros HTML, CSS y JavaScript, pero el objetivo de mantener a un tamaño razonable las imágenes no debe de perderse nunca de vista. Un poco de SEO para ahorrar ancho de banda Unos visitantes tan pesados como necesarios son los robots de los buscadores. Los necesitamos para existir en Internet, pero sus visitas constantes consumen ancho de banda y no poco, ya que recordemos que recorren periódicamente toda nuestra web. Una solución para aliviar el problema es usar un fichero robots.txt y bloquear todo aquello que no necesitemos que sea encontrado. En el caso de un blog, podemos bloquear las páginas de categorías, las de etiquetas, los archivos… al fin y al cabo, es sólo contenido duplicado que lo único que puede hacer es confundir al buscador a la hora de decidirse por la mejor página. Pero la jugada maestra para ahorrar ancho de banda es prohibir a los buscadores que indexen las imágenes de nuestro sitio (Remove an image from Google Image Search). La gente que busca imágenes, raramente estará interesada por el contenido de nuestra página en sí mismo. Por ello, prohibiendo la búsqueda de imágenes, evitamos por un lado el gasto de ancho de banda de servir nuestras imágenes a los buscadores de imágenes y por otro, el de aquellos que acceden a nuestra página buscando imágenes, e incluso el de aquellos que, una vez encontrada la imagen que buscaban, decidan hacer hotlinking a nuestra imagen. Otra cosa es que te pueda interesar mucho el tráfico proveniente de buscadores de imágenes. En mi caso, el número de visitas procedente de images.google.com llegó a ser muy alto hasta que prohibí la búsqueda de imágenes en mi sitio, ya que analizando las búsquedas origen de las visitas, llegue a la conclusión de que no eran visitantes interesados en el contenido de mis páginas. Si tenemos un feed por RSS o Atom, tenemos que tener en cuenta que los diferentes agregadores de noticias suelen acceder con cierta frecuencia para ver si hay nuevas entradas, así que puede ser muy útil para ahorrar ancho de banda servir el feed a través FeedBurner de forma que FeedBurner sea el único que acceda a nuestro feed y que sea él el que use su ancho de banda para alimentar al resto de agregadores. Para analizar los logs, Debian nos ofrece varias aplicaciones ya preempaquetadas: Visitors, WebDruid, AWFFull y el veterano wwwstat. Apache HTTP server benchmarking tool Por último, no podemos dejar de mencionar el ab (Apache HTTP server benchmarking tool), una utilidad incluida en el paquete apache2-utils con la que podremos hacerle pruebas de carga a nuestro servidor web. Puede resultarnos útil para comparar el rendimiento de un Apache 1.3 con el de un Apache 2.2 o con el de un lighttpd o para probar las mejoras de la caché o de la compresión o para estudiar las consecuencias que los cambios en el código pueden suponer (por ejemplo, tras introducir un trozo de código PHP muy complejo de ejecutar y que tal vez resulte muy lento). En esta prueba de ejemplo, le lanzo a mi servidor a través de la LAN peticiones de 5 en 5 (-c 5) durante un tiempo máximo de 60 segundos (-t 30), y veo que es capaz de atender 23 peticiones (los fallos “Length: 21” son porque las páginas devueltas no tienen todas el mismo tamaño, algo que no es un problema en este caso), pero que algunas han tenido que esperar hasta 40 segundos: sigue en la parte #2 Si te gusta dame puntos Hay otra parte... La #2

0
0
Como crear mi Hosting Casero (HC) [parte 2]
Como crear mi Hosting Casero (HC) [parte 2]
TaringaporAnónimo6/21/2010

Buenas esta es la continuacion de la parte #1 ... seguimos... # ab -c 5 -t 60 http://www.vicente-navarro.com/blog/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.vicente-navarro.com (be patient) Finished 23 requests Server Software: Apache/2.2.3 Server Hostname: www.vicente-navarro.com Server Port: 80 Document Path: /blog/ Document Length: 63231 bytes Concurrency Level: 5 Time taken for tests: 60.523663 seconds Complete requests: 23 Failed requests: 21 (Connect: 0, Length: 21, Exceptions: 0) Write errors: 0 Total transferred: 1510651 bytes HTML transferred: 1505035 bytes Requests per second: 0.38 [#/sec] (mean) Time per request: 13157.318 [ms] (mean) Time per request: 2631.464 [ms] (mean, across all concurrent requests) Transfer rate: 24.37 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 2319 11847 9921.7 9117 40440 Waiting: 1251 5547 7283.9 2763 30366 Total: 2319 11847 9921.7 9117 40440 Percentage of the requests served within a certain time (ms) 50% 8977 66% 14074 75% 15522 80% 18804 90% 27300 95% 29838 98% 40440 99% 40440 100% 40440 (longest request) Volvamos a repetir la prueba tras habilitar el plugin para WordPress WP Super Cache, del que ya hablamos en Comprimir y cachear las páginas generadas por WordPress y veremos que de las decepcionantes 23 peticiones servidas pasamos a nada menos que 8193 peticiones con un tiempo de espera máximos de 71ms: # ab -c 5 -t 60 http://www.vicente-navarro.com/blog/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.vicente-navarro.com (be patient) Completed 5000 requests Finished 8193 requests Server Software: Apache/2.2.3 Server Hostname: www.vicente-navarro.com Server Port: 80 Document Path: /blog/ Document Length: 63301 bytes Concurrency Level: 5 Time taken for tests: 60.358 seconds Complete requests: 8193 Failed requests: 0 Write errors: 0 Total transferred: 520941496 bytes HTML transferred: 518752897 bytes Requests per second: 136.55 [#/sec] (mean) Time per request: 36.617 [ms] (mean) Time per request: 7.323 [ms] (mean, across all concurrent requests) Transfer rate: 8478.80 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 3 2.5 3 26 Processing: 13 32 4.1 33 69 Waiting: 2 8 4.4 8 49 Total: 18 36 4.1 36 71 Percentage of the requests served within a certain time (ms) 50% 36 66% 37 75% 38 80% 39 90% 41 95% 43 98% 45 99% 46 100% 71 (longest request) ¡Ah! Y si permitimos la compresión con la opción -H "Accept-Encoding: gzip", el resultado es incluso más espectacular, llegándose a las 16122 peticiones servidas, aunque ahora la diferencia ya era previsible, ya que es debida sólo a que ahora se sirven menos datos: # ab -c 5 -t 60 -H "Accept-Encoding: gzip" http://www.vicente-navarro.com/blog/ [...] Complete requests: 16122 [...] Por supuesto, lo ideal es hacer estas pruebas desde otro sistema de Internet, donde el cuello de botella del ancho de banda se note, pero estas pruebas desde la LAN también pueden ser muy ilustrativas y útiles para entender por dónde cojea nuestre servidor web. El servidor de correo Los dos servicios básicos de un hosting son el servidor web y el servidor de correo, así que de nuestro HC también podríamos esperar que fuera un buen servidor de correo. Sin embargo, quitando la parte de que un servidor de correo como sendmail o exim puede ser realmente difícil de configurar, la realidad es que en la actualidad, siendo el spam un problema tan grande en Internet, un servidor de SMTP funcionando desde una red de usuarios finales con IPs dinámicas es candidato seguro a ser ignorado por casi todos los servidores de correo de Internet. E incluso aunque nuestra IP fuera fija, al no ser la IP conocida de un ISP profesional, lo más probable es que nuestros correos también fueran rechazados por un alto porcentaje de servidores destino. Además, no podremos cambiar la resolución inversa de la IP, algo que muchos servidores de correo verifican. Por ejemplo, imaginemos que instalo el paquete exim4, y lo configuro con “dpkg-reconfigure exim4-config” como servidor SMTP del dominio hostingcasero.homelinux.org (para direcciones como [email protected]). Elegimos que el “General type of mail configuration” sea “internet site“ En “System mail name” ponemos hostingcasero.homelinux.org El “Domains to relay mail for” en principio lo podemos dejar vacío, así como el “Machines to relay mail for“. El “Keep number of DNS-queries minimal (Dial-on-Demand)?” no tiene mayor importancia en nuestra configuración, así como el “Delivery method for local mail” y el “Split configuration into small files?“, que ya van según las preferencias de cada uno. Pues bien, a finalizar me encuentro con que si intento enviar un e-mail a Hotmail me dice que no acepta mi correo porque mi IP no es de fiar: # mail [email protected] < /tmp/correo.txt delivering 1JY4zH-0001ym-VM R: dnslookup for [email protected] T: remote_smtp for [email protected] Connecting to mx2.hotmail.com [65.54.244.168]:25 ... connected SMTP<< 220 bay0-mc2-f2.bay0.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.msn.com/Anti-spam/. Violations will result in use of equipment located in California and other states. Sat, 8 Mar 2008 11:45:44 -0800 SMTP>> EHLO localhost SMTP<< 250-bay0-mc2-f2.bay0.hotmail.com (3.5.0.22) Hello [81.39.245.151] 250-SIZE 29696000 250-PIPELINING 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-AUTH LOGIN 250-AUTH=LOGIN 250 OK SMTP>> MAIL FROM:<[email protected]> SIZE=1367 SMTP>> RCPT TO:<[email protected]> SMTP>> DATA SMTP<< 550 DY-001 Mail rejected by Windows Live Hotmail for policy reasons. We generally do not accept email from dynamic IP's as they are not typically used to deliver unauthenticated SMTP e-mail to an Internet mail server. http://www.spamhaus.org maintains lists of dynamic and residential IP addresses. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and support SMTP>> QUIT LOG: MAIN ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1367: host mx2.hotmail.com [65.54.244.168]: 550 DY-001 Mail rejected by Windows Live Hotmail for policy reasons. We generally do not accept email from dynamic IP's as they are not typically used to deliver unauthenticated SMTP e-mail to an Internet mail server. http://www.spamhaus.org maintains lists of dynamic and residential IP addresses. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and support LOG: MAIN <= <> R=1JY4zH-0001ym-VM U=Debian-exim P=local S=1777 LOG: MAIN Completed Pero en cambio, GMail sí que me lo acepta: # mail [email protected] < /tmp/correo.txt delivering 1JY51y-0001yu-LW R: dnslookup for [email protected] T: remote_smtp for [email protected] Connecting to gmail-smtp-in.l.google.com [216.239.59.27]:25 ... connected SMTP<< 220 mx.google.com ESMTP g11si5603645gve.6 SMTP>> EHLO localhost SMTP<< 250-mx.google.com at your service, [81.39.245.151] 250-SIZE 28311552 250-8BITMIME 250 ENHANCEDSTATUSCODES SMTP>> MAIL FROM:<[email protected]> SIZE=1363 SMTP<< 250 2.1.0 OK SMTP>> RCPT TO:<[email protected]> SMTP<< 250 2.1.5 OK SMTP>> DATA SMTP<< 354 Go ahead SMTP>> writing message and terminating "." SMTP<< 250 2.0.0 OK 1205005717 g11si5603645gve.6 SMTP>> QUIT LOG: MAIN => [email protected] R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [216.239.59.27] LOG: MAIN Completed aunque según mi experiencia, dependiendo de la IP dinámica que te haya tocado, es muy posible que también se te rechacen los correos si alguna vez la ha tenido alguien sospechoso de mandar spam. En definitiva, es un servicio nada fiable. Si tenemos un dominio propio con Custom DNS, crear un registro SPF en el DNS puede ayudar para que no rechacen los correos de tu servidor. En openspf.org tienen un formulario que nos ayuda a confeccionar uno adecuado para nuestro servidor. Las MSN Hotmail Guidelines son un buen sitio donde contrastar todos estos requisitos, que suelen ser bastante comunes: Sender is expected to comply with all technical standards for the transmission of Internet e-mail, as published by The Internet Society’s Internet Engineering Task Force (IETF), including RFC 2821, RFC 2822, and others. After given a numeric SMTP error response code between 500 and 599 (also known as a permanent non-delivery response), the sender must not attempt to retransmit that message to that recipient. After multiple non-delivery responses (see #2), the sender must cease further attempts to send e-mail to that recipient. Sender must not open more than 500 simultaneous connections to MSN Services inbound e-mail servers without making prior arrangements. Messages must not be transmitted through insecure e-mail relay or proxy servers. The mechanism for unsubscribing, either from individual lists or all lists hosted by the sender, must be clearly documented and easy for recipients to find and use. Connections from dynamic IP space may not be accepted. E-mail servers must have valid reverse DNS records. Y fijémonos además en lo que nos decía el mensaje de rechazo de Hotmail: Mail rejected by Windows Live Hotmail for policy reasons. We generally do not accept email from dynamic IP’s as they are not typically used to deliver unauthenticated SMTP e-mail to an Internet mail server. http://www.spamhaus.org maintains lists of dynamic and residential IP addresses. If you are not an email/network admin please contact your E-mail/Internet Service Provider for help. Email/network admins, please visit http://postmaster.live.com for email delivery information and support. Esa lista que menciona de Spamhaus no sólo la usa Microsoft, sino que muchas otras empresas e ISPs se basan en ella para descartar los correos desde determinados rangos de IPs en función de la lista. Con los correos entrantes no tendremos ningún problema siempre que nuestro servidor esté arriba. Los servidores SMTP que nos quieran mandar correo buscarán el registro MX (o el A si no hay MX) en elDNS y salga la IP que salga, ahí se mandará el correo. Para recuperar los correos recibidos en el servidor, puede ser suficiente el clásico comando mail, o con un simple “apt-get install qpopper“, podemos tener un servidor de POP3 listo en pocos segundos. Sin embargo, si nuestro servidor no está arriba por algún problema cuando otro servidor SMTP quiera conectarse al nuestro para enviarle un e-mail, el servidor remoto tendrá que decidir si reintenta el envío más tarde o si lo descarta, por lo que el servicio de recepción de correos tampoco es fiable. Si realmente queremos tener un servidor de correo fiable en nuestro sistema, la solución definitiva puede venir por contratar el servicio de DynDNS MailHop Relay (42.5$/año), específicamente pensado para estos problemas. El servidor SMTP de DynDNS es el que da la cara y nosotros lo usamos como smarthost para mandar los correos a través de él y viceversa, para que él nos los envíe de vuelta, guardándolos temporalmente si nuestro servidor está caído. Bytecoders también trató estos temas hace poco en Aviso de actualizaciones en Debian por e-mail y SMTP: la lacra del SPAM. Correo con nuestro propio dominio con Google Apps Para mí, todos estos problemas con el correo se acabaron cuando apareció el Google Apps y pude usar el equivalente a GMail (con su POP3 y su IMAP) pero creando diferentes direcciones sobre mi propio dominio (vicente-navarro.com). Para ello, lo único que tuve fue darme de alta en el servicio y apuntar los registros MX de mi dominio a los servidores de Google (Configuring Your MX Records): # nslookup > set querytype=MX > vicente-navarro.com Server: 80.58.61.250 Address: 80.58.61.250#53 Non-authoritative answer: vicente-navarro.com mail exchanger = 10 alt1.aspmx.l.google.com. vicente-navarro.com mail exchanger = 15 alt2.aspmx.l.google.com. vicente-navarro.com mail exchanger = 5 aspmx.l.google.com. Authoritative answers can be found from: alt1.aspmx.l.google.com internet address = 72.14.215.114 alt1.aspmx.l.google.com internet address = 72.14.215.27 alt2.aspmx.l.google.com internet address = 64.233.179.27 aspmx.l.google.com internet address = 216.239.59.27 Tras esto, creé buzones de correo (o alias) para cada una de las cuentas que iba a usar y reconfiguré mi servidor para que usara un smarthost: Y para que usara smtp.google.com como smarthost el resto de la configuración, puede quedar igual que estaba antes. Bueno, igual pero no se nos tiene que olvidar poner nuestro dominio en el apartado de “System mail name“. Lo único que tendremos que tener en cuenta es que ahora los correos no se reciben localmente sino en la cuenta de Google Apps (lo que en realidad es más cómodo), pero si aún así fuera necesario traer esos correos a nuestro servidor, siempre podríamos configurarlo para que se los trajera de Google usando POP3. Por supuesto, Google requiere autentificación para mandar correos a través de él, por lo que en el fichero /etc/exim4/passwd.client tendremos que asociar nuestro usuario y contraseña de Google Apps al servidor SMTP: # password file used when the local exim is authenticating to a remote # host as a client. # # see exim4_passwd_client(5) for more documentation # # Example: ### target.mail.server.example:login:password gmail-smtp.l.google.com:[email protected]:contrasenya Independientemente de que vayamos a usar el servidor de HC para enviar y recibir correos en serio o no, es indudable que necesitamos tenerlo bien configurado como servidor de correo para que podamos mandarnos advertencias sobre problemas que pueda haber en el servidor desde nuestros scripts de monitorización. O, simplemente, porque aplicaciones como WordPress mandan correos cada vez que llega un nuevo comentario, por ejemplo. Si el servidor de correo no está bien configurado, las aplicaciones que envían correos como parte de su funcionamiento normal, no podrán hacerlo. Otras cuestiones Backups #!/bin/bash while ! queda_claro do insistir_en_el_backup done no_se_puede_insistir_bastante Creo que no hace falta decir más. Tenemos todo el trabajo invertido en configurar nuestro servidor casero, las bases de datos con los comentarios de nuestros visitantes, nuestras imágenes, nuestro trabajo ahí. ¿De verdad nos vamos a arriesgar a que el disco duro falle o a que inadvertidamente hagamos un “rm -rf *” y desaparezca todo de un plumazo? Para esta tarea, rysnc es nuestro mejor amigo (Backups con rsync), aunque herramientas como tar o cpio también pueden ayudar. Yo recomendaría una copia de todos los ficheros importantes en algún directorio del propio servidor casero y otra/s copia/s en otro/s sistema/s que tengamos a través de de la red con rsync. Para exportar todas las bases de datos MySQL del sistema e incluirlas en el backup, podemos hacer un: mysqldump -uroot -ppassword --all-databases > backup_mysql.bak y lo podríamos recuperar con un: mysql -uroot -ppassword < backup_mysql.bak Más detalles sobre cómo usar el mysqldump en “mysqldump — A Database Backup Program“. El sistema de respaldo Durante el año habrá algunos días, semanas o meses que pases fuera de tu casa. Seguramente esos días te querrás dejar la luz, el agua y el gas de casa cerrados para prevenir incidentes. ¿Qué haces con el servidor casero? ¡Tiene que seguir dando servicio! Si tienes la suerte, como yo, de contar con algún otro ordenador que pueda servir también de servidor casero y de tener algún familiar/amigo con conexión a Internet y que consienta en tenerlo en su casa, una especie de “housing casero”, lo tenemos muy fácil: Instalamos la misma versión de sistema operativo que en el servidor “oficial” y lo llevamos a su nuevo destino. Creamos un nuevo nombre para el otro sistema en DynDNS y lo configuramos para que el ddclient del nuevo sistema lo actualice, pero muchísimo mejor si podemos configurar el router de “la otra casa” para que lo haga automáticamente. Opcional: Preparamos el router y el sistema “hospedado en casa ajena” para arrancar con Wake on Lan. Tenemos que tener en cuenta que si no es el router el que se encarga de actualizar la IP en DynDNS, podemos tener el problema de no saber la IP de destino para enviarle el paquete mágico. Le ponemos una IP fija al sistema o configuramos el router para que le asigne por DHCP siempre la misma y abrimos los puertos necesarios en el router. Creamos una batería de scripts basados en rsync y SSH para sincronizar todos los ficheros de configuración necesarios y adaptar los que varían en el nuevo sistema (por ejemplo, el /etc/ddclient.conf). También deberían actualizar las bases de datos y reiniciar los procesos necesarios tras modificar la configuración. Tener previstos otros scrips para pasar el servicio de un sistema a otro. Al final, esto sólo consiste en que el sistema que sea el primario actualice los registros DNS con su IP y el secundario deje de hacerlo. Tras la estancia en el otro sistema, tendremos que sincronizar los cambios de vuelta al sistema principal y probablemente querramos recoger los logs que se hayan generado allí. Este sistema de respaldo no sólo nos puede servir en caso de tener que apagar nuestro servidor habitual. También lo podemos utilizar mientras hacemos tareas de mantenimiento o si en tenemos problemas con la conexión a Internet o estamos sufriendo un apagón. Los cortes de corriente Otro de los problemas con los que nos tendremos que enfrentar serán los cortes de corriente. Aunque no son muy frecuentes, de vez en cuando tendremos uno y tenemos que tener previsto qué hacer cuando ocurran. Si se trata de un breve corte, lo más importante es que el servidor arranque sólo cuando vuelva a recibir corriente. Para ello, tenemos que buscar el parámetro de nuestra BIOS que lo permite. Por ejemplo, en una VIA EPIA SP8000E, el parámetro se llama AC Loss Auto restart y podemos hacer que la máquina se encienda siempre cuando vuelva la luz, que no se encienda nunca o que vuelva al estado anterior: AC Loss Auto restart The field defines how the system will respond after an AC loss during system operation. Off: Keeps the system in an off state until the power button is pressed On: Restarts the system when the power is back Former-Sts: Restores the system to its previous state En una placa Asus A8N-SLI, el parámetro se llama Restore on AC Power Loss y sólo tiene dos valores posibles, activado o desactivado: Pero si queremos estar prevenidos de verdad ante cortes de corriente, la mejor opción es tener un SAI al que conectar el servidor y el router que da acceso a Internet. Si el servidor es un sistema de bajo consumo, tendremos bastante tiempo de margen para esperar a que vuelva la luz, o al menos, el tiempo suficiente para actualizar nuestro servidor de respaldo por si tiene que entrar en acción. Mantenimiento remoto La posibilidad de conectarnos por SSH a nuestro servidor casero siempre tiene que estar abierta. En mi experiencia, un servidor SSH abierto en Internet trae infinidad de intentos de conexión con reiteradas pruebas con distintos usuarios. Sin ir más lejos, hoy mismo, alguien ha probado 1520 combinaciones diferentes de usuario/contraseña en mi sistema # grep "Invalid user" auth.log.0 | grep "Mar 9" | wc -l 1520 Algunos ejemplos: Mar 9 06:15:05 telemaco sshd[6028]: Invalid user ibm from 61.250.91.34 Mar 9 06:15:09 telemaco sshd[6032]: Invalid user informix from 61.250.91.34 Mar 9 06:40:08 telemaco sshd[7742]: Invalid user stevie from 61.250.91.34 Mar 9 06:40:11 telemaco sshd[7746]: Invalid user kelly from 61.250.91.34 Mar 9 06:40:15 telemaco sshd[7750]: Invalid user rasoul from 61.250.91.34 Es por eso que lo mejor es deshabilitar completamente el acceso con usuario/contraseña y permitir exclusivamente la autentificación por clave pública/privada: Autentificación trasparente por clave pública/privada con OpenSSH. Cambiar el puerto del servidor SSH (por defecto 22) a otro también puede ser una medida útil para evitar algunos de estos insistentes intentos de acceso. Otra herramienta de mucha utilidad para el mantenimiento remoto es conectar un módem a nuestro servidor casero, tal y como vimos en: Configurar Linux para permitir el acceso remoto por módem a la consola y por RAS/PPP. En casos en que el router haya perdido la conexión a Internet, podemos tratar de conectarnos por módem y a través del interfaz de configuración por telnet del router tratar de reiniciarlo. Otra situación útil es en caso de una avalancha de peticiones en la que tú mismo no puedes acceder por el router por la absoluta falta de ancho de banda y, en ese caso, la entrada “por la puerta de atrás” nos puede servir para llegar al sistema sin usar Internet. ¿P2P y hosting casero? Supongamos que necesitamos bajarnos el último DVD de Knoppix por Bittorrent. ¿Es compatible el P2P con sus altas necesidades de ancho de banda con el HC? Pues en principio, puede serlo -en función del número de visitas que recibamos- siempre que limitemos el ancho de banda de subida disponible para P2P a un límite que permita servir los contenidos hospedados a una velocidad razonable. En el mejor de los casos, el uso de P2P en la misma conexión de un HC irá completamente en detrimento de la experiencia de nuestros visitantes, aunque sólo tengamos uno en ese momento, pero que notará que la página descarga más lenta. El mejor consejo al respecto es que si activamos el P2P, deberíamos de estar pendientes de que el tiempo de respuesta sea un mínimo aceptable probando nosotros mismos a conectarnos desde otro sistema de Internet. Si vemos que va muy lento, deberíamos desactivar el P2P. Por supuesto, en caso de un pico de visitas, deberíamos de desactivar el P2P inmediatamente. Scripting Cualquier administrador que se encargue de un servidor UNIX tiene que estar continuamente creándose scripts para no realizar las mismas tareas una y otra vez. Para nosotros, como administradores de nuestro HC no va a ser distinto. Deberíamos de tener unos conocimientos mínimos de scripting que nos serán muy útiles para hacer backups, para analizar logs, para monitorizar el estado de algún proceso, para enviar e-mails con advertencias, etc. A lo largo de este año, yo me he llegado a crear un buen número de scripts. La mayoría son muy específicos de mis necesidades particulares, pero me gustaría dejar aquí uno muy sencillito que nos manda un e-mail cada vez que el ISP nos cambia la dirección IP dinámica: #!/bin/bash cd /root/scripts_ip mv -f ippublica ippublica.old ./ippublica.sh > ippublica if ! diff ippublica ippublica.old > /dev/null then cat cabecera ippublica | mail -s "La IP del servidor ha cambiado - `date +"%g/%m/%d %H:%M"`" [email protected] fi El ippublica.sh puede ser, bien una petición por SNMP al router para ver cuál es la IP del interfaz de WAN: snmpwalk -c comunidad -v 1 192.168.1.1 IP-MIB::ipAdEntAddr|egrep -v '0.0|192.168' | awk '{print $4}' bien un acceso a checkip.dyndns.org: /usr/bin/wget -q -O - http://checkip.dyndns.org/index.html | /usr/bin/fromdos | /bin/sed 's_<html><head><title>Current IP Check</title></head><body>Current IP Address: __' | /bin/sed 's_</body></html>__' El fichero cabecera es algo como: La IP del servidor es ahora: Conclusión En esta entrada he tratado de recopilar lo más importante de lo que me ha sido necesario conocer durante un año completo de autohospedaje en el que creo que el resultado ha sido bastante satisfactorio. Por carambolas del destino, ahora ya he pasado a un hosting profesional, pero la travesía ha valido la pena y la repetiría tantas veces como hiciera falta. Si alguien tiene intención de adentrarse en esta aventura ha de saber que aprenderá mucho y espero que en estas líneas encuentre consejos que le sean de utilidad, como creo que me hubieran sido a mí. También hay que tener en cuenta que también es posible tener un hosting casero sin tomárnoslo muy en serio, de forma que no nos importe en absoluto si tenemos la página caída varios días seguidos, pero creo que si nos ponemos, vale la pena hacerlo lo mejor posible. No hay nada que dé peor impresión en Internet que una página que tarda en cargar o que cada dos por tres esté caída. Esa no es la forma de fidelizar a nuestros lectores. El HC es un poco como tener un perro en casa. Puede ser divertido, te dará muchas satisfacciones, pero a cambio ganas muchas obligaciones: Tienes que estar pendiente de él, te da trabajo y no puedes irte de vacaciones sin buscarle un acomodo. Si te gusto dame puntos

12
6
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.