HOW TO TUNING LINUX ON USB KEY

Guida pratica all'ottimizzazione ver. 0.1 - Novembre 2011

by Dataseal

Premessa
Utilizzata versione Ubuntu 10.xx e 11.xx. Pc portatile Asus, anno 2005, cpu centrino 1,8GHz, ram 1GB.

Installazione su chiavetta usb
Scollegato fisicamente hd, da cd-rom effettuata l'installazione su chiavetta usb. La chiavetta viene vista come sda1. Una volta ricollegato l'hd la chiavetta diventa sdb1, da modificare nel file di grub. Rilanciando grub per rigenerare il file di avvio con la modifica del percorso della chiavetta, nel boot manager comparirà anche la voce per lanciare windows-xp.

Impostare una formattazione disco “leggera”
Durante l'installazione scegliere di personalizzare le partizioni, impostare tutta la chiavettaper una sola partizione tipo ext2, senza partizione di swap. Una volta installato e funzionante, modificare il file /etc/fstab per migliorare le prestazioni di scrittura e limitare l'invecchiamento di un sistema di memorizzazione a stato solido: $ cat /etc/fstab
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 # / was on /dev/sda1 during installation #UUID=6785690e-017f-478c-8365-c7202e31869c / ext2 errors=remount-ro 0 1 # UUID=6785690e-017f-478c-8365-c7202e31869c / ext2 defaults,noatime,nodiratime,errors=continue 0 1 # tmpfs /dev/shm tmpfs size=384M 0 0

Portare le cartelle di file temporanei in ram
Nella cartella /etc/init.d/ creare un file # touch my_temporanei.sh Aggiorniamo il database degli script, con il comando (mettere anche il punto finale!) # update-rc.d my_temporanei.sh start 10 2 3 4 5 S . e rendiamo eseguibile lo script # sudo chmod +x /etc/init.d/my_temporanei.sh Da shell root si fa un back-up delle cartelle tmp e al loroposto si mette un link a delle cartelle in ram: $ cd / $ mv tmp tmp.or $ ln -s /dev/shm/tmp tmp $ cd /var/ $ mv tmp tmp.or $ ln -s /dev/shm/var/tmp tmp Nel file my_temporanei.sh inserire: #! /bin/sh # La prima riga non è da modificare, non vi devono essere degli spazi all'inizio . echo "preparazione di /tmp" mkdir /dev/shm/tmp chmod 777 /dev/shm/tmp chmod +t /dev/shm/tmp # echo "preparazione di /var" mkdir /dev/shm/var chmod 777 /dev/shm/var echo "preparazione di /var/tmp" mkdir /dev/shm/var/tmp chmod 777 /dev/shm/var/tmp chmod +t /dev/shm/var/tmp # sync #

Diminuire il numero di console
Nella cartella /etc/init/ vi sono i file tty[1-6].conf che rappresentano le sei console caricate di default. Eliminare i file delle console che non si vogliono oppure in ogni file inserire # all'inizio della riga in cui è presente il comando strart on run level [23] (tty6, tty5, tty4).

Impostare i parametri del Kernel, sysctl
Si può agire diretamente nel file /etc/sysctl.conf in modo che le variabili vengano inizializzate direttamente al boot; oppure eseguendo il comando: sysctl -p /etc/sysctl.conf All'interno del file /etc/sysctl.conf , scrivere: #La direttiva swappiness indica il valore minimo di ram in percentuale al disotto del quale il sistema #inizia lo swap su disco. Impostabile da 0 a 100, tipico è 60. Si può impostare a un valore più basso. #Non avendo partizione o file di swap lo imposto 0: vm.swappiness=0 #cache in ram, maggiore è migliori sono le prestazioni ma più facile arrivare all'out of range della ram. # default: 100 verificare occupazione della mem vm.vfs_cache_pressure=100 #log_martians #i pacchetti martians –marziani- sono caratterizzati dal fatto che hanno uno o più campi completamente #sballati: classi di rete non utilizzabili, redirezioni o altro. Si evita di portare il sistema ad un flood dei #log, impostando a zero non vengono registrate le evenienze. net.ipv4.conf.all.log_martians=0 # icmp - broadcasts #per evitare un DoS da ping con destinazione broadcast. #se tutte le macchine dovessero rispondere, si potrebbe generare un traffico tale da rallentare o perfino #saturare la banda della rete. net.ipv4.icmp_echo_ignore_broadcasts=1 # icmp – error responses #ignorare i pacchetti icmp d'errore, causati dagli host che rispondono male a determinati frame, che #ritengono inviati all'indirizzo di broadcasts. Può essere causato sia da un attaccante sia da un'errata #configurazione dell'interfaccia di rete. net.ipv4.icmp_ignore_bogus_error_responses=1 # icmp - redirects #le redirezioni icmp vengono utilizzate in alcuni apparati per suggerire percorsi alternativi in caso di #congestioni nel traffico di rete

