GNU/Linux >> Linux Esercitazione >  >> Linux

Rendere rpcbind (precedentemente portmap, porta 111) più sicuro

Introduzione:

Uso spesso il file system NFS tra i server della stessa rete interna. Ma poiché avere rpcbind aperto a Internet è considerato insicuro, dovevo proteggerlo. Avrei potuto farlo con il firewall, ma poiché l'unico servizio che volevo proteggere dall'accesso a Internet non volevo preoccuparmi del firewall per questo compito e ho deciso di utilizzare invece il buon vecchio sistema TCP Wrapper: host.allow e hosts.deny file.

Metodo:

– Nega l'accesso a rpcbind a tutti (fatto in /etc/hosts.deny )
– Consenti 2 eccezioni:host sulla mia rete locale (fatto in /etc/hosts.allow )

Ipotesi:

Il server NFS è connesso a Internet e alla nostra LAN interna (192.168.100.0/24) e ha l'IP:12.34.56.78 (solo un esempio) e 192.168.100.1.
I 2 host che voglio consentire di connettersi al server NFS sono 192.168.100.2 e 192.168.100.3
Ho un altro server (192.168.100.4) in questa LAN privata a cui non dovrebbe essere consentito connettersi al server NFS.

Passaggi:

Modifica (o crea se non esistente) il file /etc/default/rpcbind e aggiungi la seguente riga:
OPTIONS="-w -l -h 192.168.100.1"
Modifica il file /etc/hosts.allow e aggiungi la seguente riga:
rpcbind: 192.168.100.2 192.168.100.3
Modifica il file /etc/hosts.deny e aggiungi la seguente riga:
rpcbind: ALL

Verifica della configurazione:

Accedi a qualsiasi altro server sulla stessa rete LAN locale (nessuno dei server consentiti sopra) diciamo da 192.168.100.4 ed emetti il ​​seguente comando:
rpcinfo -p 192.168.100.1
Risultato:
rpcinfo: can't contact portmapper: rpcinfo: RPC: Authentication error; why = Client credential too weak
Quindi accedi a qualsiasi server Internet (ad es. a 45.67.78.89) e prova il comando:
rpcinfo -p 12.34.56.78
Risultato:
rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused
Ora accedi a uno dei 2 server consentiti (es. 192.168.100.3) ed esegui il comando:
rpcinfo -p 192.168.100.1
Risultato:
rpcinfo -p 192.168.100.1
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 49123 status
100024 1 tcp 55198 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
....... and so on

Good news: Possiamo vedere che 192.168.100.4 e qualsiasi server Internet non possono connettersi a rpcbind ma è consentito 192.168.100.3.

Informazioni extra:

Solo per divertimento, controlliamo i log:
grep rpcbind /var/log/auth.log
Risultato:
Oct 7 20:51:30 nfsserver rpcbind: connect from 192.168.100.4 to dump(): request from unauthorized host
Oct 7 20:51:56 nfsserver rpcbind: connect from 45.67.78.89 to dump(): request from unauthorized host
Oct 7 20:53:24 nfsserver rpcbind: connect from 192.168.100.3 to dump()

Ora controlliamo la configurazione dei TCP Wrapper per l'host 192.168.100.2
tcpdmatch rpcbind 192.168.100.2
Risultato:
client: address 192.168.100.2
server: process rpcbind
access: granted

Risultato:
rpcbind il servizio è ora protetto e accessibile solo dai 2 server collegati alla nostra LAN interna.


Linux
  1. Usa le macro Vim per automatizzare le attività frequenti

  2. Come utilizzare lo strumento da riga di comando sipcalc Linux

  3. Scopri host live su una rete sotto Linux

  4. Come proteggere il servizio SSH con Port Knocking

  5. Il sistema operativo Qubes è più sicuro rispetto all'esecuzione di un set di macchine virtuali correlate alle attività?

Rendere Vim ancora più fantastico con queste fantastiche funzionalità

Proteggi la tua rete Linux con firewall-cmd

Risolvere l'indirizzo Mac dall'indirizzo IP in Linux?

5 Best practice per la sicurezza SSH Linux per proteggere i tuoi sistemi

Risoluzione dell'indirizzo MAC dall'indirizzo IP in Linux

TCP può fornire più di 65535 porte?