Archive for the ‘internet’ Category.

Client Cisco su Windows 8 che da un errore con “Reason 442″

Una roba tipo questa

errore cisco reason 442

Andate nel rigiregistrodi sistema alla voce:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA\DisplayName

Alla voce DisplayName troverete una roba del tipo:

per i386: @oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter
per x64: @oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows

Nota che @oemXXX può avere come un XXX un variabile da installazione a installazione.

Per correggere l’errore deve essere semplicemente bonificata la descrizione della scheda di rete togliendo “@oem8.inf,%CVirtA_Desc%;” e lasciando la mera descrizione, cosi:

per i386: Cisco Systems VPN Adapter
per x64: Cisco Systems VPN Adapter for 64-bit Windows

Non serve riavviare nulla, provate a riconettervi, a me funziona :-)

Squid rallenta moltissimo con molti client connessi

Avendo dovuto collegare una filiale ad un proxy di un’altra filiale via MPLS mi sono trovato nella situazione per cui lo squid cui salivano di molto il numero di client collegati rallentava moltissimo arrivando verso le mille connessioni ESTABLISHED.
Non sembrava una questione di banda, ram o carico sul disco, ma proprio il client che fatica a farsi ascoltare da squid, si vede anche usando squidclient.

Ho fatto del tuning sulla macchina modificando parametri di sistema:

echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 30 > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

echo 256960 > /proc/sys/net/core/rmem_default
echo 256960 > /proc/sys/net/core/rmem_max
echo 256960 > /proc/sys/net/core/wmem_default
echo 256960 > /proc/sys/net/core/wmem_max
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_sack
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

e spostando nel ram disk la directory della cache di squid

/etc/init.d/squid stop
/etc/init.d/squid stop
mkdir /dev/shm/squid
chown proxy /dev/shm/squid
chgrp proxy /dev/shm/squid
squid -z
/etc/init.d/squid stop
/etc/init.d/squid restart

cache_dir ufs /dev/shm/squid 900 16 256

ma ho solo ottenuto di farlo andare più forte PRIMA di arrivare alla 1000 connessioni.
Poi mi è venuto in mente che 1000 (1024 ?) fosse un numero sospetto e che ci fosse un limite, ed infatti ci sono i “file descriptors” che sono, su linux, proprio 1024.

con questo comando

cat /proc/sys/fs/file-nr

si vedono quanti file sono aperti sul sistema.

Quindi aggiungo la linea

fs.file-max = 102400

applico il parametro

sysctl -p

e modifico la linea in squid che mi permette di avere più file descriptor

# ADVANCED NETWORKING OPTIONS
# —————————————————————————–
# TAG: max_filedescriptors
# The maximum number of filedescriptors supported.
#
# The default “0″ means Squid inherits the current ulimit setting.
#
# Note: Changing this requires a restart of Squid. Also
# not all comm loops supports values larger than –with-maxfd.
#
#Default:
# max_filedescriptors 0
#
max_filedescriptors 4096
^^^^^^^^^^^^^^^^^^^^^^^
#

Riavvio squid e ualà, tutti felici.

Inviare mail da shell linux usando gmail

Se nonposso / volgio usare un smtp server locale posso appoggiarmi ad un mail server esterno, nel mi caso gmail usando un programma chiamato SSMTP

sudo apt-get install ssmtp

creare / modifcare il file di configurazione, “/etc/ssmtp/ssmtp.conf”


root=TUOACCOUNT@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=TUOACCOUNT@gmail.com
UseSTARTTLS=YES
AuthUser=TUOACCOUNT@gmail.com
AuthPass=Password_di_TUOACCOUNT
FromLineOverride=YES

e poi aggiungere queste due righe nel file  “/etc/ssmtp/revaliases”


root:TUOACCOUNT@gmail.com:smtp.gmail.com:587
localusername:TUOACCOUNT@gmail.com:smtp.gmail.com:587

Passare da versione standard ad enterprise su Windows 2008 R2

Comprare un server con 64 giga di ram e poterne usare solo 32 perchè sopra c’è stata messa la versione standard di Windows 2008r2 fa girare parecchio le scatole. :-)

Senza stare a reinstallare, con il comando DISM, è possibile passare da una versione all’altra senza problemi in pochi minuti.

