Category: Networking and Internet

Pound: reverse proxy i load balancing

Reading time: 3 – 4 minutes

A través d’un howto de howtoforge he descobert aquesta eina anomenada Pound. Realment m’ha deixat impressionat per la seva simplicitat i potència al mateix temps. A més m’ha donat molt confiança saber que hi ha almenys un site processant 30M de peticions al dia, unes 600 per segon amb aquest aplicatiu. Aquest tipus de números sempre ajuden a donar confiança en les eines.

Doncs bé, l’eina bàsicament es dedica a capturar totes les peticions HTTP i HTTPs repartint-les després contra els servidors que té en el backend. En cap moment fa de caché ni res similar. Tot i que cal destacar la capacitat de poder fer de SSL wrapper. Així doncs, no cal que els backend facin de servidors SSL, només de servidor HTTP. Obviament pel client s’establirà una connexió HTTPs completament transparent. Si la validació SSL no és correcte Pound ja no envia peticions als servidors que té darrera.

Les funcions de balancejador de càrrega (load balancer) permeten no perdre les sessions establertes pels navegadors dels clients contra els servidor de backend, de fet, Pound implementa sis formes diferents de capturar una sessió per tal de no enviar peticions a un dels backends que no conegui la sessió del navegador.

Suporta funcions de fail-over, així doncs totes les peticions es direccionen només als servidors de backend que se sap que funcionen, la validació que es fa per saber si un servidor esta actiu o no és força simple i a grans trets es basa en paquets ICMP.

Finalment també cal destacar una funcionalitat que m’ha cridat molt l’atenció, ja que permet fer de wrapper d’URL i enviar les peticions que acompleixin certes expressions regulars cap a un o altre servdidor. Això permet, per exemple, enviar els dominis virtuals cap a un o altre servidor. A més, també podem per exemple, enviar les peticions d’imatges cap certs servidors de backend específics.

Al llegir-me la documentació d’aquesta eina el que més m’ha intrigat és saber com resolien el típic problema que presenten les eines d’aquest tipus, els fitxers de logs. M’explico, una cosa molt important a poder controlar des del punt de vista d’un servidor web és saber d’on arriben les peticions si el servidor web no rep les peticions directes d’internet sinó a través d’un balancejador com Pound la IP origen de la petició es perd i per tant, els fitxers de logs dels servidors web no són reals sinó que tenen com a origen sempre el balencejador. A més de totes els problemes associats a no saber d’on venen les peticions, com el control d’accés i d’altres similars.

Doncs bé, bàsicament això es soluciona a través d’una capçalera HTTP afegida des de Pound a la petició web. Així doncs és en aquesta capçalera que s’han d’anar a buscar les dades necessaries per recomposar el fitxer de logs del servidor web. També hi ha mod’s d’apache que ja solucionen aquest tema directament capturant aquesta nova entrada en la capçalera HTTP, concretametn val la pena que no perdeu de vista mod_extract_forwarded2.

Sota el meu punt de vista un gran descobrint i una eina molt interessant per tal de poder montar servidors web’s amb més cara i ulls. No sé si algú l’haura provat 😉

VMWare trick: usar màquines virtuals creades en versions més noves en motors vells

Reading time: 2 – 2 minutes

Quan creem una màquina virtual d’VMWare amb una versió nova del Workstation, per exemple, si després volem usar aquesta màquina amb VMWare server 1.0.x la definició de la màquina virtual que es troba dins del fitxer .vmx no és compatible amb el motor esmentat. Així doncs, no podem llençar la màquina i el que veurem és un error que diu:

Configuration file was created by a VMware product with more features than this version

Doncs bé, aprofitant que les definicions de les màquines virtuals estan fetes amb fitxers de text podem editar-los i arreglar aquest problema, almenys jo ho he pogut fer gràcies a le notes de l’article: How To Convert VMware Server 2.0 Beta VMs into VMware Server 1.0.4 escrit a Desktop Virtualization.

