Backuppc: Sistema para backups en red

Imagen de RazaMetaL

Tema: 

Backuppc es un versátil y efectivo sistema de backups por red. Puede realizar backups incrementales y totales usando ssh, rsync ó samba. Cuenta con una interfaz web para administrar las opciones de configuración y para que los usuarios puedan ingresar y restaurar sus archivos.

Backuppc está basada en disco y no en cinta. Esta particularidad permite características que no se encuentra en otras soluciones de backup:
* Backup inteligente, minimiza el almacenamiento almacenamiento en disco de archivos comunes ó idénticos de varias copias de seguridad de la misma PC se almacenan sólo una vez resultando en un ahorro sustancial de almacenamiento y escrituras en disco. esto se conoce también como "datos de deduplicación".
* Compresión opcional, proporciona reducciones adicionales de almacenamiento. El impacto de la compresión en el CPU es bajo, ya que sólo los archivos nuevos se necesitan comprimir.
* Una poderosa interfaz de usuario http / cgi permite a los administradores para ver archivos de registro, configuración, estado actual y permite a los usuarios iniciar, cancelar las copias de seguridad, navegar y recuperar archivos desde copias de seguridad rápidamente.
* No se requiere de un software de cliente. En WinXX se usa el protocolo SMB, aunque es recomendable usar rsync. En
Linux o clientes Unix se puede utilizar rsync ó tar (a través de ssh / rsh / nfs).
* Opciones de restauración flexibles. Los archivos pueden ser descargadas individualmente desde cualquier copia de seguridad directamente desde la interfaz CGI como archivos Zip o Tar. Los directorios también se puede descargar desde la interfaz CGI.
* Backuppc soporta entornos móviles, donde las computadoras portátiles estan conectadas intermitente conectado a la red y tienen direcciones IP dinámicas (DHCP).
* Parámetros flexibles de configuración permiten varias copias de seguridad que deben realizarse en paralelo.
* Y más por descubrir en el manual ...

Instalamos Backuppc:

aptitude install backuppc rsync openssh-server ssh par

Cambiamos la contraseña por defecto con htpassd:

htpasswd /etc/backuppc/htpasswd admin micontraseña

Existen dos maneras de configurar los parámetros de configuración, una es via consola editando los ficheros contenidos en /etc/backuppc ó utilizando una interfaz via web que puede ser alcanzada en [url]http://ip.del.servidor/backuppc[/url] donde ingresamos con el usuario y contraseña creados en el párrafo anterio.

La administración de usuarios se realiza con httpassw, así como modificamos la contraseña del usuario admin se deben crear los usuarios que tendrán acceso a la interfaz web para revisar los trabajos de backup y realizar tareas de recuperación. Este proceso puede ser algo problematico cuando delegas la administración ó no tienes acceso ssh al servidor de backups desde Internet. Para nuestra buena fortuna, podemos aprovechar la flexibilidad de la interfaz de administración de Backuppc la cual permite agregar nuevos enlaces dentro de la misma interfaz, así es posible instalar algún script que nos permita administrar los usuarios via web y dentro de la misma interfaz de Backuppc. Luego de haber probado varios scripts para este fin, me he decantado por [url]http://www.net-track.ch/opensource/authman[/url] para realizar la tarea de administrar los usuarios que tendrán acceso via web, nos permitirá administrar de manera sencilla los archivos htaccess y htpasswd para proteger el acceso a la interfaz de Backuppc solo a usuarios permitidos.

Para instalar AuthMan procedemos de la siguiente manera:
Instalamos dependencias:

aptitude install libapache2-mod-php5

Descargamos y descomprimimos AuthMan:

cd /usr/src
wget http://www.net-track.ch/php/d.php?f=/opensource/authman/authman-0.1.tar.gz -O authman-0.1.tar.gz
tar zvxf authman-0.1.tar.gz
mv /usr/src/authman-0.1/authman /usr/share/backuppc/cgi-bin/
chown -R backuppc:www-data /usr/share/backuppc/cgi-bin
touch /etc/backuppc/htgroup
chown backuppc:www-data /etc/backuppc/htpasswd
chown backuppc:www-data /etc/backuppc/htgroup

