Archives de catégorie : Administration

Partage Samba d’un point de montage NFS

Le partage d'un point de montage NFS distant (via un VPN) via Samba peut causer des problèmes de performances. Ceci à cause du mécanisme de vérouillage de fichiers utilisé par Samba, qui nécessite de nombreux appels RPC. Sur une connexion réseau à forte latence (type ADSL), cela affecte grandement les performances.

Il existe une alternative simple, en modifiant les options de vérouillage de fichier de Samba :

strict locking = no

 

​En bonus une petite commande fort pratique pour afficher la confugration complète de Samba (y compris les options par défaut) :

testparm -v

 

Sources

Mettre à jour ESXi 5.1 online

La procédure officielle de mise à jour d’un hôte ESXi gratuit vers la version 5.1 est de passer par le CD d’installation, ce qui est peu adapté pour mettre à jour un hôte distant.

Il est cependant possible de le faire directement à partir de l’hôte, comme les mises à jour mineures, en utilisant les dépôts de l’update manager de vmware.

Listons tout d’abord la liste des profiles disponibles:

~ # esxcli software sources profile list -d http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
Name                              Vendor        Acceptance Level
--------------------------------  ------------  ----------------
ESXi-5.0.0-20120904001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120404001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120701001s-standard  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120301001s-standard  VMware, Inc.  PartnerSupported
ESXi-5.0.0-469512-no-tools        VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120604001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120901001s-standard  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20111204001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20111104001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.1.0-799733-standard        VMware, Inc.  PartnerSupported
ESXi-5.0.0-20110904001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120704001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120701001s-no-tools  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20111104001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120704001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120901001s-no-tools  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120504001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120904001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120301001s-no-tools  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120604001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120504001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-469512-standard        VMware, Inc.  PartnerSupported
ESXi-5.1.0-799733-no-tools        VMware, Inc.  PartnerSupported
ESXi-5.0.0-20111204001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120302001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20110904001-notools    VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120404001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120302001-no-tools   VMware, Inc.  PartnerSupported

Puis effectuons la mise à jour avec le profile standard:

~ # esxcli software profile install -d http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-5.1.0-799733-standard
 [Exception]
 You attempted to install an image profile which would have resulted in the removal of VIBs ['VMware_bootbank_vmware-fdm_5.1.0-799731']. If this is not what you intended, you may use the esxcli software profile update command to preserve the VIBs above. If this is what you intended, please use the --ok-to-remove option to explicitly allow the removal.
 Please refer to the log file for more details.