Els canvis a fer són molt simples, primer cal modificar el fitxer .vmx que defineix la nostre màquina. Dins del fitxerlocalitzem on posa:

virtualHW.version = “6″

canviem la versió per:

virtualHW.version = “4″

Ara cal canviar també el fitxer on es defineix el disc dur virtual que usarà la màquina, això ho trobareu al fitxer .vmdk localitzem la part del codi on posa:

ddb.virtualHWVersion = “6″

i la canviem per:

ddb.virtualHWVersion = “4″

A mi m’ha funcionat, de totes formes el meu escenari era molt concret no sé si funcionarà per qualsevol escenari similar, tot i que jo opino que si.

phpList: newsletters i mailings de correu OpenSource

Reading time: 6 – 9 minutes

phpList logoFa temps l’O.Manyà em va demanar una aplicació per fer just això i no n’hi vaig saber dir cap, el més frustrant és que ja coneixia aquesta eina de fa molt de temps però mai li havia fet massa cas. De fet, la veia com una evolució del mailman. Però ara me’n adono que és algo molt més corporatiu, és a dir, no és pas una eina per gestionar llistes de correu (diria que no és capaç de fer-ho). Sinó que esta molt més orientat al concepte de newsletter o de mailings. O sigui, ideal per emetre comunicats d’empresa als nostres clients o per escriure mailings personalitzats als nostres clients informant del que sigui. Després de fer un repàs per les moltíssimes funcionalitats què té diria que la pinta és excel·lent. A més si ús passeu per la web del phpList veure-ho que té força screenshots i screencasts que poden donar-vos una idea molt aproximada de tota la funcionalitat que té l’eina.
A continuació adjunto el llistat de funcionalitats que té l’eina, com deia val la pena invertir-hi una estona en donar un cop d’ull. M’ha cridat molt l’atenció la possibilitat de poder generar mailings a partir de subscripcions a RSS. Així doncs, si a l’empresa tenim un blog podriem emetre un butlletí de notícies de forma automàtica gràcies a aquesta funcionalitat.

  • The Web Interface lets you write and send messages, and manage phplist over the internet.
  • phplist keeps sending messages from your web server, even after you shut down your computer.
  • 100 000 + subscribers. phplist is designed to manage mailing lists with hundreds of thousands of subscribers. phplist is excellent with smaller lists too!
  • No duplicate messages. No ‘forgotten’ messages. phplist manages message delivery with a message queue, ensuring that every subscriber gets the email message, and that no subscribers receive two copies, even if they’re subscribed to more than one list!
  • Open/View Tracking tells you how many users opened your email message. This provides a minimum statistic, as many email clients with privacy or security policies block images (gmail, thunderbird, and others).
  • Click Tracking tracks links and URLs. Statistics can be viewed by message, URL or subscriber.
  • Multiple Subscribe Pages allow you to choose many different combinations of templates, languages, user attributes and lists.
  • Templates are completely customizable, and make site integration a breeze.
  • Multiple Templates on different subscribe pages can integrate phplist with several different web sites.
  • Subscriber Attributes like ‘name’, ‘country’, and other personal information, are completely customizable. You can specify what information you need to get from users when they subscribe.
  • User Specific Content. You can use Subscriber Attributes in message content to make each and every email message personalized with the subscribers name, country, or any other attribute.
  • HTML email messages. Subscribers can be given the choice between text or html email messages. You decide whether subscribers can choose, what the default choice is, and what format a message is sent in: text only, html only, or both!
  • The HTML Editor allows you to edit html messages from phplist using FCKeditor. TinyMCE is also available.
  • Internationalization. phplist is available in English, French, German, Spanish, Portuguese, Traditional Chinese, Dutch, Vietname and Japanese and translation work is in progress for other languages.
  • Easy Install via Fantastico, FTP upload, or SSH.
  • Multiple List Administrators. The super-admin can assign lists to List Managers, who can manage their users and lists. The super-admin user can ‘prepare’ messages that can be sent by list managers to their lists.
  • Subscriber Preferences. Every email message contains personalized URLs for subscribers to update their preferences or unsubscribe. Subscribers can update their own information and keep your database up to date. Unlike most other mailing list managers, in phplist subscribers can change their email address.
  • The User Management tools are excellent to manage and maintain large databases of subscribers.
  • Bounce Processing keeps your database clean of unused and non-existent email addresses.
  • Advanced Bounce handling let’s you teach phplist to distinguish between permanent and temporary message-delivery errors. You can define automated actions on receipt of bounce messages according to matches with your regular expressions.
  • CSV Import and Export. Use CSV and tab delimited files to import your existing list of users or to export the users on the phplist system for use in your in-house database. phplist’s database has a ‘foreign key’ to help keep multiple copies of databases synchronized without duplicating users.
  • Attachments can be uploaded and included in messages for download.
  • Send a Web page. Tell phplist the URL of a web page you want to send to your users, and phplist will fetch it and send it. You can even put subscriber-specific parameters in the URL.
  • RSS feeds can be automatically sent to a mailing list weekly, daily, or monthly.
  • PDF messages can be automatically created and sent as attachments to ensure that your message is seen the way it was designed by all your subscribers, regardless of their email message reader.
  • Batch Processing is useful in shared hosting environments. Set the maximum number of sent messages in a given time period.
  • Throttling can limit the load on your server so it doesn’t overload.
  • Domain Throttling limits the number of emails to specific domains to keep on the friendly side of their system administrators.
  • Scheduled Sending let’s you tell phplist when the message is to be sent.
  • Repetition. A message can be repeated automatically to send updated dynamic content and attachments.
  • Text from HTML. Text email messages are managed fluently in phplist. phplist will automatically create a text version of an html message. Optionally the message composer can create it manually.
  • PGP signing and encrypting (soon).
    Send your message digitally signed or encrypted, or both.
  • Email to Fax (soon).
    Configure the details of your favourite email 2 fax gateway and phplist will send the HTML version of the message as a PDF attachment to your fax gateway. The fax will include the images in the HTML.
  • Integration with other tools. Several systems exist on the internet that integrate phplist with your favourite CMS or blogging tool. Check out the Documentation for a list.

