GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak na virtuální hosting s Virtualmin na CentOS 5.1

Jak na virtuální hosting s Virtualmin na CentOS 5.1

Verze 1.0.1
Autor:Andrew Colin Kissa

Úvod

Tento tutoriál ukazuje, jak nastavit server CentOS 5.x, aby nabízel všechny služby potřebné pro virtuální webhostery. Patří mezi ně webhosting, smtp server s (SMTP-AUTH a TLS, SPF, DKIM, Domainkeys), DNS, FTP, MySQL, POP3/IMAP, Firewall, Webalizer pro statistiky.

Budu používat následující software:

  • Databázový server:MySQL 5.0.22
  • Poštovní server:Postfix 2.3.3
  • Server NS:BIND9 9.3.3
  • Webový server:Apache 2.2.3 /PHP 5.1.6
  • FTP Server:Vsftpd 2.0.5
  • Server POP3/IMAP:Dovecot 1.0
  • Webalizer:pro statistiky stránek 2.01_10
  • Virtualmin:Ovládací panel

Instalace OS

Požadavky

K instalaci systému budete potřebovat

  • Instalační médium CentOS 5.1
  • Dobré připojení k internetu

Instalovat základní systém

POZNÁMKA Některé fáze instalace zde nejsou popsány v zájmu zachování stručnosti návodu. Konfigurační fáze grub jsou například vynechány.

  • Zaveďte systém z disku DVD nebo CD a do příkazového řádku zadejte text linux.
  • Přeskočte test médií.
  • Vyberte svůj jazyk:

  • Vyberte rozložení klávesnice:

  • Nakonfigurujte svou síť, budu používat dhcp, pokud dhcp nemáte, můžete použít statické položky.

  • Výběrem možnosti Ano inicializujte disk:

  • Vyberte vlastní rozložení pro typ rozdělení:

  • Vytvořte oddíly:

  • Konfigurace sítě:

Nastavte IP adresu a masku sítě:

Nastavte bránu a DNS servery:

Nastavte název hostitele:

  • Nastavte časové pásmo:

  • Nastavte heslo uživatele root:

  • Vyberte skupinu serverů a vyberte přizpůsobení výběru softwaru:

  • Skupiny balíčků vyberte následovně:
    • Názvový server DNS
      • bind-chroot

  • Redaktoři
    • s vylepšením vim
  • Server FTP
  • Poštovní server
    • holubník
    • spamassassin
    • postfix

  • Databáze Mysql
    • mysql-server

  • Webový server
    • mod_ssl
    • webalizer
    • php
    • php-pear
    • http-suexec
    • php-mysql

Spusťte instalaci:

Systém souborů je naformátován:

Instalace se spustí:

Restartujte systém:

Jak na virtuální hosting s Virtualmin na CentOS 5.1 – Strana 2

Služby k deaktivaci

Abychom zvýšili zabezpečení a uvolnili systémové prostředky v systému, musíme zakázat všechny služby, které nejsou vyžadovány. Můžete spustit tento skript, který to udělá za vás.

  • acpid
  • anacron
  • apmd
  • autofs
  • bluetooth
  • hrnky
  • první spuštění
  • gpm
  • haldaemon
  • sběrnice zpráv
  • mdmonitor
  • skryté
  • ip6tables
  • kudzu
  • lvm2-monitor
  • netfs
  • nfslock
  • pcscd
  • portmap
  • rpcgssd
  • rpcidmapd
  • odeslat e-mail
  • chytré
  • yum-updatesd

Základy

Potřebujeme opravit několik problémů, abychom připravili systém na konfiguraci.

  • Instalovat aktualizace

yum upgrade

  • Přepněte mta na postfix

alternativy --config mta

Existují 2 programy, které poskytují 'mta'.
Příkaz výběru
------------------------------ -----------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
Zadejte chcete-li zachovat aktuální výběr[+], nebo zadejte číslo výběru:1

  • Nainstalujte konfiguraci caching-nameserver:

