GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Guida all'hosting virtuale con Virtualmin su CentOS 5.1

Guida all'hosting virtuale con Virtualmin su CentOS 5.1

Versione 1.0.1
Autore:Andrew Colin Kissa

Introduzione

Questo tutorial mostra come configurare un server CentOS 5.x per offrire tutti i servizi necessari agli hoster web virtuali. Questi includono web hosting, server SMTP con (SMTP-AUTH e TLS, SPF, DKIM, Domainkeys), DNS, FTP, MySQL, POP3/IMAP, Firewall, Webalizer per le statistiche.

Userò il seguente software:

  • Server di database:MySQL 5.0.22
  • Server di posta:Postfix 2.3.3
  • Server NS:BIND9 9.3.3
  • Server Web:Apache 2.2.3 /PHP 5.1.6
  • Server FTP:Vsftpd 2.0.5
  • Server POP3/IMAP:Dovecot 1.0
  • Webalizer:per le statistiche del sito 2.01_10
  • Virtualmin:Pannello di controllo

Installazione del sistema operativo

Requisiti

Per installare il sistema avrai bisogno

  • CentOS 5.1 Installa supporto
  • Una buona connessione a Internet

Installa il sistema di base

NOTA Alcune fasi dell'installazione non sono descritte qui nell'interesse di mantenere la procedura breve, ad esempio le fasi di configurazione di grub sono tralasciate.

  • Avvia dal supporto DVD o CD e al prompt di avvio digita linux text.
  • Salta il test multimediale.
  • Seleziona la tua lingua:

  • Seleziona il layout della tastiera:

  • Configura la tua rete, userò dhcp se non hai dhcp puoi usare voci statiche.

  • Seleziona Sì per inizializzare l'unità:

  • Seleziona layout personalizzato per il tipo di partizionamento:

  • Crea partizioni:

  • Configura rete:

Imposta indirizzo IP e maschera di rete:

Imposta gateway e server DNS:

Imposta il nome host:

  • Imposta il fuso orario:

  • Imposta la password di root:

  • Seleziona il gruppo di server e seleziona Personalizza la selezione del software:

  • I gruppi di pacchetti selezionano come segue:
    • Server dei nomi DNS
      • bind-chroot

  • Editori
    • vim potenziato
  • Server FTP
  • Server di posta
    • colombaia
    • assassino di spam
    • suffisso

  • Database MySQL
    • server mysql

  • Server Web
    • mod_ssl
    • webalizzatore
    • php
    • php-pera
    • http-suexec
    • php-mysql

Avvia l'installazione:

Il file system è formattato:

L'installazione verrà eseguita:

Riavvia il sistema:

Guida all'hosting virtuale con Virtualmin su CentOS 5.1 - Pagina 2

Servizi da disabilitare

Per migliorare la sicurezza e liberare risorse di sistema sul sistema, dobbiamo disabilitare tutti i servizi che non sono richiesti. Puoi eseguire questo script per farlo per te.

  • accedi
  • anacron
  • apmd
  • autof
  • Bluetooth
  • tazze
  • primo avvio
  • gpm
  • aldemone
  • bus di messaggi
  • mdmonitor
  • nascosto
  • ip6tables
  • kudzu
  • monitor lvm2
  • netfs
  • nfslock
  • pcscd
  • mappa delle porte
  • rpcgssd
  • rpcidmapd
  • invia email
  • smartd
  • yum-aggiornamentid

Nozioni di base

Dobbiamo risolvere alcuni problemi per preparare il sistema alla configurazione.

  • Installa aggiornamenti

yum aggiornamento

  • Passa l'mta a postfix

alternative --config mta

Ci sono 2 programmi che forniscono 'mta'.
Comando di selezione
------------------------------ ------------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Invio per mantenere la selezione corrente[+], oppure digitare il numero di selezione:1

  • Installa la configurazione del server dei nomi della cache:

yum installa cache-nameserver

  • Installa strumenti di compilazione:

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

Configura alias di rete

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

Modifica il file /etc/sysconfig/network-scripts/ifcfg-eth0:1 in questo modo:
DEVICE=eth0:1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.6
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