Generador registre SPF pel DNS

Reading time: < 1 minute Per casualitat he trobat una eina que pot ser molt útil si heu de crear el registre TXT del DNS, amb les dades SPF necessaries pel vostre domini. Curiosament és una web de Microsoft, com que aquesta colla tot ho fan igual s'ha de dir que ho han fet en forma d'assistent.

A més de la mateixa web he extret aquest gràfic que és força explicatiu del que és i com funciona el SPF:

SPF schema

iubui surt a la llum

Reading time: 2 – 4 minutes

logo iubui by enixit

Doncs només fa unes hores que ha sortit a la llum iubui l’empresa del meu gran amic Oriol. En la que a més també hi tinc alguna coseta a veure encara que sigui molt petita. Ja que he montat el servidor web. De fet, el gran mèrit obviament és de l’Oriol i és a qui li disitjo tota la sort del món. Per això també hi vull contribuir amb aquest petit gra d’arena. És a dir, intentant portar-li alguna que altre visita des d’aquest blog.

Potser ja comença a ser hora que expliqui alguna cosa del projecte, no? doncs bé, jo ho explicaria com un sistema de donar-li la volta a eBay, és a dir, encomptes d’anar a oferir coses perquè d’altres facin una puja per comprar-les. Aquí es tracta de fer un matching entre la gent que vol oferir coses i la gent que vol demanar coses. Però no pas com uns simples classificats sinó algo més elavorat i aprofitant la semàntica de la informació perquè la pròpia web ajudi a posar en contacte els compradors i venedors.

Segurament es pot explicar millor, per això des d’aquí convido a l’Oriol Mercadé a participar en el meu següent podcast on estaria bé que ens expliques algo més sobre iubui, a veure si realment el projecte té la vida que tots esperem.

UPDATE: demano el vot al Newsroom de MobuzzTV per l’article que parla de iubui.

UPDATE 2: bona descripció del Ferran, un dels programadors de iubui:

iubui.com. No busques, Pídelo! Se trata de ver la compra-venta de productos y servicios desde un nuevo paradigma que sólo es posible gracias a Internet. Iubui es una plataforma donde, por primera vez, el protagonista no es el vendedor ni lo vendido. El protagonista es el comprador, sus necesidades y sus condiciones: con el proyecto iubui el comprador ya no necesita hacerse un experto en lo que va a comprar, no necesita conocer donde se vende lo que quiere, ni necesita gastar tiempo y energías para realizar una compra. Con la plataforma iubui son los proveedores los que aconsejan al comprador, los que ofrecen sus producto y gastan energías en lo que les aporta beneficio. Y iubui.com ya es una realidad, hoy empezamos a operar. Si queréis y tenéis tiempo os invito a que pidáis todo aquello que necesitéis y tengáis paciencia porque estoy seguro que os harán ofertas muy interesantes.

Actualitzar Ubuntu Dapper (6.06) a Hardy (8.04) LTS

Reading time: 2 – 2 minutes

Com ja vaig comentar en el segon podcast acostumo a montar Ubuntu LTS com a servidor de producció pels clients. Així doncs, estem apunt de veure la nova versió d’aquest aplicatiu i passarem de la versió 6.06 a la 8.04. Només volia fer-vos saber que ja he fet dues actualitzacions i ambdues m’han funcionat prou bé. Això si s’ha de dir que es triga força estona i després val la pena invertir un rato en mirar que els fitxers de configuració dels aplicatius que usabeu quan s’han actualitzat continuen funcionant bé.

Les instruccions per fer l’actualització són força senzilles. Primer de tot comenceu per actualitzar la versió que ja teniu funcionant:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Ens assegurem que a /etc/apt/sources.list tenim el següent contingut:

deb http://archive.ubuntu.com/ubuntu dapper main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu dapper-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu dapper-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu dapper-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu dapper-backports main restricted universe multiverse

Instal·lem l’eina per fer actualitzacions de versió al servidor:

sudo aptitude install update-manager-core

Finalment arriba l’hora de la veritat, fem l’actualització a l’última versió:

sudo do-release-upgrade -d

NOTA: fixeu-vos que uso el paràmetre -b això és perquè a l’hora d’escriure l’article encara falten quatre dies perquè surti oficialment la versió estable de la Ubuntu 8.04 LTS (alias Hardy).

Com deia doncs, a mi això m’ha funcionat prou bé. Comentar que aquest article és bàsicament una traducció d’un article d’Ubuntu Tutorials, que és d’on he seguit les instruccions per fer les actualitzacions.

Rack Tables: inventari dels servidors que tenim als racks

Reading time: 2 – 3 minutes

racktables.png

A primer com de vista i pel que puc veure en la demo, ja que no l’he usat mai encara, m’agrada molt el que preten fer el Rack Tables. Bàsicament la idea és mantenir un inventari de què hi tenim montat a cada un dels armaris rack que tenim destribuits per tot el món. Això quan tens un garbuix al cap del que té cada client com em passa a mi sovint pot ser molt útil. Sobretot perquè s’hi poden adjuntar fotografies o portar un control exahustiu de les U’s que hi tenim lliures, dels ports de switch ocupats, etc. Per tant, diria que és una eina molt recomanable per administradors de sistemes. Fins hi tot diria que imprescindible per admins d’empreses de serveis que no tenen contacte diari amb els datacenters dels clients.

També permet portar un registre dels espais d’IPv4 en això s’assembla una mia al IPplan malgrat les funcions d’aquest aplicatiu són molt més simples i es redueixen a funcions purament d’inventari. Al estar orientat a servidors ens permet mantenir un registre dels serveis virtuals que tenim corrent, pools de màquines i fins hi tot algunes funcions de monitorització a nivell de gràfiques sobretot. Per cert, m’agradaria descatar que potm ostrar l’estat dels balancejadors de carrega web, per exemple.