yum install caching-nameserver

  • Instalujte nástroje pro sestavení:

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

Konfigurovat alias sítě

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

Upravte soubor /etc/sysconfig/network-scripts/ifcfg-eth0:1, aby vypadal takto:
DEVICE=eth0:1BOOTPROTO=staticBROADCAST=192.168.1.255IPADDR=192.168.1.6NETMASK=255.2055.2 1.0ONBOOT=ano

Instalovat Webmin / Virtualmin

  • Importovat klíč webmin pgp:

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

  • Stáhněte si otáčky za minutu:

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

  • Ověřte otáčky (řekněte OK, jinak stáhněte znovu):

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

  • Nainstalujte otáčky:

ot/min -Uvh webmin-1,390-1.noarch.rpm

Úvodní konfigurace Webmin

Musíme zabezpečit webmin úpravou /etc/webmin/miniserv.conf a provést následující změny:

  • Pouze pomocí protokolu SSL:
ssl=1
  • Změňte port na 443 a připojte se pouze k druhému nic:
port=443bind=192.168.1.6
  • Zakázat vysílání UDP:
#listen=10000
  • Změňte uzamčení hostitele při selhání přihlášení na 3:
blockhost_failures=3
  • Zvyšte časový limit uzamčení hostitele na 120:
blockhost_time=120
  • Změňte uzamčení uživatele při selhání přihlášení na 3:
blockuser_failures=3
  • Změňte časový limit uzamčení uživatele na 120:
blockuser_time=120
  • Změňte sféru na něco jiného:
realm=cpanel
  • Přihlaste se do utmp:
utmp=1

Nainstalujte téma webmin Tiger:

  • Přihlaste se do webminu přes https://192.168.1.5:10000 pomocí root a svého hesla.
  • Přejít na webmin ? Konfigurace? témata webminu.
  • Vyberte From ftp nebo http URL a zadejte http://www.stress-free.co.nz/files/theme-stressfree.tar.gz
  • Klikněte na nainstalovat motiv.
  • Klikněte na "návrat na seznam témat".
  • Jako aktuální téma vyberte StressFree a poté klikněte na změnit.

Nainstalujte modul php-pear:

  • Přejít na webmin ? konfigurace webminu? moduly webmin.
  • Vyberte Modul třetí strany z a zadejte http://www.webmin.com/download/modules/php-pear.wbm.gz.
  • Klikněte na tlačítko Instalovat modul.

Nainstalujte virtualmin:

  • Přejít na webmin ? konfigurace webminu? moduly webmin.
  • Vyberte instalaci z adresy ftp nebo http a zadejte http://download.webmin.com/download/virtualmin/virtual-server-3.51.gpl.wbm.gz
  • Klikněte na tlačítko Instalovat modul.

Odebrat nežádoucí moduly Přejít na webmin? konfigurace webminu? odstraňte a vyberte následující:

  • Klient ADSL
  • Zálohovací systém Bacula
  • Vypalovačka CD
  • Server CVS
  • Změna hesel klastru
  • Kopírování souborů clusteru
  • Úlohy klastru cron
  • Příkazy clusteru shell
  • Skupinové softwarové balíčky
  • Clusterové servery usermin
  • Seskupit uživatele a skupiny
  • Clusterové webmin servery
  • Příkazový shell
  • Konfigurační modul
  • Vlastní příkazy
  • Server DHCP
  • Načítání pošty Fetchmail
  • Správce souborů
  • Frox ftp proxy
  • HTTP tunel
  • Monitor srdečního tepu
  • IPsec VPN
  • Server IM Jabber
  • Server LDAP
  • Správa logických svazků
  • Správce seznamu Majordomo
  • Export NFS
  • Klient a server NIS
  • Server OpenSLP
  • Server pro vytáčení PPP
  • Klient pro telefonické připojení PPP
  • Server PPTP vpn
  • klient PPTP vpn
  • Databázový server Postgresql
  • Správce tiskárny
  • Server ProFTPD
  • Poštovní server QMAIL
  • Stav SMART disku
  • Přihlášení přes SSH / Telnet
  • Tunely SSL
  • Sdílení souborů SAMBA Windows
  • Naplánované příkazy
  • Sendmail mail server
  • Pobřežní brána firewall
  • Generátor zpráv o analýze chobotnic
  • Squid proxy server
  • Server hlasové pošty
  • Server WU-FTP
  • Server Idmapd