~ # esxcli software profile install -d http://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-5.1.0-799733-standard --ok-to-remove
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-atiixp_0.4.6-4vmw.510.0.0.799733, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.510.0.0.799733, VMware_bootbank_ata-pata-via_0.3.3-2vmw.510.0.0.799733, VMware_bootbank_block-cciss_3.6.14-10vmw.510.0.0.799733, VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.510.0.0.799733, VMware_bootbank_esx-base_5.1.0-0.0.799733, VMware_bootbank_esx-dvfilter-generic-fastpath_5.1.0-0.0.799733, VMware_bootbank_esx-tboot_5.1.0-0.0.799733, VMware_bootbank_esx-xlibs_5.1.0-0.0.799733, VMware_bootbank_esx-xserver_5.1.0-0.0.799733, VMware_bootbank_ima-qla4xxx_2.01.31-1vmw.510.0.0.799733, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.510.0.0.799733, VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.510.0.0.799733, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.510.0.0.799733, VMware_bootbank_misc-cnic-register_1.1-1vmw.510.0.0.799733, VMware_bootbank_misc-drivers_5.1.0-0.0.799733, VMware_bootbank_net-be2net_4.1.255.11-1vmw.510.0.0.799733, VMware_bootbank_net-bnx2_2.0.15g.v50.11-7vmw.510.0.0.799733, VMware_bootbank_net-bnx2x_1.61.15.v50.3-1vmw.510.0.0.799733, VMware_bootbank_net-cnic_1.10.2j.v50.7-3vmw.510.0.0.799733, VMware_bootbank_net-e1000_8.0.3.1-2vmw.510.0.0.799733, VMware_bootbank_net-e1000e_1.1.2-3vmw.510.0.0.799733, VMware_bootbank_net-enic_1.4.2.15a-1vmw.510.0.0.799733, VMware_bootbank_net-forcedeth_0.61-2vmw.510.0.0.799733, VMware_bootbank_net-igb_2.1.11.1-3vmw.510.0.0.799733, VMware_bootbank_net-ixgbe_3.7.13.6iov-10vmw.510.0.0.799733, VMware_bootbank_net-nx-nic_4.0.558-3vmw.510.0.0.799733, VMware_bootbank_net-r8168_8.013.00-3vmw.510.0.0.799733, VMware_bootbank_net-r8169_6.011.00-2vmw.510.0.0.799733, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.510.0.0.799733, VMware_bootbank_net-sky2_1.20-2vmw.510.0.0.799733, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.510.0.0.799733, VMware_bootbank_net-vmxnet3_1.1.3.0-3vmw.510.0.0.799733, VMware_bootbank_ohci-usb-ohci_1.0-3vmw.510.0.0.799733, VMware_bootbank_sata-ahci_3.0-13vmw.510.0.0.799733, VMware_bootbank_sata-ata-piix_2.12-6vmw.510.0.0.799733, VMware_bootbank_sata-sata-nv_3.5-4vmw.510.0.0.799733, VMware_bootbank_sata-sata-promise_2.12-3vmw.510.0.0.799733, VMware_bootbank_sata-sata-sil24_1.1-1vmw.510.0.0.799733, VMware_bootbank_sata-sata-sil_2.3-4vmw.510.0.0.799733, VMware_bootbank_sata-sata-svw_2.3-3vmw.510.0.0.799733, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.510.0.0.799733, VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.510.0.0.799733, VMware_bootbank_scsi-aic79xx_3.1-5vmw.510.0.0.799733, VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-5vmw.510.0.0.799733, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.510.0.0.799733, VMware_bootbank_scsi-hpsa_5.0.0-21vmw.510.0.0.799733, VMware_bootbank_scsi-ips_7.12.05-4vmw.510.0.0.799733, VMware_bootbank_scsi-lpfc820_8.2.3.1-127vmw.510.0.0.799733, VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.510.0.0.799733, VMware_bootbank_scsi-megaraid-sas_5.34-4vmw.510.0.0.799733, VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.510.0.0.799733, VMware_bootbank_scsi-mpt2sas_10.00.00.00-5vmw.510.0.0.799733, VMware_bootbank_scsi-mptsas_4.23.01.00-6vmw.510.0.0.799733, VMware_bootbank_scsi-mptspi_4.23.01.00-6vmw.510.0.0.799733, VMware_bootbank_scsi-qla2xxx_902.k1.1-9vmw.510.0.0.799733, VMware_bootbank_scsi-qla4xxx_5.01.03.2-4vmw.510.0.0.799733, VMware_bootbank_scsi-rste_2.0.2.0088-1vmw.510.0.0.799733, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.510.0.0.799733, VMware_locker_tools-light_5.1.0-0.0.799733
   VIBs Removed: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-atiixp_0.4.6-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-via_0.3.3-2vmw.500.0.0.469512, VMware_bootbank_block-cciss_3.6.14-10vmw.500.0.0.469512, VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.1.11.623860, VMware_bootbank_esx-base_5.0.0-1.18.768111, VMware_bootbank_esx-tboot_5.0.0-0.0.469512, VMware_bootbank_ima-qla4xxx_2.01.07-1vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.500.0.0.469512, VMware_bootbank_misc-cnic-register_1.1-1vmw.500.0.0.469512, VMware_bootbank_misc-drivers_5.0.0-1.18.768111, VMware_bootbank_net-be2net_4.0.88.0-1vmw.500.0.7.515841, VMware_bootbank_net-bnx2_2.0.15g.v50.11-5vmw.500.0.0.469512, VMware_bootbank_net-bnx2x_1.61.15.v50.1-1vmw.500.0.0.469512, VMware_bootbank_net-cnic_1.10.2j.v50.7-2vmw.500.0.0.469512, VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.1.18.768111, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.1.11.623860, VMware_bootbank_net-enic_1.4.2.15a-1vmw.500.0.0.469512, VMware_bootbank_net-forcedeth_0.61-2vmw.500.0.0.469512, VMware_bootbank_net-igb_2.1.11.1-3vmw.500.0.0.469512, VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512, VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.1.11.623860, VMware_bootbank_net-r8168_8.013.00-3vmw.500.0.0.469512, VMware_bootbank_net-r8169_6.011.00-2vmw.500.0.0.469512, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.500.0.0.469512, VMware_bootbank_net-sky2_1.20-2vmw.500.0.0.469512, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.500.0.0.469512, VMware_bootbank_ohci-usb-ohci_1.0-3vmw.500.0.0.469512, VMware_bootbank_sata-ahci_3.0-6vmw.500.1.11.623860, VMware_bootbank_sata-ata-piix_2.12-4vmw.500.1.11.623860, VMware_bootbank_sata-sata-nv_3.5-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-promise_2.12-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-sil_2.3-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-svw_2.3-3vmw.500.0.0.469512, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.1.11.623860, VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.500.0.0.469512, VMware_bootbank_scsi-aic79xx_3.1-5vmw.500.0.0.469512, VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-3vmw.500.0.0.469512, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.500.0.0.469512, VMware_bootbank_scsi-hpsa_5.0.0-17vmw.500.0.0.469512, VMware_bootbank_scsi-ips_7.12.05-4vmw.500.0.0.469512, VMware_bootbank_scsi-lpfc820_8.2.2.1-18vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-sas_5.34-1vmw.500.1.11.623860, VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.500.0.0.469512, VMware_bootbank_scsi-mpt2sas_06.00.00.00-6vmw.500.1.11.623860, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.1.18.768111, VMware_bootbank_scsi-mptspi_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-qla2xxx_901.k1.1-14vmw.500.0.0.469512, VMware_bootbank_scsi-qla4xxx_5.01.03.2-3vmw.500.0.0.469512, VMware_bootbank_scsi-rste_2.0.2.0088-1vmw.500.1.11.623860, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.500.0.0.469512, VMware_bootbank_vmware-fdm_5.1.0-799731, VMware_locker_tools-light_5.0.0-1.18.768111
   VIBs Skipped:
