Se passer ( partiellement ) de google sur son android ..

Contacts

J’ai installé ce logiciel pour sauvegarder mes contacts ( inclus les images, etc ) vers mon instance de owncloud au format VCF.
Note: on peut effectivement exporté ses contacts depuis Gmail directement au format VCF, mais on perdra les images .. Et moi j’aime bien avoir la tête des gens dans mes contacts ;)

Ensuite, j’ai importé tout ces contacts via le .VCF uploadé.

Je suis ensuite aller sur Gmail pour supprimer tous mes contacts.

J’ai ensuite synchronisé les contacts de mon téléphone avec google => ils sont tous supprimés du téléphone.

J’ai ensuite dépenser la fantastique somme de 1€90 dans le logiciel CardDav Sync, synchronisé mes contacts depuis mon owncloud vers mon téléphone .. Et .. bonheur ! :)

Agenda

C’est encore plus simple :)
Aller sur Google Agenda, selectionnez Settings, puis Agendas, et la vous pouvez exportez vos agendas au format .ics ( si vous en avez plusieurs, vous aurez un .zip avec les différents calendriers ).

Ensuite, il suffit de déposé ces .ics sur votre owncloud dans votre espace de fichier, de cliquer sur chaque .ics pour les importer dans un agenda .. :)

Enfin, sur le téléphone, ouvrir l’agenda, supprimer le compte google, installé l’appli qui va bien ajouter le compte CalDav.

Conclusion

Pour moins de 4€, un peu de temps, vous êtes à peu près autonomes :)

Pour les fous
Si votre téléphone est rooté, il est maintenant possible de desinstaller les composants de synchros de google ( contacts / agenda ), histoire de ne plus les resynchro par inadvertance ;)

Heberger son mail comme les pros .. ou presque ;)

Pré-requis : un serveur linux, mysql installé, un certificat ssl

Installation des logiciels

root@srv1:~# aptitude install postfix postfix-mysql courier-authdaemon courier-authlib-mysql courier-imap-ssl courier-pop-ssl
The following NEW packages will be installed:
  courier-authdaemon courier-authlib{a} courier-authlib-mysql courier-authlib-userdb{a} courier-base{a} courier-imap{a}
  courier-imap-ssl courier-pop{a} courier-pop-ssl courier-ssl{a} expect{a} libfam0{a} libltdl7{a} postfix postfix-mysql tcl8.5{a}