Restartujte webmin:

restart služby webmin

Konfigurovat Rpmforge Repo

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

POZNÁMKA:Pokud používáte jinou architekturu, zkontrolujte na https://rpmrepo.org/RPMforge/Using správné otáčky
  • Zakažte repo (tak, aby se základní balíčky nepřepsaly), upravte /etc/yum.d/rpmforge.repo a nastavte následující možnost:
povoleno =0

Instalovat další požadované balíčky

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

  • Instalujte bezpečné podpisy:

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

  • Nainstalujte PHP eaccelerator:

yum --enablerepo=rpmforge nainstalovat php-eaccelerator

  • Nainstalujte novější balíček spamassassin z rpmforge:

yum --enablerepo=rpmforge upgradovat spamassassin

  • Nainstalujte spamass-milter:

yum --enablerepo=rpmforge install spamass-milter

  • Nainstalujte moduly perlu vyžadované spamassassinem:

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'

  • Nainstalujte 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.gbnetworkscanner.co.uk /FuzzyOcr.words -O /etc/mail/spamassassin/FuzzyOcr.words

  • Nainstalujte Razor:

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

  • Instalace roundcube:

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

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

  • Aktivujte služby:

chkconfig --level 345 httpd on
chkconfig --level 345 postfix on
chkconfig --level 345 spamassassin on
chkconfig --level 345 spamass-milter on
chkconfig --level 345 clamav-milter on
chkconfig --level 345 mysqld on
chkconfig --level 345 pojmenován na
chkconfig --level 345 vsftpd on
chkconfig --level 345 dovecot on
chkconfig --level 345 imapproxy on

Jak na virtuální hosting s Virtualmin na CentOS 5.1 – Strana 3

Konfigurace

Nastavení Postfixu

Úvod

Nastavíme postfix s následujícími funkcemi:

  • Virtuální hosting
  • Prevence UCE
  • Antivirus
  • Ověření SMTP
  • TLS
  • RBL
  • SPF
  • Zmírnění útoků

Přidávání účtů a domén lze konfigurovat pomocí virtualminu, i když to lze provést i ručně. Nastavení je navrženo tak, aby bylo přátelské ke zdrojům, takže by mělo být možné běžet na počítačích, které nejsou překročeny, aby bylo možné zdroje lépe využít. Aby to bylo šetrné ke zdrojům, nepoužíváme externí databáze k ukládání informací o virtuálních uživatelích jako většina ostatních návodů, stejně jako nepoužíváme milters pro kontrolu spamu a virů na rozdíl od spouštění amavisd-new.

Základy

Nejprve nakonfigurujeme základy, jako je název hostitele, původ pošty, sítě, adresář zařazování hash map. Všechny tyto možnosti konfigurace by měly být přidány do /etc/postfix/main.cf, pokud není uvedeno jinak. Vzorové konfigurační soubory jsou k dispozici ke stažení na konci této stránky.

command_directory =/usr/sbindaemon_directory =/usr/libexec/postfixmydomain =example.commyorigin =$mydomainmynetworks =127.0.0.0/8alias_maps =hash:/etc/aliasesalias_database =hash:/canonpostical/aliases =hash:/etcc hasetc/aliases =/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

Použijeme mnohem vylepšený formát maildir na rozdíl od výchozího formátu mbox:

home_mailbox =Maildir/

SASL

