Aktualizace AVG přes linuxový server

16. 11. 2001
Doba čtení: 4 minuty

Sdílet

Pokud máte počítačovou síť postavenou na klientech Windows a server jim dělá Linux se Sambou, jste na tom stejně jako já. Na stanicích jistě provozujete různé aplikace, ale určitě i nějaký antivirový software. Ten se musí pravidelně aktualizovat. V tomto článku si ukážeme, jak nám Linux může zajistit automatickou aktualizaci AVG.

Po instalaci AVG jsme na našem pracovišti řešili problém s jeho automatickou aktualizací. Protože virové nebezpečí nelze v současné době podceňovat, byly požadavky na aktualizace poměrně vysoké. Aktualizace každé jedné stanice přímo z Internetu jsme zavrhli hned v počátku, neboť by to přinášelo velké zatížení naší linky a v neposlední řadě i serveru Grisoftu.

Po prostudování dokumentace k AVG bylo řešení jasné. Sama firma nabízí možnost síťové aktualizace programu AVG. Stačí do komunikačního adresáře AVG dodat aktualizační datový soubor a k němu vygenerovat z existujících datových souborů AV6INFO.CTF pomocí prográmku genctf.
V našem případě bylo vše trochu komplikovanější. Sdílený komunikační adresář jsme se totiž rozhodli umístit na server s operačním systémem Linux. K tomuto rozhodnutí nás vedly zkušenosti se stabilitou serverů na platformě Windows a v neposlední řadě stále rostoucí počet virů, které úspěšně servery s Windows napadají. Jeden z našich požadavků na aktualizace AVG byl i takový, že aktualizace musí být co možná nejspolehlivější. Po objevení viru I-Worm/Nimda bylo rozhodnuto.

Postup, jak na Linuxu s použitím Samby vytvořit sdílený adresář pro síť Windows, je dnes již poměrně běžně známý a popisuji ho např. zde. Nebudu se k němu tedy nyní již vracet. Jen podotýkám, že práva na komunikační adresář je nutné nastavit jak v samotném filesystému, tak v Sambě, přesně podle příručky k AVG.
Dále potřebujeme program genctf pro Linux, který je možné si stáhnout zde. Program wget pro vlastní stahování datových souborů je svobodný software a jeho zdrojové kódy jsou na Internetu. Většina distribucí Linuxu ho obsahuje v základní instalaci.

Až potud bylo tedy vše poměrně jednoduché. Pro zprovoznění všeho dohromady dodává firma Grisoft vlastní skript pro Windows avg6cz.bat, který je přirozeně nutné pro použití v Linuxu upravit. S tím jsem si již pohrál, a tak to vy dělat nemusíte. Zde je upravený skript, lze použít s menšími úpravami tak, jak je.

# Pokud pouzivate proxy server, odkomentujte a upravte nasledujici radek
# V pripade potizi s proxy serverem nahlednete do dokumentace k programu
# WGET nebo rovnou pridejte soubor .wgetrc obsahujici nastaveni proxy
# do home adresare uzivatele, pod kterym budete update provadet
# http_proxy=

# Pro jmeno a heslo k proxy souboru pridejte
# k volani WGETu napsledujici parametry:
# --proxy-user=user
# --proxy-passwd=password

# Nastavte jazykovou verzi AVG na jednu z hodnot us, uk, ge, cz nebo sk
avglng=cz

# Nasledujici hodnota muze byt 5 (AVG 5.0), 6 (AVG 6.0)
# nebo 'server' pro AVG Server Edici (6.0)
avgver=6

# Nastaveni preferovaneho serveru pro stahovani aktualizacnich souboru
# Hodnota muze byt 'cz' nebo 'com' (pro www.grisoft.cz nebo
# www.grisoft.com)
avgsite=cz

# Nastaveni ciloveho adresare (kam se maji ulozit .BIN a .CTF soubory)
avgupdir=/pub/install/AVG

# Nastaveni pracovniho adresare (kde se bude spoustet tento skript)
avghome=/home/hufhendr/avg

# Toto URL zobrazi formular, ve kterem je mozne zvolit parametry rucne
# !!! NEMODIFIKUJTE TUTO HODNOTU !!!
avgurl=http://www.grisoft.cz/php/update.php3

# Spusteni utility WGET s danymi parametry a nasledne GENCTF
# ---------------------------------------
# !!! NEMODIFIKUJTE NASLEDUJICI RADKY !!!
# ---------------------------------------

cd $avghome
wget -O url$avgver$avglng -a wget.log \
    "$avgurl?avg=$avgver&lng=$avglng&site=$avgsite"

if [ "$avgupdir"T != T ]
    then

        # GENCTF 6.1.0 musi byt ve stejnem adresari jako d6*.bin soubor

        wget -N -i url$avgver$avglng -a wget.log
        rm avg6info.ctf
        $avghome/genctf *bin
        rm $avgupdir/*bin $avgupdir/avg6info.ctf
        chmod 744 $avghome/*.bin $avghome/avg6info.ctf
        cp $avghome/*.bin $avghome/avg6info.ctf $avgupdir
        exit

    fi
        wget -N -i url$avgver$avglng -a wget.log
        rm avg6info.ctf
        $avghome/genctf *bin
        exit

Nyní tedy máme funkční programy genctf, wget i skript. Po spuštění skriptu se provede spojení se serverem Grisoft a kontrola, zda existuje nová aktualizace. Pokud ano, stáhne se a vygeneruje se soubor AV6INFO.CTF.
Zbývá poslední krok, a tím je zajištění automatického spouštění skriptu. To nám spolehlivě zajistí unixový Cron. Pod uživatelem, který aktualizace bude zajišťovat, přidáme do crontabu řádku:

00 7,11,15 * * 1-5 cd /home/hufhendr/avg; ./avg6cz.sh

A je hotovo. Aktualizace je tímto nastavena na každý pracovní den v docela rozumných intervalech. Nyní si můžeme být jisti, že nejpozději do 4 hodin 15min od objevení nové aktualizace budou aktualizovány všechny stanice v síti. Kontrolu nám zajistí AVGadmin.

bitcoin_skoleni

průběh aktualizace, obrázek

Samozřejmě si můžete četnost spouštění aktualizačního skriptu upravit podle vlastních požadavků, stejně jako lze ovlivnit chování stanic při zjištění nového aktualizačního souboru v komunikačním adresáři. Toto nastavení už záleží na každém správci sítě.
Možná se to může zdát na první pohled trochu složitější, ale věřte mi, že za ten pocit bezpečí to opravdu stojí.

Autor článku