~ #

Il ne reste plus qu’à rebooter l’hôte.

Source virtuallyGhetto

Installation de mise à jour ESXi 5.0

La mise à jour d’un hôte ESXi 5.0 est très similaire à celle d’un hôte 4.1 (voir mon article pour ESXi 4.1). Cependant, les commandes à exécuter ont légèrement changé : il faut désormais utilier la commande

esxcli software vib update -d fichier_bundle.zip

au lieu d’esxupdate.

Voici un exemple complet :

~ # cd /vmfs/volumes/datastore1/
/vmfs/volumes/4e5be3fd-b70bca00-7964-bc305bdf94b9 # wget http://hostupdate.vmware.com/software/VUM/OFFLINE/release-313-20110906-767411/ESXi500-201109001.zip
Connecting to hostupdate.vmware.com (2.18.131.51:80)
ESXi500-201109001.zi 100% |*************************************************************************************************|   281M 00:00:00 ETA
/vmfs/volumes/4e5be3fd-b70bca00-7964-bc305bdf94b9 # esxcli software vib update -d /vmfs/volumes/datastore1/ESXi500-201109001.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank_esx-base_5.0.0-0.3.474610, VMware_locker_tools-light_5.0.0-0.3.474610
   VIBs Removed: VMware_bootbank_esx-base_5.0.0-0.0.469512, VMware_locker_tools-light_5.0.0-0.0.469512
   VIBs Skipped: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-atiixp_0.4.6-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-via_0.3.3-2vmw.500.0.0.469512, VMware_bootbank_block-cciss_3.6.14-10vmw.500.0.0.469512, VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.0.0.469512, VMware_bootbank_esx-tboot_5.0.0-0.0.469512, VMware_bootbank_ima-qla4xxx_2.01.07-1vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.500.0.0.469512, VMware_bootbank_misc-cnic-register_1.1-1vmw.500.0.0.469512, VMware_bootbank_misc-drivers_5.0.0-0.0.469512, VMware_bootbank_net-be2net_4.0.88.0-1vmw.500.0.0.469512, VMware_bootbank_net-bnx2_2.0.15g.v50.11-5vmw.500.0.0.469512, VMware_bootbank_net-bnx2x_1.61.15.v50.1-1vmw.500.0.0.469512, VMware_bootbank_net-cnic_1.10.2j.v50.7-2vmw.500.0.0.469512, VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.0.0.469512, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.0.0.469512, VMware_bootbank_net-enic_1.4.2.15a-1vmw.500.0.0.469512, VMware_bootbank_net-forcedeth_0.61-2vmw.500.0.0.469512, VMware_bootbank_net-igb_2.1.11.1-3vmw.500.0.0.469512, VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512, VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.0.0.469512, VMware_bootbank_net-r8168_8.013.00-3vmw.500.0.0.469512, VMware_bootbank_net-r8169_6.011.00-2vmw.500.0.0.469512, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.500.0.0.469512, VMware_bootbank_net-sky2_1.20-2vmw.500.0.0.469512, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.500.0.0.469512, VMware_bootbank_ohci-usb-ohci_1.0-3vmw.500.0.0.469512, VMware_bootbank_sata-ahci_3.0-6vmw.500.0.0.469512, VMware_bootbank_sata-ata-piix_2.12-4vmw.500.0.0.469512, VMware_bootbank_sata-sata-nv_3.5-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-promise_2.12-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-sil_2.3-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-svw_2.3-3vmw.500.0.0.469512, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.0.0.469512, VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.500.0.0.469512, VMware_bootbank_scsi-aic79xx_3.1-5vmw.500.0.0.469512, VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-3vmw.500.0.0.469512, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.500.0.0.469512, VMware_bootbank_scsi-hpsa_5.0.0-17vmw.500.0.0.469512, VMware_bootbank_scsi-ips_7.12.05-4vmw.500.0.0.469512, VMware_bootbank_scsi-lpfc820_8.2.2.1-18vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-sas_4.32-1vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.500.0.0.469512, VMware_bootbank_scsi-mpt2sas_06.00.00.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-mptspi_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-qla2xxx_901.k1.1-14vmw.500.0.0.469512, VMware_bootbank_scsi-qla4xxx_5.01.03.2-3vmw.500.0.0.469512, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.500.0.0.469512

