Articoli

mtr: diagnosi della rete su linux

Come pathping per Windows, mtr è un incrocio tra ping e il trace route di linux.
La sintassi è semplice e la man page ben fatta.
Compatibile sia con IPv4 che IPv6.

Per capire che non si tratta di un “sostituto” dei due comandi, basta eseguire senza nessuna opzione particolare: mtr sitoweb.it e ci si trova d’avanti il trace con gli hop, ma con accanto le statistiche di monitoraggio in tempo reale che continuano a testare ogni singolo hop, insomma un vero e proprio network diagnostic tool da sysadmin.

Standard
Soluzioni

VirtualBox non si installa su Fedora 33

Al momento per Fedora 33 non è presente l’RPM di VBox e se si prova a installare restituisce l’errore:

error:
Problem: conflicting requestsnothing provides python(abi) = 3.8 needed by VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64
(try to add ‘–skip-broken’ to skip uninstallable packages)

Installare rpmrebuild per modificare il .rpm da python(abi) = 3.8 a python(abi) >= 3.8

rpmrebuild –change-spec-preamble=’sed -e “s/6.1.16_140961_fedora32/6.1.16_140961_fedora33/”‘ –change-spec-requires=’sed -e “s/python(abi) = 3.8/python(abi) >= 3.8/”‘ –package VirtualBox-6.1-6.1.16_140961_fedora32-1.x86_64.rpm

Installare le dipendenze:
sudo dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms qt5-qtx11extras libxkbcommon

Rimuovere eventuali configurazioni:
sudo rm -Rf ~/.config/VirtualBox

Installare l’RPM modificato:
sudo dnf install ~/rpmbuild/RPMS/x86_64/VirtualBox-6.1-6.1.16_140961_fedora33-1.x86_64.rpm

Fatto!!!

Standard
Articoli

DNS – Domain Name System e SPF Sender Policy Framework

Record DNS con python

”’
Prende in imput il nome dell’host da cercare e restituisce i Records DNS.
Libreria utilizzata dnspython – pip install dnspython
Tutti gli identificatori si possono trovare: https://www.dnspython.org/docs/1.15.0/identifier-index.html
I resource data (rdata) sono le informazioni utilizzate per risolvere il nome del dominio, come ad esempio l’indirizzo IP.
Libreria utilizzata per SPF – https://pypi.org/project/pyspf/https://it.wikipedia.org/wiki/Sender_Policy_Framework
”’
import dns.resolver
import spf

Default value

Nome_host = ‘google.com’

print (‘\n################################’)
print (‘Nome host: ‘, Nome_host)

Record A (Address) – Indica l’indirizzo IP associato

Record_DNS = ‘A’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord’, Record_DNS,’=> indirizzo IP associato:’, rdata.address)

Record NS (Name Server) – Indica l’indirizzo dei server di nomi per il dominio associato, almeno 2 – NSBase

Record_DNS = ‘NS’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord’, Record_DNS,’=> nome del server associato:’, rdata.target)

Record TXT (text) – Informazioni in formato testuale – TXT record

Record_DNS = ‘TXT’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord’, Record_DNS,’=> informazioni testuali:’, rdata.strings)

”’

Record CNAME (Canonical Name, nome regolare) – Contiene l’alias associabile al record A, un solo record A puo’ a vere + alias

utilizzato per nascondere i dettagli implementativi, utilizzando come alias i nomi abbreviati degli hosts

Record_DNS = ‘CNAME’
Nome_host_2 = ‘mail.google.com’

richiesta = dns.resolver.resolve(‘mail.google.com’, ‘CNAME’)

richiesta = dns.resolver.resolve(Nome_host_2, Record_DNS)
for rdata in richiesta:
print(‘\nRecord ‘, Record_DNS,’=’, Nome_host_2, ‘nome del server associato’, rdata.target)
”’

Record MX(Mail eXchange) – MXBase

Record_DNS = ‘MX’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord MX = Nome host:’, rdata.exchange, ‘preferenza:’, rdata.preference)

Record SOA(Start of Authority) indica che questo server dei nomi DNS costituisce la fonte di informazione piu’ attendibile per i dati nell’ambito del dominio DNS.

Contiene informazioni inportanti

