GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1

Version 1.0.1
Auteur :Andrew Colin Kissa

Introduction

Ce tutoriel montre comment configurer un serveur CentOS 5.x pour offrir tous les services nécessaires aux hébergeurs Web virtuels. Ceux-ci incluent l'hébergement Web, le serveur SMTP avec (SMTP-AUTH et TLS, SPF, DKIM, Domainkeys), DNS, FTP, MySQL, POP3/IMAP, pare-feu, Webalizer pour les statistiques.

J'utiliserai le logiciel suivant :

  • Serveur de base de données :MySQL 5.0.22
  • Serveur de messagerie :Postfix 2.3.3
  • Serveur NS :BIND9 9.3.3
  • Serveur Web :Apache 2.2.3/PHP 5.1.6
  • Serveur FTP :Vsftpd 2.0.5
  • Serveur POP3/IMAP :Dovecot 1.0
  • Webalizer :pour les statistiques du site 2.01_10
  • Virtualmin :Panneau de configuration

Installation du système d'exploitation

Exigences

Pour installer le système, vous aurez besoin

  • Média d'installation de CentOS 5.1
  • Une bonne connexion Internet

Installer le système de base

REMARQUE Certaines étapes de l'installation ne sont pas décrites ici dans l'intérêt de garder le howto court, les étapes de configuration de grub sont omises par exemple.

  • Démarrez à partir du support DVD ou CD et à l'invite de démarrage, saisissez le texte linux.
  • Ignorer le test multimédia.
  • Sélectionnez votre langue :

  • Sélectionner la disposition du clavier :

  • Configurez votre réseau, j'utiliserai dhcp si vous n'avez pas dhcp, vous pouvez utiliser des entrées statiques.

  • Sélectionnez Oui pour initialiser le lecteur :

  • Sélectionnez une disposition personnalisée pour le type de partition :

  • Créer des partitions :

  • Configurer la mise en réseau :

Définir l'adresse IP et le masque de réseau :

Définissez la passerelle et les serveurs DNS :

Définissez le nom d'hôte :

  • Définissez le fuseau horaire :

  • Définissez le mot de passe root :

  • Sélectionnez le groupe de serveurs et sélectionnez Personnaliser la sélection de logiciels :

  • Les groupes de packages sont sélectionnés comme suit :
    • Serveur de noms DNS
      • lier chroot

  • Éditeurs
    • amélioré par vim
  • Serveur FTP
  • Serveur de messagerie
    • pigeonnier
    • tueur de spams
    • suffixe

  • Base de données MySQL
    • mysql-server

  • Serveur Web
    • mod_ssl
    • webaliseur
    • php
    • php-poire
    • http-suexec
    • php-mysql

Démarrez l'installation :

Le système de fichiers est formaté :

L'installation s'exécutera :

Redémarrez le système :

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1 - Page 2

Services à désactiver

Pour améliorer la sécurité et libérer les ressources système sur le système, nous devons désactiver tous les services qui ne sont pas nécessaires. Vous pouvez exécuter ce script pour le faire pour vous.

  • acide
  • anacron
  • apmd
  • autofs
  • Bluetooth
  • tasses
  • premier démarrage
  • gpm
  • haldémon
  • bus de messages
  • mdmonitor
  • caché
  • ip6tables
  • kudzu
  • lvm2-moniteur
  • netfs
  • nfslock
  • pcscd
  • portmap
  • rpcgssd
  • rpcidmapd
  • envoyer un e-mail
  • smartd
  • yum-updatesd

Les bases

Nous devons résoudre quelques problèmes pour préparer le système à la configuration.

  • Installer les mises à jour

miam mise à jour

  • Basculer le mta vers postfix

alternative --config mta

Il existe 2 programmes qui fournissent 'mta'.
Commande de sélection
------------------------------ -----------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Entrez pour conserver la sélection courante[+], ou tapez le numéro de la sélection :1

  • Installez la configuration du serveur de noms de cache :

yum install caching-nameserver

  • Installez les outils de compilation :

yum install gcc cpp gcc-c++ automake automake14 automake15 automake16 automake17 openssl-devel subversion ncurses-devel -y

Configurer l'alias réseau

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

Modifiez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0:1 pour qu'il ressemble à ceci :
DEVICE=eth0:1BOOTPROTO=staticBROADCAST=192.168.1.255IPADDR=192.168.1.6NETMASK=255.255.255.0NETWORK=192.168. 1.0ONBOOT=oui

Installer Webmin / Virtualmin

  • Importer la clé pgp Webmin :

wget http://www.webmin.com/jcameron-key.asc
rpm --import jcameron-key.asc

  • Téléchargez le RPM :

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.390-1.noarch.rpm

  • Vérifiez le rpm (devrait indiquer OK ou bien télécharger à nouveau) :

rpm --checksig webmin-1.390-1.noarch.rpm

  • Installez le RPM :

rpm -Uvh webmin-1.390-1.noarch.rpm

Configuration Webmin initiale

Nous devons sécuriser Webmin en éditant /etc/webmin/miniserv.conf et apporter les modifications suivantes :

  • En utilisant SSL uniquement :
ssl=1
  • Changez le port en 443 et liez-vous au deuxième NIC uniquement :
port=443bind=192.168.1.6
  • Désactiver les diffusions UDP :
#listen=10000
  • Modifier le verrouillage de l'hôte en cas d'échec de connexion à 3 :
blockhost_failures=3
  • Augmentez le délai de verrouillage de l'hôte à 120 :
blockhost_time=120
  • Définissez le verrouillage de l'utilisateur en cas d'échec de connexion sur 3 :
blockuser_failures=3
  • Définissez le délai de verrouillage de l'utilisateur sur 120 :
blockuser_time=120
  • Remplacez le domaine par autre chose :
domaine=cpanel
  • Connecter les connexions à utmp :
utmp=1

Installez le thème Webmin Tiger :

  • Connectez-vous à webmin via https://192.168.1.5:10000 en utilisant root et votre mot de passe.
  • Aller sur Webmin ? Configuration ? thèmes Webmin.
  • Sélectionnez Depuis l'URL ftp ou http et entrez http://www.stress-free.co.nz/files/theme-stressfree.tar.gz
  • Cliquez sur Installer le thème.
  • Cliquez sur "Revenir à la liste des thèmes".
  • Sélectionnez StressFree comme thème actuel, puis cliquez sur Modifier.

Installez le module php-pear :

  • Aller sur Webmin ? configuration webmin ? modules webmin.
  • Sélectionnez le module tiers dans et entrez http://www.webmin.com/download/modules/php-pear.wbm.gz.
  • Cliquez sur installer le module.

Installer virtualmin :

  • Aller sur Webmin ? configuration webmin ? modules webmin.
  • Sélectionnez installer à partir d'une URL ftp ou http et entrez http://download.webmin.com/download/virtualmin/virtual-server-3.51.gpl.wbm.gz
  • Cliquez sur installer le module.

Supprimer les modules indésirables Aller sur webmin ? configuration webmin ? supprimez et sélectionnez ce qui suit :

  • Client ADSL
  • Système de sauvegarde Bacula
  • Graveur de CD
  • Serveur CVS
  • Changer les mots de passe du cluster
  • Fichiers de copie de cluster
  • Tâches cron de cluster
  • Commandes shell du cluster
  • Progiciels de cluster
  • Cluster les serveurs usermin
  • Cluster les utilisateurs et les groupes
  • Serveurs Webmin en cluster
  • Interface de commande
  • Moteur de configuration
  • Commandes personnalisées
  • Serveur DHCP
  • Récupération des e-mails Fetchmail
  • Gestionnaire de fichiers
  • Proxy ftp Frox
  • Tunnels HTTP
  • Moniteur de rythme cardiaque
  • VPN IPsec
  • Serveur de messagerie instantanée Jabber
  • Serveur LDAP
  • Gestion des volumes logiques
  • Gestionnaire de liste Majordomo
  • Exportations NFS
  • Client et serveur NIS
  • Serveur OpenSLP
  • Serveur de connexion PPP
  • Client PPP commuté
  • Serveur VPN PPTP
  • Client VPN PPTP
  • Serveur de base de données Postgresql
  • Administrateur de l'imprimante
  • Serveur ProFTPD
  • Serveur de messagerie QMAIL
  • État du lecteur SMART
  • Connexion SSH/Telnet
  • Tunnels SSL
  • Partage de fichiers Windows SAMBA
  • Commandes planifiées
  • Serveur de messagerie Sendmail
  • Pare-feu Shoreline
  • Générateur de rapports d'analyse de calmars
  • Serveur proxy Squid
  • Serveur de messagerie vocale
  • Serveur WU-FTP
  • Serveur Idmapd

Redémarrez Webmin :

redémarrage du service webmin

Configurer le référentiel Rpmforge

rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

REMARQUE :Si vous utilisez une architecture différente, vérifiez sur https://rpmrepo.org/RPMforge/Using le bon RPM
  • Désactivez le référentiel (de sorte que les packages de base ne soient pas écrasés) modifiez /etc/yum.d/rpmforge.repo et définissez l'option suivante :
activé =0

Installer les packages supplémentaires requis

  • Installer clamav :

yum --enablerepo=rpmforge install clamav clamav-db clamav-milter clamd -y
wget http://www.topdog-software.com/files/clamav-milter.patch
patch /etc/init .d/clamav-milter chkconfig --del clamd
freshclam

  • Installez les signatures sanesecurity :

wget http://www.sanesecurity.co.uk/clamav/update_sanesecurity.txt -O /usr/local/bin/update_sanesecurity.sh
chmod +x /usr/local/bin/update_sanesecurity.sh
ln -s /usr/local/bin/update_sanesecurity.sh /etc/cron.hourly/
/usr/local/bin/update_sanesecurity.sh

  • Installez l'accélérateur PHP :

miam --enablerepo=rpmforge install php-eaccelerator

  • Installez le nouveau package spamassassin de rpmforge :

miam --enablerepo=rpmforge mettre à jour le spamassassin

  • Installez spamass-milter :

miam --enablerepo=rpmforge installer spamass-milter

  • Installez les modules perl requis par spamassassin :

perl -MCPAN -e 'install Mail::SPF'
perl -MCPAN -e 'install Mail::SPF::Query'
perl -MCPAN -e 'install Net::Ident'
perl -MCPAN -e 'install IP::Country::Fast'
perl -MCPAN -e 'install Mail::DomainKeys'
perl -MCPAN -e 'install Mail::DKIM'

  • Installez fuzzyOCR :

yum --enablerepo=rpmforge install netpbm-progs ocrad gocr gifsicle giflib-utils giflib -y
svn co https://svn.own-hero.net/fuzzyocr/trunk/devel/
cd devel/
perl -MCPAN -e 'install String::Approx'
perl -MCPAN -e 'install Time::HiRes'
perl -MCPAN -e 'install Log::Agent'

cp -rv {FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/} /etc/mail/spamassassin
chcon -R system_u:object_r :etc_mail_t /etc/mail/spamassassin/{FuzzyOcr.cf,FuzzyOcr.scansets,FuzzyOcr.preps,FuzzyOcr.pm,FuzzyOcr.words,FuzzyOcr/}
wget http://www.gbnetwork.co.uk/mailscanner /FuzzyOcr.words -O /etc/mail/spamassassin/FuzzyOcr.words

  • Installer Razor :

yum --enablerepo=rpmforge install razor-agents -y

  • Installer le cube rond :

yum install php-imap
rpm -Uvh http://www.topdog-software.com/oss/roundcube/roundcube-0.1-rc2.noarch.rpm

  • Installer imapproxy :

wget http://imapproxy.org/downloads/up-imapproxy-1.2.6.tar.gz
rpmbuild -tb up-imapproxy-1.2.6.tar.gz
rpm -Uvh /usr/ src/redhat/RPMS/i386/up-imapproxy-1.2.6-1.i386.rpm

  • Activer les services :

chkconfig --level 345 httpd sur
chkconfig --level 345 postfix sur
chkconfig --level 345 spamassassin sur
chkconfig --level 345 spamass-milter sur
chkconfig --level 345 clamav-milter sur
chkconfig --level 345 mysqld sur
chkconfig --level 345 named sur
chkconfig --level 345 vsftpd sur
chkconfig --level 345 dovecot sur
chkconfig --level 345 imapproxy on

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1 - Page 3

Configuration

Configuration de Postfix

Introduction

Nous allons configurer postfix avec les fonctionnalités suivantes :

  • Hébergement virtuel
  • Prévention UCE
  • Anti-virus
  • Authentification SMTP
  • TLS
  • RBL
  • FPS
  • Atténuation des attaques

L'ajout de comptes et de domaines doit être configuré via virtualmin bien que cela puisse également être fait manuellement. La configuration est conçue pour être respectueuse des ressources et devrait donc pouvoir fonctionner sur des machines qui ne sont pas surspécifiées, ce qui permet de mieux utiliser les ressources. Pour le rendre convivial pour les ressources, nous n'utilisons pas de bases de données externes pour stocker les informations des utilisateurs virtuels comme la plupart des autres procédures, ainsi que l'utilisation de milters pour la vérification des spams et des virus au lieu d'exécuter amavisd-new.

Les bases

Pour commencer, nous allons configurer les bases telles que le nom d'hôte, l'origine du courrier, les réseaux, le répertoire spool des cartes de hachage. Toutes ces options de configuration doivent être ajoutées à /etc/postfix/main.cf sauf indication contraire. Des exemples de fichiers de configuration sont disponibles en téléchargement à la fin de cette page.

command_directory =/usr/sbindaemon_directory =/usr/libexec/postfixmydomain =example.commyorigin =$mydomainmynetworks =127.0.0.0/8alias_maps =hash:/etc/aliasesalias_database =hash:/etc/aliasescanonical_maps =hash:/etc/postfix /canonicalsender_canonical_maps =hash:/etc/postfix/canonicalrecipient_canonical_maps =hash:/etc/postfix/canonicalvirtual_alias_maps =hash:/etc/postfix/virtualmail_spool_directory =/var/spool/mail

Maildir

Nous utiliserons le format maildir bien amélioré par opposition au format mbox par défaut :

home_mailbox =Maildir/

SASL

Pour effectuer l'authentification SMTP, nous utiliserons SASL, mais nous n'utiliserons pas Cyrus SASL car cela nous oblige à exécuter le démon saslauthd, nous utiliserons à la place dovecot sasl puisque nous exécuterons dovecot pour IMAP et POP3 tuant ainsi 2 oiseaux avec un pierre.

smtpd_sasl_type =dovecotsmtpd_sasl_path =privé/authsmtpd_sasl_auth_enable =oui

TLS

Nous avons besoin de TLS pour nous assurer que les mots de passe en texte brut ne sont pas transmis sur le réseau lors de l'authentification SMTP. Les serveurs prenant en charge TLS sont également capables de communiquer avec ce serveur via une connexion sécurisée.

Les instructions sur la création de votre certificat de serveur signé par cacert.org sont disponibles ici.

  • Définir la source aléatoire TLS :
tls_random_source =dev :/dev/urandom
  • Activer le serveur TLS :
smtpd_use_tls =yessmtpd_tls_key_file =/etc/pki/postfix/key.pemsmtpd_tls_cert_file =/etc/pki/postfix/server.pemsmtpd_tls_CAfile =/etc/pki/postfix/root.crtsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600ssmtpd_tls_session_cache_database =btree:/var /spool/postfix/smtpd_tls_cache
  • Activer TLS client :
smtp_use_tls =yessmtp_tls_key_file =/etc/pki/postfix/key.pemsmtp_tls_cert_file =/etc/pki/postfix/server.pemsmtp_tls_CAfile =/etc/pki/postfix/root.crtsmtp_tls_session_cache_database =btree:/var/spool/postfix/smtp_tls_cachesmtp_tls_note_starttls_offer =oui

Prévention des spams

  • Exiger un EHLO/HELO valide :
smtpd_helo_required =oui
  • Éviter les attaques de collecte d'adresses e-mail :
disable_vrfy_command =oui
  • Changez les codes de rejet en permanents (par défaut, postfix émet des codes d'erreur 4xx, ce qui implique une défaillance temporaire, nous avons besoin de 5xx pour les erreurs permanentes) :
unverified_recipient_reject_code =550unverified_sender_reject_code =550unknown_local_recipient_reject_code =550
  • Configurer la vérification de l'adresse de l'expéditeur :
address_verify_map =btree :/var/spool/postfix/verifysmtpd_sender_restrictions =hash :/etc/postfix/sender_access
  • Créez /etc/postfix/sender_access et ajoutez :
#sample /etc/postfix/sender_access contient fréquemment usurpé domainsaol.com. 
  • Atténuez les attaques de zombies et de clients défectueux :
smtpd_error_sleep_time =5ssmtpd_soft_error_limit =10smtpd_hard_error_limit =20
  • Autoriser uniquement le pipelining à partir de clients authentifiés :
smtpd_data_restrictions=reject_unauth_pipelining
  • Installez postfix-policyd-spf-perl et activez la prise en charge SPF :

wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/

Ajoutez ceci à /etc/postfix/master.cf :

spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • Ajouter la prise en charge de DKIM :

Des instructions sur l'ajout de la prise en charge de DKIM sont disponibles ici.

  • Ajouter la prise en charge des clés de domaine :

Des instructions sur l'ajout de la prise en charge des clés de domaine sont disponibles ici.

  • Le fonctionnement de tout dépend de l'option smtpd_recipient_restrictions, nous la définissons donc ci-dessous :
smtpd_recipient_restrictions =permit_mynetworks permit_sasl_authenticated reject_unauth_destination check_recipient_access hash:/etc/postfix/access reject_unknown_recipient_domain reject_unknown_sender_domain reject_unverified_recipient reject_non_fqdn_recipient reject_non_fqdn_sender reject_invalid_hostname reject_rbl_client list.dsbl.org reject_rbl_client zen.spamhaus.org reject_rbl_client l1.spews.dnsbl.sorbs.net reject_rbl_client combined.njabl. org rejet_rbl_client bl.spamcop.net rejet_rhsbl_sender dsn.rfc-ignorant.org rejet_rhsbl_sender bogusmx.rfc-ignorant.org rejet_rhsbl_sender rhsbl.sorbs.net rejet_rhsbl_client dsn.rfc-ignorant.org rejet_rhsbl_client bogusmx.rfc-ignorant.org rejet_rhsbl_client net check_policy_service unix:private/spfpolicy

Milters [SpamAssassin &ClamAV]

Pour votre classification de spam à l'aide de spamassassin et l'analyse de virus à l'aide de clamav, nous utiliserons l'interface milter de postfix au lieu d'utiliser le démon amavisd-new gourmand en ressources. C'est une façon très efficace de le faire car nous n'avons même pas besoin d'exécuter clamd le clamav milter effectue le scan lui-même.

smtpd_milters =unix :/var/clamav/clmilter.socket unix :/var/run/spamass.socknon_smtpd_milters =unix :/var/clamav/clmilter.socket unix :/var/run/spamass.sock

Créer des fichiers de base de données

postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_access

Exemples de fichiers de configuration

  • main.cf
  • master.cf
  • canonique
  • virtuel

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1 - Page 4

Configuration du pigeonnier

Introduction

Cela configurera dovecot comme notre serveur IMAP/POP3.

Configuration de base

Nous allons configurer dovecot pour IMAP et POP3 et désactiver SSL.

protocoles =imap pop3listen =*ssl_listen =*ssl_disable =yes

Maildir

Nous utiliserons le format maildir par opposition au format mbox par défaut.

mail_location =maildir :~/Maildir

Authentification &SASL

Configurez dovecot pour utiliser LOGIN et PLAIN comme mécanismes d'authentification car de nombreux clients MS ne peuvent pas utiliser les mécanismes d'authentification cryptés. Nous avons également configuré le socket SASL pour permettre à postfix d'authentifier les connexions SMTP à l'aide de dovecot.

auth default { mecanismes =plain login passdb pam { } userdb passwd { } socket listen { client { path =/var/spool/postfix/private/auth mode =0660 user =postfix group =postfix } }}

Problèmes clients

Certains clients MS imap de la famille Outlook ont ​​des problèmes avec leurs implémentations IMAP et POP3, nous devons donc les prendre en compte en configurant ces solutions :

protocole imap { imap_client_workarounds =outlook-idle delay-newmail}protocole pop3 { pop3_client_workarounds =outlook-no-nuls oe-ns-eoh}

Exécuter IMAP derrière le proxy

Le serveur imap est configuré pour s'exécuter sur le port 10143 de sorte que le port 143 est géré par le serveur proxy imap qui améliorera les performances de votre messagerie Web en mettant en cache les connexions au serveur imap. L'option d'écoute sous protocole configure cela.

protocol imap { imap_client_workarounds =outlook-idle delay-newmail listen =127.0.0.1:10143}

Exemples de fichiers

  • dovecot.conf

Configurer le proxy Imap

Présentation

imapproxy a été écrit pour compenser les clients de messagerie Web incapables de maintenir des connexions persistantes à un serveur IMAP. La plupart des clients de messagerie Web doivent se connecter à un serveur IMAP pour presque chaque transaction. Ce comportement peut entraîner des problèmes de performances tragiques sur le serveur IMAP. imapproxy essaie de résoudre ce problème en laissant les connexions au serveur ouvertes pendant une courte période après la déconnexion d'un client de messagerie Web. Lorsque le client de messagerie Web se reconnectera, imapproxy déterminera s'il existe une connexion en cache disponible et la réutilisera si possible. - selon le site imapproxy.

Configuration

Effectuez les modifications suivantes dans le fichier /etc/imapproxy.conf :

server_hostname 127.0.0.1cache_size 3072listen_port 143server_port 10143cache_expiration_time 900proc_username nobodyproc_groupname nobodystat_filename /var/run/pimpstatsprotocol_log_filename /var/log/imapproxy_protocol.logsyslog_facility LOG_MAILsend_tcp_keepalives noenable_select_cache yesforeground_mode noforce_tls noenable_admin_commands no

Exemples de fichiers

  • imapproxy.conf

Configuration de la liaison

Présentation

Bind sera configuré chrooté pour améliorer la sécurité, nous utiliserons également des vues pour éviter les abus du serveur DNS.

Configuration de base

La configuration de base désactive par défaut, les requêtes récursives et les transferts de zone. Nous obscurcissons également la version de BIND que nous exécutons afin de ne pas être touchés par les vulnérabilités du jour zéro des script kiddies.

options { répertoire "/var/named" ; fichier pid "/var/run/named/named.pid" ; écoute { 127.0.0.1; 192.168.1.5 ; } ; version "juste deviner" ; allow-recursion { "localhost" ; } ; allow-transfer { "aucun" ; };};

Journalisation

La journalisation est personnalisée pour supprimer les erreurs "lame-server" ennuyeuses et mettre à jour les erreurs qui apparaissent dans les journaux :

journalisation { mise à jour de la catégorie { null ; } ; catégorie mise à jour-sécurité { null ; } ; catégorie serveurs boiteux { null ; };};

Chrooter

Assurez-vous que ceci est défini dans le fichier /etc/sysconfig/named (il est généralement défini par le package bind-chroot) :

ROOTDIR=/var/named/chroot

Serveur ponctuel

Laissez la machine utiliser ce serveur pour la résolution DNS, modifiez /etc/resolv.conf et ajoutez :

serveur de noms 127.0.0.1

Exemples de fichiers

  • named.conf
  • /etc/sysconfig/named

Configuration Vsftpd

Présentation

Nous utiliserons vsftpd comme serveur ftp. Cela a un meilleur bilan que les serveurs proftpd et wuftpd.

Paramètre de base

Notre configuration de base désactive les utilisateurs anonymes et permet aux utilisateurs du système local de se connecter au serveur ftp.

anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESftpd_banner=Welcome to example.com serverpam_service_name=vsftpdtcp_wrappers=YES

Chrooter

Tous les utilisateurs seront chrootés dans leurs répertoires personnels (à l'exception des noms d'utilisateur dans le fichier /etc/vsftpd/chroot_list), ce qui signifie qu'ils ne peuvent pas sortir et voir les fichiers des autres utilisateurs.

chroot_list_enable=OUIchroot_local_user=OUIchroot_list_file=/etc/vsftpd/chroot_list

Utilisateurs bannis

Les utilisateurs ajoutés au fichier /etc/vsftpd/user_list ne seront pas autorisés à se connecter :

userlist_enable=OUI

Exemples de fichiers

  • vsftpd.conf
  • liste_utilisateurs
  • chroot_list

Guide d'hébergement virtuel avec Virtualmin sur CentOS 5.1 - Page 5

Configuration Clamav Milter

  • Modifiez /etc/sysconfig/clamav-milter :
CLAMAV_FLAGS=" --config-file=/etc/clamd.conf --force-scan --local --max-children=5 --sendmail-cf=--outgoing --quiet"SOCKET_ADDRESS="local :/var/clamav/clmilter.socket"
  • Corrigez le fichier init pour corriger les autorisations de socket :

wget http://www.topdog-software.com/files/clamav-milter.patch
patch /etc/init.d/clamav-milter

Configuration MySQL

Configuration de base

  • Écoutez uniquement l'hôte local, modifiez /etc/my.cnf sous la section mysqld :
bind-address =127.0.0.1

Définir le mot de passe racine

  • Définissez le mot de passe root :

service mysqld start
mysqladmin -u root password NEWPASSWORD

Configuration de SpamAssassin

Configuration de base

required_hits 5report_safe 0rewrite_header Sujet [SPAM]

Créer une base de données MySQL

  • Créez la base de données :

mysqladmin -p créer des baies

  • Remplir la base de données :

mysql -p bayes

  • Créez l'utilisateur :

mysql -p
mysql> GRANT ALL ON bayes.* TO [email protected] IDENTIFIED BY 'password';

Configurer pour utiliser la base de données

  • Modifiez le fichier /etc/mail/spamassassin/local.cf et ajoutez :
bayes_store_module Mail::SpamAssassin::BayesStore::MySQLbayes_sql_dsn DBI:mysql:bayes:localhostbayes_sql_override_username bayesbayes_sql_username bayesbayes_sql_password mot de passe

Configurer FuzzyOCR

Nous stockerons les hachages d'images dans une base de données mysql pour améliorer les performances de sorte que les images que nous avons déjà numérisées ne soient pas numérisées à nouveau car l'OCR est une activité gourmande en ressources.

Créer une base de données MySQL

  • Le script sql crée la base de données et les tables et ajoute un utilisateur fuzzyocr avec le mot de passe fuzzyocr :

mysql -p

  • Modifier le mot de passe :

mysqladmin -u fuzzyocr -p mot de passe fuzzyocr

Paramètres de base

  • Modifiez /etc/mail/spamassassin/FuzzyOCR.cf et définissez les options de base :
focr_path_bin /usr/bin:/usr/local/binfocr_minimal_scanset 1focr_autosort_scanset 1focr_enable_image_hashing 3focr_logfile /tmp/FuzzyOcr.log

Faire en sorte que FuzzyOCR utilise la base de données

  • Modifiez le fichier /etc/mail/spamassassin/FuzzyOcr.cf et ajoutez :
focr_mysql_db FuzzyOcrfocr_mysql_hash Hashfocr_mysql_safe Safefocr_mysql_user fuzzyocrfocr_mysql_pass mot de passefocr_mysql_host localhostfocr_mysql_port 3306focr_mysql_socket /var/lib/mysql/mysql.sock 

Mises à jour des règles SARE

  • Importez la clé GPG utilisée pour signer les règles :

mkdir /etc/mail/spamassassin/sa-update-keys/
chmod 700 /etc/mail/spamassassin/sa-update-keys/
wget http://daryl.dostech.ca/sa- update/sare/GPG.KEY
sa-update --import GPG.KEY

  • Créez le fichier de chaînes /etc/mail/spamassassin/sare-sa-update-channels.txt :
updates.spamassassin.org72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net70_sare_evilnum0.cf.sare.sa-update.dostech.net70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net70_sare_html0.cf.sare .sa-update.dostech.net70_sare_html_eng.cf.sare.sa-update.dostech.net70_sare_header0.cf.sare.sa-update.dostech.net70_sare_header_eng.cf.sare.sa-update.dostech.net70_sare_specific.cf.sare.sa -update.dostech.net70_sare_adult.cf.sare.sa-update.dostech.net72_sare_bml_post25x.cf.sare.sa-update.dostech.net99_sare_fraud_post25x.cf.sare.sa-update.dostech.net70_sare_spoof.cf.sare.sa-update .dostech.net70_sare_random.cf.sare.sa-update.dostech.net70_sare_oem.cf.sare.sa-update.dostech.net70_sare_genlsubj0.cf.sare.sa-update.dostech.net70_sare_genlsubj_eng.cf.sare.sa-update.dostech .net70_sare_unsub.cf.sare.sa-update.dostech.net70_sare_uri0.cf.sare.sa-update.dostech.net70_sare_obfu0.cf.sare.sa-update.dostech.net70_sare_stocks.cf.sare.sa-update.dostech.net 
  • Créez un script de mise à jour /usr/local/bin/update-sa :
#!/bin/bash##sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A &>/var/log/sa-updates. journal
  • Rendez-le exécutable et ajoutez-le à cron :

chmod +x /usr/local/bin/update-sa
ln -s /usr/local/bin/update-sa /etc/cron.daily/
ln -s /usr/local/bin /update-sa /etc/cron.hourly/

Spamass-milter Setup

Basic Configuration

  • Edit /etc/sysconfig/spamass-milter:
SOCKET=/var/run/spamass.sockEXTRA_FLAGS="-m -r 8"

Patch

We need to patch the init file to fix the permissions of the socket created such that postfix is able to use the socket.

wget http://www.topdog-software.com/files/spamass-milter.patch
patch /etc/rc.d/init.d/spamass-milter

Apache Setup

Disable Modules

We will disable some modules that we are not using thus freeing up memory and also improving security.

  • Edit /etc/httpd/conf/httpd.conf and comment out the modules as below.
#LoadModule ldap_module modules/mod_ldap.so#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so#LoadModule dav_module modules/mod_dav.so#LoadModule status_module modules/mod_status.so#LoadModule dav_fs_module modules/mod_dav_fs.so#LoadModule proxy_module modules/mod_proxy.so#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so#LoadModule proxy_http_module modules/mod_proxy_http.so#LoadModule proxy_connect_module modules/mod_proxy_connect.so#LoadModule cache_module modules/mod_cache.so#LoadModule disk_cache_module modules/mod_disk_cache.so#LoadModule file_cache_module modules/mod_file_cache.so#LoadModule mem_cache_module modules/mod_mem_cache.so
  • Edit /etc/httpd/conf.d/proxy_ajp.conf and comment out as below:
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Listen To One IP For HTTPS

Apache has to be configured to listed to one address for port 443 as webmin will be using the same port. Edit /etc/httpd/conf.d/ssl:

Listen 192,168.1.6:443

Enable Gzip Compression

We setup gzip compression via the mod_deflate module to improve web server performance and to cut down on bandwidth usage by compressing responses to the client.

SetOutputFilter DEFLATEBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0[678] no-gzipBrowserMatch \bMSIE !no-gzip !gzip-only-text/htmlSetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-varyHeader append Vary User-Agent env=!dont-vary

Set up logging for the deflate module:

DeflateFilterNote deflate_ratioLogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate:%{deflate_ratio}n pct." vhost_with_deflate_infoCustomLog logs/deflate_access_log vhost_with_deflate_info

Increase PHP Max Memory

Edit the file /etc/php.ini and set the following:

memory_limit =64M

Enable Virtual Hosting

NameVirtualHost *:80

Create Default Virtual Host

This needs to be the first virtual host, it will be the default on the server the equivalent of the server with out virtual hosting.

 Servername localhost.localdomain Serveradmin [email protected]

Roundcube Webmail Setup

Create Database

  • Create the database and add the roundcube user.

mysqladmin -p create roundcube
mysql -p
mysql> GRANT ALL ON roundcube.* TO [email protected] IDENTIFIED BY 'password';

  • Initialize the database:

mysql -u roundcube -p roundcube

Basic Config

  • Configure database DSN in /var/www/roundcube/config/db.inc.php:
$rcmail_config['db_dsnw'] ='mysql://roundcube:[email protected]/roundcube';
  • Configure roundcube in /var/www/roundcube/config/main.inc.php:
$rcmail_config['default_host'] ='localhost';$rcmail_config['default_port'] =143;$rcmail_config['virtuser_file'] ='/etc/postfix/virtual';$rcmail_config['smtp_server'] ='localhost';$rcmail_config['smtp_port'] =25;$rcmail_config['smtp_helo_host'] ='localhost';

Set Up Catch All Virtualhost

As we will be providing webmail for all domains that are created on the system we need to setup a catch all virtualhost that can display roundcube when ever a user accesses http://webmail.domainname. Edit /etc/httpd/conf/httpd.conf and append:

ServerName webmail.example.comServerAlias webmail.*DocumentRoot /var/www/roundcubeOptions -Indexes IncludesNOEXEC FollowSymLinksallow from all

Firewall Setup

Introduction

This is a basic firewall it may not suit your needs, firewalling is an art so i recommend to read into it to improve on this basic one.

Basic Config

Add these rules in your configuration file /etc/sysconfig/iptables:

*raw:PREROUTING ACCEPT [0:0]:OUTPUT ACCEPT [0:0]COMMIT*nat:PREROUTING ACCEPT [0:0]:POSTROUTING ACCEPT [0:0]:OUTPUT ACCEPT [0:0]COMMIT*mangle:PREROUTING ACCEPT [0:0]:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:POSTROUTING ACCEPT [0:0]COMMIT*filter:FORWARD DROP [0:0]:INPUT DROP [0:0]:OUTPUT DROP [0:0]-A INPUT -i lo -j ACCEPT-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT-A INPUT -p tcp -m multiport -j ACCEPT --dports 80,443,25,110,143,53-A INPUT -p udp -m udp --dport 53 -j ACCEPT-A INPUT -p icmp -m icmp -m limit --icmp-type 8 --limit 5/min -j ACCEPT-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A OUTPUT -s 127.0.0.1 -j ACCEPT-A OUTPUT -s 192.168.1.5 -j ACCEPT-A OUTPUT -s 192.168.1.6 -j ACCEPTCOMMIT

Activate Config

service iptables restart

Virtual Hosting Howto With Virtualmin On CentOS 5.1 - Page 6

Configure Virtualmin

Introduction

Virtualmin is a powerful and flexible hosting control panel that integrates with webmin. We will be using it to provide the virtual hosting functions such as creation of domains, accounts and maintaining configurations on the system.

Start Services

You need to start up services that are required to be able to configure virtualmin. Start the following services:

service named start
service spamassassin start
service spamass-milter start
service clamav-milter start
service postfix start
service dovecot start
service imapproxy start
service httpd start

Initial Settings

MySQL

Webmin needs to be able to communicate with mysql since we have set a password for mysql we need to set that up in webmin, go to servers ? mysql and enter this information:

Configure Features

You need to enable the features and plugins that we want to use. On login this is the screen that you will see.

  • Enable the following features and save
    • Home directory
    • Administration user
    • Mail for domain
    • BIND DNS domain
    • Apache website
    • Webalizer reporting
    • Log file rotation
    • Mysql database
    • Webmin user

Configure Server Templates

Server template are used to customize the services and to create packages for different hosting account types.

Apache Template

You can make changes to the way apache virtual hosts are created by editing this template, The defaults however will do for purposes of this howto.

Domain Owner Template

This template is used to configure various server limits such as number of mailboxes,aliases,databases,virtual servers and other options like bandwidth limits, admin abilities. For this howto we will use the default values.

Home Directory Template

This template allows you to set a skel directory to hold setting for new users for this howto we will use the defaults.

Administration User

This template lets you set the quota for the virtual server and the admin user for this howto we will use the default quota 1GB.

Mail For Domain Template

This template sets various mail related options, we will modify the email message sent on server creation to have the content below:

The following virtual server has been set up successfully :Domain name:${DOM}Hosting server:${HOSTNAME}${IF-VIRT}Virtual IP address:${IP}${ENDIF-VIRT}Administration login:${USER}Administration password:${PASS}${IF-WEBMIN}Administration URL:${WEBMIN_PROTO}://www.${DOM}:${WEBMIN_PORT}/${ENDIF-WEBMIN}${IF-WEB}Website:http://www.${DOM}/${IF-WEBALIZER}Webalizer log reporting:Enabled${ELSE-WEBALIZER}Webalizer log reporting:Disabled${ENDIF-WEBALIZER}${ENDIF-WEB}${IF-MAIL}Email domain:${DOM}SMTP server:mail.${DOM}POP3 server:mail.${DOM}Webmail:webmail.${DOM}${ENDIF-MAIL}${IF-DNS}DNS domain:${DOM}Nameserver:${HOSTNAME}${ENDIF-DNS}${IF-MYSQL}MySQL database:${DB}MySQL login:${MYSQL_USER}MySQL password:${PASS}${ENDIF-MYSQL}${IF-POSTGRES}PostgreSQL database:${DB}PostgreSQL login:${USER}PostgreSQL password:${PASS}${ENDIF-POSTGRES}

We will leave the other options as the defaults.

BIND DNS Domain Template

This template is used to customize the zones that will be created by virtualmin. The changes to be made are adding a spf record, add the following records to auto generated text box (replace ns1.home.topdog-software.com. with your slave server):

@ IN NS ns1.home.topdog-software.com.;slaveadmin IN A 192.168.1.6;virtualminwebmail IN A 192.168.1.5;webmail

In the directives text box add the following with the IP address of your slave server such that the slave is allowed to do zone transfers.

allow-transfer { 192.168.1.2; };

MySQL Database Template

Contains options on creation of databases by virtualmin, for the howto we will use the defaults.

Webmin Login Template

Contains option on creation of new users by virtualmin, for the howto we will use the defaults.

Create Virtual Server

Finally we have a working virtual server system, lets create our first virtual server. Go to servers ? virtualmin virtual servers and click add new virtual server, owned by new user.

Fill in the require fields and click create.

Add a mail user to the domain. click on the domain name, then click edit mail and FTP users, then add user and fill in the information.

Testing

Postfix

Test SMTP

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

From:[email protected]
To:[email protected]
Subject:This is a test
Hi
This is a test
.
250 2.0.0 Ok:queued as 4ACCC7C5A6

telnet 192.168.1.5 25
Trying 192.168.1.5...
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
ehlo me
250-hosting1
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Test dkim

Send a mail to [email protected]

Test domainkeys

Send a mail to [email protected]

Dovecot

Test POP3

telnet 192.168.1.5 110
+OK Dovecot ready.
user andrew.example
+OK
pass password
+OK Logged in.
quit
+OK Logging out.

Test IMAP

telnet 192.168.1.5 143
* OK Dovecot ready.
01 login andrew.example password
01 OK User logged in
01 list "" "*"

* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Junk"
* LIST (\HasNoChildren) "." "Sent"

* LIST (\HasNoChildren) "." "INBOX"
01 OK List completed.
01 logout
* BYE LOGOUT received
01 OK Completed

BIND

dig example.com @127.0.0.1

Clamav-milter

We are using the test virus from www.eicar.org.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
550 5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net
quit
221 2.0.0 Bye

Take a lot at your /var/log/maillog you should see something like this:

73BC87C4E4:milter-reject:END-OF-MESSAGE from localhost[127.0.0.1]:5.7.1 virus Eicar-Test-Signature detected by ClamAV - http://www.clamav.net; from= to= proto=SMTP helo=

Spamass-milter

We are using the test message from http://spamassassin.apache.org/gtube/.

telnet 192.168.1.5 25
Connected to localhost.
Escape character is '^]'.
220 tds mail cluster
helo me
250 hosting1
mail from:[email protected]
250 2.1.0 Ok
rcpt:[email protected]
250 2.1.0 Ok
DATA
354 End data with .

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
550 5.7.1 Blocked by SpamAssassin
quit
221 2.0.0 Bye

You will see this in your log files:

spamd:result:Y 1002 - AWL,GTUBE,MISSING_SUBJECT,TVD_SPACE_RATIO,UNPARSEABLE_RELAY scantime=0.5,size=723,user=root,uid=99,required_score=5.0,

Panels
  1. Comment installer un serveur FTP sur CentOS 7 avec VSFTPD

  2. Comment configurer un serveur FTP avec VSFTPD sur CentOS 7

  3. Comment configurer un serveur FTP avec VSFTPD sur CentOS 8

  4. Comment installer AWStats avec certains plug-ins sur un serveur avec ISPConfig

  5. Comment installer SpamAssassin sur un serveur virtuel avec CentOS 6

Comment installer LiteSpeed ​​Web Server dans WHM/cPanel avec Centos 7.x ?

CentOS Web Panel - Panneau de contrôle d'hébergement Web gratuit tout-en-un pour CentOS / RHEL 6

Le serveur parfait - CentOS 6.1 x86_64 avec Apache2 [ISPConfig 3]

Le serveur parfait - CentOS 6.2 x86_64 avec nginx [ISPConfig 3]

Le serveur parfait - CentOS 6.2 x86_64 avec Apache2 [ISPConfig 3]

Le serveur parfait - CentOS 6.1 x86_64 avec nginx [ISPConfig 3]