Il est possible d’utiliser l’option ‘–dry-run’ pour simuler l’installation.

Fail2ban : utilisation du module recent d’iptables

J’utilise habituellement les bans dynamiques de shorewall en association avec fail2ban.
Cependant, il devient rapidement pénible de recevoir les mails d’avertissement associés à répétition lorsque l’attaquant ne se décourage pas.

C’est pourquoi je me suis inspiré de cet article afin d’utiliser le module recent d’iptables.

Le module recent

Ce module d’iptables permet de conserver un historique des derniers paquets d’une IP correspondants à certains critères. Il est ainsi possible de bloquer une IP avec une fenêtre glissante, qui se réinitialise à chaque tentative (elle-même bloquée).
Cela permet par exemple de bloquer une attaque brute force SSH tant que l’attaquant persiste.

On utilise généralement une association de deux règles pour profiter du module recent :

iptables -N to-ban
iptables -A to-ban -m recent --name recent-list --update --seconds 3600 -j DROP
iptables -A to-ban -m recent --name recent-list --set -j DROP

La première va rejeter (silencieusement) le paquet si l’IP source fait partie de la liste « recent-list » et qu’elle a émis un paquet il y a moins de 3600 secondes (1 heure donc). Si le paquet vérifie ces conditions, le module recent va en plus mettre à jour sa table avec le timestamp courant, réinitialisant alors le timer.