Il comando che ho usato è:

dism  /online /set-edition=ServerEnterprise /productkey=489J6-VHDMP-X63PK-3K798-CPX3Y

Nota che ad un certo punto il server pensa parecchio e sembra freezato, non è vero, aspettate che poi finisce.

Il product key è buono solo per il passaggio di versione, quando Windows riparte sarà da attivare ed avrete tre giorni per potergli dare un codice buono.

 

Reverse proxy (cifrato) con Nginx

http://nginx.org è un web server (russo) famoso per la sua leggerezza e le grandi prestazioni anche sotto enormi carichi.

Io l’ho usato per l’ennesima applicazione scritta coi calcagni che non permette la cifratura del traffico.

Si installa su linux o come nel mio caso, su windows 2008 r2 (con cygwin), si pubblica su internet porta 9443 (cifrata) che redirige sulla 9090 (in chiaro), si genera il certificato self signed e tutto parte a razzo.

Questo è il file di configurazione su windows:

——

worker_processes  1;
events {
worker_connections  1024;
}
http {
server {
listen              10.238.2.50:9443 default ssl;
server_name         mioserver.casamia.it;
ssl                 on;
ssl_certificate     ssl_keys/default_blank.crt;
ssl_certificate_key ssl_keys/default_blank.key;
location /{
ssi on;
proxy_pass      http://10.238.1.64:9090;
}
}
}

——

nella cartella ssl_keys ci vanno i certificati che tutti sappiamo generare, vero ? ;-)

L’equivalente su linux (perchè prima l’ho provato li) di questo file di configurazione è:

——

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
worker_connections  1024;
# multi_accept on;
}

http {

server {
listen              192.168.22.254:443 default ssl;
server_name         mioserver.casamia.it;
ssl                 on;
ssl_certificate     ssl_keys/default_blank.crt;
ssl_certificate_key ssl_keys/default_blank.key;
location /{
ssi on;
proxy_pass      http://10.238.1.64:9090;
#       proxy_set_header        X-Real-IP  $remote_addr;

}
}
}
——

 

Su Qmail forward di una (o più) email verso un altro server

In fase di migrazione da un server all’altro, come nel mio caso che sono in dismissione del glorioso Qmail per passare (sic) su un Exchange 2010, c’è bisogno che le caselle che vengono eliminate da un server (qmail) e spostate sull’altro (Exchange) ricevano la posta deall’esterno.

Nel mi caso, fino ad oggi, il front-end su internet che riceva la posta e la filtra è un antispam, successivamente le email vengono inviate a Qmail che le mantiene in pancia fino a che il connettore di Exchange non se le scarica.

Al momento ho circa 700 utenti su qmail, 120 dei quali sono di fatto su Exchange e scaricano la posta con un programma apposito (PopCon nel mio caso) detto appunto “connettore”.

Purtroppo Popcon è sequenziale, prima si carica un utente alla volta le 120 caselle e appoggia le email su disco, dopo le consegna a Exchange tutte assieme, la cosa è veramente male ottimizzata, magari parallelizzare lo scarico delle email e la consegna una casella alla volta all’Exchange, invece che tutte assieme alla fine, darebbero un pochino di spinta al lavoro, sopratutto quando avrò alcune centinaio caselle da scaricare ad ogni giro, csarico che costa, se non ci sono mail da prende, un secondo a casella.

Qmail però mi permette di istradare, senza nemmeno guardarle, le email dirette a “Nome.Cognome@miodomino.it”, basta creare nella cartella sul Qmail che contiene le caselle di posta del dominio “miodominio.it” un file chiamato:

.qmail-nome:cognome

il : (due punti) sostituisce il . (punto) quando è presente nell’indirizzo di posta, infatti se creiamo il file chiamandolo .qmail-nome.cognome il forward non funzionerà.

In questo file ci deve essere scritto:

|qmail-remote [10.239.1.177] “$SENDER” “$EXT@$HOST”

dove 10.239.1.177 è l’indirizzo dell’Exchange server che deve ricevere le email. Tutti i fkile devono essere uguali, qundi possiamo creare un solo file e creare link simbolici con il nome giusto.

Una volta creato il file la casella esistente su qmail viene ignorata e può essere rimossa.

Nelle liste su Qmail l’utente rimane operativo.