GiorgioRavera.it

il mio blog: ciò che penso e faccio, trucchi di programmazione, linux, reti e molto altro

Buongiorno a tutti.
Consideriamo un server Linux Debian (ma anche Ubuntu o derivati) in cui sia attivo un server Apache configurato con SSL (https) il quale offre servizio di SVN mediante appunto http + webdav.
Nonostante le funzioni di checkout, update e commit possano risultare funzionanti, può capitare che compaia il seguente errore:

Unexpected HTTP status 502 ‘Bad Gateway’ on ‘/REPOS/!svn/rvr/42/Test’

nel caso vengano effettuate operazioni di:

  • svn copy
  • svn rename

Per ovviare al problema è necessario configurare il modulo header del server apache inserendo la seguente stringa nel file /etc/apache2/mods-available/headers.conf (se il file non esiste, createlo)

RequestHeader edit Destination ^https http early

Fatto ciò basta abilitare il modulo header e riavviare apache:

root@server:/etc/apache2/mods-available# a2enmod headers
Enabling module headers.
To activate the new configuration, you need to run:
service apache2 restart
root@server:/etc/apache2/mods-available# service apache2 restart
root@server:/etc/apache2/mods-available#

Qualora l’accesso al server svn sia fatta senza usare SSL (cosa sconsigliatissima!) tale problematica non dovrebbe emergere.

Alla prossima!

Buongiorno,

oggi vi segnalo un comando che può rivelarsi molto utile nel caso abbiate un cd/dvd o un iso di Windows e non sappiate che versione sia.

Il comando è il seguente:

dism /Get-WimInfo /WimFile:X:\sources\install.wim /index:1

ove X è da sostituire con la lettera del drive da analizzare. Se fosse un iso basta semplicemente montarla usando un apposito tool.

Sotto è riportato un esempio del comando applicato a un cd di Windows 7 in cui, tra le altre cose, si nota la presenza Service Pack 1.

C:\WINDOWS\system32>dism /Get-WimInfo /WimFile:d:\sources\install.wim /index:1

Strumento Gestione e manutenzione immagini distribuzione
Versione: 10.0.14393.0

Dettagli per l’immagine: d:\sources\install.wim

Indice: 1
Nome: Windows 7 Home Basic
Descrizione: Windows 7 Home Basic
Dimensioni: 11.419.307.697 byte
WIM avviabile: No
Architettura : x64
HAL : acpiapic
Versione : 6.1.7601
Build Service Pack : 17514
Livello Service Pack : 1
Edizione : HomeBasic
Installazione : Client
Tipo prodotto : WinNT
Famiglia di prodotti : Terminal Server
Radice sistema : WINDOWS
Directory : 13676
File : 65249
Data creazione : 21/11/2010 – 06:39:25
Data modifica : 21/11/2010 – 18:11:49
Lingue :
it-IT (valore predefinito)

Operazione completata.

Buongiorno a tutti.

Dopo quasi un anno ho upgradato sul mio server (Intel NUC i5) Citrix Xenserver da 6.2 a 7.0.

Nel dubbio ho fatto un installazione pulita dopo aver esportato le VM.

Note:

  • Installazione OK. rapida e senza troppe complicazioni.
  • Migrazioni VM OK: nulla da rilevare
  • Xen-Tools: reinstallati su macchine debian based. pfsense continua ad avere le sue aggiornate alla 6.2 (verranno aggiornati anche li?). problemi invece su FreePBX: installazione OK ma da XenCenter viene richiesto di installare anche Management Agent… anche se apparentemente funziona tutto.

Il sistema è stabile e funziona bene.

Da notare che sia Xen Orchestra, sia Xen Center hanno subito un restyle.

Alla prossima!

Buongiorno a tutti.

Dopo avervi già parlato di come registrare un generico dispositivo SIP sul modem Telecom per chi ha un contratto Fibra Ottica dove la voce vine gestita in VOIP vorrei segnalarmi il modo di interfacciare un centralino Asterisk al centralino in esecuzione sul modem. La versione del firmware del modem Technicolo AG Plus di riferimento è AGVTF_5.2.1.