La seconde règle permet d’ajouter une IP dans la liste « recent-list » (afin qu’elle rentre en correspondance avec la première règle lors du prochain paquet).

Création de l’action fail2ban

Il est alors simple de créer un nouveau type d’action fail2ban, basé sur iptables-allports.conf :

# cat /etc/fail2ban/action.d/iptables-recent.conf
# Fail2Ban configuration file
#
# Author: Cyril Jaquier
# Modified: Yaroslav O. Halchenko 
#                       made active on all ports from original iptables.conf
#
# $Revision: 658 $
#

[Definition]

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-
              iptables -A fail2ban- -m recent --name recent- --update --seconds 3600 -j DROP
              iptables -A fail2ban- -m recent --name recent- --remove -j RETURN
              iptables -A fail2ban- -j RETURN
              iptables -I INPUT -p  -j fail2ban-

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -p  -j fail2ban-
             iptables -F fail2ban-
             iptables -X fail2ban-

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = iptables -n -L INPUT | grep -q fail2ban-

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:      IP address
#            number of failures
#          

L’action start crée une chaîne fail2ban-, dans laquelle sont routés tous les paquets entrants.
Cette chaîne ne fait par défaut que rejeter les paquets faisant partie de la liste recent-, c’est à dire aucun.

L’action ban ajoute une règle spécifique à l’IP à bannir, afin de l’ajouter à la liste du module recent. Elle entrera alors automatiquement dans la fenêtre de ban glissante.
L’action stop supprime cette dernière règle. L’IP pourra voir son trafic reprendre dès que le module recent l’aura « oubliée », c’est à dire dès qu’elle aura eu un délais d’inactivité de plus d’une heure.
Elle correspondra alors à la règle « remove », qui la supprimera de la liste recent-. Ceci n’est pas vraiment nécessaire, mais permet de faire un peu de ménage.

Nettoyage des listes du module recent

On peut voir le contenu des listes du module recent à partir des fichiers contenus dans /proc/net/xt_recent/ :

vilo _TV_ # cat /proc/net/xt_recent/recent-shorewall
src=82.234.245.47 ttl: 45 last_seen: 4304285107 oldest_pkt: 2 4304284706, 4304285107
src=89.72.204.102 ttl: 115 last_seen: 4300884873 oldest_pkt: 3 4300883971, 4300884269, 4300884873
src=87.244.66.115 ttl: 48 last_seen: 4303585869 oldest_pkt: 2 4303585477, 4303585869
src=77.205.31.17 ttl: 117 last_seen: 4311366646 oldest_pkt: 8 4311343362, 4311343998, 4311356076, 4311356271, 4311356904, 4311365737, 4311366043, 4311366646, 4311301283, 4311301646, 4311309439, 4311309741, 4311310339, 4311317676, 4311318269, 4311327004, 4311327387, 4311327945, 4311335224, 4311343121
src=87.244.104.236 ttl: 48 last_seen: 4296186058 oldest_pkt: 2 4296185657, 4296186058

La taille de ces listes étant limitées, je me suis intéressé à leur nettoyage. Leur taille est en effet limitée (100 IP par défaut), et le module ne retire pas automatiquement les IPs expirées.
Cependant, il est capable de faire automatiquement de la place en supprimant les entrées les plus anciennes lorsqu’il doit ajouter une nouvelle entrée dans une table déjà pleine.

Une alternative pourrait être l’option « reap », mais celle-ci ne semble pas encore officiellement supportée par l’utilitaire iptables (bien que certaines distributions appliquent le patch nécessaire).

Installation de mise à jour ESXi 4.1

La version gratuite d’ESXi ne propose malheureusement pas de mise à jour automatique (ce qui est assez regrettable lorsque toutes les distributions linux le proposent…). Il est donc nécessaire de les récupérer et installer à la main.
L’offre dedibox sur laquelle je viens de passer propose ESXi 4.1 U1 en installation automatique. Cependant des mises à jours sont déjà disponibles.

