Menu Chiudi

Mini Guida

Rete

Utilizzo di ssh

Specificare un altro utente per il login
ssh -l <nomeutente> <host>
Copiare un file usando ssh come supporto (scp)
scp <nomefile> <utente>@<hostremoto>:<path>
Redirect di una porta remota alla macchina locale

Rete

Utilizzo di ssh

Specificare un altro utente per il login
ssh -l <nomeutente> <host>
Copiare un file usando ssh come supporto (scp)
scp <nomefile> <utente>@<hostremoto>:<path>
Redirect di una porta remota alla macchina locale
ssh -L <portalocale>:<hostremoto>:<portaremota> <hostremoto/gateway>

nota <hostremoto> è il nome o indirizzo IP della macchina su cui risiede il servizio a cui vogliamo accedere e dev’essere visibile dal gateway, esempio:

ssh -L  3389:192.168.1.1:3389 indirizzofirewall

a questo punto è possibile lanciare:

rdesktop localhost

e collegarsi al terminal server 192.168.1.1.

Configurare accesso ssh senza richiesta password
ssh-keygen -b 1024 -t rsa

poi copiare la chiave pubblica generata (nel file .ssh/id_rsa.pub) nel .ssh/authorized_keys del server

Disabilitare l’accesso da rete a root

il file /etc/securetty contiene la lista dei device da dove l’utente root puo’ connettersi, se si concellano tutte le voci lasciando da tty1 a tty8, l’utente potra’ collegarsi solo dalla console.:

ttyS* terminali seriali (modem ecc)

ttyp*, ttyq*, etc terminali di rete

Alcune opzioni utili di nmap

Dal lanciare come root:

nmap -v -sT -O "host"

per una scansione “half-open”:

nmap -v -sS -O "host"

Info su un dominio

whois "dominio"

Forwarding banale

con ipchains:

ipchains -F forward        
ipchains -P forward DENY
ipchains -A forward -s 192.168.10.0/24 -j MASQ
ipchains -A forward -i ppp0 -j MASQ
echo 1 > /proc/sys/net/ipv4/ip_forward

con iptables:

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables --append FORWARD --in-interface eth0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Bloccare l’accesso incondizionato da un determinato IP

Mettere una linea con l’indirizzo IP in /etc/hosts.deny o in caso di firewall:

ipchains -I input 1 -s xxx.xxx.xxx.xxx -j DENY
ipchains -I forward 1 -s xxx.xxx.xxx.xxx -j DENY

oppure bloccare la route verso un host:

route add -host "ip host" reject

Esempi pratici di wget

Scaricare un sito (con link interni) e mantenerlo nella directory corrente senza il prefisso www.host..

wget -nH -r sito

Uso di fetchmail

set daemon 600 #poll di 10 min
set syslog
poll mail.server.it with proto POP3:
user "utentediposta" there with password "" is utentelinux here;

Collegamento via seriale ai dispositivi

Si parte lasciando spento il dispositivo

