/*************/ DISPENSA LINUX /************/ INDICE /**----LINUX---**/ /** COMANDI ESSENZIALI **/ /** UTENTI **/ /** XSERVER**/ /** EDITOR: VI **/ /** TCP/IP**/ /** LILO **/ /** RPM**/ /** KERNEL**/ /** INIZIALIZZAZIONE**/ /** DUAL BOOT CON NT/WIN2000 **/ /** FILE SYSTEM **/ /** NETWORK FILE SYSTEM **/ /** BACKUP **/ /** AUTOMATIZZARE CON CRON **/ /** RAID **/ /** LOG **/ /**----APPLICATION----**/ /** SAMBA **/ /** NETATALK **/ /** FTP SERVER: WU-FTPD **/ /** WEB SERVER: APACHE 2 **/ /** PHP **/ /** MAIL SERVER: SENDMAIL, SQUIRRELMAIL, IMAP SERVER, FETCHMAIL **/ /** PROXY SERVER: SQUID **/ /*** DNS, DOMAIN NAME SERVER: NAMED**/ /*** FIREWALL IPTABLES**/ /*** OPENLDAP**/ /*** NO-IP UPDATER**/ /*** VIRTUALBOX **/ /*** DRUPAL **/ /**-----DATABASE----**/ /*** MYSQL **/ /** POSTGRES**/ /** ORACLE **/ /** SQL **/ /**-----DISTRO----**/ /*** MANDRAKE 9.1 **/ /*** DEBIAN SARGE 3.1 **/ /*** UBUNTU **/ ___________________ /**----LINUX---**/ ___________________ /** COMANDI ESSENZIALI **/ #cd (cambia directory) #ls -l (lista) -a (anche i file . ) #df -k (elenco spazi disco) df -h -T #pwd (dove sei) #cp file.h file1.h (copia file) #rm file o directory (cancella) rm old -r -f (forza la cancellazione della directory old) #mv file filedest (muove/rinomina) #su - utente (superuser, come fare login) es. su - oracle -c /opt/oracle/ostart.sh lancia il file come utente oracle #wc -l Lista* | sort | grep -v total (conta parole dai file lista*) #shutdown -r now #chmod -R 755 * #chown -R alekos:alekos * #date -s 8:45 +%H (setta l'ora) date 01263744 (su hpux) per eseguire applicazioni dalla stessa directory: ./applicazione ambiente grafico startx [ctrl][alt][bachspace] kill della sessione X (grafica) processi #ps -ef |grep sendmail (o altro testo da filtrare, visualizza i processi) #ps -e w (con a capo) memoria #top controllo dello stato processi e memoria (M ordine di memoria, P ordine di cpu) cat /proc/meminfo quela veramente usata è used-buffers-cache #free #vmstat 5 controllo generale della memoria swap e scrittura disco (ogni 5 secondi) #ipcs configurazione della memoria condivisa e semafori ricerca testo nel file: grep raid1 * svuotare un file (mantiene i permessi) cat /dev/null > /home/user/mail/Junk mostra kernel.. #uname -a ultimo restart $ who -b $ last reboot | head -1 -screen per vedere la stessa console in due screen il primo e screen -x il secondo vale anche per lasciare un programma girare: screen btdownloadcurses http://example.com/example.torrent ++ per lasciare lo schermo screen -r per riattaccarlo + chiudere lo schermo -- vnc vncserver :1 crea un desktop client xtightvncviewer :1 --compressione #tar -cf nome.tar *.* #tar -tvf nome.tar visualizza i file #tar -tvf /dev/st0 leggi file su dat #tar -cvf /dev/ht0 /home scrive su ide-tape #tar -xf nome.tar #tar -xzf nome.tar.gz #gzip nome.tar comprime il file #gzip -d nome.tar decomprime il file insieme tutta la cartella: #tar -czvf alekos.tar.gz alekos/ #tar -xz -f fileeleu.tar.gz 'home/eleu/Casa editrice/Redazionali' estrae solo la cartella redazionali e la estrae come sottocartella della corrente per i bz2: bunzip2 nome.tar.bz2 per i 7z: 7z pippo.7z cartellapippo/ poi: tar -xf nome.tar spazio disco du -s * |sort -rn argument list too long nel comando: rm * -f si può usare: ls -1 | xargs -n 10 -i rm {} ( oppure: find $directory -type f -name '*' -exec rm {} ; mv * ../directory2 ---> find $directory -type f -name '*' -exec mv {} $directory2/. ; find . -print0 | xargs -0 mv --target-dir=$TARG ls -1 | xargs -n 10 -i mv {} target_dir ) copia ssh: da un file a un file scp root@serverzeta:/home/alekos* . autenticazione automatica in ssh: ssh-keygen -t rsa sul client che mi crea due file: id_rsa chiave privata id_rsa.pub chiave pubblica copiare la chiave pubblica sul server in .ssh/authorized_keys su debian (ssh 2): ssh-keygen -t dsa copia e poi crea sul server: cat id_dsa.pub >> ~user1/.ssh/authorized_keys2 chmod 644 ~user1/.ssh/authorized_keys2 -sshd non permettere accesso root PermitRootLogin no X su ssh: ssh -X -l dario interno.eleuthera.it midori & compilazioni standard tar -xvzf ilpacchetto.tar.gz cd /dirdestinazionedeltar ./configure make make install moduli lsmod (lista dei caricati) modprobe -l | grep pwc insmod bcm4400 installa il modulo modprobe bcm440 installa il modulo rmmod bcm4400 rimuove il modulo ___________________ /** UTENTI **/ hd: hda1 /boot 23 hda5 / 2640 hda6 /opt 2640 hda7 /tmp 256 hda8 /swap 361 hda9 /usr/local 256 #useradd granara #passwd * Stampa con printconf si configura, si riavvia e si prova Lpd demone Lpr client Input filter formattazione specifica stampante /etc/printcap file configurazione /var/spool/lpd/ dir di spool /etc/printcap tool configurazione /** Xserver**/ Xconfigurator per impostare la scheda video e lo schermo /** Editor: Vi **/ i insert a aggiungi esc comandi :q quit :wq write quit :q! quit comunque / cerca & n next se nu visualizza i numeri di riga togliere ^M: :%s/\r//g /** Tcp/ip**/ Nomi delle Porte definite in /etc/services Tcp e udp ftp 21 ssh 22 telnet 23 smtp 25 www 80 pop3 110 imap2 143 webcache 8080 (oracle 1521 non definita in services) /etc/hosts file di configurazione dei nomi locali prima di guardare sul bind (dns) 127.0.0.1 localhost.alekos.loc localhost 192.168.0.1 serverz.alekos.loc serverz /etc/resolv.conf file per definire il client dns search alekos.loc nameserver 192.168.0.1 gateway con route route add default 192.168.0.10 in indy0 ifconfig per controllare lo stato della rete e il traffico sulle interfaccie per configurare in modo permanente gli indirizzi: /etc/sysconfig/network-scripts/ifcfg-eth0 Telnet ssh2 eseguibile direttamente in /usr/bin/ ___________________ /** LILO **/ /etc/lilo.conf file di configurazione /etc/lilo per riconfigurare ___________________ /** RPM**/ Comando rpm rpm -ivh vrfy-9980-3.src.rpm installa verificando prima rpm -e vrfy rimuove rpm -Uvh 9910-3.src.rpm aggiorna rpm -q vrfy verifica rpm -q -l vrfy lista i file Oppure grafica Kpackage o gnurpm /** Kernel**/ Ricompilazione del kernel Su /usr/src/linux #make clean #make mrproper #make xconfig per configurazione (o make menuconf testuale) #make dep #make bzImage crea un'immagine di boot in arch/i386/boot/ da aggiungere a lilo #make modules #make install #make modules_install solo se con lilo (non grub) lilo sync sovrascrive il kernel dello stesso numero ___________________ /** INIZIALIZZAZIONE**/ /etc/inittab : file per livelli iniziali, le tty init 5 passa al livello 5 etc/rc.d/init.d/ stanno i demoni etc/rc.d/rc3.d/ stanno i link ai demoni (con link simbolici) per lo start e stop automatico. La prima lettera è S o K, poi il numero indica l'ordine, poi la descrizione. ln -s /etc/init.d/serv S99serv crea un collegamento simbolico di un file S start K (nomeFile) kill etc/rc.d/init.d/smb Avviare i servizi con #ntsysv o chkconfig tWnn off chkconfi --list oppure con #update-rc.d update-rc.d -f ddclient remove update-rc.d ddclient defaults ___________________ /** DUAL BOOT CON NT/WIN2000 **/ install nt/w2000 tenendo una partizione libera install linux (rh7.1 crea partizioni automaticamente) crea boot disk e install lilo in first sector of boot partition (/boot) e non mbr reboot linux, se partizione del /boot è hda2: #dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1 copiare bootsect.lnx in c:\ di nt e aggiungere al boot.ini c:\bootsect.lnx="linux" con grub: dopo installato windows rimettere grub con sudo grub-install dal livecd copiare MBR con: dd if=/dev/hda of=/mbr-backup bs=446 count=1 dd if=/mbr-backup of=/dev/hda bs=446 count=1 sudo grub > root (hd0,0) > setup (hd0) > exit ___________________ /** FILE SYSTEM **/ /etc/fstab tabella di allocazione file system per aggiungere (montare un dispositivo) mount /dev/fd0 /mnt/floppy monta il dispositivo sulla cartella già creata /mnt/floppy mount /dev/hdb1 /dati mounta un disco FAT32 esempi di montaggio fstab: #nfs indy0.alekos.loc://usr1/dario /home/alekos/srv_dati/computer/indy0/usr1dario nfs exec,dev,suid,rw 1 1 #samba //serverwin/hd40 /home/alekos/hd40 smbfs rw,uid=alekos,gid=alekos,username=alekos,password=* 0 0 #locale fat32 /dev/hda6 vfat noauto,users,exec,umask=000,uid=alekos,gid=alekos 0 0 #locale usb mount /dev/sda1 /media/usb #locale ntfs /dev/hda5 vfat noauto,users,exec,ro,uid=alekos,gid=alekos 0 0 /** Network File system **/ export fs per condividere e poi applicare: /etc/exports: /home/alekos/srv_dati 192.168.0.*(rw) /home/alekos/srv_dati *.alekos.loc(rw) o su indy: /usr1/dario -rw exportfs -a accedere fs remoti in fstab e poi montare: indy0.alekos.loc://usr1/dario /home/alekos/srv_dati/computer/indy0/usr1dario nfs exec,dev,suid,rw 1 1 mount /home/alekos/srv_dati/computer/indy0/usr1dario umount /home/alekos/srv_dati/computer/indy0/usr1dario su indy: 192.168.0.1:/home/alekos/srv_dati /usr1/serverz nfs rw 0 0 serverzeta.alekos.loc:/home/alekos/srv_dati /serverzeta nfs rw 0 0 fs montati in /etc/mtab mount -a rimonta tutti i fs in fstab o mount /usr1/serverz (non serve creare la dir) ___________________ /** BACKUP **/ tar -cvf /home/alekos/srv_dati/alekosnet.tar *.* gzip /home/alekos/srv_dati/alekosnet.tar o insieme nel backupminimo.sh cd /home/alekos/srv_dati/ du -s * |sort -rn>lastbackup.txt tar -czvf indy0/winfax.tar.gz winfax/ tar -czvf indy0/utils.tar.gz utils/ tar -czvf indy0/maileudora.tar.gz maileudora/ tar -czvf indy0/alekosnet.tar.gz alekosnet/ tar -czvf indy0/computer.tar.gz computer/ tar -czvf indy0/alekos.tar.gz alekos/ tar -czvf indy0/webs.tar.gz webs/ tar -czvf indy0/sw.tar.gz sw/ togliere -v per non verbouse tar -xzf /chela/backup/mail.tar.gz estrae nella cartella corrente per fare una cassetta di repair 1. eseguire come root un fdisk -l > fdisk.txt 2. stampare (e conservare assieme al backup) i files fdisk.txt e /etc/fstab 3. mettere il server in single user (# shutdown 0) 4. smontare tutti i file system virtuali, che trovo con df, esempio # umount /dev/kmem # umount /dev/pts # umount /proc 5. fare un bel tar di tutto # cd / # tar cvf /dev/st0 . (se non si riesce a smontare /proc lo si esclude con tar cvf /dev/st0 . --exclude /proc) Per il restore la procedura logica è la seguente 1. sostituisco il disco 2. lo partiziono con fdisk, per far ciò faccio il boot con una live-dist, come knoppix - per questa operazione uso la stampa di fdisk.txt 3. formatto le partizioni come è riportato in /etc/fstab, usando i comandi mkfs e mkswap 4. mount i file system sotto /pippo 5. mi posiziono sotto /pippo 5. eseguo il tar xvf di /dev/st0 6. eseguo un chroot . 7. installo il boot sector con grub-install 8. riavvio (togliendo il cd di knoppix) -backup con rsync rsync -av root@paco:/home/alekos/apa/ /home/alekos/apa al contrario (recupero) rsync -av /home/alekos/apa/alekosorg/down/ root@paco:/home/alekos/apa/alekosorg/down togliere -v per non avere il verbose ___________________ /** AUTOMATIZZARE CON CRON **/ crontab -e per scrivere crontab -l per listare alle 23 di tutti i giorni parte il backupminimo.sh 0 23 * * * /home/alekos/srv_dati/linux/backupminimo.sh ___________________ /** RAID **/ controllo: cat /proc/mdstat mdadm --detail /dev/md2 settare a fault hda3: mdadm /dev/md2 -f /dev/hda3 rimuoverlo: mdadm /dev/md2 -r /dev/hda3 riaggiungerlo: mdadm /dev/md2 -a /dev/hda3 controllo di scrittura fisica su un disco: dd if=/dev/hdb3 of=/dev/null bs=1024K controllo dischi con SmartMonTools apt-get install smartmontools smartctl -i /dev/hda se non è abilitato abilitarlo con >smartctl -s on /dev/hda check> smartctl -c /dev/hda avvio test> smartctl -t short /dev/hda risultati> smartctl -l selftest /dev/hda /** howto vecchio con raidtools **/ 4.4. RAID-1 Avete due o più dischi approssimativamente delle stesse dimensioni e volete che ognuno sia l'immagine (mirror) esatta dell'altro. Eventualmente potete avere più dischi, che volete tenere come spare- disk, che automaticamente diverranno parte dell'array se uno dei dischi attivi si guasta. Preparate il file /etc/raidtab nel seguente modo: raiddev /dev/md0 raid-level 1 nr-raid-disks 2 nr-spare-disks 0 chunk-size 4 persistent-superblock 1 device /dev/sdb6 raid-disk 0 device /dev/sdc5 raid-disk 1 Se avete spare disks, potete aggiungerli alla fine della specifica del dispositivo nel modo seguente device /dev/sdd5 spare-disk 0 Ricordate di dichiarare la voce nr-spare-disks in modo corrispondente. Ok, abbiamo preparato tutto per far partire il RAID. L'immagine (mirror) deve essere costruita, cioè il contenuto (che al momento non è importante, in quanto il device deve ancora essere formattato) dei due dischi deve essere sincronizzato. Date il comando mkraid /dev/md0 per dare il via all'inizializzazione del mirror. Controllate il file /proc/mdstat file. Dovrebbe dirvi che il dispositivo /dev/md0 è partito, che l'immagine (mirror) è in corso di ricostruzione e un ETA dello stato della ricostruzione. Dovrebbe dirvi che il dispositivo /dev/md0 è partito, che l'immagine (mirror) è in corso di ricostruzione e un ETA dello stato della ricostruzione. La ricostruzione è fatta utilizzando la larghezza di banda dell'I/O inutilizzata. Così, il sistema dovrebbe ancora essere piuttosto pronto a rispondere, sebbene gli hard disk led dovrebbero lampeggiare allegramente. Provate a formattare il dispositivo, mentre la ricostruzione è in corso. Funzionerà. Potete anche montarlo ed usarlo mentre la ricostruzione è in corso. Naturalmente, se il disco sbagliato si rompe mentre la ricostruzione è in corso, non avete speranze. 6. Ricostruzione Se avete già letto il resto di questo HOWTO, dovreste già avere un'idea di che cosa significhi la ricostruzione di un array danneggiato. Riassumendo: · Spegnete il sistema · Sostituite il disco guasto · Accendete di nuovo il sistema · Usate il comando raidhotadd /dev/mdX /dev/sdX per inserire nuovamente il disco nell'array · Prendetevi un caffè mentre la ricostruzione automatica avviene Ecco tutto. Bene, di solito funziona così, a meno che voi siate sfortunati e il vostro RAID sia stato reso inutilizzabile perché più di un disco si è guastato. Questo può realmente succedere se un certo numero di dischi è collegato sullo stesso bus e uno dei dischi blocca il bus quando si guasta. Gli altri dischi, anche se non sono guasti, saranno irraggiungibili per il RAID layer, perché il bus è bloccato e quindi saranno marcati come danneggiati. Su un RAID-5 su cui è possibile sostituire un disco, il guasto di due o più di essi può essere fatale. ___________________ /** LOG **/ syslogd può essere configurato per ricevere log remoti (514/udp), in /etc/init.d/syslogd: SYSLOGD="-r" fwlogwatch estrae da /var/log/messages logrotate per ogni servizio /etc/logrotate.d/ /var/log/apache2/*.log /home/alekos/apa/beffa/log/*.log ..tutti gli altri siti { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if [ -f /var/run/apache2.pid ]; then /etc/init.d/apache2 restart > /dev/null fi endscript } questo ad esempio comprime dal .log.2 e tiene fino a 53 file per provarlo: logrotate -fv /etc/logrotate.d/apache2 ___________________ /**----APPLICATION----**/ ___________________ /** SAMBA **/ installare rpm abilitare swat: in /etc/services aggiungere swat 901/tcp in /etc/inetd.conf decommentare swat, killall -1 inetd oppure (rh dopo la 7.0) in xinet.d/swat: disable=no only_from=192.168.0 (o 127.0.0.1) e poi riavviare il servizio /etc/init.d/xinetd restart http://localhost:901 /etc/smb.conf: inserire il workgroup, decommentare password level=16 e username level =16 (16 é la massima lunghezza di username del sistema client) restart samba: /etc/rc.d/init.d/smb restart per prima di rh70: creare la dir /usr/local/samba (rh71 /etc/samba) generare il file smbpasswd partendo da passwd >cat /etc/passwd |mksmbpasswd.sh >/etc/samba/smbpasswd chmod 600 /etc/samba/smbpasswd altrimenti in /etc/samba c'è gi .. utente alekos >smbpasswd -a alekos in smb.conf [alekos] comment = file server alekos path = /home/alekos/srv_dati valid users = alekos read only = No [apa] comment = apache php path = /var/www/html/apa valid users = alekos read only = No per condividere dischi mountarli con l'opzione mount -t smbfs -o username=tridge,password=* //fjall/test /data/test o in fstab: //serverwin/hd40 /home/alekos/hd40 smbfs rw,username=alekos,password=* 0 0 per togliere i file di mac: veto files = /.DS_Store/._.*/DesktopFolderDB/Network Trash Folder/resource.frk/TheFindByContentFolder/TheVolumeSettingsFolder/ delete veto files = true hide dot files = yes ___________________ /** NETATALK **/ installare rpm netatalk-1.5pre6-1rh7.i386.rpm (su rh73 c'è 1.5.2.3) servizio su linuxconf utenti sono quelli di linux con le password di linux subito il mac accede su /home/ ___________________ /** FTP SERVER: WU-FTPD O VSFTPD **/ si abilita con /etc/xinetd.d/wu-ftpd lasciando root restart dei servizi rete /etc/init.d/xinet restart /etc/ftpaccess /etc/ftpusers (meglio usare in ftpaccess) per vsftpd: /etc/vsftp: aggiungere un utente ftp per webs adduser publi -g alekos e passwd * (debian adduser --gid 1000 --home /home/alekos/apa/scighera/ --shell /sbin/nologin ftpscighera) poi in /etc/passwd publi:x:502:500:ftp di publi:/home/publi:/sbin/nologin per impedire la login per avere solo la dir /home impostarlo in ftpaccess come guestuser eleuthera paplogin per impedire l'anonimo class all real,guest * per far scrivere a altri utenti una cartella web alekos, mettere stesso gruppo alekos, permessi al gruppo e fare il link simbolico nella cartella ftp oppure mettere la cartella home su webs per blindarlo sulla sua root: chroot_list_enable=YES e chroot_local_user=YES oppure la lista degli utenti da blindare nel file: chroot_list_file=/etc/vsftpd.chroot_list ___________________ /** WEB SERVER: APACHE 1.3.14 o 2.0**/ /etc/httpd/conf/httpd.conf: NameVirtualHost * #qualsiasi ip DocumentRoot /var/www/html ServerName intfw.alekos.org DocumentRoot /var/www/html/apa/publi ServerName www.pap.it ServerAlias www.publicontrol.it DocumentRoot /var/www/html accesso alle directory: ci sono due modi o con il file .htaccess abilitando prima AllowOverride AuthConfig oppure dentro le AuthType Basic AuthName "Interni coop" AuthUserFile /etc/httpd/htpasswd Require user alekos #Require valid-user Order Allow,Deny Allow from 192.168.1 Deny from 192.168.1.1 Satisfy Any si crea un utente/pw con htpasswd -c /usr/local/apache/passwd/passwords * per listare i file: Alias /foto "/home/alekos/apa/foto/" Options Indexes MultiViews se non si vuole autoindexinig mettere Options FollowSymLinks -rewrite abilitare modulo a2enmod rewrite ad esempio per togiere www. file .htaccess in radice del virtual host: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^www\.pss\.irs-online\.it$ RewriteRule (.*) http://pss.irs-online.it/$1 -statistiche webalizer lanciato ogni giorno crea il sito /usage/. /etc/webalizer.conf. per ogni sito fare un file .conf diverso e log file diverso settato in httpd.conf nella directory del sito e lanciare webaliazer -c fileconfpersito nel /etc/cron.daily/00webalizer in debian /var/log/apache2/ e non apache -statistiche awtats settare file /etc/awstats/awstats..conf con: LogFile="/var/log/apache2/access.log" LogFormat=1 DNSLookup=1 DirData="/var/cache/awstats/" DirCgi="/cgi-bin" DirIcons="/icon" SiteDomain="hostname" AllowToUpdateStatsFromBrowser=1 AllowFullYearView=3 # Make a directory called /var/cache and chmod it 777 so it can be used from the web server # Copy icons to web directory: cp -r /usr/share/awstats/icon /var/www/icon # Run this to update databases: /usr/lib/cgi-bin/awstats.pl -config=hostname -update # In your web browser, go to the url: http://hostname/cgi-bin/awstats.pl?config=hostname # Study the stats in quiet awe # Edit crontab to update stats automatically every night: crontab -e 0 1 * * * /usr/lib/cgi-bin/awstats.pl -config=hostname -update #abilitare aggiornamento da web con chmod 755 /var/log/apache2 e * --crisi apache2 # httpd.conf Alekos.Net # last change: 30.01.2008 stefano vanzini # tolti un po di commenti (che se il file è troppo lungo non si capisce) # tolto il KeepAlive che migliora la velocità ma può esautire la memoria del server.. # Abbassato ancora a 1500 il parametro MaxRequestsPerChild # Attivato server-status StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 1500 --ricompilazione apache 13 Server: etc/httpd Home: home/httpd/html File: conf: etc/httpd/conf/httpd.conf Web server: apache 1.3.17 Ricompilato in /etc/httpd/bin/httpd (script apachectl è meglio fa più controlli) Home: etc/httpd/htdocs Ricompilare e installare apache + php 4 1. creare una dir per i sorgenti ... la chiamo src (usr/local) 2. scaricare i sorgenti di apache, ad es src/apa (apache_1.3.17) 3. scaricare i sorgenti del php ad es src/php (php-4.0.4pl1) come root. tirare giù, se sta girando, l'apache del sistema 4. cd src/apa 5. ./configure 6. export ORACLE_HOME=/home/di/oracle (/opt/oracle) 7. cd src/php 8. make clean 9. rm config.cache 10. ./configure --enable-sigchld --enable-static --with-mysql --with-oracle --with-apache=../apa --enable-track-vars -- disable-xml --disable-pear 11. make 12. make install 13. cd src/apa 14. make clean 15. ./configure --prefix=/etc/httpd --activate-module=src/modules/php4/libphp4.a --disable-module=auth-dbm --disable- module=auth-db --server-uid=www --server-gid=www 16. make 17. make install a questo punto verificare dove è stato installato il nuovo http server (/etc/httpd/bin/apachectl o httpd), ed evenutalmente modificare lo script di startup/shutdown che sta sotto etc/rc.d/init.d ___________________ /** PHP **/ installare pacchetti pear con: pear install uploadprogress o pecl install channel://pecl.php.net/uploadprogress-0.9.2 ___________________ /** MAIL SERVER: SENDMAIL, SQUIRRELMAIL, IMAP SERVER, FETCHMAIL **/ per spedire mail: mail indiri@zo.it -s sogg (e poi finito il body control-D) Verifica mail con vrfy (installabile i sorgenti con .rpm, altrimenti binario in /usr/bin/) vrfy -h -n -c 30 $EMAIL | grep -i ' ok' sbin/init.d/sendmail | wc -l` = "1" alias e mailbox: su pedro: /etc/mail/aliases newaliases nuova mail /etc/passwd aggiunge utente pass con passwd poi /etc/mail/virtusertable.src NewConfig.sh che riavvia /sbin/init.d/sendmail start su serverw: adduser -g alekos pippo passwd * poi gli alias in /etc/aliases e newaliases per ricevere posta: /etc/mail/sendmail.cf aprire smtp (commentando 127.0.) /etc/mail/local-host-name poi access abilitare relay e creare .db con make localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 192.168.1 RELAY controllo: ./Screma.sh lista.txt > MandaListaMail.sh leva le schifezze da lista.txt e crea il file spedizione con sendmail #!/sbin/sh USERTO="stefano@server4.milano" USERFR="Utente@dominio.it" SUBJECT="Subject del messaggio" echo "Spedisco la mail a: $USERTO da $USERFR [$SUBJECT]" sendmail -U -t -f$USERFR <From: $USERFR Riga1 Riga2 Riga3 Fine Messaggio ! risposte in /var/spool/mail/root imap è già installato in rh7 tra gli xinetd (da abilitare /etc/xinetd.d/imap) rpm -ivh squirrelmail-1.2.7-1.noarch.rpm installa in /var/www/html/webmail i php, in config lo scipt perl per la configurazione perl conf.pl, si può anche usare un smtp esterno e non sendmail fetchmail già installato ed è anche un plugin di default di fetchmail (installarlo con perl conf.pl) configurare il default folder prefix a srv_dati/mail/ altrimenti demone fetchmailconf (X), ma deve essere attivo sendamil e poi non riesce a distribuire le mail nelle cartelle imap locali e lanciarlo in demone ogni x sec: fetchmail -dx -v (verboso) fetchmail -q per chiuderlo ogni utente di linux ha una configurazione per fetchmail e quindi va lanciato con l'utente: su - alekos -c"/usr/bin/fetchmail -d5" messo con start/stop in /etc/init.d per automatizzarlo (o semplicemente in rc.local) per configurarlo senza X, editare .fetchmailrc dell'utente e aggiungere: poll pop.tiscali.it with proto POP3 user 'dario.sabbadini' there with password '*' is 'alekos' here per lanciarlo automaticamente come servizio /etc/init.d/fetchmail creare /etc/fetchmailrc e mettere i poll: set syslog; set daemon 90; #secondi set postmaster "my.email@mydomain.com"; #per errori poll pop.tiscali.it with proto POP3 user 'dario.sabbadini' there with password '*' is 'alekos' here ___________________ /** PROXY SERVER: SQUID **/ rpm di squid 2.4 già nella distribuzione avvio /etc/init.d/squid configurazione /etc/squid/squid.conf abilitare: acl myclients src 172.16.5.0/24 http_access allow myclients porta 1328 ___________________ /*** DNS, DOMAIN NAME SERVER: NAMED**/ /etc/rc.d/init.d/named start /etc/rc.d/init.d/named stop /etc/named.conf configurazione /var/named/named.alekos indirizzi-nomi /var/named/named.rev nomi-indirizzi se ha probemi a scrivere su /var/run/named.pid lanciarlo come root nello script init.d per testare mx su un server dns: set querytype=any (o mx) -Fixing rndc error with bind9 While setting up DNS on Pericles I did run into one snag: rndc: connect failed: connection refused The first thing to know, is that in Ubuntu Server's default setup, the /var/log/syslog file contains errors relating to bind and rndc startup. I watched this file and found some syntax errors as I tried to resolve this problem, and I recomend you do the same. Here is my solution: Careful, this will overwrite your rndc.conf (run this while in the /etc/bind folder): rndc-confgen > rndc.conf Open the new rndc.conf. First, take the hyphen out of all the rndc-key names. I don't know why. rndckey is what I ended up needing. I think maybe bind9 removed support for the hyphen in these names, but rndc-confgen didn't know it. Now, copy the bottom section (the commented out part) out, we're going to paste it into the top of named.conf.local, and uncomment it. Save changes to rndc.conf, and after pasting the other section into named.conf.local change the part inside the allow { } to localhost; instead of 127.0.0.1, for similar reason as before it seems to want a name instead of a hardcoded IP in this version. ___________________ /*** FIREWALL IPTABLES**/ iptables è a strati ed è sempre installato per abilitare il routing con nat: echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j MASQUERADE al posto di lanciare iptables, e per aggiungere moduli speciali come ftp e nat insmod ip_conntrack insmod ip_conntrack_ftp insmod ip_tables insmod iptable_filter insmod iptable_mangle insmod iptable_nat insmod ipt_state insmod ipt_REJECT insmod ipt_LOG insmod ip_nat_ftp per vedere la configurazione corrente: iptables -v -L per vedere le porte aperte nmap localhost netstat -lutan -p red hat network: user: coop.alekos pw:# ___________________ /*** OPENLDAP**/ è rpm installato /etc/openldap ldap.conf: BASE dc=alekos,dc=it slapd.conf: database ldbm suffix "dc=alekos,dc=it" rootdn "cn=Manager,dc=alekos,dc=it" rootpw # si ottine con il comando slappasswd -h {crypt} aggiungere: ldapadd -x -D "cn=Manager,dc=alekos,dc=it" -W -f dario.ldif ricerca: ldapsearch -x -b 'dc=alekos,dc=it' '(objectclass=*)' nel client mail: name e server: alekosfw base dn:dc=alekos,dc=it ___________________ /*** NO-IP UPDATER**/ check your ip http://checkip.dyndns.org/ tar -xf noip_updater_v1.6.tar, nella cartella noip_updater_v1.6 make make conf (con router NAT) make install copia in /usr/local/bin/noip /usr/local/lib/no-ip.conf LOGIN = alekos@ PASSWORD = * GROUP = ; HOSTNAME = alekos DOMAIN = servemp DAEMON = Y PROXY = Y INTERVAL = 1 NAT = Y DEVICE = unused lanciare /usr/local/bin/noip -l stop con kill mettere in /etc/init.d/noipserv e S99noip con ln -s /etc/init.d/noipserv S99noip oppure perl ddclient, /etc/ddclient.conf per lanciarlo /etc/init.d/ddclient start pid=/var/run/ddclient.pid protocol=dyndns2 use=if, if=web server=members.dyndns.org login=eleu password=* eleu.homeftp.org,eleu.dnsalias.org,eleu.dyndns.org ___________________ /*** VIRTUALBOX **/ per scorciatoia: VBoxManage startvm "Windows XP" port forwarding per accesso da host a guest: VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 80 VBoxManage setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 8080 se si usa la e1000 al posto di pcnet, e1000 VBoxManage setextradata "winxp" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/Protocol" TCP VBoxManage setextradata "winxp" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/GuestPort" 80 VBoxManage setextradata "winxp" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/HostPort" 8080 installare gli header e il compilatore per le addiction apt-get install gcc apt-get install make apt-get install linux-headers-2.6.18-5-686 per cartella condivisa host win guest linux: mount -t vboxsf D_DRIVE /media/d ___________________ /*** DRUPAL **/ aggiornamento o installazione meglio essere già l'utente con gruppo www-data per fare tutto per aggiungerlo nei sudoers: adduser utente admin wget http://ftp.drupal.org/files/projects/drupal-6.x.tar.gz tar -xzvf drupal-6.x.tar.gz cp drupal-6.x/* drupal/ -R traduzione: cd drupal/ wget http://l10n.drupalitalia.org/sites/l10n.drupalitalia.org/files/translations/drupal-6.13-it-translations.tgz tar -xzvf drupal-6.13-it-translations.tgz cp drupal-6.x/* drupal/ -R permessi: cp sites/default/default.settings.php sites/default/settings.php se root ogni download: chown utente:gruppo * -R chmod 775 * -R http://www.pippo.it/update.php o http://www.pippo.it/ per installazione creare database utf8_unicode_ci chmod 755 sites/default/settings.php chmod 755 sites/default/ moduli: cd sites/all/modules/ wget http://ftp.drupal.org/files/projects/admin_menu-6.x-1.5.tar.gz tar -xzvf admin_menu-6.x-1.5.tar.gz moduli fondamentali: admin_menu cck filefield pathauto plugin_manager token views webform date calendar ckeditor: scaricare l'ultima da http://ckeditor.com/ estrarla dentro modules/ckeditor/ckeditor imce multisite: virtualhost puntano tutti sullo stesso DocumentRoot "/var/xampp/htdocs/sito_prova/" ServerName www.esempio.com DocumentRoot "/var/xampp/htdocs/sito_prova/" ServerName www.esempio1.com DocumentRoot "/var/xampp/htdocs/sito_prova/" ServerName www2.esempio1.com dir: sites/default/ sites/example1.com/ sites/www2.example1.com/ e nei setting: $db_url = 'mysql://username1:psw1@localhost/db1'; meglio ogniuno un db senza prefisso poi lanciare in http://www.example1.com/install.php temi: sites/all/themes$ wget http://ftp.drupal.org/files/projects/black_mamba-6.x-1.4.tar.gz tarx black_mamba-6.x-1.4.tar.gz default: ricerca non permessa a anonomi (permessi) ___________________ /**-----DATABASE----**/ ___________________ /*** MYSQL **/ /*** MYSQL 3.2**/ Installazione da RPM (il server nel cd 2 non va, dal sito la 23.38 server e client) Server: /usr/bin/mysqld Client: /usr/bin/mysql e mysqladmin /usr/bin/mysql_install_db /usr/bin/mysqladmin per amministrare cambiare password del root di mysql !! mysqladmin -u root password '*' setta la password per localhost mysqladmin -u root -h serverz password '*' setta la password per accesso da rete mysqladmin flush-privileges da ora aggiungere -pmy ogni lancio /*** MYSQL 4 **/ per ricercare (mach against) con 3 lettere minimo e senza stop word list nel file my.cnf sezione [mysqld]: ft_min_word_len=3 ft_stopword_file= Database crea una cartella ogni database in: /var/lib/mysql/ [metodo empirico Per connettersi da fuori (dovrebbero funzionare le due istruzioni precedenti) grant all privileges on db.* to root; flush privileges; update user set password=password('*') where user=root; update user set host='%.alekos.loc' where host='serverz.alekos.loc' update db set db='questions' where db='test';] [utilizzo dei file database dopo root/# mysql -p (chiede la password) -h serverz (per testare l'accesso in rete) create database IEA 1. creare database IEA su serverz, portare i 3 file questions.* 2. ricopiarli all'indietro 3. copiare tutto su una tabella access con insert into] utilizzando il file dump, dati e creatabella: #mysqldump -p# IEA >IEAbocc.sql poi per reimportarlo in un database vuoto (è un fulmine): #mysql -p# -uroot IEA backup/alldatabases.sql.gz #gzip -d alldatabases.sql.gz #mysql --force -p -uroot campo1); } accesso da odbc, installare il client mysqlodbc settare le password con mysqladmin Mysqlcc (control center) installazione: cd /usr/local tar xvzf /path/to/mysqlcc-VERSION-OS.tar.gz ln -s mysqlcc-VERSION-OS mysqlcc /usr/local/mysqlcc/mysqlcc /*** MYSQL 4.1 **/ ha un Password Hashing nuovo (lungo 41 e non 16), per cui php e mysqlfront possono accedere se l'account ha vecchio: SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('mypass'); oppure UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user'; FLUSH PRIVILEGES; ___________________ /** POSTGRES**/ sudo apt-get install postgresql sudo apt-get install pgadmin3 impostare password user postgres del db e di linux sudo su postgres -c psql template1 ALTER USER postgres WITH PASSWORD 'password'; \q opzionale cambiare password dell'utente linux sudo passwd -d postgres sudo su postgres -c passwd _________________ /** ORACLE**/ /** ORACLE 8.0.5**/ start: oracle/ #oostartup.sh che fa svrmgrl connect internal startup stop: oracle/ #ooshutdown.sh #lsnrctl start database fighet fighet pw:# variabili di ambiente: #export ORACLE_HOME=/opt/oracle #export ORACLE_SID=fighet (anche scritto nel file .bashrc) entrare in oracle #svrmgrl #SVRMGR> /** ORACLE 8.1.6**/ -compatibilità con glibc 2.1 (es.rh7,1) installare compat-glibc-6.2 (disk1 rh7,1 dev/lib) installare compat-libs-6.2 (disk2 rh7,1 /dev/lib) installare compat-egcs-6.2 (disk2 rh7,1 /dev/lang) installazione di oraclo 8i -verificare la presenza di gruppo dba (priv root) vi /etc/group groupadd dba -r (-creare gruppo oinstall (priv root) (oppure usare dba)) -creare utente oracle (pw:#) (su opt/oracle gruppo dba) useradd -g dba -d /opt/oracle oracle passwd * vi /etc/passwd -entrare come oracle settare le variabili di ambiente (per rh7.1) export LD_ASSUME_KERNEL=2.2.5 export ORACLE_HOME=/opt/oracle export ORACLE_SID=fighet export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/ export LDEMULATION=elf_i386_glibc21 unset LANG -entrare in startx -montare /cdrom (o /mnt/cdrom) -installare in opt/oracle (e opt/oracle/orainventory) database fighet: (global database name fighet.alekos.loc SID fighet, dati in /dati o /opt/oracle/dati lanciare root.sh quando lo chiede() ) -installazione custom con creazione dello script per la creazione del db /opt/oracle/fighetrun.sh /opt/oracle/fighetrun1.sh /opt/oracle/fighetrun2.sh /opt/oracle/fighetsqlplus.sh /opt/oracle/fighetalterTablespace.sh (che crea anche utente fighet/fighet) test con sqlplus e tnsping start/stop con ostart.sh e ostop.sh in opt/oracle e ora che li chiama con l'utente oracle RETVAL=0 # See how we were called. case "$1" in start) su - oracle -c/opt/oracle/ostart.sh ;; stop) # ignore su - oracle -c/opt/oracle/ostop.sh ;; *) echo $"Usage: $0 {start|stop}" RETVAL=1 esac exit $RETVAL (-settare le variabili di ambiente (in .bashrc con export) ORACLE_SID=fighet ORACLE_HOME=/opt/oracle LD_LIBRARY_PATH=/opt/oracle/lib CLASSPATH=/opt/oracle/JRE,/opt/oracle/jlib già configurate dall'installazione PATH=...:/opt/oracle/bin HOME=/opt/oracle) impostazioni database fighet.alekos.loc SID=fighet pw SYS: # pw SYSTEM:# creati gli script /opt/oracle/ostart.sh (con listener) /opt/oracle/ostop.sh (con listener) listener: impostando ORACLE_SID ci si può collegare solo all'istanza oracle di quel sid, il listener può stare in ascolto su più istanze oracle_home/network/admin/listener.ora oracle_home/network/admin/tnsname.ora per uscire connessioni con net8 assistance: via 8i con global dbname e sid oppure compatibili 8.0 con indirizzo ip sid e home ___________________ /** SQL **/ esportare e importare il database: exp (tutto utente) file.dmp imp file=file.dmp indexfile=creatutto.sql (per estrarre un file di creazione tabelle) aggiunta campo: ALTER TABLE "FIGHET"."PERSONAGGI" ADD("ID_TATOO1" NUMBER(5)); cancella campo: ALTER TABLE "FIGHET"."PERSONAGGI" DROP COLUMN "ID_TATOO"; crea tabella: CREATE TABLE test (campo1 int,campo2 varchar (20)); inserire dati: INSERT INTO test values (2); inner: SELECT * FROM notices inner join exemplaires on exemplaires.expl_notice=notices.notice_id inner join expl_custom_values on exemplaires.expl_id=expl_custom_values.expl_custom_origine WHERE exemplaires.expl_typdoc=25 AND `expl_custom_small_text`='Molise' and expl_custom_champ=12 and (tit1 like '%2007' or tit1 like '%2008%') aggirnare con join tra due tabelle: UPDATE AUCTION2 SET AUCTION2.NUMCAT = PICTURES2.NUMCAT from PICTURES2 where AUCTION2.IDPIC = PICTURES2.IDPIC - insert into scuole (id_scuola,provincia, localita, Tipo, Cat, rag_soc, indirizzo, tel, punti) values(10000,'MI','MILANO','ISTITUTO D''ARTE','Pub','NOME SCUOLA','VIA SCUOLA 11','1111',0) - update risposte SET testo = REPLACE(testo, 'Piu', 'Più') where testo like '%Piu%' - delete scuole where id_scuola=10000 - delete from deficiencytype where patient in (select id from anagraphics where anagraphics.Operator=15) inserire da una tabella ad un'altra: INSERT INTO addressprova ( nickname, firstname, email ) SELECT rubricamozilla2801.Campo1, rubricamozilla2801.Campo3, rubricamozilla2801.Campo5 FROM rubricamozilla2801; inserire dati da una tabella ad un'altra: UPDATE admin_anag, anagraphics SET admin_anag.Contact = anagraphics.Contact WHERE admin_anag.ID = anagraphics.ID; per accodare da una query insert into autori_contenuti2 (id_autore,id_contenuto) SELECT id_aut,id FROM arg_aut,contenuti where arg_aut.id_arg=contenuti.argomento concatenare con NULL: select concat_ws(' ','da',NULL) restituisce 'da' select concat(ifnull(NULL,'da'),'rio') restituisce 'dario' estrazione di parte di testo: select id,nome, SUBSTRING_INDEX(nome, ' ', 1) as nome, SUBSTRING_INDEX(nome, ' ', -1) as cognome from autori ___________________ /**-----DISTRO----**/ ___________________ /*** MANDRAKE 9.1 **/ installare i pacchetti urpmi fetchmail sicurezza normale fa ping ssh... aggiungere mysql, imap, fetchmail, netatalk aggiungere i moduli php-mysql urpmi php-mysql urpmi php-imap urpmi php-ldap urpmi php-cli poi riavviare http ___________________ /*** DEBIAN **/ -installazione businesscard standard mirror svizzero lingua italia senza ambiente desktop solo server server web: apache dns: bind9 (named) file server: samba nfs netatalk tasksel per aggiungere successivamente ambiente grafico nel passare gli utenti da un altra distro copiare /etc/passwd /etc/shadow /etc/shadow- ma poi le password vanno rimesse per non riscrivere le password pwunconv (in chiaro) poi di nuovo pwconv !!!non copiare tutto passwd ma solo gli utenti -job su bash "ctrl+z" sospende l'esecuzione del comando; per riprenderlo "in background" (non puoi interagire con il comando): #bg per riportarlo attivo "in foreground": #fg -init: runlevel indica il runlevel attivo init 2 lo cambia in inittab default a 2 -servizi grafica: sysV-init o apt-get install sysvconfig testo: /etc/init.d/httpd start per avviare ln -s /etc/rc.d/http /etc/rc5.d/s20httpd per avviamento automatico rm /etc/rc5.d/s20httpd per non avviarlo automaticamente -installazione pacchetti grafica: synaptic testo: aptitude o dselect /etc/apt/source.list apt-get -u update preleva gli aggiornamenti atp-get install alien apt-get remove alien apt-get remove --purge alien (elimina tutto) apt-get -u upgrade aggiorna i pacchetti installati o meglio: apt-get dist-upgrade atp-show-versions -u mostra gli aggiornabili apt-cache search <> cerca apt-cache show <> mostra dettagli apt-cache installa pacchetti dpkg -i foo_VVV-RRR.deb -utilità generali: . /etc/bash_completion fa la completazione anche dentro i comandi deborphan visualizza le librerie orfane apt-get autoremove localepurge elimina le lingue inutili (tenere en_US e it e it_IT@euro) tmpwatch ripulisce la tmp se .bashrc non esiste copiarlo non basta va aggiunto .profile per attivarlo -indirizzi ip a basso livello: meglio ip apt-get install iproute ip link show = ifconfig che ifconfig e route ad alto livello: # ifdown eth0 # editor /etc/network/interfaces # modificatelo a piacimento iface eth0 inet static address 192.168.0.111 netmask 255.255.255.0 gateway 192.168.0.1 # ifup eth0 -mysql mysql-server-4.1 php4-mysql aggiungere a /etc/apache2/apache2.conf Alias /sito/ "/home/alekos/sito/" copiare sito e phpmyadmin con cui modificare la password di root, creare utente e abilitarlo ai db spostare i db con export-import gzip per aprire la porta 3306 all'esterno decommentare in my.cnf che la chiudeva a localhost #bind-address = in /etc/mysql/debian.cnf c'è la configurazione per accesso logrotate e controlli di start (utente e pw di amministratore) -sftp si usa di default sftp con filezilla -webdav a2enmod dav_fs a2enmod dav Alias /nomedapubblicare /var/www/directory DAV On AuthType Basic AuthName "DAV Publishing System" AuthUserFile /etc/apache2/webdavusers require valid-user htpasswd -c /etc/apache2/webdavusers nomeutente client: per testare apt-get install cadaver cadaver http://localhost/nomedapubblicare (in explorer http://localhost:80/nomedapubblicare) -samba smbpasswd -a alekos -vsftpd apt-get install vsftpd in /etc/vsftpd.conf anonymous_enable=NO local_enable=YES local_umask=022 write_enable=YES chroot_list_enable=YES chroot_local_user=YES e creare un vuoto: chroot_list_file=/etc/vsftpd.chroot_list per abilitare gli utenti con /sbin/nologin aggiungerlo a /etc/shells -imap imaps pop3 pop3s apt-get install dovecot in /etc/dovecot/dovecot.conf si può attivare oltre a imap anche imaps generare le chiavi openssl genrsa -out key.pem 1024 (in ssl_key_file=) openssl req -new -x509 -key key.pem -out cert.pem (in ssl_cert_file=) disabilitare ssl: protocols = imap pop3 disable_plaintext_auth = no ssl_disable = yes -squirrelmail apt-get install squirrelmail php sono in /usr/share/squirrelmail/ e config è /etc/squirrelmail/conf.pl o /usr/sbin/squirrelmail-configure test su http://your-squirrelmail-location/src/configtest.php in apache aggiunge alias /webmail/ -postfix apt-get install postfix toglie exim e installa postfix, per rifare la configurazione dpkg-reconfigure --priority=low postfix configurazoni /etc/postfix main.cf definizioni variabili mailbox_command = procmail -a "$EXTENSION" se usa procmail #curare hostname myhostname = paco2.alekos.loc mydestination = alekos.org, paco2.alekos.loc, localhost.alekos.loc, localhost #per amavis content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings master.cf amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -spamassassin+clamav+amavis-new amavis è un wrapper che controlla i virus con clamav (li toglie) e gli spam con spamass (mette ***SPAM*** nel subject) apt-get install spamassassin abilitare in /etc/default/spamassassin apt-get install clamav clamav-daemon amavis zoo unzip unarj amavis: $mydomain = 'alekos.loc'; $forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail $notify_method = $forward_method; # where to submit notifications #@bypass_spam_checks_acl @local_domains_acl = qw( ".$mydomain" ); # you may want to use qw() to check all in and out $sa_tag_level_deflt = -1000; $sa_tag2_level_deflt = 5.0; $sa_kill_level_deflt = 10; $sa_spam_subject_tag = '***SPAM*** '; $sa_local_tests_only = 0; $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_REJECT; $final_spam_destiny = D_PASS; $virus_quarantine_to = undef; #$spam_quarantine_to = 'spam-quarantine'; clamav: adduser clamav amavis permessi all'utente clamav di leggere file amavis (Aggiunge un utente esistente a un gruppo esistente) spamassassin: allenarlo: sa-learn --spam --mbox Junk sa-learn --ham --mbox varie si può invece usare spamassassin con procmail, settare /etc/spamassassin/local.cf rewrite_header Subject *****SPAM***** use_bayes 1 bayes_auto_learn 1 bayes_path /var/lib/amavis/.spamassassin/bayes bayes_file_mode 0666 required_score 0 #alzare a 5 poi auto_learn 1 controllare che ci sia /var/lib/amavis/.spamassassin/user_prefs e i due bayes_seen bayes_toks aggiungere prima il lancio di spamassassin da /etc/procmailrc: DROPPRIVS=yes :0fw: spamassassin.lock * < 256000 | spamassassin poi in ogni home/home/alekos/.procmailrc: :0: * ^X-Spam-Status: Yes mail/Junk per vedere cosa succede nelle mail tail /var/log/mail.log -pop-before-smtp per usare postfix come relay smtp da fuori autenticando con pop-imap apt-get install libtimedate-perl libnet-netmask-perl libberkeleydb-perl pop-before-smtp installa tutto da solo, svuotare il relay e aggiungere smtpd_recipient in main.cf: smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient, check_client_access hash:/var/lib/pop-before-smtp/hosts, reject_unauth_destination relayhost = per dovecot decommentare in /etc/pop-before-smtp/pop-before-smtp.conf: # For Dovecot POP3/IMAP when using syslog. $pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' . 'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]'; $out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' . 'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]'; -https abilitare mod_ssl in /etc/apache2/ ln -s ../mods-available/ssl.conf ssl.conf ln -s ../mods-available/ssl.load ssl.load oppure con a2enmod ssl è installato openssl apt-cache show openssl generare certificato apache2-ssl-certificate (-days x per la scadenza predefinito 1 mese --force se esistente) (FQDN provare con hostname -f aggiungere al file hosts come primo il nome con dominio così non chiede conferma per indirizzo diverso) aggiungere porta 443 in /etc/apache2/ports.conf Listen 443 aggiungere sites-available/ssl e ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/000-ssl: NameVirtualHost *:443 SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem ServerAdmin webmaster@localhost DocumentRoot /home/alekos/apa/ per testare: openssl s_client -connect localhost:443 -state -debug solo SSLv2: SSLProtocol -all +SSLv2 SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP -CAcert:installazione del certificato root di cacert per ie: http://www.cacert.org/index.php?id=17 per firefox: http://www.cacert.org/certs/root.crt richiedere un certificato server dopo ave aggiunto un dominio in cacert copiando nel campo (Certificate Signing Request, CSR): openssl req -nodes -new -keyout test.key -out test.csr che genera due chiavi: test.key: chiave privata test.csr: Certificate Signing Request in company name mettere dominio inserito,copiare il certificato in server.crt e includere il https: SSLCACertificateFile /etc/apache2/ssl/cacert.crt SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/test.key -Certificato lato client #creo CA prersonale openssl genrsa -des3 -out my-ca.key 2048 (serve password 4 car) openssl req -new -x509 -days 365 -key my-ca.key -out my-ca.crt openssl x509 -in my-ca.crt -text -noout #creo certificato server openssl genrsa -des3 -out my-server.key 1024 openssl req -new -key my-server.key -out my-server.csr openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650 openssl x509 -in mars-server.crt -text -noout #scrivere in conf:richiede certificato client SSLCACertificateFile /etc/apache2/ssl/my-ca.crt SSLCertificateChainFile /etc/apache2/ssl/my-ca.crt SSLCertificateFile /etc/apache2/ssl/my-server.crt SSLCertificateKeyFile /etc/apache2/ssl/my-server.key ServerName www.alekos.net:443#deve essere FQDN del certificato #creo certificato client openssl genrsa -des3 -out van-c.key 1024 openssl req -new -key van-c.key -out van-c.csr openssl x509 -req -in van-c.csr -out van-c.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650 openssl pkcs12 -export -in van-c.crt -inkey van-c.key -name "Van Emery Cert" -out van-c.p12 openssl pkcs12 -in van-c.p12 -clcerts -nokeys -info #aggiungo necessario SSLVerifyClient require SSLVerifyDepth 5 #per non avere la password richiesta ad ogni invio di apache, cambiare solo my-server.key cp my-server.key my-server.key.org openssl rsa -in my-server.key.org -out my-server.key -cosa fa /usr/sbin/apache2-ssl-certificate?: openssl req $@ -config /usr/share/apache2/ssleay.cnf \ -new -x509 -nodes -out /etc/apache2/ssl/apache.pem \ -keyout /etc/apache2/ssl/apache.pem chmod 600 /etc/apache2/ssl/apache.pem ln -sf /etc/apache2/ssl/apache.pem \ /etc/apache2/ssl/`/usr/bin/openssl \ x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0 -dhcp apt-get install dhcp in /etc/default/dhcp mettere solo la scheda che interessa "eth0" /etc/dhcpd.conf option domain-name "alekos.loc"; option domain-name-servers 192.168.2.10; subnet 192.168.1.0 netmask 255.255.255.224 { range 192.168.1.20 192.168.1.30; option routers 192.168.1.1; option broadcast-address 192.168.1.11; } -procmail: :0: #quali mail * ^X-Spam-Status: Yes #condizione oppure * ^TO.teatrogranara@alekos.org mail/Junk #cosa faccio -telecamera /dev/video0 su - alekos -c motion -munin: monitoraggio sistema apt-get install munin munin-node /etc/munin.conf /etc/init.d/munin-node restart per testare plugin > /usr/share/munin/plugins/sensors_ autoconf yes check tutti i possibili > munin-node-configure --debug aggiungere ln -s /usr/share/munin/plugins/plugin_name /etc/munin/plugins/ per apache bisogna aggiungere: vi /etc/apache2/mods-enabled/status.conf ExtendedStatus On SetHandler server-status poi il tutto si legge da http://mioserver/munin/ -iftop: monitoraggio rete si vede anche su quale porta (B) -dischi fat: /dev/hda1 /media/hda1 vfat defaults,utf8,umask=000,gid=alekos 0 0 -mailman #apt-get install mailman #newlist mailman -- creates the default list in/etc/aliases : ## mailman mailing list mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" e poi newaliases in apache.conf: ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ Alias /pipermail/ /var/lib/mailman/archives/public/ per nuova lista newlist per rimuoverla rmlist ## lista listasocigranara listasocigranara: "|/var/lib/mailman/mail/mailman post listasocigranara" listasocigranara-admin: "|/var/lib/mailman/mail/mailman admin listasocigranara" listasocigranara-bounces: "|/var/lib/mailman/mail/mailman bounces listasocigranara" listasocigranara-confirm: "|/var/lib/mailman/mail/mailman confirm listasocigranara" listasocigranara-join: "|/var/lib/mailman/mail/mailman join listasocigranara" listasocigranara-leave: "|/var/lib/mailman/mail/mailman leave listasocigranara" listasocigranara-owner: "|/var/lib/mailman/mail/mailman owner listasocigranara" listasocigranara-request: "|/var/lib/mailman/mail/mailman request listasocigranara" listasocigranara-subscribe: "|/var/lib/mailman/mail/mailman subscribe listasocigranara" listasocigranara-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe listasocigranara" ___________________ /*** UBUNTU **/ -Create a list of installed packages dpkg --get-selections > installed-software dpkg --set-selections < installed-software dselect per riinstallarli - Installation LowMemorySystems Alternate CD and choose "Install a command-line system." sudo aptitude update sudo aptitude safe-upgrade sudo aptitude full-upgrade localepurge: to purge unneeded translations readahead: to accelerate boot sequence -x manager sudo aptitude install xorg riconfigurare X: # sudo rm /etc/X11/xorg.conf # just remove the xorg.conf. usualy, X will try to configure itself. # if you have gdm installed, kill it with Ctrl-Alt-Backspace until it gives safe mode. or intentionally breaks xorg.conf with wrong entries. # sudo X -configure && sudo cp xorg.conf.new /etc/X11/xorg.conf # sudo dpkg-reconfigure -phigh xserver-xorg # sudo displayconfig-gtk # try paste xorg.conf from failsafe / default xorg.conf -windows manager fluxbox-jmw sudo aptitude -y install xserver-xorg-core xinit menu menu-xdg jwm fluxbox alsa-utils mrxvt-mini gdebi-core synaptic logrotate icewm sudo aptitude install icewm iceconf icepref iceme icewm-themes icemc wmctrl lxde sudo aptitude install --no-install-recommends lxde openbox sudo aptitude install openbox obconf openbox-themes fvwm-crystal installa anche audacious e roxio file manager ma e + lenta sudo aptitude install fvwm-crystal build-essential msttcorefonts compilare l'ultima wget http://download.gna.org/fvwm-crystal/3.0.4/fvwm-crystal-3.0.4.tar.gz tar -xvzf fvwm-crystal-3.0.4-tar.gz cd fvwm-crystal-3.0.4 sudo make install in .xsession exec fvwm-crystal sudo update-alternatives --config x-session-manager -avvio automatico utente e X: # sudo aptitude install mingetty # sudo nano -w /etc/event.d/tty1 # look at the last line # comment this line and add the next line: # exec /sbin/getty 38400 tty1 exec /sbin/mingetty --autologin replacewithyourusername tty1 sudo chmod +s /sbin/halt # nano -w .bashrc # put these lines at the most bottom if [ $(tty) == "/dev/tty1" ]; then startx /sbin/halt fi oppure login manager piccolo qingy: sudo aptitude install qingy # sudo nano -w /etc/event.d/tty1 # look at the last line # comment this line and add the next line: #exec /sbin/getty 38400 tty1 exec /usr/sbin/qingy tty1 -installare wlan sudo aptitude install wireless-tools iwconfig per vedere sudo ifconfig wlan0 up iwlist wlan0 scan sudo iwconfig eth1 mode managed channel 1 essid nomessid iwconfig eth1 sudo dhclient eth1 utilizzo wicd gui ottima deb http://apt.wicd.net hardy extras wicd-client (O wicd-client -n se non c'è il tray, il quale /opt/wicd/tray.py) -usare ndiswrapper /etc/modprobe.d/blacklist Aggiungiamo: blacklist rtl8187 sudo apt-get install ndiswrapper-common Controlliamo il nostro BusID con "lsusb" per assicurarci che la penna sia effettivamente il modello WG111v2: Bus 005 Device 011: ID 0846:6a00 NetGear, Inc. WG111 WiFi (v2) sudo ndiswrapper -i net111v2.inf sudo ndiswrapper -l autorun : invalid driver! net111v2 : driver installed device (0846:6A00) present (alternate driver: rtl8187) -browser opera scaricare dal sito opera .deb e installarlo con dpkg -i installare flashplugin-nonfree -caricare penna usb lsusb sudo fdisk -l sudo mount -t vfat /dev/sda1 /mnt/flash -pacchetti formati proprietari abiitare nel repository /etc/apt/sources.list (o in sorgenti software) universe e multiverse installare: gstreamer0.10-ffmpeg gstreamer0.10-pitfdll gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gxine libxine-main1 libxine-extracodecs ogle ogle-gui w32codecs: wget -c http://www.debian-multimedia.org/pool/main/w/w32codecs/w32codecs_20061022-0.0_i386.deb sudo dpkg -i w32codecs_20061022-0.0_i386.deb libdvdread3 sudo /usr/share/doc/libdvdread3/install-css.sh meglio convertire totem in totem-xine --Ubuntu 8.10 + LXDE sudo apt-get install lxde xinit gdm xorg sudo apt-get install alsamixergui alsaplayer epdfview gpaint kazehakase pidgin abiword synaptic wifi-radar --elenco repo e chiavi deb http://deb.opera.com/opera/ stable non-free sudo wget -O - http://deb.opera.com/archive.key | sudo apt-key add - --lamp apt-get install php5-imap apt-get install php-pear --citadel: sostituisce mta e dovecot deb http://ubuntu.citadel.org/ubuntu/ hardy main apt-get install citadel-suite --ie4linux sudo apt-get install wine cabextract wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz tar zxvf ies4linux-latest.tar.gz cd ies4linux-* ./ies4linux --programmi utili cups-pdf (creare cartella PDF in home/user/) xchm o gnochm deb http://ppa.launchpad.net/tualatrix/ubuntu intrepid main deb-src http://ppa.launchpad.net/tualatrix/ubuntu intrepid main sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FE85409EEAB40ECCB65740816AF0E1940624A220 sudo apt-get install nautilus-image-converter sudo apt-get install ubuntu-tweak si può installare anche odbc --font sudo apt-get install msttcorefonts per altri ttf aggiungere in /usr/share/fonts attivarli subito sudo fc-cache -fv #apt-get install vim-full e .vimrc " Turn on line numbering. Turn it off with "set nonu" "set nu " Set syntax on syntax on " Indent automatically depending on filetype filetype indent on set autoindent " Case insensitive search set ic " Higlhight search set hls " Wrap text instead of being on one line "set lbr " Change colorscheme from default to delek colorscheme delek --cellulare hcitool scan sdptool search --bdaddr 00:11:22:33:44:55 DUN | grep Channel sudo rfcomm bind rfcomm0 00:17:E5:86:6E:7C 2 verifica rfcomm sudo gedit /etc/bluetooth/rfcomm.conf rfcomm0 { bind yes; # Indirizzo Bluetooth del cellulare device 00:11:22:33:44:55; # canale RFCOMM per la connessione channel 1; # Commento a piacere comment "Commento a piacere"; } poi gnome-ppp disabilitando nm init2: AT+CGDCONT=1,"ip","apn.tre.it","",0,0 --odbc mysql ooo sudo apt-get install unixodbc-bin sudo odbcinst sudo ODBCConfig creare /etc/odbcinst.ini [Mysql odbc] Description = Driver = /usr/lib/odbc/libmyodbc.so Driver64 = /usr/lib Setup = /usr/lib/odbc/libodbcmyS.so Setup64 = /usr/lib UsageCount = 1 CPTimeout = CPReuse = e configurare odbc di sistema ---installazione yaz (per OPAC) - ubuntu 8.04 LTS #rimuovi eventuali versioni precedenti di yaz e scarica le librerie necessarie sudo apt-get install php-pear sudo apt-get install php5-dev sudo apt-get install libyaz2-dev sudo apt-get install build-essential #scarica l'ultima versione di yaz e compila wget http://ftp.indexdata.dk/pub/yaz/ubuntu/8.04/yaz_3.0.42.orig.tar.gz tar xvzf yaz_3.0.42.orig.tar.gz cd yaz-3.0.42/ ./configure make sudo make install #cerca e scarica eventuali dipendenze di yaz appena installato, e di libyaz2-dev sudo apt-get build-dep yaz sudo apt-get build-dep libyaz2-dev #edita il config di yaz sudo vi /usr/bin/yaz-config #sostituisci la versione di yaz con quella corrente sostituisci la linea YAZVERSION=2.1.8 con: YAZVERSION=3.0.42 e anche tutte le altre occorrenze della versione (se ci sono nel config) #scarica e installa via pecl la libreria php yaz sudo pecl install yaz (click su Invio alla domanda): Path to yaz installation ? [autodetect] #edita php.ini sudo vi /etc/php5/apache2/php.ini Edite le fichier de paramétrage de PHP. #aggiungi una linea (carica il modulo yaz quando parte il server) extension=yaz.so #restarta apache sudo /etc/init.d/apache2 restart #controlla che yaz sia installato correttamente, es. inserisci un file di nome phpinfo.php contenente la stringa > nella root del webserver; richiamalo via browser e controlla l'esistenza del modulo yaz -- horde imp apt-get install horde3 imp4 gollem ingo nag turba aggiungere Alias /horde3 /usr/share/horde3 Options FollowSymLinks AllowOverride Limit allow from all # chgrp www-data /etc/horde # chmod 750 /etc/horde lanciare il test: /horde3/imp/test.php ....... --conky install conky vi /etc/conky/conky.conf --mass rename pyRenamer -- rimuovere beep in /etc/modprobe.d/blacklist blacklist pcspkr e rimuovere modulo: sudo rmmod pcspkr -- controllare touchpad abilitare SHMConfig in /etc/hal/fdi/policy/shmconfig.fdi: True script per toggle e disabilita touchpad durante digitazione: #!/bin/bash state=`synclient -l | fgrep TouchpadOff | sed 's/^.*= //'` if [ $state -eq 1 ] then synclient TouchpadOff=0 syndaemon -i 1 -d else synclient TouchpadOff=1 fi --kernel e pulizia per togliere i kernel vecchi: sudo apt-get -s remove linux-image-2.6.20-15-generic sudo apt-get clean sudo apt-get autoclean sudo apt-get autoremove