Record_DNS = ‘SOA’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord’, Record_DNS,’=> valore di scadenza zona in secondi:’, rdata.expire) #Se un DNS Secondario non riesce a contattare entro questo tempo uno primario, esso smettera’ di inoltrare interragazioni. Rappresenta il tempo di validita’ dei dati del server secondario.
print(‘\nRecord’, Record_DNS,’=> info cache time:’, rdata.minimum) #Specifica l’arco di tempo in cui una cache può tenere in memoria le informazioni
print(‘\nRecord’, Record_DNS,’=> nome master:’, rdata.mname) #Nome del master
print(‘\nRecord’, Record_DNS,’=> tempo di frequenza controllo:’, rdata.refresh) #Specifica la frequenza con cui i server devono controllare i dati della zona dei server DNS primari
print(‘\nRecord’, Record_DNS,’=> frequenza tentativi nuova connessione:’, rdata.retry) #Specifica quando uno slave deve eseguire nuovamente un tentativo di richiesta fallito
print(‘\nRecord’, Record_DNS,’=> e-mail amministratore:’, rdata.rname) #Indirizzo e-mail dell’amministratore responsabile
print(‘\nRecord’, Record_DNS,’=> n. seriale incrementale:’, rdata.serial) #Numero di serie incrementale che specifica la versione del file di zona

”’

Record PTR (Pointer) – Indica l’indirizzo IP dei DNS a cui è associato ogni nome – PTR

Record_DNS = ‘PTR’
richiesta = dns.resolver.resolve(Nome_host, Record_DNS)
for rdata in richiesta:
print(‘\nRecord’, Record_DNS,’=> indirizzo IP del server associato:’, rdata.target)
”’

Record SPF (text) – un protocollo di validazione mail per prevenire email spoofing – SPF record

Query spf

IP = “216.58.208.142”
email_addr = “qualcuno@gmail.com”
email_dom = “gmail.com”
print (‘\n query SPF IP:’,IP)
print (‘\n Indirizzo e-mail:’,email_addr)
print (‘\n Dominio indirizzo mail:’,email_dom)
query_spf=(spf.check(i=IP, s=email_addr, h=email_dom, local = None, receiver = None))
print (‘\n’,query_spf)
print (‘\nIl primo elemento nella tupla è “pass”, “fail”, “netural”, “softfail”, “unknown” o “error”.’)
print (‘\nIl secondo è il codice di stato della risposta SMTP: 550 per “errore”, 450 per “errore” e 250 per tutto il resto.’)
print (‘\nLa terza è una spiegazione.’)

https://pastebin.com/BpLp1pL2

Standard
Soluzioni

Password sicura

Requisiti essenziali:

  • 12 caratteri dovrebbero essere il minimo, è meglio più di 20 caratteri.
  • Non utilizzare parole comuni.
  • Utilizzare caratteri numerici.
  • Inserire almeno un carattere speciale o simbolo.

Generare passphrase crittograficamente complesse: https://www.rempe.us/diceware/#eff

Verificare la complessità della nostra password: https://www.security.org/how-secure-is-my-password/

Utilizzare dove possibile l’autenticazione a due fattori: https://twofactorauth.org/


Standard
Soluzioni

Come installare GNOME GUI

Per impostazione predefinita, NethServer non installa nessuna GUI, ma essendo una versione derivata da CentOS è possibile installare quella che più preferiamo.
In questo semplice esempio installeremo il desktop GNOME.

  • Partiamo con installare i pacchetti necessari tramite yum:
    yum groupinstall “GNOME Desktop” -y (Ovviamente dobbiamo eseguire come utente root).
  • Impostiamo l’avvio automatico della GUI:
    systemctl set-default graphical.target
    systemctl get-default
  • Cambiamo il target così da avviare subito la GUI:
    systemctl isolate graphical.target, o in alternativa riavviamo il SO.

Bene non ci resta che goderci la nostra GUI preferita 😉

Standard
Soluzioni

yum upgrade – errore

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

No module named yum

It’s possible that the above module doesn’t match the
current version of Python, which is:
2.7.9 (default, Jan 13 2016, 10:34:33)

whereis python
python: /usr/bin/python2.4 /usr/bin/python2.7

ls -l /usr/lib/python

/usr/bin/python -> python2

ln -s /usr/bin/python2.4 /usr/bin/python

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori

vi /etc/yum.repos.d/CentOS-Base.repo

Paste: # CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://vault.centos.org/5.11/os/x86_64/
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://vault.centos.org/5.11/updates/x86_64/
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://vault.centos.org/5.11/extras/x86_64/
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

Download file repo

yum upgrade

Standard
Soluzioni

NAS WD My book live: “Forbidden access”

In locale il My book live non da problemi, ma se lo voglio raggiungere da un altra rete che si trova fuori dalla mia, cercando di aprire la pagina web di configurazione restituisce: Forbidden access.

File incriminato: /etc/apache2/site-available/wdnas

Alla linea 50 trovo:
#comment this line if remote WebUI access is needed (WAN access)
Include /tmp/allow.conf

Sui modelli My Cloud eseguire:

sed -ri ‘s/(\${LOCAL_NET})$/\1 192.168.2.0\/24/’ /etc/apache2/sites-available/wdnas-ui.conf>/dev/null 2>&1;

service apache2 restart

Standard