minicom -s  sistemare le impostazioni (tipicamente 9600 8N1)
exit (senza uscire dall'applicazione)

accendendo il dispositivo se ne vedrà il boot

rinetd: trasferimento di servizio da un pc ad un altro

Si configura in /etc/rinetd.conf:

hostinterfaccia porta host destinazione porta

Uso di lftp per gestire il mirror dei siti via ftp

esempi di utilizzo:

lftp -u <utente> -e "cd <directoryremota>; mirror --delete --exclude wp-config.php --only-newer  --parallel=1; quit" <nomesito> 

questo comando permette di fare il mirror del sito remoto copiando solo i file nuovi, l’opzione –parallel=1 serve in alcuni casi quando il sito remoto consente solo una connessione ftp alla volta, l’opzione –delete cancella i file locali non presenti in remoto, l’opzione –exclude evita di copiare i file che corrispondono

lftp -u <utente> -e "lcd <directorylocale>; mirror --reverse --delete --only-newer  --parallel=1; quit" <nomesito> 

fa l’esatto contrario del comando precedente, copia il contenuto del locale in remoto ed elimina i file che non esistono piu’ in locale

Samba

Samba parte di un dominio NT

Versione 2.x

Prima aggiungere il nome NetBIOs della macchina sulla lista degli account macchina del PDC, stoppare SMBD e NMBD poi scrivere:

smbpasswd -j NTDomainName -r PDCName

infine cambiare in smb.conf security = domain, verificare che la voce encrypt password sia YES e aggiungere:

password server = nome_del_server

Versione 3.x

Per aggiungere la macchina nel dominio NT:

net join -S PDC -UAdministrator%password

va inoltre installato winbindd, se non si vogliono replicare gli utenti del dominio anche lato linux, bisogna modificare il file smb.conf nella sezione global

# separate domain and username with '+', like DOMAIN+username
winbind separator = +
# use uids from 10000 to 20000 for domain users
idmap uid = 10000-20000
# use gids from 10000 to 20000 for domain groups
idmap gid = 10000-20000
# allow enumeration of winbind users and groups
winbind enum users = yes
winbind enum groups = yes

oltre ai soliti parametri di samba per poter far parte di un dominio:

workgroup = NOMEDOMINIO
security = domain
password server = *
encrypt passwords = Yes
passdb backend = tdbsam guest

inoltre ora bisogna modificare il pam per permettere l’autenticazione tramite il PDC, farsi una copia di backup di /etc/pam.d e modificare i file in essa contenuti in questo modo:

/etc/pam.d/common-auth

aggiungere:

auth    sufficient      pam_winbind.so

in:

/etc/pam.d/common-account

aggiungere:

account sufficient      pam_winbind.so

far ripartire winbindd:

/etc/init.d/winbindd restart

ora con un:

wbinfo -u

si dovrebbe vedere la lista degli utenti gestiti dal PDC.

Copiare la lista degli utenti unix per Samba

cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd

oppure:

smbpasswd utente

addtosmbpasswd

Look up di un client NT dall’indirizzo IP

nmblookup -U PDC_NAME -AS indirizzo_ip

Risoluzione dei nomi tramite wins

Installare samba (per DebIan anche apt-get install winbind), modificare:

/etc/nsswitch.conf

alla riga:

hosts:  files dns winbind wins

Apache

Evitare il browsing delle directory e abilitarlo solo in alcune

Directory /var/www
Options (eliminare l'eventuale Indexes)
/Directory

Directory /var/www/directorydarenderebrowsable
Options indexes FollowSymLinks
/Directory

Area visitabile solo ad alcuni utenti

Nella sezione Directory che si vuole:

AuthName "Area protetta"
AuthType Basic
AuthUserFile /etc/apache/htpasswd
require user utente

per aggiungere un utente al file di password utilizzare:

htpasswd /etc/apache/htpasswd utente

la stessa cosa puo’ essere fatta tramite .htaccess sempre che nella configurazione globale di apache sia permesso modificarne il comportamento tramite questo file, è sufficiente inserire il file nella directory che si vuole abilitare tramite password con il seguente contenuto:

AuthUserFile /<pathcompletodallarootcompresalarootdiapache>/.htpasswd
AuthGroupFile /dev/null
AuthName EnterPassword
AuthType Basic

require user nomeutente

come nel caso precedente per le password:

htpasswd .htpasswd nomeutente

Postfix

Ciao ciao, Ciao Spam

Autore: Flavio Visentin

Ultimamente ha fatto molto discutere l’iniziativa di ciaospam.it, che per limitare lo spam obbliga a farsi riconoscere

Ecco una ricetta che permette di eliminare del tutto l’assillo:

  1. Creare di una mappa che contiene gli indirizzi da rifiutare:

    # echo "info@ciaospam.it REJECT" >> /etc/postfix/rompiscatole
    # postmap /etc/postfix/rompiscatole
  2. Informare della cosa postfix:

    # echo "smtpd_sender_restrictions = check_sender_access \
    > hash:/etc/postfix/rompiscatole" >> /etc/postfix/main.conf
    #/etc/init.d/postfix reload

X11

Gestione dei tasti multimediali

Controllare i valori numerici ritornati premendo il tasto dopo aver lanciato ‘xev’.

Controllare il codice di X11 controllando i valori numerici in in /etc/X11/xkb/keycodes/xfree86)

Aggiungere una sezione a /etc/X11/xkb/symbols/inet con quei codici collegandoli ai codici per XFREE86 magari facendo una copia del file prima…ad esempio:

// portatile sconosciutissimo
partial alphanumeric_keys
xkb_symbols "portatilesconosciutissimo" {
key <I22> { [ XF86AudioPlay, XF86AudioPause ] };
key <I10> { [ XF86AudioPrev ] };
key <I19> { [ XF86AudioNext ] };
key <I24> { [ XF86AudioStop ] };
key <I30> { [ XF86AudioRaiseVolume ] };
key <I2E> { [ XF86AudioLowerVolume ] };
key <I20> { [ XF86AudioMute ] };
};

Control Alt Canc in VNC o menu

Per attivare il menu del VNC che nella versione di windows è accessibile tramite mouse, premere F8, verrà visualizzata l’opzione la voce send ctrl alt del

Per spostare il mouse con la tastiera

Ctrl+Shift+Num Lock: Senti un beep.

Sposti il cursore con i tasti:

7 8 9

4 6

1 2 3

sul tastierino numerico.

Selezioni un tasto del mouse con i tasti “/” (sinistro), “*” (centrale) e “-” (destro), sempre sul tastierino numerico. Poi con “5” simuli un click con quel tasto, con “0” lo si mantiene premuto e con “.” lo si rilascia.

Caratteri balenghi con la tastiera italiana

`  = AltGr + ' oppure AltGr + ù
{} = AltGr + 7 e AltGr + 0

Configurazione di XKB

Un’ottima guida, seppure in inglese: http://www.charvolant.org/~doug/xkb/html/xkb.html

Per vedere la risoluzione attuale di X

xdpyinfo

Per far partire X su un altro terminale

Per avere più sessioni X sulla stessa macchina:

startx -- :1

Altro modo:

Xnest :1

fornisce una finestra contenente un X server. Esempio interessante di applicazione che è contemporaneamente un X client e X server.

xnest come client

È possibile con xnest per esempio collegarsi a un xdm (o gdm) che ha attivo l’xdmcp, X Display Manager Protocol (stile rdesktop):

Xnest :1 -query indirizzoserver

Mouse in X e su console

Probabilmente è sufficiente mettere in /etc/gpm.conf:

device=/dev/psaux
repeat_type=raw
type=ps2

poi nel file di configurazione di X /dev/gpmdata come device per il mouse

Tasti windows in X

aggiungere in ~/.Xmodmap:

keycode 115 = F13
keycode 116 = F14
keycode 117 = F15

quindi in .xsession: modmap ~/.Xmodmap. Ora F13, F14 e F15 sono sx-Win , dx-Win e menu-contestuale.

Esportare il display tramite ssh

Assicurarsi che sul server sia abilitata la voce:

X11Forwarding yes  

in /etc/ssh/sshd_config, quindi sul client esportare il display prima di effettuare la connessione ssh:

export DISPLAY=:0.0

a questo punto collegandosi via ssh al server con le opzioni:

ssh -X -C (per la compressione) <indirizzoserver>

è possibile lanciare le applicazioni in modo che visualizzino il display sul client, attenzione sul server dev’essere installato il client X (xbase-clients per DebIan)

Gestione font decenti

installare possibilmente i font di Microsoft, su debian:

apt-get install msttcorefonts

sistemare sempre per primi i font “bitmapped” nel file di configurazione di xfree, esempio:

FontPath        "/usr/lib/X11/fonts/100dpi"  # font bitmap
FontPath "/usr/lib/X11/fonts/75dpi"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" # font scalabili
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
FontPath "/usr/lib/X11/fonts/encodings"

Cambiare i font di un applicazione

E’ sufficente utilizzare xlsfonts e inserire il font selezionato nel file ~/.Xdefault, esempio:

*xterm*font: <nome del font>   

si possono fare delle prove con:

xterm -fn <nome del font>

una volta terminato lanciare:

xrdb -merge ~/.Xdefault

Cambiare i font per GTK 1.X

E’ sufficente utilizzare gtkfontsel e inserire il font selezionato nel file ~/.gtkrc, esempio:

style "default"
{
font = "-adobe-courier-medium-r-normal-*-12-120-75-75-m-*-*-*"
}

Avviare un applicazione all’avvio di xdm senza la necessità del login dell’utente

Creare uno script e salvarlo in /etc/X11/xdm/Xsetup, attenzione viene lanciato dall’utente root

Installazione di grub

grub-install device

Hylafax: stampare i fax in entrata

Per stampare direttamente i fax in entrata di hylafax , aggiungere nel file /var/spool/fax/bin/faxrcvd il comando:

$FAX2PS $1 | lpr

Chi utilizza cosa

Per vedere che processo sta utilizzando la tal porta

fuser port/tcp o udp

Per vedere che processo sta utilizzando il tal file

lsof | grep file

Per vedere i processi che stanno in ascolto

netstat -l

Cambiare una stringa in uno o più file

sed -i 's:stringadasostituire:stringanuova:g' *

oppure:

perl -pi -e 's/stringadasostiruire/nuovastringa/g' *

cambiare password ad un utente di postgresql

alter user utente with password 'password';

o se si usano password criptate:

alter user utente with crypted password 'password';

Configurare la scheda sonora

Installare la documentazionie del kernel e seguire le indicazioni per la propria scheda, pnpdump > isapnp.conf genera il file di configurazione da editare per abilitare le varie opzioni, usare modconf per installare definitivamente i moduli

Togliere i beep fastidiosi

in x:

xset  b off

in console:

setterm -blength 0

Togliere i messaggi di errore dalla console

Modificare /etc/syslog.conf in modo da deviare il log su file , o per bloccarlo definitivamente:

dmesg -n1

Estrarre un attachment mime da un file

metamail -w file

Dischi CD Floppy Chiavette USB

Copiare una distro da una partizione all’altra (anche non uguali)

tar cfv - * | (cd /mnt/disk2 ; tar xfv -)

oppure:

cp -avx /mnt/dev1 /mnt/dev2

altrimenti:

cp -ra / /hda2

Ricreare il device di un disco

mknod -m 660 nomedev( per es hda1) b 3 1

per debian poi:

chgrp disk nomedev

Per rimontare un disco in rw

mount /device -o remount,rw

Recupero di un floppy danneggiato

RecuperaDischetto, con una ricetta di Andrea Gelpi

Masterizzare

Aggiungere un masterizzatore ide senza ricompilare il kernel originale

in /etc/lilo.conf aggiungere:

append="hdX=ide-scsi" dove X e' la lettera del device

e in /etc/modules:

ide-scsi
CD Audio
cdrdao copy --on-the-fly --speed 2 --device 0,0,0 --source-device 0,1,0 \
--driver generic-mmc --source-driver generic-mmc --force
CD Dati
cdrecord -v dev=0,0,0 speed=4 -isosize /dev/cdrom

Convertire da ext2 a ext3 e viceversa

Anche su fs montato:

tune2fs -j /dev/hdaX

su fs smontato:

    tune2fs -O ^has_journal /dev/hdaX

e per sicurezza::

fsck.ext2 -f /dev/hdaX

Utilizzo chiavetta usb

Assicurarsi di avere in /etc/fstab:

usbdevfs /proc/bus/usb usbdevfs defaults,noauto 0 0

installare il modulo usb-storage:

modprobe usb-storage

ora è possibile montare la chiavetta:

mkdir /mnt/chiavetta
mount /dev/sda1 /mnt/chiavetta

in realtà sda1 è il nome del device in una configurazione desktop standard (senza dischi scsi ecc), comunque caricando il modulo usb-storage in /var/log/messages si dovrebbe vedere il nome del device assegnato, nel caso non esistesse il device è possibile crearlo con MAKEDEV:

cd /dev/
MAKEDEV sda

eventualmente è possibile modificare l’fstab in modo da poter montare la chiavetta agilmente da kde o gnome:

/dev/sda1 /mnt/chiavetta auto user 0 0

Avere un report dell’hardware del sistema

Si può utilizzare il comando:

lshw

Uso di GNU PG

Creare una nuova chiave

gpg --gen-key

Esportare una chiave pubblica

gpg --armor --export

Copiare la chiave privata di Gnu PG da una macchina ad un’altra

gpg -armor --export-secret-keys "nome e/o indirizzo di posta" > mykey.sec

gpg --import --allow-secret-key-import < mykey.sec

Ascoltare la radio è facile

Rai 3 ad esempio è ascoltabile con:

realplay http://www.radio.rai.it/new_player/radio3.ram

Disabilitare il reboot con CTRL ALT CANC

commentare la line in /etc/inittab:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Ripristinare la password di root

Fare il boot specificando Linux init=/bin/sh:

  # mount -n -t remount,rw /
# mount -avt nonfs,noproc,nosmbfs
# cd /etc
# vi passwd
# vi shadow

mettere il secondo campo (la password) vuoto

Il primo mount fa si che il root filesystem (dove presumibilmente giace la directory /etc e quindi il file delle password…) sia scrivibile; il secondo monta tutti gli altri filesystem che non siano NFS o roba comunque non utile.

La modifica della password a questo punto può essere fatta con un qualsiasi editor, come indicato sopra, oppure normalmente con il solito:

# passwd
Enter new UNIX password:
Retype new UNIX password:

Rinominare una serie di file

Esiste l’utilissima utility rename contenuta nel pacchetto perl:

rename 's/pippo/pluto/' *

macutio segnala un’alternativa contenuta in util-linux che usa questa sintassi:

rename from to files

from: la substring da sostituire
to: la substring con cui sostituire from
files: il file cui applicare la sostituzione

Kernel

Dove diavolo trova Linux l’elenco dei moduli da installare?

Due cose da sapere riguardo ai moduli:

  1. il caricamento di alcuni moduli viene effettuato al volo quando ce n’è bisogno (se il kernel e` stato compilato per comportarsi cosi`, ed è la stragrande maggioranza dei casi).

    Tipicamente ciò succede quando si tenta di accededere a un block device o ad un char device in /dev. Ad esempio, quando si tenta di accedere ad un dispositivo SCSI, il kernel di fatto manda in esecuzione un bel:

    modprobe block-major-8

    e normalmente, in /etc/modules.conf c’e` un bel:

    alias block-major-8  <nome_modulo_scsi_specifico>

    per cui l’effetto finale è quello per cui vien fatto un modprobe del modulo specifico, che risulta nel caricamento del modulo e di tutti gli altri moduli da cui esso dipende. Bello, eh? 🙂

  2. oppure, negli script di boot (del tipo /etc/rc.d/boot.local o simili, cambiano da distribuzione a distribuzione), ci sono i vari:

    modprobe <nome_modulo>

    del caso.

    modprobe è un comando che non fa altro che leggere il proprio file di configurazione (che è /etc/modules.conf) e lanciare insmod e rmmod (che fanno il “vero” lavoro) con i parametri opportuni.

    C’è da tener ben presente una differenza fondamentale tra l’usare modprobe e l’usare direttamente insmod/rmmod:

  3. modprobe è a conoscenza delle dipendenze esistenti tra i moduli (e oltre a caricare quello che gli dici, carica prima anche quelli di cui ha bisogno, eventualmente eseguendo anche le fasi di pre e post install e passando le opzioni specificate con options). E tanto per cambiare, viene fatto esattamente l’opposto quando si tratta di rimuovere un modulo (modprobe -r).

  4. insmod invece non sa niente di tutto questo.

Per cui la regoletta è: usare sempre modprobe, salvo che non si abbia una ragione valida per usare insmod/rmmod.

Il kernel esegue:

modprobe -s -k (attraverso una call a `request_module()
  • -s per fare il logging attraverso syslogd e
  • -k per impostare l’autocleaning sul modulo caricato (o moduli) dopo aver adeguatamente settato l’environment.

Questo meccanismo è piuttosto singolare: il kernel invoca un programma in userspace. Da quanto capisco, è stato scelto di fare così perché questa strategia semplificava di molto la gestione del loading on demand dei moduli (cioè non si deve replicare buona parte di quello che fa modprobe in kernel space, modprobe permette una discreta flessibilità e configurabilità, vedi le varie pre-install/post-install/pre-remove/post-remove).

Come viene spiegato qui, è possibile correggere il path del programma da eseguire sostituendo il valore di default.

Sembra che la cosa sia piaciuta, perché in realtà il kernel offre un meccanismo del tutto generale per richiedere l’esecuzione di programmi in userspace: call_usermodehelper, che apparentemente funziona come la nota execve(2).

Note per kernel hackers: call_usermodehelper() e request_module() sono sincrone, cioè dormono finché il programma invocato non è terminato (con ovvie conseguenze su gestione di lock/semafori e necessità di scrivere codice rientrante) e non c’è verso di sapere se l’azione fatta dal programma invocata si è conclusa con successo o meno. Il codice è simile a:

available = check_for_feature();
if (!available)
request_module("feature");
if (!check_for_feature())
goto error
else
goto success

Riferimenti:

p.s. : DebIan offre quel favoloso strumento che si chiama modconf!:)

Spiccioli di grafica

Immagine trasparente con Gimp?

Livello -> Trasparenza -> Aggiunta canale alpha

Seleziona -> Per colore

Modifica -> Pulisci

Ridurre le dimensioni di un filmato

apt-get transcode ;)

transcode -i originale.mpg -y ffmpeg -F mpeg4 -o ridotto.mpg -Z 400x200

Qemu, boot da CD

Creare un immagine su disco:

dd of=nomeimmagine.img bs=1024 seek=numerobyte count=0

nota, numero byte può essere espresso anche in mega esplicitando una M maiuscola dopo la cifra, un esempio di avvio di qemu con l’immagine creata:

qemu -hda nomeimmagine.img  -cdrom /dev/cdrom -boot d -m 256 -enable-audio -user-net -pci

— diaolin: puoi trasformare le immagini di vmware in immagini di qemu con vmdk2raw.

— diaolin: puoi creare una immagine anche senza usare dd ma lanciando il comando:

qemu-mkcow [-f disk_image] cow_image [cow_size]

esempiuccio:

immagine raw da 5Gb
qemu-mkcow nuova.raw 5000

Utilizzo di find

Esempio di utilizzo di find:

find /directory/ -iname "file*" -exec cat {} \; 

Conversione di codifica dei file con iconv

iconv è un utility che permette di convertire un file da una codifica all’altra, il programma si blocca se c’e’ qualche carattere non supportato nella nuova codifica visualizzando la riga contenente l’errore è quindi possibile sistemare il file, esempio di utilizzo:

iconv --from-code utf-8 --to-code iso-8859-1  file.txt -o file.new

Caratteri di escape

A volte è utile utilizzare dei caratteri di escape, ad esempio per colorare il file /etc/motd (il benvenuto che si ha quando ci si collega ad un PC), il carattere di escape viene rappresentato con ^[ ma è un carattere singolo non due, per produrlo o utilizzare un editor pensato a questo scopo tipo:

tetradraw

oppure ecco alcune note per gli editor più comuni:

emacs: ^Q ESC   
vi: ^V ESC
joe: ` 0 2 7
jed: ` ESC

alcuni caratteri di escape utili:

blu     ^[[44;37m 
normale ^[[40;37m
clear ^[[H^[[J

altri colori:

Nero           0;30     Grigio Scuro  1;30
Blu 0;34 Blu Chiaro 1;34
Verde 0;32 Verde Chiaro 1;32
Ciano 0;36 Ciano Chiaro 1;36
Rosso 0;31 Rosso Chiaro 1;31
Viola 0;35 Viola Chiaro 1;35
Marrone 0;33 Giallo 1;33
Grigio Chiaro 0;37 Bianco 1;37

fonte: http://www.pluto.it/ildp/HOWTO/Bash-Prompt-HOWTO-5.html

WordPress Appliance - Powered by TurnKey Linux