0 packages upgraded, 16 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,825 kB of archives. After unpacking 12.7 MB will be used.
Do you want to continue? [Y/n/?] y
Get:1 http://debian.mirrors.ovh.net/debian/ squeeze/main libltdl7 amd64 2.2.6b-2 [296 kB]
Get:2 http://debian.mirrors.ovh.net/debian/ squeeze/main tcl8.5 amd64 8.5.8-2 [1,599 kB]
Get:3 http://debian.mirrors.ovh.net/debian/ squeeze/main expect amd64 5.44.1.15-4 [250 kB]
Get:4 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-authlib amd64 0.63.0-3 [83.2 kB]
Get:5 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-authdaemon amd64 0.63.0-3 [8,250 B]
Get:6 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-authlib-mysql amd64 0.63.0-3 [21.5 kB]
Get:7 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-authlib-userdb amd64 0.63.0-3 [36.7 kB]
Get:8 http://debian.mirrors.ovh.net/debian/ squeeze/main libfam0 amd64 2.7.0-17 [28.8 kB]
Get:9 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-base amd64 0.65.0-3 [245 kB]
Get:10 http://debian.mirrors.ovh.net/debian/ squeeze/main postfix amd64 2.7.1-1+squeeze1 [1,402 kB]
Get:11 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-pop amd64 0.65.0-3 [61.3 kB]
Get:12 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-ssl amd64 0.65.0-3 [65.8 kB]
Get:13 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-pop-ssl amd64 0.65.0-3 [30.4 kB]
Get:14 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-imap amd64 4.8.0-3 [622 kB]
Get:15 http://debian.mirrors.ovh.net/debian/ squeeze/main courier-imap-ssl amd64 4.8.0-3 [30.4 kB]
Get:16 http://debian.mirrors.ovh.net/debian/ squeeze/main postfix-mysql amd64 2.7.1-1+squeeze1 [44.4 kB]
Fetched 4,825 kB in 0s (7,997 kB/s)
Preconfiguring packages ...
Selecting previously deselected package libltdl7.
(Reading database ... 24727 files and directories currently installed.)
Unpacking libltdl7 (from .../libltdl7_2.2.6b-2_amd64.deb) ...
Selecting previously deselected package tcl8.5.
Unpacking tcl8.5 (from .../tcl8.5_8.5.8-2_amd64.deb) ...
Selecting previously deselected package expect.
Unpacking expect (from .../expect_5.44.1.15-4_amd64.deb) ...
Selecting previously deselected package courier-authlib.
Unpacking courier-authlib (from .../courier-authlib_0.63.0-3_amd64.deb) ...
Selecting previously deselected package courier-authdaemon.
Unpacking courier-authdaemon (from .../courier-authdaemon_0.63.0-3_amd64.deb) ...
Selecting previously deselected package courier-authlib-mysql.
Unpacking courier-authlib-mysql (from .../courier-authlib-mysql_0.63.0-3_amd64.deb) ...
Selecting previously deselected package courier-authlib-userdb.
Unpacking courier-authlib-userdb (from .../courier-authlib-userdb_0.63.0-3_amd64.deb) ...
Selecting previously deselected package libfam0.
Unpacking libfam0 (from .../libfam0_2.7.0-17_amd64.deb) ...
Selecting previously deselected package courier-base.
Unpacking courier-base (from .../courier-base_0.65.0-3_amd64.deb) ...
Selecting previously deselected package postfix.
Unpacking postfix (from .../postfix_2.7.1-1+squeeze1_amd64.deb) ...
Selecting previously deselected package courier-pop.
Unpacking courier-pop (from .../courier-pop_0.65.0-3_amd64.deb) ...
Selecting previously deselected package courier-ssl.
Unpacking courier-ssl (from .../courier-ssl_0.65.0-3_amd64.deb) ...
Selecting previously deselected package courier-pop-ssl.
Unpacking courier-pop-ssl (from .../courier-pop-ssl_0.65.0-3_amd64.deb) ...
Selecting previously deselected package courier-imap.
Unpacking courier-imap (from .../courier-imap_4.8.0-3_amd64.deb) ...
Selecting previously deselected package courier-imap-ssl.
Unpacking courier-imap-ssl (from .../courier-imap-ssl_4.8.0-3_amd64.deb) ...
Selecting previously deselected package postfix-mysql.
Unpacking postfix-mysql (from .../postfix-mysql_2.7.1-1+squeeze1_amd64.deb) ...
Processing triggers for man-db ...
Setting up libltdl7 (2.2.6b-2) ...
Setting up tcl8.5 (8.5.8-2) ...
update-alternatives: using /usr/bin/tclsh8.5 to provide /usr/bin/tclsh (tclsh) in auto mode.
Setting up expect (5.44.1.15-4) ...
Setting up courier-authlib (0.63.0-3) ...
Setting up courier-authdaemon (0.63.0-3) ...
Starting Courier authentication services: authdaemond.
Setting up courier-authlib-mysql (0.63.0-3) ...
Setting up courier-authlib-userdb (0.63.0-3) ...
Setting up libfam0 (2.7.0-17) ...
Setting up courier-base (0.65.0-3) ...
update-alternatives: using /usr/bin/deliverquota.courier to provide /usr/bin/deliverquota (deliverquota) in auto mode.
update-alternatives: using /usr/share/man/man5/maildir.courier.5.gz to provide /usr/share/man/man5/maildir.5.gz (maildir.5.gz) in auto mode.
update-alternatives: using /usr/bin/maildirmake.courier to provide /usr/bin/maildirmake (maildirmake) in auto mode.
update-alternatives: using /usr/share/man/man7/maildirquota.courier.7.gz to provide /usr/share/man/man7/maildirquota.7.gz (maildirquota.7.gz) in auto mode.
update-alternatives: using /usr/bin/makedat.courier to provide /usr/bin/makedat (makedat) in auto mode.
Setting up postfix (2.7.1-1+squeeze1) ...
Adding group `postfix' (GID 110) ...
Done.
Adding system user `postfix' (UID 106) ...
Adding new user `postfix' (UID 106) with group `postfix' ...
Not creating home directory `/var/spool/postfix'.
Creating /etc/postfix/dynamicmaps.cf
Adding tcp map entry to /etc/postfix/dynamicmaps.cf
Adding group `postdrop' (GID 111) ...
Done.
setting myhostname: srv1.faistonweb.com
setting alias maps
setting alias database
changing /etc/mailname to srv1.faistonweb.com
setting myorigin
setting destinations: srv1.faistonweb.com, localhost.faistonweb.com, , localhost
setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
setting mailbox_size_limit: 0
setting recipient_delimiter: +
setting inet_interfaces: all
WARNING: /etc/aliases exists, but does not have a root alias.
Postfix is now set up with a default configuration.  If you need to make
changes, edit
/etc/postfix/main.cf (and others) as needed.  To view Postfix configuration
values, see postconf(1).
After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
Running newaliases
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Setting up courier-pop (0.65.0-3) ...
Starting Courier POP3 server: pop3d.
Setting up courier-ssl (0.65.0-3) ...
Setting up courier-pop-ssl (0.65.0-3) ...
cp: not writing through dangling symlink `/usr/lib/courier/pop3d.pem'
chmod: cannot operate on dangling symlink `/usr/lib/courier/pop3d.pem'
chown: cannot dereference `/usr/lib/courier/pop3d.pem': No such file or directory
Generating a 1024 bit RSA private key
.............++++++
......++++++
writing new private key to '/usr/lib/courier/pop3d.pem'
-----
1024 semi-random bytes loaded
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
....................................................+.............+..................................+.............................+.........
...............................................+......................+..+............++*++*++*++*++*++*
subject= /C=US/ST=NY/L=New York/O=Courier Mail Server/OU=Automatically-generated POP3 SSL key/CN=localhost/emailAddress=postmaster@example.com
notBefore=Nov 19 17:33:34 2012 GMT
notAfter=Nov 19 17:33:34 2013 GMT
SHA1 Fingerprint=20:7F:4D:76:12:CA:43:47:AB:FB:CD:EA:64:B9:0D:1A:F0:FB:4D:EB
Starting Courier POP3-SSL server: pop3d-ssl.
Setting up courier-imap (4.8.0-3) ...
Starting Courier IMAP server: imapd.
Setting up courier-imap-ssl (4.8.0-3) ...
cp: not writing through dangling symlink `/usr/lib/courier/imapd.pem'
chmod: cannot operate on dangling symlink `/usr/lib/courier/imapd.pem'
chown: cannot dereference `/usr/lib/courier/imapd.pem': No such file or directory
Generating a 1024 bit RSA private key
.........................++++++
.............................................++++++
writing new private key to '/usr/lib/courier/imapd.pem'
-----
1024 semi-random bytes loaded
Generating DH parameters, 512 bit long safe prime, generator 2
This is going to take a long time
.......................++*++*++*++*++*++*
subject= /C=US/ST=NY/L=New York/O=Courier Mail Server/OU=Automatically-generated IMAP SSL key/CN=localhost/emailAddress=postmaster@example.com
notBefore=Nov 19 17:33:36 2012 GMT
notAfter=Nov 19 17:33:36 2013 GMT
SHA1 Fingerprint=65:4C:B9:C6:96:35:26:2E:D4:12:D0:8A:F4:BA:8C:0C:19:60:59:BB
Starting Courier IMAP-SSL server: imapd-ssl.
Setting up postfix-mysql (2.7.1-1+squeeze1) ...
Adding mysql map entry to /etc/postfix/dynamicmaps.cf
root@srv1:~#