Installa Webmin / Virtualmin

  • Importa chiave webmin pgp:

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

  • Scarica gli rpm:

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

  • Verifica il numero di giri (dovrebbe dire OK oppure scarica di nuovo):

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

  • Installa rpm:

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

Configurazione Webmin iniziale

Dobbiamo proteggere webmin modificando /etc/webmin/miniserv.conf e apportando le seguenti modifiche:

  • Utilizzando solo SSL:
ssl=1
  • Cambia la porta in 443 e collega solo alla seconda nic:
port=443
bind=192.168.1.6
  • Disabilita trasmissioni UDP:
#listen=10000
  • Modifica il blocco dell'host in caso di accesso non riuscito a 3 :
blockhost_failures=3
  • Aumenta il timeout di blocco dell'host a 120:
blockhost_time=120
  • Modifica il blocco utente in caso di accesso non riuscito a 3:
blockuser_failures=3
  • Modifica il timeout di blocco dell'utente su 120:
blockuser_time=120
  • Cambia il regno in qualcos'altro:
realm=cpanel
  • Registra gli accessi a utmp:
utmp=1

Installa il tema Webmin Tiger:

  • Accedi a webmin tramite https://192.168.1.5:10000 utilizzando root e la tua password.
  • Vai a webmin? Configurazione? temi webmin.
  • Seleziona Da ftp o URL http e inserisci http://www.stress-free.co.nz/files/theme-stressfree.tar.gz
  • Fai clic su Installa tema.
  • Fai clic su "torna all'elenco dei temi".
  • Seleziona StressFree come Tema corrente, quindi fai clic su modifica.

Installa il modulo php-pear:

  • Vai a webmin? configurazione webmin? moduli webmin.
  • Seleziona Modulo di terze parti da e inserisci http://www.webmin.com/download/modules/php-pear.wbm.gz.
  • Fai clic su Installa modulo.

Installa virtualmin:

  • Vai a webmin? configurazione webmin? moduli webmin.
  • Seleziona installazione da ftp o URL http e inserisci http://download.webmin.com/download/virtualmin/virtual-server-3.51.gpl.wbm.gz
  • Fai clic su Installa modulo.

Rimuovere i moduli indesiderati Vai a webmin? configurazione webmin? elimina e seleziona quanto segue:

  • Client ADSL
  • Sistema di backup Bacula
  • Masterizzatore CD
  • Server CVS
  • Cambia password cluster
  • Copia file cluster
  • Lavori di cron del cluster
  • Comandi della shell del cluster
  • Pacchetti software cluster
  • Cluster server usermin
  • Cluster utenti e gruppi
  • Raggruppare i server webmin
  • Shell di comando
  • Motore di configurazione
  • Comandi personalizzati
  • Server DHCP
  • Recupero della posta di Fetchmail
  • Gestione file
  • Proxy FTP Frox
  • Tunnel HTTP
  • Monitoraggio del battito cardiaco
  • VPN IPsec
  • Server di messaggistica istantanea Jabber
  • Server LDAP
  • Gestione del volume logico
  • Gestione elenco Majordomo
  • Esportazioni NFS
  • Client e server NIS
  • Server OpenSLP
  • Server di chiamata PPP
  • Client di accesso remoto PPP
  • Server VPN PPTP
  • Client VPN PPTP
  • Server database Postgresql
  • Amministratore stampante
  • Server ProFTPD
  • Server di posta QMAIL
  • Stato dell'unità SMART
  • Accesso SSH/Telnet
  • Tunnel SSL
  • Condivisione di file di Windows SAMBA
  • Comandi programmati
  • Invia server di posta elettronica
  • Firewall costiero
  • Generatore di rapporti sull'analisi dei calamari
  • Server proxy Squid
  • Server di posta vocale
  • Server FTP WU
  • Server Idmapd

Riavvia webmin:

service webmin restart

Configura repository Rpmforge

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

NOTA:se stai utilizzando un'architettura diversa, controlla su https://rpmrepo.org/RPMforge/Using per l'rpm corretto
  • Disabilita il repository (in modo tale che i pacchetti di base non vengano sovrascritti) modifica /etc/yum.d/rpmforge.repo e imposta la seguente opzione:
enabled = 0

Installa pacchetti extra richiesti

  • Installa 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

  • Installa firme 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

  • Installa l'acceleratore PHP:

yum --enablerepo=rpmforge installa php-eaccelerator

  • Installa il pacchetto spamassassin più recente da rpmforge:

yum --enablerepo=rpmforge aggiorna lo spamassassin

  • Installa spamass-milter:

yum --enablerepo=rpmforge installa spamass-milter

  • Installa i moduli perl richiesti da spamassassin:

perl -MCPAN -e 'installa Mail::SPF'
perl -MCPAN -e 'installa Mail::SPF::Query'
perl -MCPAN -e 'installa Net::Ident'
perl -MCPAN -e 'installa IP::Paese::Fast'
perl -MCPAN -e 'installa Mail::DomainKeys'
perl -MCPAN -e 'installa Mail::DKIM'

  • Installa 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

  • Installa Razor:

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

  • Installa roundcube:

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

  • Installa imapprossima:

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

  • Attiva servizi:

chkconfig --level 345 httpd su
chkconfig --level 345 postfix su
chkconfig --level 345 spamassassin su
chkconfig --level 345 spamass-milter su
chkconfig --level 345 clamav-milter su
chkconfig --level 345 mysqld su
chkconfig --level 345 denominato su
chkconfig --level 345 vsftpd su
chkconfig --level 345 dovecot su
chkconfig --level 345 imapprossima su

Guida all'hosting virtuale con Virtualmin su CentOS 5.1 - Pagina 3

Configurazione

Impostazione Postfix

Introduzione

Imposteremo Postfix con le seguenti funzionalità:

  • Hosting virtuale
  • Prevenzione dell'UCE
  • Antivirus
  • Autenticazione SMTP
  • TLS
  • RBL
  • SPF
  • Mitigazione degli attacchi

L'aggiunta di account e domini può essere configurata tramite virtualmin sebbene possa essere eseguita anche manualmente. L'installazione è progettata per essere rispettosa delle risorse, quindi dovrebbe essere in grado di funzionare su macchine che non sono sovradimensionate, consentendo così un uso migliore delle risorse. Per semplificare le risorse, non utilizziamo database esterni per archiviare informazioni sugli utenti virtuali come fanno la maggior parte delle altre procedure, né utilizziamo milter per il controllo di spam e virus anziché eseguire amavisd-new.

Le basi

Per cominciare configureremo le basi come il nome host, l'origine della posta, le reti, la directory di spool delle mappe hash. Tutte queste opzioni di configurazione dovrebbero essere aggiunte a /etc/postfix/main.cf se non diversamente indicato. I file di configurazione di esempio sono disponibili per il download alla fine di questa pagina.

command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mail

Maildir

Utilizzeremo il formato maildir molto migliorato rispetto al formato mbox predefinito:

home_mailbox = Maildir/

SASL

Per eseguire l'autenticazione SMTP utilizzeremo SASL, tuttavia non utilizzeremo Cyrus SASL in quanto ciò richiede di eseguire il demone saslauthd, utilizzeremo invece dovecot sasl poiché eseguiremo dovecot per IMAP e POP3 uccidendo così 2 uccelli con uno pietra.

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

TLS

Abbiamo bisogno di TLS per garantire che le password in testo normale non vengano trasmesse via cavo durante l'autenticazione SMTP, i server che supportano TLS sono anche in grado di comunicare con questo server tramite una connessione protetta.

Le istruzioni sulla creazione del certificato del server firmato da cacert.org sono disponibili qui.

  • Imposta sorgente casuale TLS:
tls_random_source = dev:/dev/urandom
  • Abilita TLS server:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache
  • Abilita TLS client:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yes

Prevenzione dello spam

  • Richiedi un EHLO / HELO valido:
smtpd_helo_required = yes
  • Prevenire gli attacchi di raccolta di indirizzi email:
disable_vrfy_command = yes
  • Modifica i codici di rifiuto in permanenti (per impostazione predefinita, Postfix emette codici di errore 4xx che implicano un errore temporaneo, abbiamo bisogno di 5xx per errori permanenti):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550
  • Imposta la verifica dell'indirizzo del mittente:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
  • Crea /etc/postfix/sender_access e aggiungi:
#sample /etc/postfix/sender_access contains frequently spoofed domains
aol.com     reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender
  • Mitiga gli attacchi di zombi e client danneggiati:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
  • Consenti pipeline solo da client autenticati:
smtpd_data_restrictions = reject_unauth_pipelining
  • Installa postfix-policyd-spf-perl e abilita il supporto 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/

Aggiungilo a /etc/postfix/master.cf:

spfpolicy unix  -       n       n       -       -       spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • Aggiungi supporto DKIM:

Le istruzioni sull'aggiunta del supporto DKIM sono disponibili qui.

  • Aggiungi supporto per le chiavi di dominio:

Le istruzioni sull'aggiunta del supporto per le chiavi di dominio sono disponibili qui.

  • Far funzionare tutto dipende dall'opzione smtpd_recipient_restrictions, quindi la impostiamo di seguito:
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
        reject_rbl_client bl.spamcop.net
        reject_rhsbl_sender dsn.rfc-ignorant.org
        reject_rhsbl_sender bogusmx.rfc-ignorant.org
        reject_rhsbl_sender rhsbl.sorbs.net
        reject_rhsbl_client dsn.rfc-ignorant.org
        reject_rhsbl_client bogusmx.rfc-ignorant.org
        reject_rhsbl_client rhsbl.sorbs.net
        check_policy_service unix:private/spfpolicy

Milters [SpamAssassin &ClamAV]

Per la classificazione dello spam tramite spamassassin e la scansione dei virus tramite clamav, utilizzeremo l'interfaccia milter di Postfix invece di utilizzare il demone amavisd-new, ad alta intensità di risorse. Questo è un modo molto efficiente per farlo in quanto non dobbiamo nemmeno correre a ridosso del clamav milter esegue la scansione stessa.

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

Crea file DB

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

File di configurazione di esempio

  • main.cf
  • master.cf
  • canonico
  • virtuale

Guida all'hosting virtuale con Virtualmin su CentOS 5.1 - Pagina 4

Impostazione Dovecot

Introduzione

Questo configurerà dovecot come nostro server IMAP/POP3.

Configurazione di base

Imposteremo dovecot per IMAP e POP3 e disabiliteremo SSL.

protocols = imap pop3
listen = *
ssl_listen = *
ssl_disable = yes

Maildir

Useremo il formato maildir invece del formato mbox predefinito.

mail_location = maildir:~/Maildir

Autenticazione e SASL

Configura dovecot per utilizzare LOGIN e PLAIN come meccanismi di autenticazione poiché molti client MS non sono in grado di utilizzare meccanismi di autenticazione crittografati. Abbiamo anche impostato il socket SASL per consentire a Postfix di autenticare le connessioni SMTP utilizzando dovecot.

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

Problemi con i clienti

Alcuni client MS imap della famiglia Outlook hanno problemi con le implementazioni IMAP e POP3, quindi dobbiamo accontentarli impostando queste soluzioni alternative:

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

Esegui IMAP dietro proxy

Il server imap è configurato per funzionare sulla porta 10143 in modo tale che la porta 143 sia gestita dal server proxy imap che migliorerà le prestazioni della tua webmail memorizzando nella cache le connessioni al server imap. L'opzione di ascolto nel protocollo lo configura.

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

File di esempio

  • dovecot.conf

Imposta proxy Imap

Introduzione

imapprossimay è stato scritto per compensare i client webmail che non sono in grado di mantenere connessioni persistenti a un server IMAP. La maggior parte dei client webmail deve accedere a un server IMAP per quasi ogni singola transazione. Questo comportamento può causare tragici problemi di prestazioni sul server IMAP. imapprossimay cerca di affrontare questo problema lasciando aperte le connessioni del server per un breve periodo dopo che un client webmail si è disconnesso. Quando il client webmail si connette di nuovo, imapprossima determinerà se è disponibile una connessione memorizzata nella cache e la riutilizzerà se possibile. - secondo il sito web di imapprossimay.

