Monthly Archives: giugno 2014

Altri Requisiti per conseguire l’ RHCSA

Oltre agli obiettivi di esame RHCSA ufficiali, un candidato deve soddisfare i seguenti requisiti:

Installazione di un server samba (SMB)

stunningmesh-redhatInstallazione di un server samba (SMB):

yum groupinstall -y "CIFS file server"

Creare un nuovo file /etc/samba/smb.conf e aggiungere le seguenti righe (per un gruppo di lavoro denominato MYGROUP, un server chiamato MYSERVER, una rete locale con indirizzi IP in 192.168.1.0/24, un utente di nome user01 e di una cartella condivisa shared):

workgroup = MYGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
interfaces = lo eth0 192.168.1.0/24
hosts allow = 127. 192.168.1.
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
[shared]
comment = Shared directory
browseable = yes
path = /shared
valid users = user01
writable = yes

Nota: con “backend passdb = tdbsam“, le password vengono memorizzate nel file /var/lib/samba/private/passdb.tdb.

Controllare la sintassi del file di configurazione:

testparm

Creare la directory condivisa:

mkdir /shared

Impostare SELinux:

yum install -y setroubleshoot-server
semanage fcontext -a -t samba_share_t "/shared(/.*)?"
restorecon -r /shared

Aggiungere le seguenti nuove regole per il firewall:

iptables -I INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Salvare la configurazione del firewall:

service iptables save

Attivare i servizi di Samba al boot:

chkconfig smb on
chkconfig nmb on
chkconfig winbind on

Avviare i servizi di Samba:

service smb start
service nmb start
service winbind start

Creare utente user01 samba con password:

useradd -s /sbin/nologin user01
smbpasswd -a user01

Verificare la configurazione:

yum install -y samba-client
smbclient //localhost/shared -U user01%pass

 

Installazione di un server NFS

Nota: questo è un obiettivo d’esame RHCE 7.
In questo tutorial, il server NFS è chiamato nfsserver.example.com e il client NFS nfsclient.example.com.

Configurazione del server NFS

Installazione di un server NFS:

# yum groupinstall -y file-server

Aggiungi nuove regole per il firewall:

# firewall-cmd --permanent --add-service=nfs
success

Nota: NFSv4 è la versione utilizzata all’esame e non richiede alcuna configurazione aggiuntiva del firewall. Tuttavia, al di là degli obiettivi dell’esame, se prevedi di utilizzare NFSv3, dovrai anche eseguire questi comandi:

# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --permanent --add-service=rpc-bind

Ricarica la configurazione del firewall:

# firewall-cmd --reload
success

Attiva i servizi NFS all’avvio:

# systemctl enable rpcbind nfs-server

Nota: nfs-idmap/nfs-idmapd (le modifiche sono avvenute con RHEL 7.1) e i servizi nfs-lock vengono avviati automaticamente dal servizio nfs-server. nfs-idmap/nfs-idmapd è richiesto da NFSv4 ma non consente alcuna corrispondenza UID/GID tra client e server. Viene utilizzato solo quando si imposta ACL per nome o per visualizzare nomi di utenti/gruppi.
Tutti i controlli delle autorizzazioni vengono ancora eseguiti con l’UID/GID utilizzato dal server (vedere questo thread su nfs-idmap per ulteriori dettagli).

Avvia i servizi NFS:

# systemctl start rpcbind nfs-server