Especificamos la ubicación del archivo htpasswd y htgroup de Backuppc:

sed -i 's/\$userfile \= \"\"/\$userfile \= \"\/etc\/backuppc\/htpasswd\"/g' /usr/share/backuppc/cgi-bin/authman/php/AuthManager.inc
sed -i 's/\$groupfile \= \"\"/\$groupfile \= \"\/etc\/backuppc\/htgroup\"/g' /usr/share/backuppc/cgi-bin/authman/php/AuthManager.inc

Modificamos la plantilla de AuthMan para agregar un link que nos redirija a la interfaz de administración de Backuppc:

perl -p -i -e 's/gmbh\<\/a\>/gmbh \| \Regresar a Backuppc\<\/a\>/g' /usr/share/backuppc/cgi-bin/authman/templates/main.ihtml

Ahora podemos ingresar a la interfaz desde donde administraremos a los usuarios:
[url]http://ip.del.servidor/backuppc/authman/index.php[/url]

[b]Configuracion del servidor[/b]
Una vez instalado backuppc y authman, es momento de configurar la aplicación y ponerla a trabajar.

El archivo de configuración se encuentra en /etc/backuppc/config.pl este contiene los parámentros que controlarán el tiempo de backups, antes de cada parámetro existe una leyenda que explica lo que este hace. El contenido de mi /etc/backuppc/config.pl (adaptado para mis necesidades particulares) es el siguiente:


$ENV{'PATH'} = '/bin:/usr/bin';
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
$Conf{ServerHost} = 'backup';
chomp($Conf{ServerHost});

$Conf{ServerPort} = '-1';

$Conf{ServerMesgSecret} = '';

$Conf{MyPath} = '/bin';

$Conf{UmaskMode} = '23';

$Conf{WakeupSchedule} = [
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14',
'15',
'16',
'17',
'18',
'19',
'20',
'21',
'22',
'23'
];

$Conf{MaxBackups} = '4';

$Conf{MaxUserBackups} = '4';

$Conf{MaxPendingCmds} = '10';
$Conf{MaxBackupPCNightlyJobs} = '2';

$Conf{BackupPCNightlyPeriod} = '1';

$Conf{MaxOldLogFiles} = '14';

$Conf{DfPath} = '/bin/df';

$Conf{DfCmd} = '$dfPath $topDir';

$Conf{SplitPath} = '/usr/bin/split';
$Conf{ParPath} = '/usr/bin/par';
$Conf{CatPath} = '/bin/cat';
$Conf{GzipPath} = '/bin/gzip';
$Conf{Bzip2Path} = '/bin/bzip2';

$Conf{DfMaxUsagePct} = '95';

$Conf{TrashCleanSleepSec} = '300';

$Conf{DHCPAddressRanges} = [];

$Conf{BackupPCUser} = 'backuppc';
$Conf{TopDir} = '/var/lib/backuppc';
$Conf{ConfDir} = '/etc/backuppc';
$Conf{LogDir} = '';
$Conf{InstallDir} = '/usr/share/backuppc';
$Conf{CgiDir} = '/usr/share/backuppc/cgi-bin';

$Conf{BackupPCUserVerify} = '1';

$Conf{HardLinkMax} = '31999';

$Conf{PerlModuleLoad} = undef;

$Conf{ServerInitdPath} = undef;
$Conf{ServerInitdStartCmd} = '';

$Conf{FullPeriod} = '29.97';

$Conf{IncrPeriod} = '6.97';

$Conf{FullKeepCnt} = [
'1'
];

$Conf{FullKeepCntMin} = '1';
$Conf{FullAgeMax} = '360';

$Conf{IncrKeepCnt} = '6';

$Conf{IncrKeepCntMin} = '1';
$Conf{IncrAgeMax} = '30';

$Conf{IncrLevels} = [
'1'
];

$Conf{BackupsDisable} = '0';