Configurazione

Apporta le seguenti modifiche nel file /etc/imapprossimay.conf:

server_hostname 127.0.0.1
cache_size 3072
listen_port 143
server_port 10143
cache_expiration_time 900
proc_username nobody
proc_groupname nobody
stat_filename /var/run/pimpstats
protocol_log_filename /var/log/imapproxy_protocol.log
syslog_facility LOG_MAIL
send_tcp_keepalives no
enable_select_cache yes
foreground_mode no
force_tls no
enable_admin_commands no

File di esempio

  • imapprossimay.conf

Impostazione rilegatura

Introduzione

Il collegamento verrà impostato in chroot per migliorare la sicurezza, utilizzeremo anche le visualizzazioni per prevenire l'abuso del server DNS.

Configurazione di base

La configurazione di base disabilita per impostazione predefinita le query ricorsive e i trasferimenti di zona. Oscuriamo anche la versione di BIND che stiamo eseguendo in modo da non essere colpiti dalle vulnerabilità zero-day degli script kiddies.

options {
        directory "/var/named";
        pid-file "/var/run/named/named.pid";
        listen-on {
                127.0.0.1;
                192.168.1.5;
                };
        version "just guess";
        allow-recursion { "localhost"; };
        allow-transfer { "none"; };
};

Registrazione

La registrazione è personalizzata per rimuovere il fastidioso "server lame" e aggiornare gli errori che compaiono nei log:

logging {
        category update { null; };
        category update-security { null;        };
        category lame-servers{ null; };
};

Croot

Assicurati che questo sia impostato nel file /etc/sysconfig/named (di solito è impostato dal pacchetto bind-chroot):

ROOTDIR=/var/named/chroot

Server di punta

Lascia che la macchina usi questo server per la risoluzione DNS, modifica /etc/resolv.conf e anteponi:

nameserver 127.0.0.1

File di esempio

  • named.conf
  • /etc/sysconfig/named

Impostazione Vsftpd

Introduzione

Useremo vsftpd come nostro server ftp. Questo ha un track record migliore rispetto ai server proftpd e wuftpd.

Impostazioni di base

La nostra configurazione di base disabilita gli utenti anonimi e consente agli utenti del sistema locale di connettersi al server ftp.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to example.com server
pam_service_name=vsftpd
tcp_wrappers=YES

Croot

Tutti gli utenti verranno chroot nelle loro directory home (tranne i nomi utente nel file /etc/vsftpd/chroot_list), il che significa che non possono uscire e vedere i file degli altri utenti.

chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

Utenti esclusi

Gli utenti aggiunti al file /etc/vsftpd/user_list non potranno accedere:

userlist_enable=YES

File di esempio

  • vsftpd.conf
  • elenco_utenti
  • chroot_list

Guida all'hosting virtuale con Virtualmin su CentOS 5.1 - Pagina 5

Impostazione Milter Clamav

  • Modifica /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"
  • Patch il file init per correggere i permessi del socket:

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

Configurazione MySQL

Configurazione di base

  • Ascolta solo localhost, modifica /etc/my.cnf nella sezione mysqld:
bind-address = 127.0.0.1

Imposta password radice

  • Imposta la password di root:

servizio mysqld start
mysqladmin -u password di root NEWPASSWORD

Impostazione SpamAssassin

Configurazione di base

required_hits 5
report_safe 0
rewrite_header Subject [SPAM]

Crea database MySQL

  • Crea il database:

mysqladmin -p crea baie

  • Popolare il database:

mysql -p bayes

  • Crea l'utente:

mysql -p
mysql> CONCEDERE TUTTO SU bayes.* A [email protected] IDENTIFICATO DA 'password';

Configura per utilizzare DB

  • Modifica il file /etc/mail/spamassassin/local.cf e aggiungi:
bayes_store_module  Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn       DBI:mysql:bayes:localhost
bayes_sql_override_username bayes
bayes_sql_username  bayes
bayes_sql_password  password

Configura FuzzyOCR

Archivieremo gli hash delle immagini in un database MySQL per migliorare le prestazioni in modo tale che le immagini che abbiamo già scansionato non vengano scansionate di nuovo poiché l'OCR è un'attività ad alta intensità di risorse.

