Table of Contents
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
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