Windows Live Writer e WordPress: errore Invalid response document returned from XmlRpc server

In alcune circostanze può capitare che Windows Live Writer non riesca a interfacciarci con un Blog basato su WordPress, restituendo questo errore ogni volta che si cerca di aggiungere un account:

image

Nonostante i parametri siano tutti corretti non c’è verso di farlo comunicare con l’XmlRpc Server.

Dopo ore passate ad analizzare i log di Windows Live Writer, che si trova nella directory C:\Users\<utente>\AppData\Local\Windows Live Writer\Windows Live Writer.log, ho notato un elemento interessante:

      </value>
    </param>
  </params>
</methodRespons",""
WindowsLiveWriter,1.7416,Fail,00018,12-Apr-2012 12:37:05.651,"WindowsLive.Writer.Extensibility.BlogClient.BlogClientInvalidServerResponseException: Invalid Server Response – The response to the blogger.getUsersBlogs method received from the blog server was invalid:

in particolare la riga:

</methodRespons",""

sembra essere malformata.

Sono quindi andato alla ricerca del file che la generasse e ho trovato la soluzione nel file /wp-includes/class-IXR.php dove attorno alla riga 402 troviamo la parte di codice che genera quella parte di XML:

// Create the XML
$xml = <<<EOD
<methodResponse>
  <params>
    <param>
      <value>
      $resultxml
      </value>
    </param>
  </params>
</methodResponse>

EOD;

nonostante sembra tutto corretto, ho provato ad aggiungere 4 o 5 righe vuote prima di EOD:

    </param>
  </params>
</methodResponse>

 

 

EOD;

ho salvato il file e ho ripravo.

Magicamente ora ha funziona tutto!!

Internet Connectivity Evaluation Tool