És important recordar que és una eina d’inventari, en això vull dir que el que aquí interessa no és pas veure com les coses canvien en temps real. Sinó poder mantenir un registre de com tenim o volem tenir montada l’infraestructura. És a dir quelcom més proper a una ajuda per mantenir la documentació que no pas una eina de supervisió. Per això ja tenim nagios, no?

No ho havia comentat però l’aplicació funciona via web i malgrat no m’hi he fixat massa diria que és la típica aplicació feta amb PHP i MySQL. Potser per ser una aplicació web la trobo una mica massa anticuada tan en el disseny com en la poca introducció de funcionalitats AJAX que la facin més usable i atractiva a l’usuari.

SMB per FUSE (fusesmb)

Reading time: 2 – 2 minutes

FUSE com segur que ja sabeu es carrega com un mòdul del kernel i ens permet accedir al sistema de fitxers a través des d’una aplicació d’usuari, és a dir a una aplicació que no necessariament ha de tenir permisos d’administrador. Doncs bé en aquest cas es tracta de navegar pels WORKGROUPS, hosts, shared folders i impresores publicades a la xarxa a través del protocol SMB. Perquè ens entenguem el protocol que usa windows de tota la vida per compartir recursos de xarxa. Doncs amb el petit aplicatiu del que parlo podrem navegar per tots aquests recursos de xarxa com si es tractés de directoris del nostre sistema de fitxers linux. Realment útil i còmode això de poder accedir a recursos de xarxa sense haver de montar aquests recursos des de la nostre CLI.

Si els recursos de xarxa compartits ho estan sota autenticació al accedir al directori que representa el recurs en denegarà l’accés. Perquè això no passi cal passar com a paràmetres del fusesmb el nostre usuari i paraula de pas del recurs de xarxa. El dolent, és que si tenim diversos usuaris per autenticar-nos segons el recurs no ho podrem expresar des d’una mateixa instància del programa. Així doncs, pel meu gust li falta algun petit workaround que ens llenci interactivament la pregunta d’usuari i paruala de pas a l’entrar a un recurs protegit.

Malgrat això el fusesmb considero que és una eina molt còmode per accedir als recursos de xarxa sobretot si hi podem accedir amb el mateix usuari i password, o sigui, el que acostuma a passar si la xarxa a la que estem és la nostre.

p4p la evolució del p2p

Reading time: 1 – 2 minutes

Aquesta setmana arran d’un article de bandaancha he descobert el P4P. La idea té molt bona pinta, a més és una solució en la que sembla que tots hi sortirem guanyant els usuaris de P2P i els operadors. Es tracta de que quan fem una connexió P2P el ISP intentarà que el tràfic dels nostres peers vingui de dintre de la mateixa xarxa. Així doncs, l’operador no ha d’enviar tràfic cap a d’altres operadors sinó que tot queda a casa. A més als usuaris ens beneficiem perquè ens arribarà més ràpid.

p4p.png

Doncs pel que he pogut investigar el tema esta encara molt verd. Ja que no he trobat cap prova de concepte i tampoc cap snippet ni res de res. Així doncs encara estic amb les ganes de veure alguna cosa decent. Tot i que resulta que hi ha operadors com Telefonica que estan fent proves, estaria bé que expliquessin com. Perquè molt presentar resultats però res més.

Si algú sap algo del tema que avisi…

openfiler: potent i complicat de configurar

Reading time: 18 – 30 minutes

M’ha costat deu i ajuda posar a funcionar l’openfiler al final ja era una qüestió d’honor. Després de provar amb la versió pre-instal·lada com appliance i amb dues versions instal·lades per mi no hi havia manera de que funcionés tot plegat com volia.

Problema reconeixer volums lògics pre-creats

El primer gran problema ha estat que jo ja tenia un volume group creat, amb dos logic volumes (unitats lògiques d’informació usades per LVM). Doncs bé malgrat el linux me’ls retornava sense problemes amb el vgdisplay i lvdisplay quan anava a l’interficie de l’openfiler no hi havia manera que apareguessin els volums lògics. El grup de volums si que sortia però els lògics no. Doncs bé la solució l’he trobat després de molt buscar pels forums a aquest thread: How to get volumes back after reinstallation without config backup.

La gràcia esta en un script que bàsicament genera un fitxer XML de configuració que usa l’openfiler per saber quins volums hi ha al sistema: /opt/openfiler/etc/volumes.xml. El fitxer és força simple i només té una llista de volums lògics relacionats a un grup de volums. L’script també afegeix al /etc/fstab les línies necessaries perquè aquests volums lògics es montin a l’arrancar el sistema.

Còpia de l’script que he trobat al forum: remake_vol_info.

Problema LDAP amb tots els serveis i especialment amb el SMB

Doncs bé, aprofitant que openfiler porta un servidor LDAP volia gestionar les comptes de tots els serveis a través d’un únic punt. Així doncs, el primer problema ha estat saber com activar el servidor que porta internament perquè la documentació no ho explica massa bé, ja que si anem a serveis i li fem un enable sense donar cap error no s’aixeca ni a la de tres. Aprofito per comentar que la interficie gràfica de l’openfiler és realment pèssima i difícil d’entendre. A més, l’experiència d’usuari esta molt poc cuidada perquè moltes coses donen errors i no ho explica retorna enlloc. Així doncs t’hs de buscar la vida monitoritzant els fitxers de logs del linux que té per darrera.

Llavors he intentat actualitzar el sistema a través de la funció d’update que porta la pròpia interficie. Doncs be, també fallava així doncs ho he provat des de la línia de comandes amb un simple:

conary updateall

La cosa fallava amb el mateix error:

...
Warning: Unhandled exception occured when invoking callback
/user/lib/pgthon2.4/site-packages/conary/streams.py:416
...

Després de googlejar una bona estona, la solució ha estat:

conary update conary --replace-files
conary updateall --replace-files

Amb això he aconseguit finalment fer update. Però el problema amb LDAP continuava igual. Al final he deduit que si posava la informació a accounts -> authentication. Amb el password que he posat al fer la instal·lació per l’usuari de configuració del web la part d’usuaris i grups semblava que s’activa i el LDAP server començava a funcionar tot solet.

ldap.png
<div class="imatge" style="text-align: center;"></div>

Així doncs, he pogut accedir a la gestió de comptes i crear un grup d’usuaris i un usuari de proves. Doncs bé, després de suar tinta per entendre tot el tema de gestió de shares i de veure que no hi havia manera d’accedir als recursos compartits de forma autenticada, he decidit aprofitar la meva experiència en linux per veure com estava tot configurat.

La qüestió és que he vist que tan el SMB, com el FTP, HTTP/WebDav, etc. anaben contra PAM però aquest no tenia configurat cap enllaç cap a LDAP, per tant, per molt que estigués funcionant era impossible que mai autentiques cap usuari.

Llavors he executat el authconfig per configurar l’autenticació PAM contra LDAP, i l’he deixat així:

<div class="imatge" style="text-align: center;"><img title="authconfig screenshot" src="http://fitxers.oriolrius.cat/2185/authconfig_thumb.png" alt="authconfig.png"><br><br><a href="http://fitxers.oriolrius.cat/2185/authconfig.png">original size</a></div>

Al marcar l’autenticació LDAP per SMB, no ús ho perdeu m’ha dit que faltava el paquet pam_smb, o sigui, el pàquet de PAM que té el handler capaç de gestionar la connexió contra LDAP pel samba. Algú em pot explicar com pretenien la gent d’openfiler autenticar samba amb LDAP si no hi havia això instal·lat? aquí ja he arribat a la conclusió que això de l’openfiler esta verdíssim.

Bé doncs, després de suar una mica amb tot això que comento ja funciona tot contra LDAP a la perfecció!!! realment he de reconeixer que sóc una persona obstinada,eh!? perquè n’hi ha per deixar-ho correr. Després de tot el que he explicat i les hores que he hagut d’invertir per descobrir-ho.

Scroll to Top