K provedení autentizace SMTP budeme používat SASL, ale nebudeme používat Cyrus SASL, protože to vyžaduje spuštění démona saslauthd, místo toho použijeme dovecot sasl, protože budeme používat dovecot pro IMAP a POP3, čímž zabijeme 2 mouchy jednou kámen.

smtpd_sasl_type =dovecotsmtpd_sasl_path =private/authsmtpd_sasl_auth_enable =yes

TLS

Potřebujeme TLS, abychom zajistili, že hesla ve formátu prostého textu nebudou během ověřování SMTP přenášena po drátě. Servery, které podporují TLS, jsou také schopny komunikovat s tímto serverem prostřednictvím zabezpečeného připojení.

Pokyny k vytvoření certifikátu serveru podepsaného cacert.org naleznete zde.

  • Nastavit náhodný zdroj TLS:
tls_random_source =dev:/dev/urandom
  • Povolit server 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
  • Povolit klientský protokol TLS:
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 =ano

Prevence spamu

  • Vyžadovat platný EHLO / HELO:
smtpd_helo_required =ano
  • Zabraňte útokům na shromažďování e-mailových adres:
disable_vrfy_command =yes
  • Změňte kódy odmítnutí na trvalé (ve výchozím nastavení postfix vydává chybové kódy 4xx, což znamená dočasné selhání, pro trvalé chyby potřebujeme kód 5xx):
unverified_recipient_reject_code =550unverified_sender_reject_code =550unknown_local_recipient_reject_code =550
  • Nastavte ověření adresy odesílatele:
address_verify_map =btree:/var/spool/postfix/verifysmtpd_sender_restrictions =hash:/etc/postfix/sender_access
  • Vytvořte /etc/postfix/sender_access a přidejte:
#sample /etc/postfix/sender_access obsahuje často podvrženou doménu zamítnutí_unverified_senderhotmail.com odmítnutí_unverified_senderyahoo.com odmítnutí_unverified_sendergmail.com odmítnutí_unverified_senderbigfoot.com odmítnutí_unverified_sender
  • Zmírnění útoků zombie a poškozených klientů:
smtpd_error_sleep_time =5ssmtpd_soft_error_limit =10smtpd_hard_error_limit =20
  • Povolit pouze zřetězení od ověřených klientů:
smtpd_data_restrictions =cancel_unauth_pipelining
  • Nainstalujte postfix-policyd-spf-perl a povolte podporu 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/

Přidejte toto do /etc/postfix/master.cf:

spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl
  • Přidat podporu DKIM:

Pokyny pro přidání podpory DKIM naleznete zde.

  • Přidat podporu doménových klíčů:

Pokyny pro přidání podpory doménových klíčů naleznete zde.

  • Uvedení do chodu závisí na možnosti smtpd_recipient_restrictions, takže ji nastavíme níže:
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 odmítnutí_rbl_client bl.spamcop.net odmítnutí_rhsbl_sender dsn.rfc-ignorant.org odmítnutí_rhsbl_sender bogusmx.rfc-ignorant.org odmítnutí_rhsbl_sender rhsbl.sorbs.net odmítnutí_rhsbl_client_client dsn.rfc-ignorantx odmítnutí.org.rfc-ignorant.org. net check_policy_service unix:private/spfpolicy

Milters [SpamAssassin &ClamAV]

Pro vaši klasifikaci spamu pomocí spamassassinu a skenování virů pomocí clamav budeme používat rozhraní milter postfixu namísto použití démona amavisd-new, který je náročný na zdroje. Jedná se o velmi efektivní způsob, jak toho dosáhnout, protože ani nemusíme spouštět clamav milter, který skenuje sám.

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

Vytvořit soubory DB

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

Ukázkové konfigurační soubory

  • main.cf
  • master.cf
  • kanonický
  • virtuální

Jak na virtuální hosting s Virtualmin na CentOS 5.1 – Strana 4

Nastavení holubníku

Úvod

Tím se dovecot nastaví jako náš IMAP/POP3 server.

Základní konfigurace