Per prima cosa dovete farvi generare la password e l’interno da attribuire al centralino. Si faccia riferimento a questo articolo.

Come software di riferimento ho scelto di usare FreePBX utilizzando la versione 13 di Asterisk (necessaria per configurare il protocollo JSIP richiesto dal centralino in esecuzione sul router). L’installazione e la prima configurazione del centralino FreePBX non è argomento della guida.

Una volta effettuata l’installazione di FreePBX e configurato i parametri principali (indirizzo IP, DNS, utenti e password, lingua di sistema ecc) occorre configurare il trunk verso il centralino in esecuzione sul modem telecom.

Trunk

Aprite il menu Connectivity->Trunks, cliccate su Add SIP (chan_pjsip) Trunk e inserte i seguenti parametri:

  • General:
    • Outbound CallerID = il numero di interno rilasciato dal centralino sul modem telecom (nel mio caso **02)
    • CID Options: Allow any CID
  • pjsip Settings:
    • General:
      • Username = il numero di interno rilasciato dal centralino sul modem telecom (nel mio caso **02)
      • Secret = la passoword rilasciato dal centralino sul modem telecom
      • Authentication = Outbound
      • Registration = Send
      • Sip server = modemtelecom.homenet.telecomitalia.it (che viene rediretto sull’ip del modem solitamente 192.168.1.1)
      • SIP Server Port = 5065
      • Context = from-pstn
    • Advanced:
      • From domain: modemtelecom.homenet.telecomitalia.it
      • From user: il numero di interno rilasciato dal centralino sul modem telecom (nel mio caso **02)
      • Match permit: 192.168.1.1 (da sostituire con l’indirizzo IP del modem)

I parametri di cui non ho parlato li ho lasciati ai valori di default.

Una volta configurato dovreste vedere nella pagina di report (Reports -> Asterisk Info -> Chan_PjSip Info) qualcosa del genere:

Chan_PJSip Registrations

<Registration/ServerURI…………………………> <Auth……….> <Status…….>
=========================================================================================

Telecom/sip:modemtelecom.homenet.telecomitalia.it:5065 Telecom Registered
Chan_PJSip Endpoints

Endpoint: <Endpoint/CID……………………………….> <State…..> <Channels.>
I/OAuth: <AuthId/UserName…………………………………………………..>
Aor: <Aor……………………………………..> <MaxContact>
Contact: <Aor/ContactUri………………………….> <Status….> <RTT(ms)..>
Transport: <TransportId……..> <Type> <cos> <tos> <BindAddress………………>
Identify: <Identify/Endpoint…………………………………………………>
Match: <ip/cidr…………………….>
Channel: <ChannelId………………………………..> <State…..> <Time(sec)>
Exten: <DialedExten………..> CLCID: <ConnectedLineCID…….>
=========================================================================================