$Conf{PartialAgeMax} = '3';

$Conf{IncrFill} = '0';

$Conf{RestoreInfoKeepCnt} = '10';

$Conf{ArchiveInfoKeepCnt} = '10';
$Conf{BackupFilesOnly} = {
'backup' => [
'*.doc',
'*.xls',
'*.pdf',
'*.docx',
'*.ods',
'*.odt',
'*.vsd',
'*.dia',
'*.xlsx',
'*.odp',
'*.pps',
'*.ppt',
'*.ppsx',
'*.pptx'
]
};

$Conf{BackupFilesExclude} = {
'backup' => [
'/Users/All Users',
'/Users/Users/Default User',
'/Users/Users/All Users/Application Data',
'/Users/Users/All Users/Desktop',
'/Users/All Users/Documents',
'/Users/All Users/Favorites',
'/Users/All Users/Start Menu',
'/Users/All Users/Templates',
'/Users/Public/Documents/My Music',
'/Users/Public/Documents/My Pictures',
'/Users/Public/Documents/My Videos',
'/Users/*/Application Data',
'/Users/*/Cookies',
'/Users/*/Local Settings',
'/Users/*/My Documents',
'/Users/*/NetHood',
'/Users/*/PrintHood',
'/Users/*/Recent',
'/Users/*/SendTo',
'/Users/*/Start Menu',
'/Users/*/Templates',
'/Users/*/AppData/Local/Application Data',
'/Users/*/AppData/Local/History',
'/Users/*/AppData/Local/Temporary Internet Files',
'/Users/*/Documents/My Music',
'/Users/*/Documents/My Pictures',
'/Users/*/Documents/My Videos',
'/Users/*/AppData/Local/Microsoft/Windows/Temporary Internet Files',
'/Users/*/AppData/Local/Temp',
'/Users/*/NTUSER.DAT',
'/Users/*/ntuser.dat.LOG1',
'/Users/*/ntuser.dat.LOG2',
'/Users/*/AppData/Local/Microsoft/Windows/UsrClass.dat',
'/Users/*/AppData/Local/Microsoft/Windows/UsrClass.dat.LOG1',
'/Users/*/AppData/Local/Microsoft/Windows/UsrClass.dat.LOG2',
'/Users/*/AppData/Local/Microsoft/Windows Defender/FileTracker',
'/Users/*/AppData/Local/Mozilla/Firefox/Profiles/*/Cache',
'/Users/*/AppData/Roaming/Microsoft/Windows/Recent',
'*.lock',
'/Program Files',
'/Windows',
'/$Recycle.Bin',
'/MSOCache',
'/System Volume Information',
'/autoexec.bat',
'/bootmgr',
'/BOOTSECT.BAK',
'/config.sys',
'/hiberfil.sys',
'/pagefile.sys'
]
};

$Conf{BlackoutBadPingLimit} = '3';
$Conf{BlackoutGoodCnt} = '7';

$Conf{BlackoutPeriods} = [
{
'hourEnd' => '15.5',
'weekDays' => [
'1',
'2',
'3',
'4',
'5'
],
'hourBegin' => '9'
}
];
$Conf{BackupZeroFilesIsFatal} = '0';

$Conf{XferMethod} = 'rsyncd';

$Conf{XferLogLevel} = '2';

$Conf{ClientCharset} = 'ISO-8859-1';

$Conf{ClientCharsetLegacy} = 'iso-8859-1';

$Conf{SmbShareName} = [
'C$'
];

$Conf{SmbShareUserName} = '';

$Conf{SmbSharePasswd} = '';

$Conf{SmbClientPath} = '/usr/bin/smbclient';

$Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\
full -Tc$X_option - $fileList';

