Kontakt  Oferta 
 Kontakt  Oferta
ARWAL - internet, kasy fiskalne, programowanie, serwis, komputery

LMS komputer zapasowy

Stosowane przez nas konfiguracje LMS nadają się do przenoszenia między komputerami ( mogą być uruchomione na zdecydowanej większości komputerów ). Pamiętajmy jednak , że po podmianie komputera pojawia się problem podłączenia kart sieciowych, których jest zazwyczaj kilka i możemy się pomylić. Ja proponuję nastepujący układ :

 

  • ETH0 - WAN1
  • ETH1 - LAN klienci
  • ETH2 - WAN2
  • ETH3 - WAN3

 

Oczywiście WAN2 i WAN3 występują tylko w niektórych konfiguracjach. Karty numerujmey od procesora. Nie zawsze karta wbudowana jest obsługiwana przez system Linux.

 

Gdy jest obsługiwana numeracja kart wygląda następująco:

plyta_wariant1....

 

Jeśli nie ( lub jej nie ma ) wygląda tak

plyta_wariant2....

 

Po podłączeniu komputera zapasowego i zalogowaniu się na nim możemy sprawdzić konfigurację kart. Służy do tego komenda ifconfig ( pokazuje wszystkie karty ) lub ifconfig eth0 ( eth1, eth2 - pokazuje konfigurację wybranej karty . Co charakterystyczne komenda ta nie zawsze pokazuje bramę, którą powinnismy znać.

 

ifconfig.JPG

 

O oznaczeniu kart sieciowych decyduje plik /etc/udev/rules.d/70-persistent-net.rules . Jeśli tworzymy nowy komputer z obrazu tak jak to opisałem w artykule LMS odtwarzanie kopii po odtworzeniu należy skasować ten plik. Po ponownym starcie zostanie on odtworzony. Po zalogowaniu się na serwerze za pomocą komendy ping możemy sprawdzić czy kable są prawidłowo podłączone.

Instalacja NTOP

Edytujemy plik /etc/apt/sources.list. Dopisujemy :

 

 

deb http://backports.debian.org/debian-backports squeeze-backports main

 

 

Przeprowadzamy aktualizację źródeł i instalację ntop:

 

 

  1. apt-get update
  2. apt-get install ntop

 

dpkg-reconfigure ntop

 

Na pytania konfiguratora odpowiadamy :

 

 

- Which interfacees should ntop listen on? eth1
- Which is the name of user to run ntop daemon as? ntop

 

Teraz modyfikacje skryptów v-smart - plik /serwer/skrypty/firewall.sh    

Gdzieś w sekcji:    
# autoryzowany dostep tylko z pliku dostep.conf    

wstawiamy:    
$IPTABLES -A INPUT -s $IP -m state --state NEW -p tcp --dport 3000 -j ACCEPT

 

Usuwamy uruchamianie ntop z katalogów rc*.d

 

 

rm -f /etc/rc*.d/*ntop*

 

Do pliku /etc/rc.local dopisujemy uruchomienie ntop ( ntop może się uruchomić dopiero po podniesieniu karty eth1 )

 

 

/etc/init.d/ntop start

 

Restartujemy skrypty serwera

/serwer/start_all

 

I ntop jest dostępny http://adres_serwera:3000

 

Opis opracowano na podstawie http://forum.v-smart.pl/viewtopic.php?t=260&;highlight=ntop

 

Instalacja LSTAT

Łączymy sie z serwerem przez putty i wykonujemy:

 

apt-get install rrdtool librrds-perl php5-cgi libapache2-mod-php5
wget http://sourceforge.net/projects/lstat/files/lstat/2.3.2/lstat-2.3.2.tar.gz/download
mv download lstat-2.3.2.tar.gz
tar -xzvf lstat-2.3.2.tar.gz
cd lstat-2.3.2
./configure --iso-8859-2 --with-httpdconf=/etc/apache2/apache2.conf --with-wwwuser=www-data --with-wwwgroup=www-data
make
sudo make install
sudo cp /usr/local/lstat/bin/lstatd.rc /etc/init.d/lstat
sudo update-rc.d lstat defaults

Następnie w pliku /etc/apache2/httpd.conf dopisujemy

Include /etc/apache2/lstat.conf

 Aby zabezpieczyć dostęp do strony statystyk uruchamiamy

 

/usr/local/lstat/bin/security_lstat

 

Statystyki możemy uruchomić przez restart serwera lub ręcznie:

sudo /etc/init.d/apache2 reload
sudo /etc/init.d/lstat start

 

Statystyki sa dostępne pod adresem http://adres.ip.kompa.z.lstat/lstat/lstat.cgi

V-SMART instalacja partycje i tworzenie kopii

Kopia bezpieczeństwa to podstawa spokojnego snu informatyka. Pierwszym etapem instalacji v-smart jest instalacja debiana. W celu wykonania obrazu systemu dobrze jest w trakcie instalacji podzielić nasz dysk na partycje. Należy zwrócić uwagę :

 

  • najpierw tworzymy partycję główną od początku , flaga boot, punkt podłączenia / , więcej niż 20 GB
  • partycja swap od końca dysku, rozmiar 1 GB
  • partycja backup w środku dysku, reszta , preferuję typ fat32

 

Na obrazach poniżej przedstawiłem istotne elementy podziału na partycje.

debian_inst1_re...
debian_inst2_wy...
debian_inst3_dy...
debian_inst4_wy...
debian_inst5_pa...
debian_inst6_pa...
debian_inst7_pa...

 

Do tworzenia kopii użyjemy system rescue. Za pomocą komend startx lub wizard uruchamiamy środowisko graficzne ( bardziej zaawansowani użytkownicy mogą wykonać kopie w środowisku tekstowym ). Za pomocą narzędzia gparted możemy zobaczyć w sposób graficzny podział dysku.

 

 

Często jest tak, że mamy już gotową instalację linuxa i nie mamy partycji na wykonanie kopii zapasowej. Za pomocą gparted możemy pozmieniać rozmiary partycji i wstawić partycje backup

 

gparted2_zmiana...

 

Gdy już nasz dysk jest odpowiednio przygotowany uruchamiamy nowy terminal , podłączamy partycję i za pomocą partimage wykonujemy obraz systemu.

 

partimage_tworz...

 

Trzeba jednak pamiętać , że jest to kopia utworzona na dysku lokalnym , który oczywiście może się uszkodzić. Do komputera podłączamy ( jeśli nie był podłączony wcześniej ) zewnętrzny dysk USB. Znów uruchamiamy partimage. Aby partimage zobaczył dołączony dysk USB musimy odświeżyć urządzenia ( refresh devices ). W przypadku USB 1.1 operacja ( i potem kopiowanie ) może być trochę czasochłonne. Na dysku USB powinniśmy mieć partycję fat32 na nasze kopie. Znajdujemy jej nazwę w systemie linux

 

gparted3_partyc...

 

Do wykonania kopii na zewnętrznym dysku musimy mieć podłączoną partcyję backup z dysku w komputerze oraz partcyję docelową za pomocą komendy mount. W terminalu uruchamiamy Midnight Commander ( mc ) i kopiujemy nasz obraz.

 

mc_kopiowanie_p...

 


Kopia bezpieczeństwa wykonana według powyższego opisu jest związana z określonym komputerem i konfiguracją. Aby odtworzyć tą konfigurację na innym komputerze lub innej konfiguracji sieciowej należy zwrócić uwagę na pliki :

 

plik

zawiera kiedy zmieniać

/etc/network/interfaces

podstawowe zewnętrzne łącze, łącze wewnętrzne przy zmianie konfiguracji sieci (adresy IP)

/etc/rc.local

pozostałe łącza przy zmianie konfiguracji sieci (adresy IP)
/etc/hostname nazwa komputera przy zmianie całej instalacji
/etc/hosts dane domeny przy zmianie całej instalacji

/etc/udev/rules.d/70-persistent-net.rules

dane kart sieciowych ( mac ) przy zmianie kart sieciowych

 


 

Automatyczny backup bazy i istotnych katalogów można wykonywać sposobem opisanym na forum v-smart. Poniżej zmodyfikowany opis tej procedury.

Łączymy się z naszym serwerem przez putty i wprowadzamy :

wget http://files.v-smart.pl/features/backupsys.tar.gz
tar -xf backupsys.tar.gz --directory=/home

 

Modyfikujemy tabelę zadań crona

nano /etc/cron.d/vsmart

 i dopisujemy

23 5 * * *       root    /home/backupsys/scripts/backup.sh

!!! Uwaga przed i po słowie root musi być tabulator !!!

 

W pliku /home/backupsys/scripts/db.conf ustalamy parametry połączenia z bazą danych.

LMS przechowuje swoje kopie bezpieczeństwa w /var/www/backups .

Standardowo LMS nieprawidłowo zapisuje kopie zewnętrzne.Aby rozwiązać ten problem poprawiamy plik /var/www/modules/dbview.php

Zamieniamy

header('Content-Length: '.$filename);

na :

header('Content-Length: '.filesize($filename));

Zgodnie z obowiązującymi przepisami providerzy internetowi mają obowiązek zapisywać w logach ruch ip. Funkcję tę możemy włączyć w v-smart. Ruch sieciowy będzie zapisywany do plików syslog. Pliki syslog na serwerze v-smart są przechowywane w /var/log i mają nazwy

  • syslog
  • syslog1
  • syslog2.gz
  • syslog3.gz
  • syslog4.gz
  • syslog5.gz
  • syslog6.gz
  • syslog7.gz

Jak widać logi 2-7 są kompresowane, dlatego skrypt ściągający logi może np. ściągać codziennie syslog2.gz

W pliku /serwer/skrypty/firewall.sh po limitach połączeń dodajemy zaznaczoną linię

# limit polaczen na portach powyzej 1024
$IPTABLES -A FORWARD -s $INTNET1 -p tcp --dport 1024: -m connlimit --connlimit-above $CONNLIMIT --connlimit-mask 32 -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -s $VPNNET1 -p tcp --dport 1024: -m connlimit --connlimit-above $CONNLIMIT --connlimit-mask 32 -j REJECT --reject-with tcp-reset

$IPTABLES -A FORWARD -o $EXTDEV -s $INTNET1 -p tcp -m state --state NEW -j LOG --log-level info --log-prefix "SYN-INTNET1 "

Ale plik syslog jest po 7 dniach usuwany. Dlatego należy ten ruch zapisywać na naszym lokalnym komputerze. 


W celu przygotowania tej kopii niezbędne jest wykonanie opisanej w poprzedniej części konfiguracji kopii.

Na początek tworzymy katalog : /home/backupsys/arch_lastdbs . W katalogu tym będzie zapisywana najnowsza kopia bazy danych. Kopia ta będzie automatycznie pobierana przez komputer zewnętrzny. W celu ograniczenia rozmiaru do bazy nie będą dołączane kopie statystyk.

Modyfikujemy plik /home/backupsys/scripts/config.conf ( dodajemy konfigurację APATH_lastdbs , zmienną APATH_lastdbs ustawiamy na utworzony krok wcześniej katalog )

 

# basic config
USER=root
GROUP=root
DEBUG=0
BTIME=14
APATH=/home/backupsys/arch
DIRS=/home/backupsys/scripts/dirs.conf
DBS=/home/backupsys/scripts/dbs.conf
APATH_lastdbs=/home/backupsys/arch_lastdbs

Modyfikujemy skrypt  /home/backupsys/scripts/backup.sh , ustawiamy aby katalog ostatniej bazy był czyszczony a następnie aby do tego katalogu zapisywała się ostatnia kopia, ustawiamy tworzenie kopii tak , aby pomijało statystyki.

#!/bin/bash
## by v-smart.pl of koz xD
. /home/backupsys/scripts/config.conf
# check what to remove
j=1;
for i in `ls -t $APATH`; do
    if [ ${j} -ge ${BTIME} ]; then
        if [ ${DEBUG} = '1' ]; then
            echo "removing directory ${APATH}/${i}";
        fi
        rm -frd ${APATH}/${i};
    fi
    j=$(($j + 1));
done
rm ${APATH_lastdbs}/*
# let's back it up!
DATE=`date +'%F'`;
DATELONG=`date +'%F.%H.%M'`
    if [ ${DEBUG} = '1' ]; then
        echo "making directory ${APATH}/${DATE}/dir";
        echo "making directory ${APATH}/${DATE}/db";
    fi
    mkdir -p ${APATH}/${DATE}/dir;
    mkdir -p ${APATH}/${DATE}/db;
    # directory backup
    grep "^[^#]" ${DIRS} | while read DIR; do
    FILE=dir`echo $DIR | tr '/' '-'`_${DATELONG}.tar.gz
    tar --directory=${DIR}/.. -pzcf ${APATH}/${DATE}/dir/${FILE} `basename ${DIR}` 1> /dev/null 2> /dev/null
    done
    # database backup
    grep "^[^#]" ${DBS} | while read DBNAME DBUSER DBPASS; do
    /usr/bin/mysqldump -d -u ${DBUSER} --password=${DBPASS} --add-drop-table --add-locks ${DBNAME} > ${APATH}/${DATE}/db/${DBNAME}_${DATELONG}.sql
    /usr/bin/mysqldump -u ${DBUSER} --password=${DBPASS} --add-drop-table --add-locks ${DBNAME} --ignore-table=lms.stats >> ${APATH}/${DATE}/db/${DBNAME}_${DATELONG}.sql
        # nazwa rozumiana przez lms : ${DBNAME}-"$(date +%s)"-2011032500.sql , jednak przy probie odtworzenia przez lms nie dziala, nalezy odtwarzac np. przez phpmyadmin lub bezposrednio z poziomu shella
    gzip ${APATH}/${DATE}/db/${DBNAME}_${DATELONG}.sql 1> /dev/null 2> /dev/null
    cp ${APATH}/${DATE}/db/*.gz $APATH_lastdbs
    done
    
    chown -R ${USER}.${GROUP} ${APATH}

 

W systemie windows tworzymy skrypt backup.bat , który będzie się łączył przez psftp ( jeśli nie mamy psftp można je pobrać ze strony putty , zalecam instalację całego pakietu putty ) z serwerem vsmart i pobierał najnowszą wersję bazy. Załóżmy , że nasz serwer znajduje się pod adresem 192.168.20.1 Skrypt powinien wyglądać następująco :

F:
del /Q "F:\Backup\my_network\LMS_ARWAL\*"
"C:\Program Files (x86)\PuTTY\psftp.exe" 192.168.20.1 -l root -pw mypassword -b D:\FTP\LMS_backup.txt
move /Y "F:\Backup\my_network\syslog.2.gz" "F:\Backup\my_network\syslog\syslog_%date%_odejmij1.gz"

Na początku tego skryptu kasujemy zawartość katalogu my_network. Nie kasujemy jednak podkatalogów. W rzeczywistości jest kasowana ostatnia baza lms ściągnięta z serwerem. Następnie uruchamiany jest  skrypt który wywołuje psftp z komendami zawartymi w  D:\FTP\LMS_backup.txt. Skrypt ściąga aktualną kopię bazy oraz ostatni plik syslog2.gz ( historia ruchu sieciowego ). Historia ruchu sieciowego ma zmienianą nazwę i jest przenoszona do podkatalogu syslog

Plik komend psftp wygląda następująco :

 

cd /home/backupsys/arch_lastdbs
lcd F:\Backup\my_network\my_LMS
mget *.gz
cd /var/log
mget syslog.2.gz
bye

 

Skrypt pobiera z serwera kopię .gz oraz plik syslog2.gz i zapisuje je w katalogu kopii zapasowej. Kopię zapasową można tak rozbudować aby dotyczyła wszystkich dostępnych  serwerów VSMART i mikrotik ( więcej informacji o kopii bezpieczeństwa dla systemu mikrotik ).

 

 

 

 

Debian router i LMS uwagi

Instalacja Debiana i LMS od zera

Instalujemy Debiana zaznaczając SSH  i standard system utilities . Warto podzielić dysk na partycje. Jeśli po standardowej instalacji komputer się zawiesza lub wyskakuje błąd :

Driver 'pcspkr' is already registered, aborting...

to można spróbować wyłączyć w BIOSie kartę muzyczną.

 

Konfigurujemy karty sieciowe.

nano /etc/network/interfaces

 

Kartę podstawową według przykładu

 

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface auto lo iface lo inet loopback

# The primary network interface

#allow-hotplug eth0

#iface eth0 inet dhcp auto eth0

iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1

 

Dodatkowe karty

 

auto eth1
iface eth1 inet dhcp

 

Instalujemy router i LMSa według poradnika :

http://www.v-smart.pl/routery-linuxowe/htb-linux-router-dhcp-podzial-pasma-lms-faktury/

Wygodnie jest zainstalować statystyki, polecam zwłaszcza LSTAT, która pokazuje wykorzystanie łącz  oraz serwera ( sposób intalacji opisano tutaj ) . Ciekawym programem jest również  NTOP ( opis instalacji ), Pktóry monitoruje ruch użytkowników według protokołów.

Jeśli chcemy wyłączyć autoryzację AP pracujących w trybie AP client należy zmodyfikować /etc/skrypty/firewall.sh i zakomentować linię :

 

# $IPTABLES -A FORWARD -j DROP

 

Rozwiązanie błędu z kopią zapasową LMS :

plik : /var/www/modules/dbview.php

zmieńcie:
header('Content-Length: '.$filename);


na :
header('Content-Length: '.filesize($filename));

 

 

Rozwiązanie problemu do urządzeń ( podsieć devices ) z podsieci LAN

plik /serwer/skrypty/firewall.sh dopiszcie przed #drop ...


$IPTABLES -t nat -A POSTROUTING -d 192.168.101.0/24 -j SNAT --to-source 192.168.101.254

 

gdzie sieć urządzeń to192.168.101.0/24 a serwer to 192.168.101.254

 

Zmiana kart sieciowych

 

Konfiguracja kart sieciowych zapisana jest w

/etc/udev/rules.d/70-persistent-net.rules

 

Po skasowaniu tego pliku i zmianie kart sieciowcyh zostanie on odbudowany z nowymi. Oczywiście często trzeba dostosować oznaczenia kart do adresów mac ( to już doświadczalnie za pomocą ping )

 

Zmiana hasła lms

 

Jeśli chcemy zmienić hasło dostępu do bazy lms musimy dokonać zmiany w pliku /etc/lms/lms.ini oraz w bazie danych mysql. Aby dokonać zmian w bazie logujemy się przez putty do bazy mysql i wykonujemy komendę update zmieniając hasło :

 

mysql -uroot -p

 

mysql> use mysql; 

mysql> update user set password=PASSWORD("nowe hasło") where User='lms';

 

 

Hasło w lms musi być zgodne z hasłem w mysql !!!

 

 Kopia bezpieczeństwa opisana w osobnym artykule

 

Jeśli przy starcie systemu wyskakują błędy RETVAL to znaczy , że w bazie LMS znajdują się komputery lub urządzenia bez adresu MAC.

Początek strony