Endpoint: Telecom Not in use 0 of inf
OutAuth: Telecom/**02
Aor: Telecom 0
Contact: Telecom/sip:**02@modemtelecom.homenet.telecomit Avail 14.899
Transport: 0.0.0.0-udp udp 0 0 0.0.0.0:5065
Identify: Telecom/Telecom
Match: 192.168.1.1/32

Fatto ciò occorre configurare le rotte Inbound ed Outbound.

Inbound Route

Andate nel menu apposito (Connectivity/Inbound Routes) e create una nuova rotta. Dategli un nome opportuno e direzionate tutto il traffico su un numero interno oppure su un ring group se volete far suonare contemporaneamente più interni inserendo la vostra scelta nel campo Set Destination. Le altre impostazioni le ho lasciate di default.

Outbound Route

Andate nel menu apposito (Connectivity/Outbound Routes) e create una nuova rotta. Dategli un nome opportuno e configurate i seguenti parametri:

  • Route Settings:
    • Trunk Sequence for Matched Routes: selezionate il Trunk verso il router telecom
  • Dial Patterns
    • Qui potete sbizzarrirvi: io ho impostato le seguenti opzioni (prepend e prefix e callerID sono vuoti in entrambe le regole):
    • match pattern: +X. -> consente chiamate usanto il + seguito dal numero (es +39XXXXXXX)
    • match pattern: X. -> consente chiamate usanto il numero completo (es: 0039XXXXXXX)

Le altre impostazioni le ho lasciate di default.

Configurazione Avanzata

Infine occorre completare il sistema configurando alcune opzioni di sistema.

  • Advanced Settings:
    • Sip canreinvite (directmedia) = No
    • Sip trustrpid = yes
    • Sip sendrpid = no
    • Sip Nat = yes
  • Advanced SIP Settings:
    • General:
      • Allow Anonymous Inbound SIP Calls = no
      • External Address: se usate un servizio di dns dinamico inserite il vostro indirizzo (es: yourname.dnsalias.org)
      • Local Network: inserite l’ip della vostra rete locale (solitamente 192.168.1.0/255.255.255.0)
      • RTP Port: in accordo con le configurazione del firewall inserite le porte che volete abilitare per il traffico voce con RTP (solitamente 10000 – 20000).
    • Chan SIP Settings:
      • NAT = yes
      • IP Configuration: Dynamic IP
      • Dynamic host: se usate un servizio di dns dinamico inserite il vostro indirizzo (es: yourname.dnsalias.org)
      • Video Support = no (abilitarla da problemi con alcuni centralini e call center)
    • Chan PjSIP Settings:
      • Allow Guest = no

Anche in questo caso le impostazioni non inserite le ho mantenute ai valori di default.

Per poter utilizzare il vostro centralino da remoto occorre aprire sul vostro firewall le porte relative a:

  • SIP/PJSIP: dalla 5060-5065 UDP (se non avete inserito impostazioni differenti in Advanced SIP Settings/Chan SIP Settings oppure in Advanced SIP Settings/Chan PJSIP Settings)
  • RTP: dalla 10000 alla 20000 UDP (se non avete inserito impostazioni differenti in Advanced SIP Settings/General)

Inoltre occorre configurare nelle opzioni di NAT (masquerading o outbound nat) l’impostazione per abilitare la mappatura statica delle porte (non tutti i firewall mostrano questa opzione).

Fatto questo avrete un centralino Asterisk perfettamente configurabile e amministrabile secondo i vostri gusti che si interfaccia al modem telecom consentendovi, inoltre, di poter utilizzare il vostro numero di rete fissa fuori casa.

Alcune note aggiuntive.

Con le versioni di firmware del modem precedenti alla AGVTF_5.2.1 era possibile utilizzare il trunk SIP (e non PJSIP) disabilitando però la qualifica del link sip che portava il modem telecom a bloccarsi. Con la versione AGVTF_5.2.1 è necessario utilizzare il protocollo PJSIP che implementa il comando IDENTIFY richiesto dal router. In assenza di ciò l’invio di chiamate in uscita sul trunk verso il modem telecom cadono dopo circa 3 minuti (hang-up).

 

 

Un saluto a tutti.

vi propongo una soluzione ad un problema che avevo alcuni giorno fa.

Ho 2 server, entrambi linux. Su uno dei due ho configurato LDAP per autenticare gli utenti, l’altro è semplicemente client.

Mediante il tool nslcd gli utenti configurati nel database LDAP accedono ad entrambe le macchine. Mediante samba la cosa è leggermente più complessa.

Siccome non avevo intenzione di gestire la cosa a livello di dominio nt, ho configurato entrambe le macchine con un samba standard indicando solamente come metodo di autenticazione LDAP anziché tdbsam.

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam
passdb backend = ldapsam:ldaps://server
ldap suffix = dc=domain,dc=local
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=domain,dc=local
#ldap ssl = start tls
ldap ssl = no
ldap passwd sync = yes

fatto questo si riavvia samba.

Si noti che la connessione verso il server ldap è realizzata mediante SSL per garantire maggiore sicurezza.

Non è finita qui la cosa. Samba verifica che il server LDAP gestisca utenti appartenenti al proprio SID. Sarà quindi necessario impostare sul secondo server lo stesso SID del primo in cui è in esecuzione LDAP.

I comandi per leggere e settare il SID sono i seguenti:

net getlocalsid

net setlocalsid

In questo modo entrambi i server avranno lo stesso SID che corrisponderà al SID presente nelle entry relative agli utenti di LDAP.

Si può verificare che samba riesca ad accedere alla lista di utenti presenti su LDAP mediante il comando:

pdbedit -L -v

 

Se tutto è andato a buon fine su entrambi i server potrete accedere mediante le medesime credenziali.

Nei giorni scorsi mi sono cimentato nella reinstallazione del mio server, una macchina virtuale Debian/GNU Linux in esecuzione su xenserver 6.5.

Dopo aver configurato diverse cose mi sono accorte che se spegnevo o riavviavo il server, questo rimaneva congelato. Dopo un indagine accurata ho notato un eccessivo utilizzo di risorse da parte di ClamAV.

Il problema era dovuto al fatto che la poca ram messa a disposizione durante la procedura di installazione e configurazione (512 MB) obbligava ClamAV a sfruttare in modo esagerato la partizione di swap al punto che ne impediva lo smontaggio. Ciò portava ad un attesa infinita nel riavvio del server.

Aumentando a 1024 MB (1 GB) la memoria a disposizione della VM il problema non si è più presentato.

 

E’ possibile abilitare un numero massimo di connessioni telnet contemporanee ad una linux machine.
Per farlo basta modificare il file /etc/securetty aggiungendo, in coda al file, quanto segue:

# 10 root telnet connection
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
pts/9

Al riavvio del sistema sarete in grado di eseguire fino a 10 shell telnet con credenziali root.
Potete variare a piacere il numero.

Buongiorno a tutti.
supponiamo di voler modificare tutti i file o directory che rispondono a determinate caratteristiche in un sistema Linux.
il comando da usare è questo

find /some/path -type d -exec chmod 644 {} \;
find /some/path -type f -exec chmod 755 {} \;

Nel primo caso cerchiamo tutte le directory nel percorso /some/path e impostiamo diritti 644.
Nel secondo caso cerchiamo tutti i file nel percorso /some/path e impostiamo diritti 755.

possiamo modificare a piacere la ricerca e l’operazione da effettuare.

Un saluto a tutti.
scrivo a scopo dimostrativo la seguente guida relativa a come registrare un dispositivo VoIP al reouter fornito da Telecom Italia con il servizio Fibra.
Il router Technicolor AG plus VDNT-S Router VDSL2 30Mbs è un ottimo strumento che integra un modem VDSL/ADSL, un Access Point WiFi 300mbps con doppia banda 2.4/5 Ghz e un centralino telefonico.
Con i contratti Fibra ottica di Telecom la telefonia viene convertita totalmente in VoIP. Si possono mantenere i vecchi telefoni collegandoli direttamente alla 2 prese RJ11 poste sul retro del router.
E’ inoltre possibile utilizzare qualsiasi smartphone android o iphone attraverso una bellissima applicazione “Telefono di Casa” (per maggiori info https://www.telecomitalia.it/tdc) che consente di registrare lo smartphone al router e usarlo come un telefono di casa.
Nella guida che ho scritto è descritto come effettuare diverse operazioni sul centralino interno al router. More

Eccoci nuovamente con un trucchetto interessante.

Mi sono imbattuto in questi giorni in un bruttissimo log sul server di posta:

Feb 3 15:37:16 server amavis[2116]: (02116-16) (!)run_av (ClamAV-clamd) FAILED – unexpected , output=”/var/lib/amavis/tmp/amavis-20140131T230529-02116-cgikML2V/parts: lstat() failed: Permission denied. ERROR\n”

Feb 3 15:37:16 server amavis[2116]: (02116-16) (!)ClamAV-clamd av-scanner FAILED: CODE(0x17dc730) unexpected , output=”/var/lib/amavis/tmp/amavis-20140131T230529-02116-cgikML2V/parts: lstat() failed: Permission denied. ERROR\n” at (eval 111) line 899.

Per risolverlo non basta fare altro che eseguire da root i seguenti comandi:

usermod -a -G clamav amavis
usermod -a -G clamav clamav
usermod -a -G amavis clamav
usermod -a -G amavis amavis

L’errore è dovuto al fatto che la directory /var/lib/amavis/tmp/ è di proprietà di amavis e clamav non ha permesso di accedervi. Aggiungendo l’utente clamav al gruppo di amavis e viceversa si risolve il problema.