Informatyka





Linux



Konfiguracja bezdyskowa Diskless Debian Linux booting via dhcp/pxe/nfs/tftp/aufs.


Jeśli chcesz uruchomić Debiana przez sieć używając udziałów NFS jako system plików root tylko do odczytu np. dla maszyn bootowanych przez sieć a zapisujących do pamięci ram oto konfiguracja dla Ciebie. Zakładam że używasz stacji Linux jako router który wykorzystuje dystrybucję Debian. Nasi klienci będą pobierać system używając PXE booting. Z założenia sieć lokalna to 10.0.0.0/24 i działa w niej dhcp/nfs/tftp serwer pod adresem 10.0.0.1.

Na początek potrzebny jest debootstrap, nfs, tftpd i systlinux. Zainstaluj to. Zakładam że architektura serwera jest taka sama jak u klientów bo jeśli używasz jako serwera amd64 a serwujesz Debiana w wersji x86 lub arm wtedy potrzeba nieco więcej pracy która nie jest tu omówiona.

apt-get install tftp-hpa nfs-kernel-server debootstrap syslinux

Boot loader będzie trzymany w /srv/tftp a system plików root z NFS w /srv/nfsroor

System plików root trzeba uczynić moountowalnym przez NFS. Eksportujemy go przez dodanie linii do /etc/exports

/srv/nfsroot 10.0.0.0/24(ro,no_root_squash,no_subtree_check)

Bootować będziemy standardowego Debiana używając debootstrap.

debootstrap stable /srv/nfsroot http://ftp.us.debian.org/debian

Teraz musimy zainstalować kilka pakietów w naszej nowej klienckiej dystrybucji.

chroot /srv/nfsroot apt-get update
chroot /srv/nfsroot apt-get install initramfs-tools linux-image-2.6.32-5-amd64

Trzeba dodać moduł aufs.

echo aufs >> /srv/nfsroot/etc/initramfs-tools/modules

Utwórz plik /srv/nfsroot/etc/initramfs-tools/scripts/init-bottom/aufs i nadaj mu prawa wykonywalności. Zapisz w nim następującą zawartość.

modprobe aufs
mkdir /ro /rw /aufs
mount -t tmpfs tmpfs /rw -o noatime,mode=0755
mount --move $rootmnt /ro
mkdir -p /aufs/rw /aufs/ro mount -t aufs aufs /aufs -o noatime,dirs=/rw:/ro=ro
mount --move /ro /aufs/ro
mount --move /rw /aufs/rw
mount --move /aufs /root
exit 0

Wygeneruj initrd

update-initramfs -k

Skopiuj wygenerowany initrd obraz jądra i PXE bootloader do katalogu root serwera tftp. Stwórz katalog dla konfiguracji PXE.

cp /srv/nfsroot/boot/initrd.img-2.6.32-5-amd64 /srv/tftp/
cp /srv/nfsroot/boot/vmlinuz-2.6.32-5-amd64 /srv/tftp/
cp /usr/lib/syslinux/pxelinux.0 /srv/tftp
mkdir /srv/tftp/pxelinux.cfg

Skonfiguruj bootloader. Skopiuj poniższy przykład do /srv/tftp/pxelinux.cfg/default

default Debian
prompt 1
timeout 10
label Debian
kernel vmlinuz-2.6.32-5-amd64
Konfiguracja pliku /etc/default/tftpd-hpa append ro initrd=initrd.img-2.6.32-5-amd64 root=/dev/nfs ip=dhcp nfsroot=10.0.0.1:/srv/nfsroot

plik /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

plik /etc/dhcp/dhcpd.conf

next-server 10.0.0.1;
allow booting;
subnet 10.0.0.0 netmask 255.255.255.0 {
option domain-name-servers ns1.internal.example.org;
range 10.0.0.10 10.0.0.20;
# option domain-name "internal.example.org";
option routers 10.0.0.1;
option broadcast-address 10.0.0.255;
filename "pxelinux.0";
}

/etc/init.d/isc-dhcp-server

INTERFACES="eth0"

Uruchom ponownie usługi:

/etc/init.d/isc-dhcp-server restart
/etc/init.d/tftpd-hpa restart
exportfs -ra

firewall dodaj następujące reguły do firewalla

iptables -A INPUT -i eth0 -p udp -s 10.0.0.0/24 --dport 69 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -s 10.0.0.0/24 -m multiport --dport 111,2049,48596,53354,52105,49366,50318 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 10.0.0.0/24 -m multiport --dport 111,2049,37193,58677,58578,44887,49700 -j ACCEPT

załaduj moduły ip_conntrack_ftp i ip_conntrack_tftp przez dodanie linijek do /etc/modules:

ip_conntrack_ftp
ip_conntrack_tftp



Skrypt sprawdzający czy ostatni zalogowany w systemie użytkownik to "kapral" i wysyłający o tym informacje na maila.


# http://www.tomekmarszal.pl
mylog() {
echo >>./trap.sh "$@"
}

while read line;do
case "$line" in
last -n1 >wk
*"kapral"* )
mail kapral@toya.net.pl <wk
;;
esac
done < <(last -n1)
Pobierz



Zmiana rozmiaru wirtualnej maszyny VirtualBox vdi


Jeśli używasz virtualbox w wersji wyższej niż 4 i podczas tworzenia wirtualnej maszyny wybrałeś rozmiar "dynamicly allocated" możesz zmienić wielkość partycji systemowych i swap. Aby to robić w komputerze hosta trzeba wydać komendę:
vboxmanage modifyhd sciezka/wirtualnamaszyna.vdi --resize 50000
Zwiększy to rozmiar pliku vdi do 50 GB
Na wirtualnej maszynie której rozmiar chcesz zwiększyć (gość) wyłącz swap
swapoff /dev/sda1
Zwiększ rozmiar partycji w tablicy partycji:(aby uzyskać pomoc wpisz "?", "p" wyświetla informacje o partycjach, "d" kasuje partycje, "n" tworzy nową partycję, "w" zapisuje zmiany, "q" opuszcza program)
fdisk /dev/sda2
Skasuj wybraną partycje i utwórz taką sama z większym romiarem. Zapisz zmiany.
Wykonaj ponowny rozruch systemu gościa
W systemie gościa zmień rozmiar partycji:
resize2fs /dev/sda2
Sprawdź rozmiar nowej większej partycji:
df -h


Firewall


#http://www.tomekmarszal.pl
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s 217.113.234.47 --dport 22 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s 217.113.234.47 --dport 80 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s 217.113.234.47 --dport 443 -j ACCEPT
iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -j DROP
Pobierz

Listowanie reguł
iptables -L
wyjaśnienie:
man iptables

Skrypty startowe - uruchamianie usług


#!/bin/sh
# http://www.tech-recipes.com
# http://www.tomekmarszal.pl

case "$1" in 'start')
/etc/iptables
echo "Firewall started"
;;

'stop')
iptables -F
echo "Firewall flushed"
;;

'restart')
echo "nothing to be done"
;;

exit 1
*) echo "Usage: $0 { start | stop | restart }"
;;
esac
exit 0

Pobierz

Aby dodać skrypt do startu systemu trzeba go umieścić w katalogu /etc/init.d i wydać komendę:
update-rc.d nazwaskryptu defaults

Skrypt perl do łącznenia łańcuchów DNA


Pobierz więcej informacji w archiwum

Program skrypty w php ładujący z pliku CSV listę serwerów proxy w celu dodania ich do konfiguracji monitora usług sieciowych Nagios


Pobierz więcej informacji w archiwum