Post

Visualizzazione dei post da dicembre, 2021

Automount for Home Directories - LDAP

Immagine
In questo post verrà descritto come assegnare ad un utente, al momento del login, una home directory in un server remoto dove è installato il servizio NFS (nel nostro esempio è il server2). E' utile quando si vuole creare un sever centralizzato per gestire il login delle utenze. Creiamo sul server client (nel nostro caso server1), un utente che accede ad una directory remota # useradd anna  -d /home/ldap/anna # su - anna  L'utente non accedi alla directory indicata sul server1. Suls sever2 NFS aggiungere nel file /etc/exports una riga relativa alla direcotry da condividere e riavviare il servizio nfs # vim /etc/exports      /home/ldap  *(rw) # sytemctl restart nfs-server Creare sotto /home/ldap le drecotry associati agli utenti # mkdir  /home/ldap/anna # chmod 777 anna Sul server 1 individuare le directory condivise. # showmount -e server2 Sul server1 modificare i file di configuraizione dell'automount # vim /etc/auto.master /home/ldap     /etc/auto.ldap Utilizzare i wildca

Automount di una directory remota condivisa con AUTOFS

Immagine
L'Automount consiste nel montare una directory condivisa solo quando è richiesto in modo da usare risorse solo quando necessario. Viene implementato dal servizio autofs. Se invece la directory deve essere sempre montata anche dopo il boot del server, modificare il file /etc/fstab. Si può usare sia per SMB che NFS. Noi vedremo il caso di server NFS. Il server1 ha il servizio nfs-server abilitato.   - Abilitare il servizio autofs systemctl enable --now autofs Una volta abilitato vengono crete due nuove direcotry /net e /misc che sono gestite dal serivzio autofs. - Individuare la direcotry condivisa (in questo esempio "data"): # showmount -e server1 /data I file di configurazione sono due: 1)    /etc/auto.master   che contiene l'informazione della directory del server2 da montare e il file che contiene ulteriori informazioni per il mount.  Esempio vogliamo montare sul server2 la directory remota/condivisa (data) sotto la directory /srv2 che può fisicamente non esistere

Mount Samba Share su un client

Immagine
In questo post samba viene visto lato client . Qundi su un server in cui non è installato samba,  cercheremo di montare una directory condivisa di un samba server. Sul client installare i pacchetti cifs-utils e samba-client yum groups list --hidden yum groups install "Network File System Client" - Individuare la directory condivisa nel server remoto con il comando seguente smbclient -L //<sambahost name> oppure smbclient -L //<sambahost ip> Non è richiesta la password, quindi premere "Enter" The SMB1 protocol has been disabled in the Samba server and client utilities by default. In Samba 4.11, the default values of the `server min protocol` and `client min protocol` parameters have been changed from `NT1` to `SMB2_02` because the server message block version 1 (SMB1) protocol is deprecated. If you have not set these parameters in the `/etc/samba/smb.conf` file: Red Hat recommends to not use the SMB1 protocol. However, if your environment requires SMB1, y

Samba Server

Immagine
 Samba Server implementa il protocollo di condivisione di file di windows (windows file sharing protocol). Viene comunemente indicato come CIFS (common internet file system). La configurazione prevede:  - installare il pacchetto samba server yum install samba - creare la directory da condividere mkdir /samba - Aprire SELinux allo share semanage fcontext -a -t  public_conent_t "/samba(/.*)?" Applicare il nuovo set context di Selinux restorecon -Rv /samba - creare un utente locale linux useradd samba - imposta i premessi (write but not work!!!) chown samba /samba chmod 770 /samba - aggiungere un utente samba con il comandao smbpasswd -a che crea un utente compatibile con windows e serve perchè non è possibile autenticarsi con le credenziali window su un account linux. Il comando precedente invece lo permette. Il nome dell'account windows deve coincidere con un utente linux esistente. smbpasswd -a samba - abilitare la condivisione nel file /etc/samba/smb.conf Inserire le ri

NFS Client: mount shared directory remota

Immagine
Configurare il server1 come client NFS per accedere alla directory /data installata su un server NFS. 1) Lanciare il comando seguente per effettuare l'export dal server nfs # showmount -e  <server nfs>  2) Montare la directory condivisa sul server nfs su una directory locale # mount <server nfs> :/<dir share> /mnt Con il comando mount verifico che /mnt è montato sulla server2/data 3) Per rendere persistente il mount modificare il file /etc/fstab aggiungendo l'opzione _netdev Creare una directory  # mkdir /data_nfs Modificate il file fstab # vim /etc/fstab server2:/data     /data_nfs     nfs     _netdev     0     0 Vedere man nfs # mount -a Verifica con mount e se si creare o legge un file all'interno della directory /data_nfs Per verificare che sia montata la directory remota usare il comando  # df -h

NFS server

Creare un NFS server. Verificare se il servizio è inattivo: # systemctl status nfs-server Altrimenti installare i pacchetti # yum install -y nfs-utils Creare la directory da condividere e che sarà montata dal client # mkdir /data Creare il file di configurazione che dice al server NS cosa condividere. In questo esempio è la directory /data # vim /etc/exports  /data     *(rw,no_root_squash) Vediamo il significato delle varie opzioni: * --> indica i server che possono accedere alla directory condivisa ed è specificata con ip o dns name rw --> accesso in lettura e scrittura alla directory no_root_squash -->  significa che l'utente root sul client è considerato utente root anche sul server. Ovviamente ciò è un rischio per la sicurezza quindi si consiglia di rimuoverla se non necessario. Vedere man exports. Avviare il servizio nfs-server # systemctl enable --now nfs-server Aggiungere i seguenti servizi su Firewalld # firewall-cmd --add-service     nfs      --permanent # firew

Time - TIMEDATECTL - NTP -CHRONY

Immagine
hwclock --hctosys   sincronizza l'hardware time al system time  hwclock  --systohs   sincronizza il system time all'hardware time date  imposta il tempo corrente e lo visualizza tzselect   permette di selezionare la time zone timedatectl  la nuova utility per gestore tutti gli aspetti relativi al tempo e date # timedatectl --help # timedateclt status visualizza l'attuale impostazione delle date # timedateclt show visualizza le proprietà del systemd-timedate #  timedateclt list-timezones visualizzo la lista delle timezone per Nazione/Città principale # timedatectl set-timezones Europe/San_Marino Cambia la time zone che può essere verificato con il comando show # timedatectl show Mettere avanti di 5 minuti l'ora # date 17:10 # date -s 17:15 oppure # timedatect set-time 17:15 Assicurarsi che la sincronizzazione NTP (Network Time Protocol) sia configurata. # timedatectl set-ntp yes oppure # timedatectl set-ntp 1 Chrony sostituisce dalla rhel7 il vecchio servizio NTP. # yu

Automating Installations - Kickstart

Immagine
 L' installazione automatica su più server può avvenire: - Cloud-init in ambienti cloud - Kickstart può essere usato con un server PXE-boot in un datacenter automatizzato. Il kickstart file contiene tutte le istruzioni di installazione per effettuare il set up di una istanza Rhel. Il file Kickstart,  anaconda-ks.cfg , è creato automaticamente dopo l'installazione nelle root home directory e può essere modificato manualmente. Nella stessa directory c'è il file di configurazione initial-setup-ks.cfg che contiene parametri utili per il boot del file system come la scheda di rete, system language, repository.... In genere il file kickstart si trova su un server ed un client accede ad esso o tramite la url ks=http://server/ks.cfg oppure usando tool grafici come Virtual Machine Manager . - Vagrant è una soluzione per installare automaticamente Virtual Machine. Lavora con un "box" cioè una tar file che contiene l'immagine di una virtual machine. E' supportato

Firewalld

Immagine
Firewalling è avviato con il kernel perché questo sia aspetta pacchetti in ingresso e in uscita ed utilizza un modulo integrato nel kernel che si chiama Netfilter. Questo utilizza una interfaccia sopra il livello del kernel che si chiama Nftables che serve per classificate il movimento del traffico fissando delle regole sui pacchetti in ingresso e in uscita ma richiede una serie di comandi difficili da usare e per questo si utilizza  Firewalld che va a scrivere in Nftables rules. Firewalld usa differenti componenti per realizzare il firewalling - Service: abilita o blocca uno o più porte e moduli del kernel - Zone: specifica configurazione della network card  - Ports Per visualizzare la configurazione attuale del firewall # firewall-cmd --list-all public (active)   dice che la Zona è pubblica ed è attiva. E' il valore di default. interfaces: l'unica interfaccia definita è enp0s3 services : contiene l'elenco dei servizi abilitati in questa zona # firewall-cmd --get-servi

SELinux

Immagine
SElinux è un sistema di sicurezza del s.o. Linux basato sulla sicurezza di Unix. Fornisce una completa e obbligatoria soluzione di sicurezza il cui principio è:  "se non esplicitamente permesso, viene negato". Quindi in un ambiente dove è abilitato SELinux, ogni servizio non conosciuto ha necessità di un ulteriore configurazione per essere abilitato. L'abilitazione e disabilitazione di SElinux avviene a livello di kernel e pertanto è necessario il reboot Se abilitato può assumere due valori: Enforcing o Permissive e la modifica può essere fatta con il comando setenforce. Se è impostato Enforcing, è bloccato qualsiasi cosa che non soddisfa le Selinux policy. La modalità Permissive è temporanea e permette di effettuare il troubleshooting perché il traffico è ancora abilitato, nulla è bloccato ma ancora loggato. Per visualizzare la modalità attiva: getenforce Per passare da Enforcing a Permissive setenforce permissive oppure setenforce 0 Per passare da Permissive a Enforcing

APACHE - HTTPD

Immagine
Apache (httpd) è il principale web server su linux. Il Server root è  /etc/httpd  cioè la la radice della directory tree contenente i file di configurazione, i log files e gli errori.  Il file di configurazione è /etc/httpd/conf/httpd.conf Altri file di configurazione sono sotto /etc/httpd/conf.d/ Il default DocumentRoot è sotto /var/www/html   cioè la directory dove apache cerca i file\documents da caricare come "index.html". Possono essere creati link simboli e alias per puntare ad altre directory. Installazione: yum install httpd Attivare il servizio httpd e avviarlo automaticamente al boot del server systemclt start httpd systemclt enable httpd oppure usare un singolo comando (può durare anche 1 minuto): systemcl enable --now httpd Per verificare se funziona correttamente, scaricare il pacchetto curl che è un command line web client, un utility per ottenere file da server remoti tramite protocollo http, ftp, etc. yum install curl.x86_64 Può essere usato per verificare la