Création de la structure de données
Créé une base de donnée, par exemple, postfix, noté le login/pass, ils seront utilisées plus tard. Créé la structure de données dans mysql qui va bien ( ne pas oublier “Use postfix;” au depart pour selectionner la base ).


DROP TABLE IF EXISTS `admin`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `admin` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`username`),
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Admins';
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `alias`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `alias` (
  `address` varchar(255) NOT NULL DEFAULT '',
  `goto` text NOT NULL,
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`address`),
  KEY `address` (`address`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Aliases';
/*!40101 SET character_set_client = @saved_cs_client */;

 DROP TABLE IF EXISTS `alias_domain`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `alias_domain` (
  `alias_domain` varchar(255) NOT NULL DEFAULT '',
  `target_domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`alias_domain`),
  KEY `active` (`active`),
  KEY `target_domain` (`target_domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Domain Aliases';
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `domain`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `domain` (
  `domain` varchar(255) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT '',
  `aliases` int(10) NOT NULL DEFAULT '0',
  `mailboxes` int(10) NOT NULL DEFAULT '0',
  `maxquota` int(10) NOT NULL DEFAULT '0',
  `transport` varchar(255) DEFAULT NULL,
  `backupmx` tinyint(1) NOT NULL DEFAULT '0',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  `quota` int(10) DEFAULT '0',
  PRIMARY KEY (`domain`),
  KEY `domain` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Domains';
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `domain_admins`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `domain_admins` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Domain Admins';
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `imp_sentmail`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `imp_sentmail` (
  `sentmail_id` bigint(20) NOT NULL,
  `sentmail_who` varchar(255) NOT NULL,
  `sentmail_ts` bigint(20) NOT NULL,
  `sentmail_messageid` varchar(255) NOT NULL,
  `sentmail_action` varchar(32) NOT NULL,
  `sentmail_recipient` varchar(255) NOT NULL,
  `sentmail_success` int(11) NOT NULL,
  PRIMARY KEY (`sentmail_id`),
  KEY `sentmail_ts_idx` (`sentmail_ts`),
  KEY `sentmail_who_idx` (`sentmail_who`),
  KEY `sentmail_success_idx` (`sentmail_success`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `mailbox`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `mailbox` (
  `username` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `maildir` varchar(255) NOT NULL DEFAULT '',
  `quota` int(10) NOT NULL DEFAULT '0',
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`username`),
  KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Mailboxes';
/*!40101 SET character_set_client = @saved_cs_client */;

DROP TABLE IF EXISTS `vacation`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `vacation` (
  `email` varchar(255) NOT NULL DEFAULT '',
  `subject` varchar(255) NOT NULL DEFAULT '',
  `body` text NOT NULL,
  `cache` text NOT NULL,
  `domain` varchar(255) NOT NULL DEFAULT '',
  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`email`),
  KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Postfix Admin - Virtual Vacation';
/*!40101 SET character_set_client = @saved_cs_client */;


insert into admin VALUES ( "admin@domain.com", PASSWORD( "MOT_DE_PASSE"), NOW(), NOW(), 1);

Création des fichiers de mapping sql
Créé les fichiers permettant à postfix d'aller chercher dans mysql les mailbox/domains/alias que le serveur doit géré. Remplacer les valeurs pour user, password, dbname par celles qui vont bien :
/etc/postfix/mysql_relay_domains_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'

/etc/postfix/mysql_sasl_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT name FROM mailbox WHERE username='%s' AND password='%s'

/etc/postfix/mysql_virtual_alias_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

/etc/postfix/mysql_virtual_domains_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1'

/etc/postfix/mysql_virtual_mailbox_limit_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s'

/etc/postfix/mysql_virtual_mailbox_maps.cf


user = postfix
password = PASSWORD
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s'

Configuration de postfix
On peut maintenant passer à la configuration de postfix à proprement parler. Dans le fichier suivant, re-utiliser le certificat pour smtpd_tls_cert_file et smtpd_tls_key_file, définir votre nom de machine complet pour myhostname.
/etc/posfix/main.cf


smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certificates/domaine.pem
smtpd_tls_key_file=/etc/ssl/private/domaine.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = MACHINE_HOSTNAME
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
message_size_limit = 131457280
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
default_destination_concurrency_limit=10
# smtps
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable          = yes
smtpd_sasl_security_options     = noanonymous
broken_sasl_auth_clients        = yes
smtpd_sasl_path                 = smtpd
smtpd_sasl_authenticated_header = yes
smtp_sasl_password_maps = proxy:mysql:/etc/postfix/mysql_sasl_maps.cf
smtpd_sender_restrictions       = permit_sasl_authenticated, permit_mynetworks
smtpd_recipient_restrictions    = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unauth_destination,reject_unauth_pipelining,reject_invalid_hostname
# MySQL Configuration
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:111
virtual_mailbox_base = /var/mail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 5001
virtual_transport = maildrop
virtual_uid_maps = static:5001
create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps
  $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains
  $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps
  $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
  $virtual_mailbox_limit_maps
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
virtual_overquota_bounce = yes
virtual_create_maildirsize     = yes
virtual_mailbox_extended       = yes
virtual_mailbox_limit_override = yes
maildrop_destination_recipient_limit = 1

Vous avez maintenant un MTA fonctionnel. Reste à faire sorte de pouvoir reccupéré le courrier depuis un client.

Configuration de courrier-imap
Dans /etc/courrier/authdaemonrc, il vous faut :


authmodulelist="authmysql"
authmodulelistorig="authmysql"

Ensuite editer /etc/courier/authmysqlrc pour définir les champs MYSQL_SERVER, MYSQL_USERNAME, MYSQL_PASSWORD

Pour la gestion des domaines, comptes et alias, 2 solutions : faire les inserts directement en base ou bien installer postfixadmin.

Exemples de créations manuelles

Un exemple rapide de création de domaine directement en base de donnée :


use postfix;
insert into domain VALUES( "mondomaine.com", "Mon super domaine a moi", 0, 0, 0, "maildrop", 0, NOW(), NOW(), 1, NULL);

Création d'une boite mail :


use postfix;
insert into mailbox VALUES( "compte@mondomaine.com", PASSWORD( "MON_PASS_SECRET"), "Mon utilisateur", "mondomaine.com/compte@mondomaine.com", 0, "mondomaine.com", NOW(), NOW(), 1);

Creation d'un alias :


use postfix;
insert into alias VALUES( "monalias@mondomaine.com", "compte@mondomaine.com", "mondomaine.com", NOW(), NOW(), 1);

pppoe freebsd

Ce présent document n’a qu’un but de rappel rapide des manipulations à faire pour monter rapidement une connection pppoe sous FreeBSD, il est fortement conseille de lire les man.

Attention ce document ne couvre la configuration pppoe que pour un modem ethernet.

1ere etape, le kernel :
Verifiez que vous avez bien les options suivantes :

pseudo-device tun # Packet tunnel
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET

2nde etape, la configuration :
A l’aide de votre editeur favori, modifiez /etc/ppp/ppp.conf pour obtenir ceci :

default:
fai_name:
set log Phase Chat IPCP CCP tun command
set redial 15 28800
set reconnect 15 28800
set device PPPoE:ep1:
set mru 1492
set mtu 1492
set speed sync
enable lqr
set lqrperiod 5
set cd 5
set dial
set login
set timeout 0
set authname login
set authkey password
# enable dns
add default HISADDR

Attention, bien noter la presence d’un espace devant chaque ligne ( sauf default: et pppoe: )
Changez ep1 par votre carte reseau ( xl0 par exemple pour la premiere 3Com 3c90x )
Si vous ne disposez pas de votre propre dns et souhaitez utiliser celui de votre FAI, decommentez la ligne # enable dns

3ieme etape, test de la configuration :
Pour lancer la connection, tappez ppp -ddial fai_name
Les logs seront dans /var/log/ppp.log
P.S. : si vous n’utilisez pas ipnat ou natd pour faire le nat et que vous en avez besoin, vous pouvez utiliser le nat de ppp en tappant ppp -ddial -nat fai_name

4ieme et dernière étape, lancement au démarrage :
A l’aide de votre editeur favori, modifiez /etc/rc.conf pour ajoutter ceci :

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="fai_name"

P.S. : pour utiliser le nat de ppp, mettre ppp_nat a YES
P.P.S. : si vous voulez utilisé un outil de nat ou de firewall, l’interface à utiliser est tun0 et non pas la carte reseau où est branchée le modem

Voila, au prochain boot, votre ordinateur prendra automatiquement la ligne

Vinum

Ce présent document n’a qu’un but de rappel rapide des manipulations à faire pour utiliser un service vinum sous FreeBSD, il est fortement conseille de lire les man( pages (4) et (8) ).

Rappels succints préalables :
Vinum est un outil permettant de faire du raid logiciel, ne seront presentés ici que des exemples de configuration de raid 0 ( dit en mirroir ) et 5 ( dit par redondance cyclique ).

Installation/configuration :

1. Exemple d’une installation

drive vinumdrive0 device /dev/ad0s1e # la partition s1e doit etre de type vinum
drive vinumdrive1 device /dev/ad1s1e
volume mirror
plex org concat
sd length 75758m drive vinumdrive0
plex org concat
sd length 75758m drive vinumdrive1


drive vinumdrive0 device /dev/ad0s1e
drive vinumdrive1 device /dev/ad1s1e
drive vinumdrive2 device /dev/ad2s1e
drive vinumdrive3 device /dev/ad3s1e
drive vinumdrive4 device /dev/ad4s1e
volume raid5
plex org raid5
sd length 75758m drive vinumdrive0
sd length 75758m drive vinumdrive1
sd length 75758m drive vinumdrive2
sd length 75758m drive vinumdrive3
sd length 75758m drive vinumdrive4

2. Exemple de la reprise d’une configuration

A l’aide de la commande vinum dumpconfig vous obtenez ceci en prenant l’exemple du raid 0 installé chez moi :

Drive vinumdrive0: Device /dev/ad0s1e
Created on gaia.lan.autre.org at Sat Oct 16 17:44:43 2004
Config last updated Thu Jun 30 23:33:51 2005
Size: 82343245824 bytes (78528 MB)
volume mirror state up
plex name mirror.p0 state up org concat vol mirror
plex name mirror.p1 state up org concat vol mirror
sd name mirror.p0.s0 drive vinumdrive0 len 160826387s driveoffset 265s state up plex mirror.p0 plexoffset 0s
sd name mirror.p1.s0 drive vinumdrive1 len 160071332s driveoffset 265s state up plex mirror.p1 plexoffset 0s

Drive /dev/ad0s1e: 76 GB (82343245824 bytes)
Drive vinumdrive1: Device /dev/ad1s1e
Created on gaia.lan.autre.org at Sat Oct 16 17:44:43 2004
Config last updated Thu Jun 30 23:33:51 2005
Size: 81956657664 bytes (78159 MB)
volume mirror state up
plex name mirror.p0 state up org concat vol mirror
plex name mirror.p1 state up org concat vol mirror
sd name mirror.p0.s0 drive vinumdrive0 len 160826387s driveoffset 265s state up plex mirror.p0 plexoffset 0s
sd name mirror.p1.s0 drive vinumdrive1 len 160071332s driveoffset 265s state up plex mirror.p1 plexoffset 0s

Drive /dev/ad1s1e: 76 GB (81956657664 bytes)

3. Pour automatiser le demarrage

A l’aide de votre editeur favori, modifiez /etc/rc.conf pour ajoutter ceci :
vinum_enable=”YES”
Voila, au prochain boot, votre ordinateur lancera automatiquement vinum

Operation de maintenance :

1. Determiner les dommages:

A l’aide de la commande vinum list vous allez obtenir le resultat suivant :

2 drives:
D vinumdrive2 State: up Device /dev/ad0s1e Avail: 0/78159 MB (1%)
D vinumdrive3 State: up Device /dev/ad1s1e Avail: 0/78159 MB (0%)

1 volumes:
V mirroir State: up Plexes: 2 Size: 76 GB

2 plexes:
P mirroir.p0 C State: up Subdisks: 1 Size: 76 GB
P mirroir.p1 C State: up Subdisks: 1 Size: 76 GB

2 subdisks:
S mirroir.p0.s0 State: up PO: 0 B Size: 76 GB
S mirroir.p1.s0 State: up PO: 0 B Size: 76 GB

Selon l’etat des differents subdisks vous saurez a quoi vous en tenir.

2. Exemple d’un cas ou il n’y a eu aucun dommage materiel

Un des subdisks est en status stale, crashed, down, vous pouvez le redemarrer, il reprendra les données des autres subdisks. Pour se faire, on fait :

# vinum
vinum -> start test.p1.s0
Reviving test.p1.s0 in the background
vinum -> vinum[295]: reviving test.p1.s0
(some time later)
vinum[295]: test.p1.s0 is up

3. Exemple d’un cas ou il y a eu dommage materiel ( obligation de remplacer un disque )

Un des disques n’apparait pas au bios de l’ordi, ou au chargement du systeme, ou a un statut down ou referecenced dans vinum, il va falloir le remplacer. Pour cela, il vous faut un disque au moins aussi gros que l’ancien, preparer la partition h en vinum, et faire les commandes suivantes :


# vinum
vinum -> drive vinumdrive0 device /dev/ad0s1e # cas ou le disque 0 est celui que l'on a remplacer
vinum -> start test.p1.s0
Reviving test.p1.s0 in the background
vinum -> vinum[295]: reviving test.p1.s0
(some time later)
vinum[295]: test.p1.s0 is up

Squid

Ce présent document n’a qu’un but de rappel rapide des manipulations à faire pour configurer rapidement un squid, il est fortement conseille de lire les man.

A l’aide de votre editeur favori, modifiez $PREFIX/etc/squid.conf pour obtenir ceci :


# PARAMETRES RESEAU
# port sur lequel le proxy ecoute
http_port 3128
# desactive le cache pour d'autres proxies
icp_port 0
# CONFIGURATION DU CACHE
# taille en memoire
cache_mem 32 MB
# utilisation minimale du cache en pourcent
cache_swap_low 95
# utilisation maximale du cache en pourcent
cache_swap_high 98
# taille maxi d'un objet sauve sur le disque
maximum_object_size 8192 KB
# taille mini d'un objet sauve sur le disque
minimum_object_size 0 KB
# taille maxi d'un objet en memoire
maximum_object_size_in_memory 128 KB
# nombre maxi de sites ( ips ) dans le cache
ipcache_size 2048
# nombre mini de sites ( ips ) present ds le cache en pourcents
ipcache_low 90
# nombre maxi de sites ( ips ) present ds le cache en pourcents
ipcache_high 95
# politique de gestion du cache disque
cache_replacement_policy lru
# politique de gestion de la memoire
memory_replacement_policy lru
# CONFIGURATION DES LOGS
# repertoire du cache ( repertoire, type_d_organisation, taille en mo, nombre de repertoire de
# niveau 1, nombre de rep de niveau 2 )
cache_dir ufs /usr/local/squid/cache 500 16 256
# fichier de log des acces
cache_access_log /var/log/squid/access.log
# fichier de log du cache
cache_log /var/log/squid/cache.log
# fichier de log de la gestion du cache
cache_store_log /var/log/squid/store.log
# fichier index du cache disque
cache_swap_log /usr/local/squid/cache/swap.log
# type de log
emulate_httpd_log off
# log de l'ip cible
log_ip_on_direct on
# chemin de l'interpreteur mime
mime_table /usr/local/etc/squid/mime.conf
# enregistrement des header mime
log_mime_hdrs off
# chemin du fichier contenant le pid ( processus id )
pid_filename /var/tmp/squid.pid
# options de debug
debug_options ALL, 1
# log ip ou noms dans le fichier d'acces
log_fqdn off
# ip a donner aux site quand on surf
client_netmask 255.255.255.255
# config des programmes externes a squid
ftp_user anonymous@
# taille maxi des noms de fichiers sur un ftp
ftp_list_width 128
# transfert ftp passif ( doit etre a off pr faire en passif )
ftp_passive off
# ecart entre deux tentatives de requete dns
dns_retransmit_interval 5 seconds
# au bout de combien de temps un domaine est considerer inresolvable ( dns )
dns_timeout 5 minutes
# nombre de proxy a lancer
redirect_children 5
redirect_rewrites_host_header on
# CONFIG FINE DU CACHE
# taille maxi des headers de requete
request_header_max_size 10 KB
# taille maxi d'un objet envoyé via le proxy
request_body_max_size 8 MB
# taille maxi d'un objet recut via le proxy ( O = illimité )
reply_body_max_size 0
# "age" maxi d'une page cachée dans le proxy
reference_age 1 year
# CONFIGURATION DES TIMEOUTS
# temps avant timeout d'une connection a un site
connect_timeout 120 seconds
# temps avant timeout d'une connection d'un pc client
request_timeout 30 seconds
# temps maxi que peut rester connecter un client
client_lifetime 2 hours
# temps maxi avant timeout d'une connection permanente via le proxy
pconn_timeout 120 seconds
# GESTION DES DROITS D'ACCES
# definition du reseau local
acl rezo_local src 192.168.0.0/255.255.255.0
# definition de tous
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21          # ftp
acl Safe_ports port 25          # ftp
acl Safe_ports port 80          # http
acl Safe_ports port 443 	# https, snews
acl CONNECT method CONNECT
# on definit l'acl pour bloquer microsoft
acl microsoft dstdomain .microsoft.com .microsoft.fr .microsoft.*
# on vire qq trucs de pubs
acl publicite dstdomain .cybermonitor.com .advertising.com .doubleclick.net .mgn.net .smartadserver.com
# on definit les droit a proprement parler
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than Safe ports
http_access deny CONNECT !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
# on interdit d'aller vers microsoft
http_access deny microsoft
# on interdit le chargement de la pub
http_access deny publicite
# on permet au lan d'acceder
http_access allow rezo_local
# maintenant on ferme tout a tous les autres
http_access deny all
icp_access deny all
# CONFIG DIVERSES
# ne pas broadcast de messages pour s'annoncer
announce_period 0
# on accelere l'http pour ce qui est masque
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
# combien de jours de fichiers de log doit on garder
logfile_rotate 14
# repertoire contenant les messages d'erreurs
error_directory /usr/local/etc/squid/errors
# repertoire contenant les icones
icon_directory /usr/local/etc/squid/icons

sfr_illimitics

Pré-requis : un serveur openvpn sur le port 443, wvdial et openvpn installés sur le poste client, un téléphone reconnu par votre poste client, un abonnement SFR illimytics.

A l’aide de votre editeur favori, modifiez /etc/wvdial.conf pour obtenir ceci :

[Dialer Defaults]
Init1 = ATZ
; Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init2 = AT+cgdcont=1,"IP","wapsfr"
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Check Def Route = off
Abort on busy = off
Abort On No Dialtone = on
Ask Password = off
Phone = *99***1#
Username = wapsfr
Password = wapsfr
ISDN = 0
New PPPD = yes
Modem = /dev/ttyACM0
Baud = 460800
Auto DNS = on
Carrier on check = off
Idle Seconds = 240
Stupid mode = off

Et enfin dans /root/internet.sh ( par ex ) :

#!/bin/bash

wvdial &
sleep 20
route del default dev ppp0
route add -host IP_INTERNET_GATEWAY_OPENVPN dev ppp0
openvpn --config /etc/openvpn/datacenter/openvpn.conf &
sleep 30
route add -net default gw IP_LOCALE_GATEWAY_OPENVPN dev tap0
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Motorola Milestone 2 : Utilisation, root, cyanogenmod

Parceque j’en ai marre de rechercher une fois par an et que j’oublie entre temps :

Modes de boot :

X+Power : boot en Recovery , ensuite appuyer sur Vol Up+Down pour entrer dans le Recovery a proprement parlé.
Clavier Fleche Up+Power : boot en Loader Mode, permet de flasher l'appareil avec une rom

Pour flasher la rom d’origine, la dernière étant MILS2_U6_4.1-22_SIGNED_UCAMILESTONE2B1B80E1014.0R_USXMILE2GBRTFR_P012_A006_HWp2a_Service1FF.sbf ( 44d4227d48317ea7cfb77746d79c5f19 ), avec l’outil sbf_flash ( db8afd24f7a0dc6d3d78556dec811694 ) après avoir rebooter en mode loader

sudo sbf_flash MILS2_U6_4.1-22_SIGNED_UCAMILESTONE2B1B80E1014.0R_USXMILE2GBRTFR_P012_A006_HWp2a_Service1FF.sbf

Pour rooter le tel :
Activer le debug, reprendre les deux outils précédents plus l’image preinstall.img ( b0afacc602968c575dbceceea8d71386 )

sudo adb start-server
sudo adb shell ln -s /data/local.prop /data/preinstall_md5/magic.md5

Rebooter en mode Boot Loader puis :

sbf_flash -r --preinstall preinstall.img MILS2_U6_4.1-22_SIGNED_UCAMILESTONE2B1B80E1014.0R_USXMILE2GBRTFR_P012_A006_HWp2a_Service1FF.sbf

Rebooter le tel après le flash


adb shell mount -o remount,rw /dev/block/system /system
adb push su /system/bin/su
adb shell chmod 4755 /system/bin/su

adb push Superuser.apk /system/app/Superuser.apk
adb shell chmod 644 /system/app/Superuser.apk
adb shell mount -o remount,ro /dev/block/system /system

Download Cyanogen + gapps

Install Droid2Recovery, bootstrap

In recovery, install CM + gapps + wipe cache

Source : http://rootzwiki.com/topic/29930-new-root-method-for-stock-234-621622-found-droid2-r2d2/

League of Legend sur Linux ( avec PlayOnLinux )

1/ install playonlinux
apt-get install playonlinux

2/ install Lol throught play on linux

3/ recompile wine with patchs :
apt-get build-dep wine
wget http://prdownloads.sourceforge.net/wine/wine-1.5.18.tar.bz2
tar -jxvf wine-1.5.18.tar.bz2
cd wine-1.5.18/
wget http://uz.sns.it/~ranma42/iLoL/0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch
patch -p1 < 0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch
./configure --prefix=/home/$USER/wine-lol/
make depend && make && make install

4/ move recompiled to .PlayOnlinux
mv wine-lol /home/$USER/.PlayOnLinux/wine/linux-x86

5/ install some libs no to have black-screen in game
aptitude install libtxc-dxtn0

6/ stop and relaunch playonlinux
set wineversion to use to "wine-lol"

7/ enjoy :)

De l’interêt d’un peu d’opcode cache quand on utilise un langage interpreté

Les utilisateurs l’oublient souvent, php c’est bien beau et pratique, mais c’est un langage interprété à chaque utilisation .. Ce qui donne des résultats catastrophiques en termes de performance ..

D’où l’apparation d’outils tels qu’apc, eaccelerator, xcache ..

Personnellement, je n’ai pas constaté à ce jour de grosse différence entre les deux premiers et trouve le dernier un peu moins pratique à l’utilisation .. Je vous laisse comparer par vous même ;)

Installation et attribution de 512mo de ram pour le cache:

apt-get install php-apc
echo "apc.enabled=1" >> /etc/php5/conf.d/apc.ini
echo "apc.shm_size=512" >> /etc/php5/conf.d/apc.ini

Pour en revenir à l’intérêt de notre opcode, sur cette page, nous avions vu qu’un lamp sans configuration/optimisation pouvait nous renvoyer 23 pages par seconde.

Voyons voir maintenant :

guillaume@mars:~ # ab -n1000 -c 23 http://test-joomla.domaine.com/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking test-joomla.domaine.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
Server Software:        Apache/2.2.16
Server Hostname:        test-joomla.domaine.com
Server Port:            80
Document Path:          /
Document Length:        15155 bytes
Concurrency Level:      23
Time taken for tests:   26.154066 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      15543000 bytes
HTML transferred:       15155000 bytes
Requests per second:    38.23 [#/sec] (mean)
Time per request:       601.544 [ms] (mean)
Time per request:       26.154 [ms] (mean, across all concurrent requests)
Transfer rate:          580.33 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   34 298.6      4    3004
Processing:   250  561  83.7    580     724
Waiting:      213  527  78.3    544     666
Total:        254  595 313.5    584    3675
Percentage of the requests served within a certain time (ms)
  50%    584
  66%    599
  75%    611
  80%    619
  90%    639
  95%    657
  98%    689
  99%   3536
 100%   3675 (longest request)

Et bien, on a réussi à faire descendre le temps par requête de 42 à 26ms, et on peut dorénavant servir jusqu’à 38 requêtes en simultané. Plutôt pas mal l’opcode non ? ;)

Tester basiquement la tenue de charge d’un site web

Pré-requis : une machine sous linux/freebsd avec une bonne connectivité ( latence surtout et débit ).

Pour tester de façon basique et rapide, la tenue de charge d’une machine, apache fourni l’outil ab ( Apache Benchmark ).

Il permet d’ouvrir X connections simultanées sur un site internet de faire Y requêtes. Pour des tests plus élaborés ( scénarios de navigation ), je vous conseille de vous tourner vers jmeter.

Dans le même temps, pour obtenir les meilleurs résultats, il vous faut monitorer votre machine ( article a venir .. ) afin de pouvoir analyser finement son comportement et éventuellement l’optimiser plus ..

Ainsi, on va commencer petit :

guillaume@mars:~ # ab -n1000 -c 10 http://test-joomla.domaine.com/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking test-joomla.domaine.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
Server Software:        Apache/2.2.16
Server Hostname:        test-joomla.domaine.com
Server Port:            80
Document Path:          /
Document Length:        15155 bytes
Concurrency Level:      10
Time taken for tests:   42.77887 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      15558543 bytes
HTML transferred:       15170155 bytes
Requests per second:    23.77 [#/sec] (mean)
Time per request:       420.779 [ms] (mean)
Time per request:       42.078 [ms] (mean, across all concurrent requests)
Transfer rate:          361.07 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4    4   0.4      4       7
Processing:   222  414  58.0    413     835
Waiting:      211  381  48.1    383     524
Total:        226  418  58.0    417     839
Percentage of the requests served within a certain time (ms)
  50%    417
  66%    439
  75%    452
  80%    462
  90%    481
  95%    500
  98%    522
  99%    555
 100%    839 (longest request)

Le serveur est donc capable de nous servir la page d’accueil jusqu’à 23 fois à la seconde, en prenant 42ms par requête. Par ailleurs, effectivement des outils de monitoring montrent une utilisation autour des 60 pourcent, ce qui semble logique au vu de nos 10 requêtes concurrentes..

On va re-essayer avec 23 requetes concurrentes :

yomgui@mars:~ # ab -n2000 -c 23 http://test-joomla.faistonweb.com/
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking test-joomla.faistonweb.com (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Finished 2000 requests
Server Software:        Apache/2.2.16
Server Hostname:        test-joomla.faistonweb.com
Server Port:            80
Document Path:          /
Document Length:        15155 bytes
Concurrency Level:      23
Time taken for tests:   84.575933 seconds
Complete requests:      2000
Failed requests:        0
Write errors:           0
Total transferred:      31101543 bytes
HTML transferred:       30325155 bytes
Requests per second:    23.65 [#/sec] (mean)
Time per request:       972.623 [ms] (mean)
Time per request:       42.288 [ms] (mean, across all concurrent requests)
Transfer rate:          359.11 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4   68 435.2      4    3004
Processing:   391  898 163.8    941    1563
Waiting:      348  821 142.1    867    1107
Total:        395  967 472.6    946    4117
Percentage of the requests served within a certain time (ms)
  50%    946
  66%    974
  75%    993
  80%   1005
  90%   1042
  95%   1081
  98%   3876
  99%   3957
 100%   4117 (longest request)