Nastavíme dovecot pro IMAP a POP3 a zakážeme SSL.

protokoly =imap pop3listen =*ssl_listen =*ssl_disable =yes

Maildir

Použijeme formát maildir na rozdíl od výchozího formátu mbox.

umístění_mailu =maildir:~/Maildir

Ověřování a SASL

Nakonfigurujte dovecot tak, aby používal LOGIN a PLAIN jako ověřovací mechanismus, protože mnoho klientů MS není schopno používat šifrované ověřovací mechanismy. Nastavili jsme také zásuvku SASL, abychom umožnili postfixu ověřovat SMTP připojení pomocí dovecotu.

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

Klientské problémy

Někteří klienti MS imap v rodině outlook mají problémy s implementací IMAP i POP3, takže jim musíme vyhovět nastavením těchto řešení:

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

Spustit IMAP za proxy

Server imap je nakonfigurován tak, aby běžel na portu 10143, takže port 143 zpracovává server proxy imap, což zlepší výkon vaší webové pošty ukládáním připojení k serveru imap do mezipaměti. Nastavuje to možnost naslouchání pod protokolem.

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

Ukázkové soubory

  • dovecot.conf

Nastavení serveru Imap Proxy

Úvod

imapproxy byl napsán, aby kompenzoval webmailové klienty, kteří nejsou schopni udržovat trvalé připojení k serveru IMAP. Většina klientů webové pošty se potřebuje přihlásit k serveru IMAP pro téměř každou jednotlivou transakci. Toto chování může způsobit tragické problémy s výkonem na serveru IMAP. imapproxy se snaží tento problém vyřešit tak, že po odhlášení webového klienta nechá na krátkou dobu otevřená připojení k serveru. Když se webmailový klient znovu připojí, imapproxy určí, zda je k dispozici připojení uložené v mezipaměti, a pokud je to možné, znovu jej použije. - podle imapproxy webové stránky.

Konfigurace

Proveďte následující změny v souboru /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

Ukázkové soubory

  • imapproxy.conf

Nastavení vazby

Úvod

Bind bude nastaven chrootovaný, abychom zlepšili zabezpečení, budeme také používat pohledy, abychom zabránili zneužití serveru DNS.

Základní konfigurace

Základní konfigurace ve výchozím nastavení zakazuje rekurzivní dotazy a přenosy zón. Také zakrýváme verzi BIND, kterou používáme, abychom nebyli zasaženi zranitelností zero day od script kiddies.

options { adresář "/var/named"; pid-file "/var/run/named/named.pid"; poslech { 127.0.0.1; 192.168.1.5; }; verze "jen hádejte"; allow-recursion { "localhost"; }; allow-transfer { "none"; };};

Protokolování

Protokolování je přizpůsobeno tak, aby odstranilo otravný „lame-server“ a aktualizovalo chyby, které se objevují v protokolech:

logování { aktualizace kategorie { null; }; kategorie update-security { null; }; kategorie lame-servers{ null; };};

Chroot

Ujistěte se, že je toto nastaveno v souboru /etc/sysconfig/named (obvykle ho nastavuje balíček bind-chroot):

ROOTDIR=/var/named/chroot

Point Server

Nechte počítač používat tento server pro rozlišení DNS. Upravte soubor /etc/resolv.conf a přidejte před:

nameserver 127.0.0.1

Ukázkové soubory

  • named.conf
  • /etc/sysconfig/named

Nastavení Vsftpd

Úvod

Jako náš ftp server budeme používat vsftpd. To má lepší výsledky než servery proftpd a wuftpd.

Základní nastavení

Naše základní nastavení zakáže anonymní uživatele a umožní uživatelům místního systému připojit se k ftp serveru.

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

Chroot

Všichni uživatelé budou chrootováni do svých domovských adresářů (kromě uživatelských jmen v souboru /etc/vsftpd/chroot_list), což znamená, že nemohou proniknout do souborů ostatních uživatelů.