Nota 1: per impostazione predefinita vengono utilizzati 8 thread NFS (RPCNFSDCOUNT = 8 nel file /etc/sysconfig/nfs). Questo dovrebbe essere aumentato in un ambiente di produzione almeno a 32 (fonte: http://initrd.org/wiki/NFS_Setup).
Nota 2: Facoltativamente, per abilitare il supporto NFS con SELinux Label, modificare il file /etc/sysconfig nfs e incollare la seguente riga (source): RPCNFSDARGS = “- V 4.2”

Creare le directory e assegnare i diritti di accesso:

# mkdir -p /home/tools
# chmod 0777 /home/tools
# mkdir -p /home/guests
# chmod 0777 /home/guests

Assegnare i contesti SELinux corretti alle nuove directory:

# yum install -y setroubleshoot-server
# semanage fcontext -a -t public_content_rw_t "/home/tools(/.*)?"
# semanage fcontext -a -t public_content_rw_t "/home/guests(/.*)?"
# restorecon -R /home/tools
# restorecon -R /home/guests

Nota: il contesto public_content_rw_t non è l’unico disponibile, puoi anche utilizzare i contesti public_content_ro_t (sola lettura) o nfs_t (maggiormente limitatativo) in base alle tue esigenze.

Controlla i booleani SELinux usati per NFS:

# semanage boolean -l | egrep "nfs|SELinux"
SELinux boolean                State  Default Description
xen_use_nfs                    (off  ,  off)  Allow xen to use nfs
virt_use_nfs                   (off  ,  off)  Allow virt to use nfs
mpd_use_nfs                    (off  ,  off)  Allow mpd to use nfs
nfsd_anon_write                (off  ,  off)  Allow nfsd to anon write
ksmtuned_use_nfs               (off  ,  off)  Allow ksmtuned to use nfs
git_system_use_nfs             (off  ,  off)  Allow git to system use nfs
virt_sandbox_use_nfs           (off  ,  off)  Allow virt to sandbox use nfs
logrotate_use_nfs              (off  ,  off)  Allow logrotate to use nfs
git_cgi_use_nfs                (off  ,  off)  Allow git to cgi use nfs
cobbler_use_nfs                (off  ,  off)  Allow cobbler to use nfs
httpd_use_nfs                  (off  ,  off)  Allow httpd to use nfs
sge_use_nfs                    (off  ,  off)  Allow sge to use nfs
ftpd_use_nfs                   (off  ,  off)  Allow ftpd to use nfs
sanlock_use_nfs                (off  ,  off)  Allow sanlock to use nfs
samba_share_nfs                (off  ,  off)  Allow samba to share nfs
openshift_use_nfs              (off  ,  off)  Allow openshift to use nfs
polipo_use_nfs                 (off  ,  off)  Allow polipo to use nfs
use_nfs_home_dirs              (off  ,  off)  Allow use to nfs home dirs
nfs_export_all_rw              (on   ,   on)  Allow nfs to export all rw
nfs_export_all_ro              (on   ,   on)  Allow nfs to export all ro

Nota 1: la colonna State mostra rispettivamente la configurazione booleana corrente e la colonna Default la configurazione booleana permanente.
Nota 2: Qui siamo interessati a nfs_export_all_rw, nfs_export_all_ro e potenzialmente use_nfs_home_dirs booleans.
Nota3: il valore booleano di nfs_export_all_ro consente di condividere i file tramite NFS in modalità di sola lettura, ma non impedisce loro di essere utilizzati in modalità di lettura-scrittura. È il ruolo di nfs_export_all_rw booleano per consentire la modalità di lettura-scrittura.

Se necessario, assegnare l’impostazione corretta ai booleani SELinux:

# setsebool -P nfs_export_all_rw on
# setsebool -P nfs_export_all_ro on
# setsebool -P use_nfs_home_dirs on

Modifica il file /etc/exports e aggiungi le seguenti righe con il nome (o l’indirizzo IP) dei client:

/home/tools nfsclient.example.com(rw,no_root_squash)
/home/guests nfsclient.example.com(rw,no_root_squash)

Nota: per favore, non mettere nessuno spazio prima della parentesi di apertura, questo cambierebbe completamente il significato della linea!

Esporta le directory:

# exportfs -avr
exporting nfsclient.example.com:/home/guests
exporting nfsclient.example.com:/home/tools
# systemctl restart nfs-server

Nota: questo ultimo comando non dovrebbe essere necessario in futuro. Ma, per il momento, evita il riavvio.

Controlla la tua configurazione:

# showmount -e localhost
Export list for localhost:
/home/guests nfsclient.example.com
/home/tools  nfsclient.example.com

Nota: è possibile testare ciò che viene esportato dal server NFS da un client remoto con il comando showmount -e nfsserver.example.com, ma è prima necessario arrestare Firewalld sul server NFS (o aprire le porte 111 udp e 20048 tcp sul Server NFS).

Configurazione client NFS

Sul lato client, i comandi sono:

# yum install -y nfs-utils
# mount -t nfs nfsserver.example.com:/home/tools /mnt

Obiettivi esame RHCSA 7

Comprendere e utilizzare strumenti essenziali

Accedere a un prompt della shell e immettere comandi con sintassi corretta
Usare il reindirizzamento di input/output (>, >>, |, 2> ecc.)
Utilizzare grep ed espressioni regolari per analizzare il testo
Accedere a sistemi remoti tramite ssh
Effettuare l’accesso e commutare gli utenti nei livelli di esecuzione multiutente
Archiviare, comprimere, espandere e decomprimere file tramite tar, star, gzip e bzip2
Creare e modificare file di testo
Creare, eliminare, copiare e spostare file e directory
Creare collegamenti reali e simbolici
Elencare, impostare e modificare autorizzazioni ugo/rwx standard
Individuare, leggere e utilizzare la documentazione di sistema compresi man, info e i file della directory /usr/share/doc

Nota: Red Hat può utilizzare le applicazioni durante l’esame che non sono inclusi in Red Hat Enterprise Linux con lo scopo di valutare le capacità del candidato.

Operazioni sul sistema

Avvio, riavvio, ed arresto di un sistema.
Sistemi di avvio manuale in diversi runlevel.
Utilizzare la modalità single-user per ottenere l’accesso ad un sistema.
Identificare i processi intensivi di CPU/memoria, impostare la priorità di processo con renice, e uccidere i processi.
Individuare e interpretare i file di registro di sistema.
Accesso alla console di una macchina virtuale.
Avviare e arrestare le macchine virtuali.
Avviare, arrestare e controllare lo stato dei servizi di rete.
Trasferimento in modo sicuro dei file tra i sistemi.

Configurazioni sulla memoria

Elencare, creare, eliminare, ed impostare il tipo di partizione per le partizioni primarie, estese e logiche.
Creare e rimuovere i volumi fisici, assegnare i volumi fisici a gruppi di volumi, e creare ed eliminare volumi logici.
Configurare i sistemi e montare i file system all’avvio attraverso ID univoco universale (UUID) o attraverso l’etichetta.
Aggiungere nuove partizioni e volumi logici e swap per un sistema non distruttivo.

Creazione e configurazione file system

Creare, montare, smontare e usare ext2, ext3 e file system ext4.
Montare e smontare CIFS e file system di rete NFS.
Estendere i volumi logici.
Creare e configurare le directory set-GID.
Creare e gestire Access Control Lists (ACL).
Diagnosticare e correggere i problemi di permessi dei file.

Distribuire, configurare e mantenere sistemi

Configurare la risoluzione dei nomi host e di rete in modo statico o dinamico.
Programmare attività tramite “at and cron”.
Avviare ed arrestare servizi, configurarli per l’avvio automatico all’avvio del sistema.
Configurare i sistemi per l’avvio automatico su uno specifico target.
Installare sistemi Red Hat Enterprise Linux come guest virtuali.
Configurare sistemi per l’avvio di macchine virtuali all’avvio del sistema.
Configurare l’avvio automatico dei servizi di rete all’avvio del sistema.
Come impostare il servizio NTP.
Installare e aggiornare pacchetti software da Red Hat Network, da un repository remoto o dal file system locale.
Aggiornare il pacchetto kernel in modo appropriato per garantire un sistema avviabile.
Modificare boot loader del sistema.

Gestione utenti e gruppi

Creare, eliminare e modificare gli account locali.
Cambiare le password e regolare l’invecchiamento delle password per gli account locali.
Creare, eliminare e modificare i gruppi locali e le appartenenze di gruppo.
Configurare un servizio di directory LDAP esistente per l’utente e il gruppo.

Gestione della sicurezza

Configurare le impostazioni del firewall utilizzando firewall-config, firewall-cmd o iptables.
Configurazione dell’autenticazione basata su chiavi per SSH.
Imposta le modalità enforcing e permissive in SELinux.
Elencare e identificare il contesto di file e processi SELinux.
Ripristinare i contesti dei file predefiniti.
Utilizzare impostazioni booleane per modificare le impostazioni SELinux del sistema.
Diagnosticare e risolvere violazioni dei criteri SELinux di routine.