Récupération des mises à jour

La liste des patchs disponibles peut être consultée (par produit) sur le site de VMWare : http://www.vmware.com/patch/download/

Une fois l’URL récupérée, il faut utiliser la console de maintenance pour l’installer. Vu la bande passante disponible sur le serveur, il est plus rapide de la télécharger directement depuis celui-ci plutôt que de l’uploader via le vSphere client.

cd /vmfs/volumes/datastore1/
wget http://hostupdate.vmware.com/software/VUM/OFFLINE/release-276-20110420-682352/ESXi410-201104001.zip

Une fois le téléchargement terminé, il est possible de contrôler le contenu du patch :

/vmfs/volumes/4dd56b07-e972f1d9-f727-bc305bd712f3 # esxupdate info --bundle=ESXi410-201104001.zip
   ID           - ESXi410-201104401-SG
   Release Date - 2011-04-28T08:00:00
   Vendor       - VMware, Inc.
   Summary      - Updates Firmware
   Severity     - security
   Urgency      - critical
   Category     - securityfix
   Install Date -
   Description  - For more information, see http://kb.vmware.com/kb/1035108.
   KB URL       - http://kb.vmware.com/kb/1035108
   Contact      - http://www.vmware.com/support/contacts/
   Compliant    - False
   RebootRequired          - True
   HostdRestart            - False
   RequiresMaintenanceMode - True
   List of constituent VIBs:
      deb_vmware-esx-firmware_4.1.0-1.6.381591

   ID           - ESXi410-201104402-BG
   Release Date - 2011-04-28T08:00:00
   Vendor       - VMware, Inc.
   Summary      - Updates VMware Tools
   Severity     - critical
   Urgency      - important
   Category     - bugfix
   Install Date -
   Description  - For more information, see http://kb.vmware.com/kb/1035109.
   KB URL       - http://kb.vmware.com/kb/1035109
   Contact      - http://www.vmware.com/support/contacts/
   Compliant    - False
   RebootRequired          - False
   HostdRestart            - False
   RequiresMaintenanceMode - False
   List of constituent VIBs:
      deb_vmware-esx-tools-light_4.1.0-1.6.381591

Répertoires manquants

J’ai rencontré des erreurs lors de l’exécution de certaines commandes. Il semblerait que certains répertoires ne soient pas créés correctement :

/vmfs/volumes/4dd56b07-e972f1d9-f727-bc305bd712f3 # esxupdate info -m ESXi410-201104001.zip
Encountered error FileIOError:
The error data is:
   Filename    - /var/tmp/cache/metadata1592750352
   Message     - Cannot create dir /var/tmp/cache/metadata1592750352: [Errno 17]
                 File exists: '/var/tmp'
   Errno       - 10
   Description - Unable to create, write or read a file as expected.

Certains liens symboliques sont invalides. Ceci se corrige simplement :

mkdir -p  /tmp/scratch/var/tmp/cache

Mise à jour

Pour installer le patch, il est nécessaire de passer l’hôte en mode maintenance :

/vmfs/volumes/4dd2fb9a-6501f76c-4f41-000c29e4a056 # esxupdate update --bundle=ESXi410-201104001.zip
Encountered error MaintenanceModeError:
The error data is:
   Message     - The following VIBs require this host to be in maintenance mode:
                 deb_vmware-esx-firmware_4.1.0-1.6.381591. Please put the host
                 in maintenance mode to proceed.
   Errno       - 18
   Description - Maintenance mode is not enabled or could not be determined.

Ceci nécessite l’arrêt ou la suspension des machines virtuelles. Lors de mon premier essai, je les ai suspendues. Cependant, j’ai eu des problèmes de connectivité réseau au réveil. Je recommanderais donc des les stopper.
Le passage en mode maintenance s’effectue aisément avec le client vSphere, en choisissant l’option « entrer en mode maintenance » dans le menu contextuel de l’hôte.

On peut alors lancer la mise à jour dans la console de maintenance :