chroot_list_enable=YESchroot_local_user=YESchroot_list_file=/etc/vsftpd/chroot_list

Uživatelé se zákazem

Uživatelé přidaní do souboru /etc/vsftpd/user_list se nebudou moci přihlásit:

userlist_enable=ANO

Ukázkové soubory

  • vsftpd.conf
  • seznam uživatelů
  • chroot_list

Jak na virtuální hosting s Virtualmin na CentOS 5.1 – strana 5

Nastavení Clamav Milter

  • Upravit /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"
  • Opravte inicializační soubor a opravte oprávnění soketu:

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

Nastavení MySQL

Základní konfigurace

  • Poslouchejte pouze localhost, upravte soubor /etc/my.cnf v sekci mysqld:
bind-address =127.0.0.1

Nastavit heslo uživatele root

  • Nastavte heslo uživatele root:

služba mysqld start
mysqladmin -u root heslo NEWPASSWORD

Nastavení SpamAssassin

Základní konfigurace

required_hits 5report_safe 0rewrite_header Předmět [SPAM]

Vytvoření databáze MySQL

  • Vytvořte databázi:

mysqladmin -p vytvořit zátoky

  • Naplňte databázi:

mysql -p bayes

  • Vytvořte uživatele:

mysql -p
mysql> UDĚLEJTE VŠE NA bayes.* TO [email protected] IDENTIFIKOVANÉ PODLE 'hesla';

Konfigurovat pro použití DB

  • Upravte soubor /etc/mail/spamassassin/local.cf a přidejte:
bayes_store_module Mail::SpamAssassin::BayesStore::MySQLbayes_sql_dsn DBI:mysql:bayes:localhostbayes_sql_override_username bayesbayes_sql_username bayesbayes_sql password

Konfigurace FuzzyOCR

Hodnoty hash obrázků budeme ukládat do databáze mysql, abychom zlepšili výkon tak, aby obrázky, které jsme již naskenovali, nebyly znovu naskenovány, protože OCR je činnost náročná na zdroje.

Vytvořit databázi MySQL

  • Skript sql vytvoří databázi a tabulky a přidá uživatele fuzzyocr s heslem fuzzyocr:

mysql -p

  • Změňte heslo:

mysqladmin -u fuzzyocr -p heslo fuzzyocr

Základní nastavení

  • Upravte soubor /etc/mail/spamassassin/FuzzyOCR.cf a nastavte základní možnosti:
focr_path_bin /usr/bin:/usr/local/binfocr_minimal_scanset 1focr_autosort_scanset 1focr_enable_image_hashing 3focr_logfile /tmp/FuzzyOcr.log

Nechte FuzzyOCR používat databázi

  • Upravte soubor /etc/mail/spamassassin/FuzzyOcr.cf a přidejte:
focr_mysql_db FuzzyOcrfocr_mysql_hash Hashfocr_mysql_safe Safefocr_mysql_user fuzzyocrfocr_mysql_pass passwordfocr_mysql_host localhostfocr_mysql_port/libso_my. 

Aktualizace pravidel SARE

  • Importujte klíč GPG používaný k podepsání pravidel:

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

  • Vytvořte soubor kanálů /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.costafes.0 .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. -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-update7.dostef.net. a .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.update.net. 
  • Vytvořte aktualizační skript /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
  • Vytvořte jej spustitelný a přidejte do cronu:

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. Jak nainstalovat FTP server na CentOS 7 s VSFTPD

  2. Jak nainstalovat AWStats s některými pluginy na server s ISPConfig

  3. Jak nainstalovat SpamAssassin na virtuální server s CentOS 6

  1. Jak nastavit FTP server s VSFTPD na CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 8

  3. Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na CentOS 7.0

  1. Jak spravovat server CentOS 7 pomocí Webmin

  2. Virtuální hosting s vsftpd a MySQL na Ubuntu 12.04

  3. Virtuální hosting s vsftpd a MySQL na Ubuntu 12.10