===== 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: # sudo -i # passwd Abilitiamo l'accesso come root via ssh modificando il file sshd_config (''vi /etc/ssh/sshd_config'') inserendo PermitRootLogin yes Quindi riavviamo il servizio sshd # systemctl restart sshd A questo punto possiamo eliminare l'utente creato durante l'installazione # userdel -r [dummy user] ==== Rigenerazione chiavi SSH al boot ==== Aggiungere nel file /etc/rc.local, prima di exit 0, la riga: echo [ -f /etc/ssh/ssh_host_dsa_key ] || dpkg-reconfigure openssh-server ==== Script di setup hostname ==== 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 ==== Data e ora ==== Installare il servizio NTP: # apt install ntp Controllare che in ''/etc/ntp.conf'' siano presenti i server LNF: server ntp1.lnf.infn.it iburst server ntp2.lnf.infn.it iburst server ntp3.lnf.infn.it iburst Abilitare la sincronizzazione: # timedatectl set-ntp true ==== Mail ==== Installiamo il pacchetto ''mailutils'' per poter utilizzare il comando **mail** da linea di comando # apt install mailutils Durante il processo di installazione inseriamo le seguenti impostazioni: General type of mail configuration: Internet with smarthost System mail name: lnf.infn.it Relay host: smtp.lnf.infn.it Modifichiamo nel file main.cf di postfix (''vi /etc/postfix/main.cf'') le seguenti direttive: #myhostname mydomain = lnf.infn.it mydestination = $myhostname, localhost.$mydomain, localhost relayhost = [smtp.lnf.infn.it] ==== Kerberos ==== Installiamo i pacchetti per il client Kerberos # apt install krb5-user 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. [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 } ==== OpenAFS ==== Installiamo i seguenti pacchetti confermando, quando richiesto, i parametri di default: # apt install openafs-client openafs-krb5 openafs-modules-dkms Modifichiamo il file ''CellAlias'' in ''/etc/openafs/'' inserendo lnf.infn.it lnf e il file ''ThisCell'' sempre in ''/etc/openafs/'' inserendo lnf.infn.it Riavviamo quindi ''openafs-client'' # systemctl stop openafs-client # systemctl start openafs-client # systemctl status openafs-client ==== Abilitare gli aggiornamenti automatici di sicurezza ==== Verifichiamo che in ''/etc/apt/apt.conf.d/50unattended-upgrades'' sia impostato Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; }; Per abilitare gli aggiornamenti automatici, modificare ''/etc/apt/apt.conf.d/10periodic'' e impostare le appropriate opzioni di configurazione di apt: APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1"; 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'': net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 Rendiamo effettive le modifiche eseguendo il comando: # sysctl -p Inseriamo la voce ''AddressFamily'' nel file ''/etc/ssh/sshd_config'' AddressFamily inet Quindi riavviamo ''ssh''. Infine modifichiamo la voce ''inet_interfaces'' in ''/etc/postfix/main.cf'' nel modo seguente: inet_interfaces = 127.0.0.1 ==== oVirt agent ==== Installiamo il pacchetto relativo ai guest agent di oVirt # apt-get install ovirt-guest-agent Modifichiamo il proprietario della directory ''/var/log/ovirt-guest-agent'' # chown ovirtagent:ovirtagent -R /var/log/ovirt-guest-agent Eseguiamo i seguenti comandi per avviare il servizio e abilitarlo al boot: # systemctl enable ovirt-guest-agent.service # systemctl start ovirt-guest-agent.service ==== check-mk agent ==== Installiamo i pacchetti ''check-mk-agent'' e ''xinetd'' # apt install check-mk-agent xinetd 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. only_from      = 127.0.0.1 193.206.84.50 Riavviamo il servizio ''xinetd'' # systemctl restart xinetd.service ==== Log alert script ==== Modifichiamo il file ''/etc/rsyslog.d/50-default.conf'' inserendo # Custom hourly warning mail *.warning /var/log/unsent.warnings # Send all logs to logsrv.lnf.infn.it *.* @logsrvdata.lnf.infn.it Creiamo la directory ''/usr/custom/scripts'' # mkdir -p /usr/custom/scripts Copiamo nella directory appena create gli script: * z-send.warnings * summarize Creiamo il file ''unset.warnings'' in ''/var/log/'' # touch /var/log/unsent.warnings Creiamo un link simbolico dallo script ''z-send.warnings'' a ''/etc/cron.hourly/'' # ln -s /usr/custom/scripts/z-send.warnings /etc/cron.hourly/ Infine riavviamo il servizio ''rsyslog'' # systemctl restart rsyslog ==== Tivoli Storage Manager e configurazione backup ==== Scarichiamo la versione client di Tivoli Storage Manager # 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 Estraiamo il contenuto: # tar -xf 6.4.3.4-TIV-TSMBAC-LinuxX86.tar Istalliamo il tool di conversione ''alien''. # apt install alien Questo tool consente di convertire i pacchetti Linux RPM in pacchetti Ubuntu Debian. # 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 Lanciamo l'installazione: # 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 Creiamo i seguenti link simbolici: # 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/ Modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.sys'' con il seguente contenuto: ************************************************************************ * 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 Analogamente modifichiamo il file ''/opt/tivoli/tsm/client/ba/bin/dsm.opt'' inserendo: ************************************************************************ * 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 Modifichiamo lo scheduler in ''/usr/lib/systemd/system/tsmscheduler.service'' con il seguente contenuto: [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 ==== Templetize script ==== Configurati tutti i servizi precedenti è necessario eseguire il seguente script per ripulire la macchina da tutte le configurazioni non necessarie: #!/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