User Tools

Site Tools


strutture:lnf:dr:calcolo:sistemi:ubuntu_16.04_template

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
strutture:lnf:dr:calcolo:sistemi:ubuntu_16.04_template [2016/11/29 17:38] – [Tivoli Storage Manager e configurazione backup] tota@infn.itstrutture:lnf:dr:calcolo:sistemi:ubuntu_16.04_template [2017/10/31 14:51] (current) – [Script di setup hostname] dmaselli@infn.it
Line 1: Line 1:
 +===== Ubuntu 16.04 Template =====
 +
 +==== Rimozione dummy user ====
 +
 +Ubuntu 16.04 non offre di default la possibilità di effettuare l'accesso come utente root. Per abilitare l'accesso eseguiamo i seguenti passaggi.
 +
 +Creiamo una password per l'utente root:
 +
 +<code>
 +# sudo -i
 +# passwd
 +</code>
 +
 +Abilitiamo l'accesso come root via ssh modificando il file sshd_config (''vi /etc/ssh/sshd_config'') inserendo
 +
 +<code>
 +PermitRootLogin yes
 +</code>
 +
 +Quindi riavviamo il servizio sshd
 +
 +<code>
 +# systemctl restart sshd
 +</code>
 +
 +A questo punto possiamo eliminare l'utente creato durante l'installazione
 +
 +<code>
 +# userdel -r [dummy user]
 +</code>
 +
 +
 +==== Rigenerazione chiavi SSH al boot ====
 +
 +Aggiungere nel file /etc/rc.local, prima di exit 0, la riga:
 +<code>
 +echo [ -f /etc/ssh/ssh_host_dsa_key ] || dpkg-reconfigure openssh-server
 +</code>
 +
 +==== Script di setup hostname ====
 +
 +<code>
 +cat > /etc/dhcp/dhclient-exit-hooks.d/hostname <<''EOT''
 +#!/bin/sh
 +
 +if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
 +   && [ "$reason" != REBIND ] && [ "$reason" != REBOOT ]
 +then
 +        return
 +fi
 +
 +hostname "$new_host_name"
 +
 +echo -n "$new_host_name" > /etc/hostname
 +
 +HOSTS='/etc/hosts'
 +TARGET_KEY='127.0.1.1'
 +
 +sed -i "s/\($TARGET_KEY\)\(\s*\).*/\1\2$new_host_name/" $HOSTS
 +EOT
 +
 +</code>
 +
 +==== Data e ora ====
 +
 +Installare il servizio NTP:
 +<code># apt install ntp</code>
 +  
 +Controllare che in ''/etc/ntp.conf'' siano presenti i server LNF:
 +<code>
 +server ntp1.lnf.infn.it iburst
 +server ntp2.lnf.infn.it iburst
 +server ntp3.lnf.infn.it iburst
 +</code>
 +  
 +Abilitare la sincronizzazione:
 +<code># timedatectl set-ntp true</code>
 +  
 +==== Mail ====
 +
 +Installiamo il pacchetto ''mailutils'' per poter utilizzare il comando **mail** da linea di comando
 +<code># apt install mailutils</code>
 +
 +Durante il processo di installazione inseriamo le seguenti impostazioni:
 +
 +<code>
 +General type of mail configuration: Internet with smarthost
 +System mail name: lnf.infn.it
 +Relay host: smtp.lnf.infn.it
 +</code>
 +
 +Modifichiamo nel file main.cf di postfix (''vi /etc/postfix/main.cf'') le seguenti direttive:
 +
 +<code>
 +#myhostname
 +mydomain = lnf.infn.it
 +mydestination = $myhostname, localhost.$mydomain, localhost
 +relayhost = [smtp.lnf.infn.it]
 +</code> 
 +
 +==== Kerberos ====
 +
 +Installiamo i pacchetti per il client Kerberos
 +
 +<code># apt install krb5-user</code>
 +
 +Editiamo il file di configurazione ''/etc/krb5.conf'' per impostare i realm, LNF.INFN.IT K5 come realm di default, il dominio del realm e alcuni valori di default utilizzati dagli applicativi di Kerberos 5.
 +
 +<code>
 +[libdefaults]
 +        default_realm = LNF.INFN.IT
 +
 +[domain_realm]
 +        .lnf.infn.it = LNF.INFN.IT
 +        lnf.infn.it  = LNF.INFN.IT
 +
 +[realms]
 +        LNF.INFN.IT = {
 +                kdc = kdc5s3.lnf.infn.it:88
 +                kdc = kdc5s2.lnf.infn.it:88
 +                kdc = kdc5s1.lnf.infn.it:88
 +                kdc = kdc5s0.lnf.infn.it:88
 +                kdc = kdc5p.lnf.infn.it:88
 +                admin_server = kdc5p.lnf.infn.it:749
 +                default_domain = lnf.infn.it
 +        }
 +        INFN.IT = {
 +                kdc = k5.infn.it:88
 +                kdc = afscnaf.infn.it:88
 +                kdc = afsrm1.roma1.infn.it:88
 +                kdc = afsna.na.infn.it:88
 +                admin_server = k5.infn.it:749
 +                default_domain = infn.it
 +        }
 +
 +[appdefaults]
 +
 +        aklog_homedir = true
 +
 +        pam-afs-session = {
 +            minimum_uid = 1000
 +            ignore_root = true
 +                debug = true
 +        }
 +
 +        pam = {
 +                minimum_uid = 1000
 +                ticket_lifetime = 259200 # 86400
 +                renew_lifetime = 604800
 +                forwardable = true
 +                krb4_convert = false
 +                ccache_dir = /tmp
 +                tokens = true
 +                krb4_convert_524 = false
 +                krb4_use_as_req = false
 +                #afs_cells = lnf.infn.it=afs@LNF.INFN.IT
 +                afs_cells = lnf.infn.it=afs/lnf.infn.it@LNF.INFN.IT
 +                #existing_ticket = true
 +                validate = true
 +                #validate = false
 +                keytab = FILE:/etc/krb5.keytab
 +                debug = false
 +                #debug = true
 +        }
 +</code>
 +
 +==== OpenAFS ====
 +
 +Installiamo i seguenti pacchetti confermando, quando richiesto, i parametri di default:
 +
 +<code># apt install openafs-client openafs-krb5 openafs-modules-dkms</code>
 +
 +Modifichiamo il file ''CellAlias'' in ''/etc/openafs/'' inserendo
 +<code>lnf.infn.it lnf</code>
 +
 +e il file ''ThisCell'' sempre in ''/etc/openafs/'' inserendo
 +<code>lnf.infn.it</code>
 +
 +Riavviamo quindi ''openafs-client''
 +
 +<code>
 +# systemctl stop openafs-client
 +# systemctl start openafs-client
 +# systemctl status openafs-client
 +</code>
 +==== Abilitare gli aggiornamenti automatici di sicurezza ====
 +
 +Verifichiamo che in ''/etc/apt/apt.conf.d/50unattended-upgrades'' sia impostato 
 +
 +<code>
 +Unattended-Upgrade::Allowed-Origins {
 +    "${distro_id}:${distro_codename}-security";
 +};
 +</code>
 +
 +Per abilitare gli aggiornamenti automatici, modificare ''/etc/apt/apt.conf.d/10periodic'' e impostare le appropriate opzioni di configurazione di apt:
 +
 +<code>
 +APT::Periodic::Update-Package-Lists "1";
 +APT::Periodic::Download-Upgradeable-Packages "1";
 +APT::Periodic::AutocleanInterval "7";
 +APT::Periodic::Unattended-Upgrade "1";
 +</code>
 +
 +La configurazione precedente aggiorna l'elenco dei pacchetti, scarica gli aggiornamenti disponibili ed installa gli aggiornamenti di sicurezza. L'archivio locale dei file scaricati viene pulito ogni settimana.
 +
 +==== Disabilitare ipv6 ====
 +
 +Aggungiamo le seguenti voci in fondo al file ''/etc/sysctl.conf'':
 +<code>
 +net.ipv6.conf.all.disable_ipv6 = 1
 +net.ipv6.conf.default.disable_ipv6 = 1
 +net.ipv6.conf.lo.disable_ipv6 = 1
 +</code>
 +
 +Rendiamo effettive le modifiche eseguendo il comando:
 +
 +<code># sysctl -p</code>
 +
 +Inseriamo la voce ''AddressFamily'' nel file ''/etc/ssh/sshd_config'' 
 +
 +<code>AddressFamily inet</code>
 +
 +Quindi riavviamo ''ssh''.
 +
 +Infine modifichiamo la voce ''inet_interfaces'' in ''/etc/postfix/main.cf'' nel modo seguente:
 +
 +<code>
 +inet_interfaces = 127.0.0.1
 +</code>
 +==== oVirt agent ====
 +
 +Installiamo il pacchetto relativo ai guest agent di oVirt  
 +
 +<code># apt-get install ovirt-guest-agent</code>
 +
 +Modifichiamo il proprietario della directory ''/var/log/ovirt-guest-agent''
 +
 +<code>
 +# chown ovirtagent:ovirtagent -R /var/log/ovirt-guest-agent
 +</code>
 +
 +Eseguiamo i seguenti comandi per avviare il servizio e abilitarlo al boot:
 +
 +<code>
 +# systemctl enable ovirt-guest-agent.service
 +# systemctl start ovirt-guest-agent.service
 +</code>
 +
 +==== check-mk agent ====
 +
 +Installiamo i pacchetti ''check-mk-agent'' e ''xinetd''
 +
 +<code># apt install check-mk-agent xinetd</code>
 +
 +Modifichiamo il file ''/etc/xinetd.d/check_mk'' inserendo in ''only_from'' la lista degli host che hanno il permesso di connettersi al client, ovvero ''localhost'' e il server Nagios.
 +
 +<code>
 +only_from      = 127.0.0.1 193.206.84.50
 +</code>
 +
 +Riavviamo il servizio ''xinetd''  
 +
 +<code>
 +# systemctl restart xinetd.service
 +</code>
 +
 +==== Log alert script ====
 +
 +Modifichiamo il file ''/etc/rsyslog.d/50-default.conf'' inserendo 
 +
 +<code>
 +# Custom hourly warning mail
 +*.warning                                               /var/log/unsent.warnings
 +
 +# Send all logs to logsrv.lnf.infn.it
 +*.*                                                     @logsrvdata.lnf.infn.it
 +</code>
 +
 +Creiamo la directory ''/usr/custom/scripts''
 +
 +<code># mkdir -p /usr/custom/scripts</code>
 +
 +Copiamo nella directory appena create gli script:
 +
 +  * z-send.warnings
 +  * summarize
 +
 +Creiamo il file ''unset.warnings'' in ''/var/log/''
 +
 +<code># touch /var/log/unsent.warnings</code>
 +
 +Creiamo un link simbolico dallo script ''z-send.warnings'' a ''/etc/cron.hourly/''
 +
 +<code># ln -s /usr/custom/scripts/z-send.warnings /etc/cron.hourly/</code>
 +
 +Infine riavviamo il servizio ''rsyslog''
 +
 +<code># systemctl restart rsyslog</code>
 +==== Tivoli Storage Manager e configurazione backup ====
 +
 +Scarichiamo la versione client di Tivoli Storage Manager
 +
 +<code># curl -O ftp://ftp.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v6r4/Linux/LinuxX86/BA/v643/6.4.3.4-TIV-TSMBAC-LinuxX86.tar</code>
 +
 +Estraiamo il contenuto: 
 +
 +<code>
 +# tar -xf 6.4.3.4-TIV-TSMBAC-LinuxX86.tar
 +</code>
 +
 +Istalliamo il tool di conversione ''alien''.
 +<code># apt install alien</code>
 +
 +Questo tool consente di convertire i pacchetti Linux RPM in pacchetti Ubuntu Debian.
 +
 +<code>
 +# alien -k --scripts gskcrypt64-8.0.14.53.linux.x86_64.rpm
 +# alien -k --scripts gskssl64-8.0.14.53.linux.x86_64.rpm
 +# alien -k --scripts TIVsm-API64.x86_64.rpm
 +# alien -k --scripts TIVsm-BA.x86_64.rpm
 +</code>
 +
 +Lanciamo l'installazione:
 +
 +<code>
 +# dpkg -i tivsm-api64_6.4.3-4_amd64.deb tivsm-ba_6.4.3-4_amd64.deb gskcrypt64_8.0-14.53_amd64.deb gskssl64_8.0-14.53_amd64.deb
 +</code>
 +
 +Creiamo i seguenti link simbolici:
 +<code>
 +# ln -s /opt/tivoli/tsm/client/api/bin64/libgpfs.so /lib/ 
 +# ln -s /opt/tivoli/tsm/client/api/bin64/libdmapi.so /lib/ 
 +# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8cms_64.so /lib/ 
 +# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8ssl_64.so /lib/ 
 +# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8sys_64.so /lib/ 
 +# ln -s /usr/local/ibm/gsk8_64/lib64/libgsk8iccs_64.so /lib/
 +</code>
 +
 +Modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.sys'' con il seguente contenuto:
 +
 +<code>
 +************************************************************************
 +* Tivoli Storage Manager                                               *
 +*                                                                      *
 +* Sample Client System Options file for UNIX (dsm.sys.smp)             *
 +************************************************************************
 +
 +*  This file contains the minimum options required to get started
 +*  using TSM.  Copy dsm.sys.smp to dsm.sys.  In the dsm.sys file,
 +*  enter the appropriate values for each option listed below and
 +*  remove the leading asterisk (*) for each one.
 +
 +*  If your client node communicates with multiple TSM servers, be
 +*  sure to add a stanza, beginning with the SERVERNAME option, for
 +*  each additional server.
 +
 +************************************************************************
 +
 +servername  tsm01
 +    commmethod         tcpip
 +    tcpport            1500
 +    tcpserveraddress   tsm01.lnf.infn.it
 +    Inclexcl           /opt/tivoli/tsm/client/ba/bin/inclexcl.file
 +    passwordaccess     generate
 +    passworddir        /etc/security/tsm01
 +    nodename           __NODENAME__
 +    users              root
 +    schedlogname       /var/log/dsmcschedule.log
 +    errorlogname       /opt/tivoli/tsm/client/ba/bin/dsmerror.log
 +
 +</code>
 +
 +Analogamente modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.opt'' inserendo:
 +
 +<code>
 +************************************************************************
 +* Tivoli Storage Manager                                               *
 +*                                                                      *
 +* Sample Client User Options file for UNIX (dsm.opt.smp)               *
 +************************************************************************
 +
 +*  This file contains an option you can use to specify the TSM
 +*  server to contact if more than one is defined in your client
 +*  system options file (dsm.sys).  Copy dsm.opt.smp to dsm.opt.
 +*  If you enter a server name for the option below, remove the
 +*  leading asterisk (*).
 +
 +************************************************************************
 +
 +* SErvername       A server name defined in the dsm.sys file
 +servername tsm01
 +compressalways no
 +
 +</code>
 +
 +Modifichiamo lo scheduler in ''/usr/lib/systemd/system/tsmscheduler.service'' con il seguente contenuto:
 +
 +<code>
 +[Unit]
 +Description=Tivoli Storage Manager Client Scheduler
 +After=network.target
 +
 +[Service]
 +ExecStart=/opt/tivoli/tsm/client/ba/bin/dsmc schedule
 +StandardOutput=null
 +StandardError=journal
 +KillMode=process
 +Restart=always
 +RestartSec=10m
 +
 +[Install]
 +WantedBy=multi-user.target
 +
 +</code>
 +==== Templetize script ====
 +
 +Configurati tutti i servizi precedenti è necessario eseguire il seguente script per ripulire la macchina da tutte le configurazioni non necessarie:
 +
 +<code>
 +#!/bin/bash
 +
 +echo 'Removing apt cache files...'
 +apt-get clean
 +apt-get autoclean
 +echo 'Done.'
 +
 +echo 'Removing config and log files...'
 +rm -vrf /root/.ssh/known_hosts /root/.viminfo /root/.pine-debug2 /root/.bash_history /tmp/* /var/log/anacond* /var/log/boot* /var/log/cron* /var/log/dmes* /var/log/faillo* /var/log/lastlo* /var/log/maillo* /var/log/mcelo* /var/log/message* /var/log/rpmpkg* /var/log/scrollkeepe* /var/log/secur* /var/log/spoole* /var/log/unsen* /var/log/wtm* /var/log/Xor* /var/log/yu* /var/log/audit/* /var/log/cups/* /var/log/gdm/* /var/log/mail/* /var/log/news/* /var/log/pm/* /var/log/prelink/* /var/log/settroubleshoot/* /etc/udev/rules.d/70-persistent-net.rules /etc/ssh/ssh_host* /var/lib/dhcp/dhclient*
 +echo 'Done.'
 +
 +echo 'Shutdown in 10 seconds...'
 +sleep 10
 +
 +history -c 
 +
 +shutdown -h now
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki