jeudi 22 décembre 2011

Apache reverse proxy

Une petite config de Apache comme reverse proxy pour permettre de faire tourner plusieurs sites sur la meme ip sur le meme port.

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName aa.bbb.com
    ServerAlias aaname.bbname.com
    ErrorLog logs/aaa.com.-error_log
    CustomLog logs/aaa.com.co-access_log common
    ProxyPass / http://192.168.1.118/
    ProxyPassReverse / http://192.168.1.118/
</VirtualHost>

 Attention tout de meme, si vous avez un premier site de configurer, disons statique et que vous creer maintenant un virtualhost vous nous pourrez plus acceder au site static. Il faut declarer chacun comme Virtualhost

NameVirtualHost *:80
Le premier site, "static"
<VirtualHost *:80>
        ServerName www.blabla.com
        ServerAlias blabla.com
        DocumentRoot "/var/www/html"
</VirtualHost>
Le second site, le site virtuel qui renvoit vers une autre machine
<VirtualHost *:80>
    ServerName ohohoho.com
    ServerAlias ohohohoh.com
    ErrorLog logs/ohohohoh.com-error.log
    CustomLog logs/ohohohoh.com-access_log common
    ProxyPass / http://192.168.1.121/
    ProxyPassReverse / http://192.168.1.121/
</VirtualHost>

vendredi 16 décembre 2011

Zimbra on OpenVZ

Impossible de faire fonctioner Zimbra 7.1 sur OpenVZ

Des dizainnes d'installation, de "tuning" dans les sens sans rien y faire.
Comme d'hab la seule solution a ete d'etre genereux avec les ressources locales.

Ainsi ca fonctionne :


ONBOOT="yes"
# UBC parameters (in form of barrier:limit)
KMEMSIZE="9223372036854775807:9223372036854775807"
LOCKEDPAGES="10184:10184"
PRIVVMPAGES="9223372036854775807:9223372036854775807"
SHMPAGES="122218:122218"
NUMPROC="5092:5092"
PHYSPAGES="0:9223372036854775807"
VMGUARPAGES="33792:9223372036854775807"
OOMGUARPAGES="26112:9223372036854775807"
NUMTCPSOCK="5092:5092"
NUMFLOCK="1000:1100"
NUMPTY="509:509"
NUMSIGINFO="1024:1024"
TCPSNDBUF="48672085:69528917"
TCPRCVBUF="48672085:69528917"
OTHERSOCKBUF="24336042:45192874"
DGRAMRCVBUF="24336042:24336042"
NUMOTHERSOCK="5092:5092"
DCACHESIZE="45561040:46927872"
NUMFILE="81472:81472"
AVNUMPROC="2546:2546"
NUMIPTENT="200:200"
# Disk quota parameters (in form of softlimit:hardlimit)
DISKSPACE="100000000:150000000"
DISKINODES="100000000:150000000"
QUOTATIME="0"
# CPU fair sheduler parameter
CPUUNITS="1000"
VE_ROOT="/vz/root/$VEID"
VE_PRIVATE="/vz/private/$VEID"
OSTEMPLATE="ubuntu-10.04-x86_64"
ORIGIN_SAMPLE="vps.basic"
IP_ADDRESS="192.168.1.121"
HOSTNAME="zimbra.x.com"
NAMESERVER="8.8.8.8"

Ca fonctionne meme si bien sur, potentiellement ca peut prendre toutes les ressources.
N'oublier pas de verifier la conf avec vzcfgvalidate.

lundi 12 décembre 2011

Squid authentification LDAP

Configuration de l'authentificacion de Squid avec Active directory Microsoft

On valide la connexion
# Active Directory configuration
auth_param basic program /usr/lib/squid/squid_ldap_auth -R -v 3 -b "dc=foo,dc=corp" -D "cn=Proxy1,cn=Users,dc=foo,dc=corp" -w "xxx" -f sAMAccountName=%s -h 192.168.11.206
auth_param basic children 5
auth_param basic realm Squid Proxy Server
auth_param basic credentialsttl 5 minutes

On authorize un groupe
#ldap authorizations
#full proxy access logger
external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -R \
-b "dc=foo,dc=corp" \
-D "cn=Proxy1,cn=Users,dc=foo,dc=corp" \
-w "xxx" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,cn=users,DC=foo,DC=corp))" \
-h 192.168.11.206

On renvoit vers Squidguard, on pourrait aussi associe des autorizacions par groupe LDAP
#Squidguard
redirect_program /usr/bin/squidGuard -c /etc/squid/squidguard.conf

########################
####### acls locales####
########################
acl manager proto cache_object
#acl all src 0.0.0.0/0.0.0.0
acl to_localhost src 127.0.0.1/32
acl localhost dst 127.0.0.0/8
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 8522 # otros ssh
acl Safe_ports port 22
acl CONNECT method CONNECT
acl ldap-group proxy_auth REQUIRED
#acl redlocal src 192.168.10.0/23
acl Proxy external ldap_group ProxyFULL


########################
####### Restricciones###
########################
http_access allow Proxy
http_access allow Accesorestringido
http_access deny manager
http_access allow MonarcaTestProxy
http_access deny !Safe_ports
http_access allow manager localhost
http_access deny CONNECT !SSL_ports
http_access allow localhost

http_access deny all

icp_access allow all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/proxy/log/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
#broken_vary_encoding allow apache
coredump_dir /var/spool/squid
visible_hostname [My HOSTNAME]


Commande utile pour verifier l'appartenance 
C:\Windows\system32>dsget USER "CN=foouser,OU=foo,DC=foo,DC=corp" -memberof

Commande Squid pour tester le proxy
squidclient -h 127.0.0.1 -u user -w password http://sysadmin10.blogspot.com

vendredi 9 décembre 2011

Probleme pour mettre a jour Debian 5.0 vers Debian 6.0

Lors du passage de Debian 5.0 Lenny a Debian 6.0 Squeeze
Erreur d'update

Reading package lists... Done
W: GPG error: http://backports.debian.org squeeze-backports Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://security.debian.org squeeze/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://ftp.us.debian.org squeeze Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://ftp.us.debian.org squeeze-proposed-updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: You may want to run apt-get update to correct these problems


solution
Importer la cle publique depuis internet.

apt-key adv --recv-keys --keyserver subkeys.pgp.net AED4B06F473041FA; gpg --export --armor AED4B06F473041FA | apt-key add -

mercredi 30 novembre 2011

Bash in color


To get bash in color :

export PS1='\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'



mercredi 9 novembre 2011

Exemple creation VE OpenVZ



Recuperation d'un template debian 6.0

cd /vz/template/cache
wget http://download.openvz.org/template/precreated/debian-6.0-x86_64.tar.gz
Creation de la VE
vzctl create 102 --ostemplate debian-6.0-x86_64
passage des options
 vzctl set 102 --hostname coditdns --ipadd 192.168.1.102  --nameserver 8.8.8.8 --save 
Reste a configurer le firewall pour autoriser les acces.


jeudi 27 octobre 2011

Memo OpenVZ

En ce moment je travaille beaucoup avec OpenVZ.

C'est un outil vraiment intéressant, très performant et très agile.

Le wiki http://wiki.openvz.org est très bien fait et pleins de ressources.

Ci-dessous, les astuces ou commandes qui me servent régulièrement.

Avoir un horaire different entre le VPS et les VE.

Dans la conf du VE, ajouter :
CAPABILITY="SYS_TIME:on"
Puis charger le fuseau horaire souhaité, ex: export TZ=America/Bogota
Ensuite mettre a jour la date en utilisant ntpdate ou en fixant la date directement.

Installer VZDump pour faire un backup

http://chrisschuld.com/2009/11/installing-vzdump-for-openvz-on-centos/

Préparer un serveur pour exploiter les capacités physiques

Utiliser vzsplit pour diviser les ressources phyisiques en -n partie vers un fichier de config -f config.prod
Ensuite il faut utiliser ce fichier de config pour creer des les VE

Au secours, je ne peux plus rentrer dans mon serveur virtuel

Vous pouvez ne plus rentrer dans votre VE, ni par SSH ni par "vzctl enter"
vzctl enter 101
enter into VE 101 failed
Unable to open pty: No such file or directory


Si vous êtes sous Redhat ou equivalent, créez les devices manquants
vzctl exec VEID /sbin/MAKEDEV pty
vzctl exec VEID /sbin/MAKEDEV tty
vzctl enter VEID


Pour regler le problème de manière permanente
Modifier le fichier /etc/rc.sysinit de votre VPS.
Commenter la ligne
#/sbin/start_udev 
Ajouter les lignes suivantes après /sbin/start_udev
/sbin/MAKEDEV tty
/sbin/MAKEDEV pty



Si vous êtes sur un Debian ou équivalent

vzctl exec veid update-rc.d -f udev remove
vzctl restart veid

Le container est bloqué

Si vous recevez le message suivant quand vous essayer d'arrêter le VE
[root@server ~]# vzctl stop 101 Container already locked
Solution:
  • Supprimer le fichier lock
[root@server ~]# rm /vz/lock/101.lck 
rm: remove regular file `/vz/lock/101.lck'? y
  • Supprimer le checkpoint
[root@server ~]# vzctl chkpnt 104 --kill 
Killing...