net.ipv4.conf.all.accept_redirects=0 # source-routed # I pacchetti source-routed sono utilizzati per specificare il percorso che bisogna fare per raggiungere #una certa destinazione. Un attaccante può ingannare l'host inviandogli pacchetti su di un'interfaccia #fidata. net.ipv4.conf.all.accept_source_route=0 # reverse path-filter # vengono scartati tutti I pacchetti che giungono in ingresso su un'interfaccia diversa da quella che si #aspetterebbe il kernel consultando la tabella di routing; in pratica la risposta ad un pacchetto deve #giungere dalla medesima scheda da cui è uscito. net.ipv4.conf.all.rp_filter=1 #configurazione dinamica #se non si vuole consentire l'uso di protocolli di configurazione dinamica, es BOOTP, DHCP, … net.ipv4.ip_dynaddr=0 #forwarding #se un host è stand-alone non dovrebbe servire poter gestire l'inoltro di pacchetti tra due host esterni. net.ipv4.ip_forward=0 #velocizzare la navigazione #Per impostazione predefinita vengono salvate le metriche ad ogni chiusura di ogni connessione, queste #possono essere utilizate per le successive connessioni ma implica un lavoro extra. net.ipv4.tcp_no_metrics_save = 1 #The default value of rmem_max (receive buffer size) and wmem_max (send buffer size) is about #128 KB in most Linux distributions, which may be enough for a low-latency general purpose network #environment or for apps such as DNS / Web server. However, if the latency is large, the default size #might be too small. Please note that the following settings going to increase memory usage on your #server. net.core.wmem_max=12582912 net.core.rmem_max=12582912
# #You also need to set minimum size, initial size, and maximum size in bytes:

net.ipv4.tcp_rmem= 10240 87380 12582912 net.ipv4.tcp_wmem= 10240 87380 12582912 # #Set maximum number of packets, queued on the INPUT side, when the #interface receives packets faster than kernel can process them.
net.core.netdev_max_backlog = 1000

#disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

AUMENTARE LA SICUREZZA
Il file /etc/services converte il nome dei protocolli nel relativo numero di porta. # sudo chattr +i /etc/services Special Accounts # sudo cp /etc/passwd /etc/passwd.or # sudo cp /etc/group /etc/group.or # sudo userdel games # sudo groupdel games # sudo chattr +i /etc/passwd # sudo chattr +i /etc/group

OpenDNS
Da inserire nel router oppure niente gestione dns da router e nel file /etc/resolv.conf immetere solo le seguenti due righe: nameserver 208.67.220.220 nameserver 208.67.222.222 poi va reso immodificabile: # chattr +i /etc/resolv.conf

Liberare spazio su disco
Per controllare quanto spazio su disco occupa la cache dei pacchetti sul sistema, avviate il Terminale e lanciare il comando: # du -sh /var/cache/apt/archives Eseguire: Per pulire la cache del gestore dei pacchetti # sudo apt-get clean Per pulire la cache dei programmi disinstallati # sudo apt-get autoclean Per eliminare i file relativi alle dipendenze ormai obsoleti # sudo apt-get autoremove

Sign up to vote on this title
UsefulNot useful