L’Internet Connectivity Evaluation Tool (http://www.microsoft.com/windows/using/tools/igd/default.mspx) è uno strumento web che vi consente di verificare se il vostro dispositivo router supporta diverse tecnologie.

I test che vengono effettuati non richiedono nessuna modifica o diritto sul router e sono:

  • Basic Internet Connectivity Test
    This test is intended to ensure that your computer has basic Internet connectivity, which is needed for the rest of the tests.
  • Network Address Translator Type
    One primary function of most home Internet routers is Network Address Translation (NAT). Routers providing NAT support assign private IP addresses on the local network. NAT maps these private addresses on the inside network to a public IP address on the outside network so that computers behind the Internet router can communicate with the rest of the Internet. Since Network Address Translators can work in different ways, this test uses Microsoft servers to identify your router’s NAT type. Some protocols work better through routers that act as cone-type NATs than routers that act as symmetric-type NATs.
  • Traffic Congestion Test
    Internet routers sometimes lose information that is being transferred across the Internet when they experience congestion (full router queues). This loss of information is known as packet loss. Internet protocols like the Transport Control Protocol (TCP) can use packet loss as a congestion indicator. Explicit Congestion Notification (ECN) is a mechanism that provides routers with an alternate method of communicating network congestion. This notification effectively reduces TCP retransmissions and increases throughput. This test attempts to download a short Web document, first with ECN enabled and then again with ECN disabled. If both downloads succeed, the test passes, which indicates that your Internet router successfully allows packets through with ECN options set.
  • TCP High Performance Test
    Window scaling is a Transport Control Protocol (TCP) option introduced for addressing performance problems. Some Internet routers cause TCP data transfers that use window scaling to fail, particularly when there’s a mismatch between the scales chosen by two computers transferring the data. This test downloads a series of Web documents of increasing length until either an incomplete download is encountered or all downloads succeed. Success indicates that your router allows Windows Vista to negotiate the best data transfer rate and help improve download speeds.
  • UPnP Support Test
    Many applications need to open ports (allow incoming traffic) through an Internet router, particularly when both communicating endpoints are behind different NATs. Modern routers allow hosts to create such open ports using Universal Plug and Play (UPnP). This test ensures that the router has UPnP enabled, can support a reasonable number of open ports, and can maintain these settings.
  • Multiple Simultaneous Connection States Test
    This test creates 80 concurrent TCP connections to external Web servers and keeps them alive over the period of two minutes by attempting continuous data download using HTTP. Passing this test indicates that your router robustly supports multiple computers or programs accessing the Internet simultaneously.

Installazione del proxy server Squid in ambiente Windows – Parte 1/2

Scrivo questa guida perché sempre più spesso nelle aziende nasce l’esigenza di monitorare ed eventualmente filtrare il traffico internet dei dipendenti.

Ci sono diversi software con cui implementare un server proxy, alcuni commerciali e alcuni gratuiti. In questa guida vedremo come implementare un server proxy in ambiente Windows completamente integrato in Active Directory a costo zero.

Il prodotto in questione è Squid (http://www.squid-cache.org/), originariamente nato per l’ambiente Linux è disponibile anche il porting su piattaforma Windows.

L’integrazione con Active Directory è possibile se lo installiamo su una macchina sia Linux che Windows, in ambiente Linux la configurazione per l’autenticazione in AD è leggermente più complessa di quella in ambiente Windows.

Squid può essere installato in qualunque macchina della nostra rete non necessariamente con due schede di rete, nel qual caso dovrà fare anche da gateway.

Come prima cosa dobbiamo scaricare Squid dal sito http://squid.acmeconsulting.it/index.html, seguiamo le indicazioni per Squid 2.7 per Windows -> Squid Download Page -> mirror 1/mirror 2 -> e qui scarichiamo l’ultima versione Stabile, al momento è la 2.7.STABLE8.

Una volta completato il download scompattiamo il file .zip nel percorso c:\squid. Copiamo questi tre file nel percorso c:\squid\etc:

  • squid.conf.default ==> squid.conf
  • mime.conf.default ==> mime.conf
  • cachemgr.conf.default ==> cachemgr.conf

Apriamo il file squid.conf e apportiamo alcune modifiche necessarie per il primo avvio:

  • Sezione OPTIONS FOR AUTHENTICATION
    • Togliamo il commento su queste tre righe e completiamo la prima in modo da avere:

      auth_param ntlm program c:/squid/libexec/mswin_ntlm_auth.exe
      auth_param ntlm children 5
      auth_param ntlm keep_alive on

      Questi parametri indicano a squid di usare l’autenticazione NTLM, di usare il programma mswin_ntlm_auth.exe per eseguire l’autenticazione e di usare 5 processi contemporanei per l’autenticazione.

  • Sezione ACCESS CONTROLS
    • Di default Squid concede l’accesso dalle reti locali che hanno indirizzi ip privati delle 3 classi standard, se la nostra rete non rientra in queste dobbiamo aggiungerla a queste 3 righe:

      acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
      acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
      acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
    • Nella configurazione base Squid concede l’accesso esclusivamente alle seguenti porte:

      acl SSL_ports port 443
      acl Safe_ports port 80  # http
      acl Safe_ports port 21  # ftp
      acl Safe_ports port 443  # https
      acl Safe_ports port 70  # gopher
      acl Safe_ports port 210  # wais
      acl Safe_ports port 1025-65535 # unregistered ports
      acl Safe_ports port 280  # http-mgmt
      acl Safe_ports port 488  # gss-http
      acl Safe_ports port 591  # filemaker
      acl Safe_ports port 777  # multiling http

      Anche qui se abbiamo altre esigenze dobbiamo aggiungere le porte che vogliano possano essere raggiunte.
    • Subito dopo l’ultima ACL dobbiamo inserirne una per verificare l’autenticazione in Active Directory:

      acl Authenticated proxy_auth REQUIRED

      e impostare una regola di accesso per negare tutte le sessioni non autenticate:

      http_access deny !Authenticated


      da inserire subito dopo la riga:

      # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

  • Sezione DISK CACHE OPTIONS
    • In questa sezione dobbiamo impostare i parametri di configurazione della cache su disco, per far questo togliamo il commento alla riga:

      cache_dir ufs c:/squid/var/cache 100 16 256

      e modifichiamo i parametri secondo le nostre necessità.
      Tenendo conto che i tre parametri hanno questo significato:
          100 = Dimensione massima in MB della cache su disco
            16 = Numero di sottodirectory di 1° livello
          256 = Numero di sottodirectory di 2° livello
      Inizialmente possiamo lasciare al valore di default questi 3 parametri.
  • Sezione LOGFILE OPTIONS
    • In questa sezione definiamo il percorso e il tipo del file di log degli accessi che viene generato da Squid.
      Il percorso viene definito dalla seguente direttiva:

      access_log c:/squid/var/logs/access.log squid

      mentre il tipo viene definito dalla riga:

      logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

      in questo caso definiamo un formato di log chiamato squid e lo usiamo nel comando access_log.
  • Sezione ADMINISTRATIVE PARAMETERS
    • In caso di errore o di accesso a un sito non autorizzato Squid visualizza una pagina con i dettagli indicando anche un indirizzo e-mal dell’amministratore di sistema. A tal proposito possiamo modificare questo indirizzo tramite la direttiva seguente:

      cache_mgr <indirizzo_email>
  • Sezione ERROR PAGE OPTIONS
    • L’ultimo parametro da modificare è la lingua in cui vogliamo vengano visualizzate le pagine di errore, per far questo usiamo questa direttiva:

      error_directory c:/squid/share/errors/English

      dove al posto di English inseriamo il nome della directory che rispecchia la lingua che vogliamo utilizzare all’interno della cartella c:/squid/share/errors, nel caso della lingua Italiana abbiamo:

      error_directory c:/squid/share/errors/Italian

A questo punto la configurazione di base di Squid è terminata e possiamo mandarlo in esecuzione per la prima volta. Apriamo un quadro dos, posizioniamoci nella directory c:\squid\sbin e lanciamo il comando:

squid -z

in modo da creare le directory della cache. Se non abbiamo commesso errori nel file di configurazione dovremmo vedere qualcosa del tipo:

C:\squid\sbin>squid -z
2010/04/24 11:33:24| Creating Swap Directories

che ci segnala che la creazione delle directory è stata eseguita con successo, altrimenti vedremo qualcosa del tipo:

C:\squid\sbin>squid -z
2010/04/24 11:41:28| parseConfigFile: squid.conf:4257 unrecognized: 'error_directoryxxx'
2010/04/24 11:41:28| Creating Swap Directories

nel qual caso abbiamo commesso qualche errore di sintassi. (In questo caso era voluto!!).

NOTA: Se installiamo squid nella directory di default c:\squid non dobbiamo mai specificare il percorso del file di configurazione, se invece usiamo un percorso diverso è necessaroio modificare tutti i riferimenti all’interno del file squid.conf e usare il parametro -f configfile ogni volta che lanciamo il comando squid.exe.

Ora possiamo installare Squid come servizio e iniziare a testarlo. Per far questo lanciamo il comando:

C:\squid\sbin>squid -i
Registry stored HKLM\SOFTWARE\GNU\Squid\2.6\Squid\ConfigFile value c:/squid/etc/squid.conf
Squid Cache version 2.7.STABLE8 for i686-pc-winnt
installed successfully as Squid Windows System Service.
To run, start it from the Services Applet of Control Panel.
Don't forget to edit squid.conf before starting it.

Se tutto è andato a buon fine sarà creato il servizio Squid. Se vogliamo chiamarlo in modo diverso dobbiamo aggiungere il parametro -n servicename.

Una volta creato il servizio dobbiamo avviarlo con il comando:

net start Squid

e dovremo ricevere come output:

The Squid service is starting.
The Squid service was started successfully.

Verifichiamo che Squid sia effettivamente in ascolto tramite il commando:

C:\squid\sbin>netstat -na | findstr :3128
  TCP    0.0.0.0:3128           0.0.0.0:0              LISTENING

Come si vede chiaramente squid è in ascolto sulla porta di default 3128.

Apriamo Internet Explorer in un client e configurazione le impostazioni del proxy tramite il menù Tools  > Internet Options -> Connections -> LAN Settings e impostiamo il proxy server come evidenziato in figura:

sostituendo l’indirizzo e la porta del server con quelli della nostra configurazione.

Torniamo al browser e proviamo a raggiungere un sito qualunque, se tutto funziona correttamente dovrebbe  visualizzarsi la pagina senza alcun problema.

Per verificare l’utilizzo effettivo del proxy, possiamo usare uno dei vari test online del tipo (http://www.lagado.com/proxy-test) oppure verificare il file access.log nella cartella C:\squid\var\logs.

Se invece appare una finestra del tipo:

che ci chiede le credenziali di accesso significa che il proxy sta funzionando ma c’è qualche problema con l’autenticazione NTLM.

In questo caso dobbiamo modificare il livello di autenticazione LAN Manager nel valore:
Send LM & NTLM – use NTLMv2 session security if negotiated

Per semplicità possiamo modificare la Default Domain Policy così da configurare tutte le macchine nel Dominio. L’impostazione si trova all’interno della chiave:
Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options -> Network security: LAN Manager authentication level

Una volta apportata la modifica aspettiamo che la policy venga applicata o forziamola con il comando GPUPDATE /force, dopodiché riproviamo e se tutto è andato bene questa volta la richiesta di username e password non dovrebbe comparire.

Con le procedure fin qui indicate la configurazione base di Squid è terminata, l’accesso è consentito a tutti per qualunque sito e un log viene generato ad ogni accesso.

Nella prossima parte vedremo alcuni parametri per l’ottimizzazione di Squid e come configurare l’impostazioni del proxy in automatico nel browser.

Parte 2

DropBox: Spazio disco online

Vi segnalo un interessante servizio che ho scoperto solo ieri e che magari molti di voi già conosco.

Chi come me si trova a lavorare su diversi computer, spesso anche non propri, ha necessità di accedere ai dati personali e questo a volte implica il ricorso a dei trucchi da mago o alla classica chiavetta USB.

Un modo più comodo potrebbe essere quello di utilizzare il servizio fornito da DropBox che mette a disposizione spazio disco on-line da poter usare con un client disponibile per tutte le piattaforme o direttamente online.

I tagli sono 3, uno gratis da 2GB e due a pagamento da 50 e 100GB per  rispettivamente $99,00 e $199,00 anno.

Una volta installato il client verrà creata una cartella all’interno dei Documenti ed il contenuto sarà sincronizzato tra tutti i computer collegati all’account.

Per registrarvi usate questo link: https://www.dropbox.com/referrals/NTYyNDkzODE5 riceveremeo entrambi 250MB di spazio bonus.