$Conf{SmbClientIncrCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode\\
full -TcN$X_option $timeStampFile - $fileList';

$Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName $I_option -U $userName -E -d 1 -c tarmode
\\ full -Tx -';

$Conf{TarShareName} = [
'/'
];

$Conf{TarClientCmd} = '$sshPath -q -x -n -l root $host env LC_ALL=C $tarPath -c -v -f - -C $shareName+ --tot
als';

$Conf{TarFullArgs} = '$fileList+';

$Conf{TarIncrArgs} = '--newer=$incrDate+ $fileList+';

$Conf{TarClientRestoreCmd} = '$sshPath -q -x -l root $host env LC_ALL=C $tarPath -x -p --numeric-owner --sam
e-owner -v -f - -C $shareName+';

$Conf{TarClientPath} = '/bin/tar';

$Conf{RsyncClientPath} = '/usr/bin/rsync';
$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';

$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';

$Conf{RsyncShareName} = [
'backup'
];

$Conf{RsyncdClientPort} = '873';

$Conf{RsyncdUserName} = 'backupuser';

$Conf{RsyncdPasswd} = 'backuppassword';

$Conf{RsyncdAuthRequired} = '1';

$Conf{RsyncCsumCacheVerifyProb} = '0.01';

$Conf{RsyncArgs} = [
'--numeric-ids',
'--perms',
'--owner',
'--group',
'-D',
'--links',
'--hard-links',
'--times',
'--block-size=2048',
'--recursive',
'--checksum-seed=32761'
];

$Conf{RsyncRestoreArgs} = [
'--numeric-ids',
'--perms',
'--owner',
'--group',
'-D',
'--links',
'--hard-links',
'--times',
'--block-size=2048',
'--relative',
'--ignore-times',
'--recursive',
'--checksum-seed=32761'
];

$Conf{BackupPCdShareName} = '/';

$Conf{BackupPCdPath} = '';

$Conf{BackupPCdCmd} = '$bpcdPath $host $shareName $poolDir XXXX $poolCompress $topDir/pc/$client/new';

$Conf{BackupPCdRestoreCmd} = '$bpcdPath TODO';

$Conf{ArchiveDest} = '/tmp';

$Conf{ArchiveComp} = 'gzip';

$Conf{ArchivePar} = '0';

$Conf{ArchiveSplit} = '0';

$Conf{ArchiveClientCmd} = '$Installdir/bin/BackupPC_archiveHost $tarCreatePath $splitpath $parpath $host $ba
ckupnumber $compression $compext $splitsize $archiveloc $parfile *';
$Conf{SshPath} = '/usr/bin/ssh';

$Conf{NmbLookupPath} = '/usr/bin/nmblookup';

$Conf{NmbLookupCmd} = '$nmbLookupPath -A $host';

$Conf{NmbLookupFindHostCmd} = '$nmbLookupPath $host';

$Conf{FixedIPNetBiosNameCheck} = '0';

$Conf{PingPath} = '/bin/ping';

$Conf{PingCmd} = '$pingPath -c 1 $host';

$Conf{PingMaxMsec} = '20';

$Conf{CompressLevel} = '3';

$Conf{ClientTimeout} = '72000';

$Conf{MaxOldPerPCLogFiles} = '12';

$Conf{DumpPreUserCmd} = undef;
$Conf{DumpPostUserCmd} = undef;
$Conf{DumpPreShareCmd} = undef;
$Conf{DumpPostShareCmd} = undef;
$Conf{RestorePreUserCmd} = undef;
$Conf{RestorePostUserCmd} = undef;
$Conf{ArchivePreUserCmd} = undef;
$Conf{ArchivePostUserCmd} = undef;

$Conf{UserCmdCheckStatus} = '0';

$Conf{ClientNameAlias} = undef;

$Conf{SendmailPath} = '/usr/sbin/sendmail';

$Conf{EMailNotifyMinDays} = '2.5';

$Conf{EMailFromUserName} = 'backup@midominio.ec';

$Conf{EMailAdminUserName} = 'admin@midominio.ec';

$Conf{EMailUserDestDomain} = '@midominio.ec';

$Conf{EMailNoBackupEverSubj} = undef;
$Conf{EMailNoBackupEverMesg} = undef;

$Conf{EMailNotifyOldBackupDays} = '15';

$Conf{EMailNoBackupRecentSubj} = undef;
$Conf{EMailNoBackupRecentMesg} = undef;

$Conf{EMailNotifyOldOutlookDays} = '5';

$Conf{EMailOutlookBackupSubj} = undef;
$Conf{EMailOutlookBackupMesg} = undef;

$Conf{EMailHeaders} = 'MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"';

$Conf{CgiAdminUserGroup} = 'admin';
$Conf{CgiAdminUsers} = 'admin';

$Conf{CgiURL} = 'http://ip.del.servidor/backuppc/index.cgi';

$Conf{Language} = 'es';

$Conf{CgiUserHomePageCheck} = '';
$Conf{CgiUserUrlCreate} = 'mailto:%s';

$Conf{CgiDateFormatMMDD} = '1';

$Conf{CgiNavBarAdminAllHosts} = '1';

$Conf{CgiSearchBoxEnable} = '1';

$Conf{CgiNavBarLinks} = [
{
'link' => '?action=view&type=docs',
'lname' => 'Documentation',
'name' => undef
},
{
'link' => 'http://backuppc.wiki.sourceforge.net',
'lname' => undef,
'name' => 'Wiki'
},
{
'link' => '/backuppc/authman/index.php',
'lname' => undef,
'name' => 'Administracion de Usuarios'
}
];

$Conf{CgiStatusHilightColor} = {
'Reason_backup_failed' => '',
'Reason_backup_done' => '',
'Reason_backup_canceled_by_user' => '',
'Reason_no_ping' => '',
'Disabled_OnlyManualBackups' => '',
'Status_backup_in_progress' => '',
'Disabled_AllBackupsDisabled' => ''
};

$Conf{CgiHeaders} = '';

$Conf{CgiImageDir} = '/usr/share/backuppc/image';

$Conf{CgiExt2ContentType} = {};

$Conf{CgiImageDirURL} = '/backuppc/image';

$Conf{CgiCSSFile} = 'BackupPC_stnd.css';
$Conf{CgiUserConfigEditEnable} = '0';

$Conf{CgiUserConfigEdit} = {
'EMailOutlookBackupSubj' => '1',
'ClientCharset' => '1',
'TarFullArgs' => '1',
'RsyncdPasswd' => '1',
'IncrKeepCnt' => '1',
'PartialAgeMax' => '1',
'FixedIPNetBiosNameCheck' => '1',
'SmbShareUserName' => '1',
'EMailFromUserName' => '1',
'ArchivePreUserCmd' => '0',
'PingCmd' => '0',
'FullAgeMax' => '1',
'PingMaxMsec' => '1',
'CompressLevel' => '1',
'DumpPreShareCmd' => '0',
'BackupFilesOnly' => '1',
'EMailNotifyOldBackupDays' => '1',
'EMailAdminUserName' => '1',
'RsyncCsumCacheVerifyProb' => '1',
'BlackoutPeriods' => '1',
'NmbLookupFindHostCmd' => '0',
'MaxOldPerPCLogFiles' => '1',
'TarClientCmd' => '0',
'EMailNotifyOldOutlookDays' => '1',
'SmbSharePasswd' => '1',
'SmbClientIncrCmd' => '0',
'FullKeepCntMin' => '1',
'RsyncArgs' => '1',
'ArchiveComp' => '1',
'TarIncrArgs' => '1',
'EMailUserDestDomain' => '1',
'TarClientPath' => '0',
'RsyncClientCmd' => '0',
'IncrFill' => '1',
'RestoreInfoKeepCnt' => '1',
'UserCmdCheckStatus' => '0',
'RsyncdClientPort' => '1',
'IncrAgeMax' => '1',
'RsyncdUserName' => '1',
'RsyncRestoreArgs' => '1',
'ClientCharsetLegacy' => '1',
'SmbClientFullCmd' => '0',
'ArchiveInfoKeepCnt' => '1',
'BackupZeroFilesIsFatal' => '1',
'EMailNoBackupRecentMesg' => '1',
'FullKeepCnt' => '1',
'TarShareName' => '1',
'EMailNoBackupEverSubj' => '1',
'TarClientRestoreCmd' => '0',
'EMailNoBackupRecentSubj' => '1',
'ArchivePar' => '1',
'XferLogLevel' => '1',
'ArchiveDest' => '1',
'ClientTimeout' => '1',
'EMailNotifyMinDays' => '1',
'RsyncdAuthRequired' => '1',
'SmbClientRestoreCmd' => '0',
'ClientNameAlias' => '1',
'DumpPostShareCmd' => '0',
'IncrLevels' => '1',
'EMailOutlookBackupMesg' => '1',
'BlackoutBadPingLimit' => '1',
'BackupFilesExclude' => '1',
'FullPeriod' => '1',
'ArchivePostUserCmd' => '0',
'RsyncClientRestoreCmd' => '0',
'IncrPeriod' => '1',
'RsyncShareName' => '1',
'RestorePostUserCmd' => '0',
'BlackoutGoodCnt' => '1',
'ArchiveClientCmd' => '0',
'ArchiveSplit' => '1',
'XferMethod' => '1',
'NmbLookupCmd' => '0',
'BackupsDisable' => '1',
'SmbShareName' => '1',
'RestorePreUserCmd' => '0',
'IncrKeepCntMin' => '1',
'EMailNoBackupEverMesg' => '1',
'EMailHeaders' => '1',
'DumpPreUserCmd' => '0',
'RsyncClientPath' => '0',
'DumpPostUserCmd' => '0'
};

Este archivo tiene la siguiente configuración:

- El método de backup (rsyncd);
- El nombre del backup;
- Archivos a excluir de los trabajos de backup;
- El email que se mostrará cuando backuppc envie alertas por correo electronico;
- El email del administrador de backuppc;
- El dominio de los usuarios que se creen con AuthMan;
- El usuario que tiene perfil de administracion de backuppc (admin);
- El grupo de usuarios con perfil de de administracion de backuppc (admin);
- El lenguaje (es);
- El link a la administración de usuarios con AuthMan (/backuppc/authman/index.php);
- El nombre del link hacia AuthMan;

Estos parámetros se pueden modificar también desde la interfaz de administración de Backuppc en [url]http://ip.del.servidor/backuppc[/url]

Comentarios

Al entrar a backuppc obtengo

Imagen de Tonny

Al entrar a backuppc obtengo este error


Error: Usuario erróneo: mi userid es 33, en lugar de 103(backuppc)

This script needs to run as the user specified in $Conf{BackupPCUser}, which is set to backuppc.

This is an installation problem. If you are using mod_perl then it appears that Apache is not running as user backuppc. If you are not using mod_perl, then most like setuid is not working properly on BackupPC_Admin. Check the permissions on /usr/share/backuppc/cgi-bin/BackupPC_Admin and look at the documentation.

También instale mod_perl pero sigue lo mismo.

Revisa el parámetro

Imagen de RazaMetaL

Revisa el parámetro $Conf{BackupPCUser} en /etc/backuppc/config.pl , debe ser un usuario que tenga permisos para usar el servidor apache.

Quien es el usuario con ID 33 ?


cat /etc/passwd | grep 33

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Esta como usuario backuppc le

Imagen de Tonny

Esta como usuario backuppc le cambie por el www-data pero ahí en cambio sale "imposible conectar"


deb106:~# cat /etc/passwd | grep 33
www-data:x:33:33:www-data:/var/www:/bin/sh
deb106:~# cat /etc/passwd | grep 103
backuppc:x:103:108:BackupPC,,,:/var/lib/backuppc:/bin/sh
deb106:~#

la configuración la copie idéntica a como lo posteaste

Trata con: aptitude reinstall

Imagen de RazaMetaL

Trata con:


aptitude reinstall backuppc

También puedes agregar el usuario backuppc al grupo www-data.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Chevere que lo tengas

Imagen de RazaMetaL

Chevere que lo tengas resuelto. Ahora que leo el post, veo que no he publicado como configurar los clientes con rsync. Voy a documentarlo y lo completo :)

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});