/vmfs/volumes/4dd2fb9a-6501f76c-4f41-000c29e4a056 # esxupdate update --bundle=ESXi410-201104001.zip
Unpacking deb_vmware-esx-tools-light_4.1.0-1.6.381591 ######################################################################### [100%]

Unpacking deb_vmware-esx-firmware_4.1.0-1.6.381591    ######################################################################### [100%]

Removing packages :vmware-esx-tools-light             ######################################################################### [100%]

Installing packages :deb_vmware-esx-firmware_4.1.0-.. ######################################################################### [100%]

Installing packages :deb_vmware-esx-tools-light_4.1.. ######################################################################### [100%]

The update completed successfully, but the system needs to be rebooted for the
changes to be effective.

Il ne reste alors plus qu’à redémarrer l’hôte, désactiver le mode maintenance et relancer les machines virtuelles.

Abonnement à la mailing list

Afin d’être prévenu de la sortie de nouvelles mises à jour, il est possible de s’inscrire à la mailing list de VMWare :
https://www.vmware.com/mysupport/subscription.portal

Références

http://blog.stephane-grillot.fr/?p=5

Simplifier vos fichiers de configuration avec mod_macro

Si comme moi vous êtes allergiques au copier/coller, voici comment simplifier les fichiers de configuration Apache à l'aide d'un simple module : mod_macro.

Ce module permet la définition de macros, similaires à celles du pré-processeur C. Bien que basiques, elles permettent de factoriser une grande part de la configuration, tout particulièrement avec plusieurs virtualhosts.

Voici un exemple :

/etc/apache2/vhosts.d/01_poirsouille.org.conf
# Définition de la macro VH

        DocumentRoot "/home/poirsouille/public_html/$subdomain"
        ServerName $subdomain.poirsouille.org
        CustomLog /var/log/apache2/$subdomain_access_log combined
        ErrorLog /var/log/apache2/$subdomain_error_log

        
                Options Indexes FollowSymLinks
                Options +ExecCGI

                Order allow,deny
                Allow from all
        


# Autre macro pour la configuration SSL

        SSLEngine on
        SSLProtocol all -SSLv2

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/ssl/apache2/$subdomain.poirsouille.crt
        SSLCertificateKeyFile /etc/ssl/apache2/poirsouille.key
        SSLCertificateChainFile /etc/ssl/apache2/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/ssl/apache2/ca.pem
        
                SSLOptions +StdEnvVars
        

        
                SSLOptions +StdEnvVars
        
        
                CustomLog /var/log/apache2/ssl_request_log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        





        Use VH photos



        Use VH tech

        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


        Use VH tech
        Use SSL tech
        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


 

Gentoo : monter un volume DM-crypt/LUKS au boot

DM-crypt et LUKS permettent de créer très simplement un volume totalement crypté. Si l'utilisation de cryptsetup sur Gentoo ne diffère pas de la procédure standard, le montage au boot n'utilise pas le fichier /etc/crypttab mais /etc/conf.d/dmcrypt.

Création du volume crypté

Voici les étapes à suivre pour créer un volume crypté /dev/mapper/data_secured à partir de la partition /dev/xvda2. Pour plus de détails, voir cet article.

# Formatage avec LUKS de la partition
cryptsetup --verbose --verify-passphrase luksFormat /dev/xvda2
# Ouverture de la partition LUKS
cryptsetup luksOpen /dev/xvda2 data_secured
# Création du système de fichiers Ext4
mkfs.ext4 /dev/mapper/data_secured