Crea database MySQL

  • Lo script sql crea il database e le tabelle e aggiunge un utente fuzzyocr con la password fuzzyocr:

mysql -p

  • Cambia la password:

mysqladmin -u fuzzyocr -p password fuzzyocr

Impostazioni di base

  • Modifica /etc/mail/spamassassin/FuzzyOCR.cf e imposta le opzioni di base:
focr_path_bin /usr/bin:/usr/local/bin
focr_minimal_scanset 1
focr_autosort_scanset 1
focr_enable_image_hashing 3
focr_logfile /tmp/FuzzyOcr.log

Fai in modo che FuzzyOCR utilizzi il database

  • Modifica il file /etc/mail/spamassassin/FuzzyOcr.cf e aggiungi:
focr_mysql_db FuzzyOcr
focr_mysql_hash Hash
focr_mysql_safe Safe
focr_mysql_user fuzzyocr
focr_mysql_pass password
focr_mysql_host localhost
focr_mysql_port 3306
focr_mysql_socket /var/lib/mysql/mysql.sock

Aggiornamenti delle regole SARE

  • Importa la chiave GPG utilizzata per firmare le regole:

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

  • Crea il file dei canali /etc/mail/spamassassin/sare-sa-update-channels.txt:
updates.spamassassin.org
72_sare_redirect_post3.0.0.cf.sare.sa-update.dostech.net
70_sare_evilnum0.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_html0.cf.sare.sa-update.dostech.net
70_sare_html_eng.cf.sare.sa-update.dostech.net
70_sare_header0.cf.sare.sa-update.dostech.net
70_sare_header_eng.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
72_sare_bml_post25x.cf.sare.sa-update.dostech.net
99_sare_fraud_post25x.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_genlsubj0.cf.sare.sa-update.dostech.net
70_sare_genlsubj_eng.cf.sare.sa-update.dostech.net
70_sare_unsub.cf.sare.sa-update.dostech.net
70_sare_uri0.cf.sare.sa-update.dostech.net
70_sare_obfu0.cf.sare.sa-update.dostech.net
70_sare_stocks.cf.sare.sa-update.dostech.net
  • Crea uno script di aggiornamento /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.log
  • Rendilo eseguibile e aggiungi a 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.sock
EXTRA_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 DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary

Set up logging for the deflate module:

DeflateFilterNote deflate_ratio
LogFormat "%v %h %l %u %t \"%r\" %>s %b mod_deflate: %{deflate_ratio}n pct." vhost_with_deflate_info
CustomLog 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.

<VirtualHost *:80>
        Servername localhost.localdomain
        Serveradmin [email protected]
</Virtualhost>

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:

<VirtualHost *:80>
ServerName webmail.example.com
ServerAlias webmail.*
DocumentRoot /var/www/roundcube
<Directory /var/www/roundcube>
Options -Indexes IncludesNOEXEC FollowSymLinks
allow from all
</Directory>
</VirtualHost>

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 ACCEPT
COMMIT

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. ;slave
admin IN A 192.168.1.6 ;virtualmin
webmail 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=<[email protected]> to=<[email protected]> proto=SMTP helo=<me>

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. Come installare un server FTP su CentOS 7 con VSFTPD

  2. Come configurare il server FTP con VSFTPD su CentOS 7

  3. Come configurare il server FTP con VSFTPD su CentOS 8

  4. Come installare AWStats con alcuni plug-in su un server con ISPConfig

  5. Come installare SpamAssassin su un server virtuale con CentOS 6

Come installare il server Web LiteSpeed ​​in WHM/cPanel con Centos 7.x?

Pannello Web di CentOS – Pannello di controllo di hosting Web gratuito all-in-one per CentOS/RHEL 6

Il server perfetto - CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

Il server perfetto - CentOS 6.2 x86_64 con nginx [ISPConfig 3]

Il server perfetto - CentOS 6.2 x86_64 con Apache2 [ISPConfig 3]

Il server perfetto - CentOS 6.1 x86_64 con nginx [ISPConfig 3]