Sicurezza basata su host (Host-based)
La sicurezza basata su host verrà configurata a livello di applicazione e non su un firewall.
Il nostro obiettivo è configurare il controllo degli accessi come segue:
Consentire da: *.rhce.local (10.8.8.0/24),
Rifiutare da: my1337.hacker.local (10.8.9.99/32).
SSH
Permetti al firewall l’accesso SSH per tutti:
# firewall-cmd --permanent --add-service=ssh
Aprire /etc/hosts.deny e aggiungere quanto segue:
sshd: my1337.hacker.local
Apri /etc/hosts.allow e aggiungi quanto segue:
sshd: *.rhce.local
Di default tutto è permesso.
# journalctl -xlf [...] sshd[3069]: refused connect from my1337.hacker.local (10.8.9.99)
HTTP / HTTPS (Apache)
Permetti al firewall l’accesso HTTP / S per tutti:
# firewall-cmd --permanent --add-service={http,https}
Inserisci quanto segue nel file di configurazione httpd:
<RequireAll> Require host rhce.local Require not host my1337.hacker.local </RequireAll>
# journalctl -xlf [...] [authz_core:error] [pid 3057] [client 10.8.9.99:43378] AH01630: client denied by server configuration: /var/www/html/
DNS (Unbound)
Permetti al firewall l’accesso DNS per tutti:
# firewall-cmd --permanent --add-service=dns
Aprire /etc/unbound/unbound.conf e aggiungere la seguente riga:
access-control: 10.8.8.0/24 allow
Di default tutto è rifiutato.
NFS
Consenti l’accesso NFS del firewall per tutti:
# firewall-cmd --permanent --add-service=nfs
Apri / etc / exports e configura l’accesso:
/nfs *.rhce.local(ro)
Tutto il resto è rifiutato.
SMB
Consenti l’accesso SMB al firewall per tutti:
# firewall-cmd --permanent --add-service=samba
Aprire /etc/samba/smb.conf e configurare gli host consentono le voci:
hosts allow = 10.8.8.
È anche possibile utilizzare la lista degli host deny, ma si noti che quando gli elenchi sono in conflitto, l’elenco di autorizzazioni ha la precedenza.
SMTP (Postfix)
Permetti al firewall l’accesso SMTP per tutti:
# firewall-cmd --permanent --add-service=smtp
Apri / etc / postfix / access e aggiungi quanto segue:
rhce.local OK my1337.hacker.local REJECT
eseguire:
# postmap /etc/postfix/access
Aggiungi la seguente riga a /etc/postfix/main.cf:
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
# journalctl -xlf [...] postfix/smtpd[3939]: connect from my1337.hacker.local[10.8.9.99] postfix/smtpd[3939]: NOQUEUE: reject: RCPT from my1337.hacker.local[10.8.9.99]: 554 5.7.1 <my1337.hacker.local[10.8.9.99]>: Client host rejected: Access denied; from=<root@my1337.hacker.local> to=<root@rhce.local> proto=ESMTP helo= postfix/smtpd[3939]: disconnect from my1337.hacker.local[10.8.9.99] [...] postfix/smtpd[3939]: connect from srv1.rhce.local[10.8.8.71] postfix/smtpd[3939]: A075621186: client=srv1.rhce.local[10.8.8.71] postfix/cleanup[3944]: A075621186: message-id=<20160801150634.86753207E9@srv1.rhce.local> postfix/qmgr[3882]: A075621186: from=<root@rhce.local>, size=610, nrcpt=1 (queue active) postfix/smtpd[3939]: disconnect from srv1.rhce.local[10.8.8.71] postfix/local[3946]: A075621186: to=<root@rhce.local>, relay=local, delay=0.08, delays=0.06/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox) postfix/qmgr[3882]: A075621186: removed
Sicurezza basata sull’utente (User-based)
SSH
Apri /etc/ssh/sshd_config e configura le seguenti sezioni:
AllowUsers sandy DenyUsers root
Non dimenticare di riavviare il servizio sshd.
HTTP / HTTPS (Apache)
Apri /etc/httpd/conf/httpd.conf e configura l’autenticazione dell’utente:
<Directory "/var/www/html"> AuthType Basic AuthName "Login Required" AuthUserFile "/etc/httpd/conf/htpasswd" Require valid-user </Directory>
Dovrai creare un file password con un utente valido:
# htpasswd -c /etc/httpd/conf/htpasswd sandy
Non dimenticare di riavviare il servizio httpd.
NFS
Il server NFS non richiede l’autenticazione e applica solo restrizioni di accesso basate su indirizzi IP o nomi host di un client. Utilizzando il metodo di sicurezza predefinito, che è sec = sys, il server NFS si fida di qualsiasi uid inviato dal client.
Kerberos dovrebbe essere usato per dimostrare l’identità dell’utente.
SMB
Apri /etc/samba/smb.conf e configura le seguenti sezioni:
valid users = sandy, alice write list = alice read list = sandy
Gli utenti validi sono un elenco di utenti che dovrebbero poter accedere a questo servizio.
L’elenco di scrittura è un elenco di utenti a cui è stato concesso l’accesso in lettura e scrittura a un servizio. Se l’utente che si connette si trova in questo elenco, verrà loro fornito l’accesso in scrittura, indipendentemente dall’opzione di sola lettura impostata.
Non dimenticare di riavviare il servizio smb.
SMTP (Postfix)
Controllo degli accessi per-address /etc/postfix/access di Postfix:
user@domain REJECT