Le volume /dev/mapper/data_secured peut alors être monté et utilisé comme une partition normale (ne pas oublier le crypsetup luksOpen avant l'appel à mount cependant).

Monter le volume DM-crypt/LUKS au boot

Comme précisé dans le wiki Gentoo, on utilise le fichier /etc/conf.d/dmcrypt plutot que /etc/crypttab :

/etc/conf.d/dmcrypt
target=data_secured
source="/dev/xvda2"

Cela va indiquer aux scripts de boot Gentoo d'ouvrir le volume LUKS avant de monter les systèmes de fichiers (hors root, qui nécessite un initramfs spécifique pour être crypté). Si une passphrase est utilisée pour le volume, elle sera alors demandée au boot sur la console. A éviter donc sur un serveur distant sans accès à la console…

Il suffit ensuite d'ajouter une ligne dans /etc/fstab comme d'ordinaire :

/etc/fstab
/dev/mapper/data_secured        /var/torrent    ext4    errors=remount-ro,noatime,acl   0       2

A chaque reboot, la passphrase est demandée :

 * Setting up dm-crypt mappings ...
 * dm-crypt map data_secured ...
 * cryptsetup will be called with :   luksOpen /dev/xvda2 data_secured
Entrez la phrase de passe pour /dev/xvda2 :
                                                                          [ ok ]
                                                                          [ ok ]
 * Checking all filesystems .../dev/mapper/data_secured : propre, 473/3932160 fichiers, 10663788/15728383 blocs
                                           [ ok ]
 * Mounting local filesystems ...                                         [ ok ]
 * Mounting misc binary format filesystem ...                             [ ok ]

 

MyBB : Support HTTPS avec le plugin Google SEO

Je suis plutôt satisfait de MyBB pour la gestion du forum, mais il lui manque le support du HTTPS en parallèle avec le HTTP. En effet, il n'est possible de spévifier qu'une unique adresse de forum dans l'interface d'administration, et celle-ci inclut le protocole. Tous les liens internes du forum pointent alors vers celui spécifié…

J'ai trouvé ce plug-in pour MyBB 1.2, mais qui fonctionne parfaitement avec MyBB 1.6. Seul inconvénient, son incompatibilité avec le célèbre plugin Google SEO, et plus particulièrement le module redirect. En effet, le module redirect a part défaut une priorité supérieure à celle de dynbburl, et s'exécute donc avant que le protocol ne soit patché, forçant la redirection…

Il suffit de modifier légèrement dynbburl pour lui mettre une priorité plus forte :

inc/plugins/dynbburl.php
add_hook('global_start', 'dynbburl_run', 1);

function dynbburl_info()
{
        return array(
                'name'                  => 'Dynamic Board URL',
                'description'   => 'Changes the board URL dynamically based on requested page (only switches to HTTPS if applicable)',
                'website'               => 'http://mybbhacks.zingaburga.com/',
                'author'                => 'ZiNgA BuRgA',
                'authorsite'    => 'http://zingaburga.com/',
                'version'               => '1.0',
                'compatibility' => '1*',
                'guid'                  => ''
        );
}

function dynbburl_run()
{
        global $mybb;
        if(!empty($_SERVER['HTTPS']))
        {
                $mybb->settings['bburl'] = str_replace('http://', 'https://', $mybb->settings['bburl']);
        }
}
?>

OpenVPN : permettre la communication entre clients

Après avoi installé OpenVPN (je ne détaillerai pas l'installation, il suffit de suivre les très bon tutos ici et ), je me suis retrouvé avec deux soucis :

  • l'IP allouée au client est dynamique
  • impossible aux clients de communiquer entre eux

IP statique pour client OpenVPN

La solution est très simple. Dans la configuration du serveur, il suffit d'ajouter :

/etc/openvpn/openvon.conf
...
client-config-dir /etc/openvpn/ccd

Le dossier ccd va alors contenir les fichiers de configuration spécifiques par client. Chaque fichier doit porter le nom du Common Name du certificat du client correspondant.
Il suffit alors de rajouter dans le fichier client :

/etc/openvpn/ccd/client1
ifconfig-push 10.8.0.3 255.255.255.0

Permettre la communication entre clients

Par défaut les clients ne peuvent pas communiquer entre eux : client1 et client2 ont tous les deux accès au réseau VPN, mais il est impossible d'accéder à client1 depuis client2 (et inversement).
Pour autoriser cette communication, il suffit d'ajouter la ligne suivante dans la configuration du serveur OpenVPN :

/etc/openvpn/openvpn.conf
...
client-to-client