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
- Názvový server DNS
- 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
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
služba mysqld start
mysqladmin -p vytvořit zátoky
mysql -p bayes
mysql -p
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.
mysql -p
mysqladmin -u fuzzyocr -p heslo fuzzyocr
mkdir /etc/mail/spamassassin/sa-update-keys/
chmod +x /usr/local/bin/update-sa
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
We will disable some modules that we are not using thus freeing up memory and also improving security.
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:
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.
Set up logging for the deflate module:
Edit the file /etc/php.ini and set the following:
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.
mysqladmin -p create roundcube
mysql -u roundcube -p roundcube
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:
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.
Add these rules in your configuration file /etc/sysconfig/iptables:
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.
You need to start up services that are required to be able to configure virtualmin. Start the following services:
service named start
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:
You need to enable the features and plugins that we want to use. On login this is the screen that you will see.
Server template are used to customize the services and to create packages for different hosting account types.
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.
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.
This template allows you to set a skel directory to hold setting for new users for this howto we will use the defaults.
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.
This template sets various mail related options, we will modify the email message sent on server creation to have the content below:
We will leave the other options as the defaults.
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 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.
Contains options on creation of databases by virtualmin, for the howto we will use the defaults.
Contains option on creation of new users by virtualmin, for the howto we will use the defaults.
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.
telnet 192.168.1.5 25
telnet 192.168.1.5 25
Send a mail to [email protected]
Send a mail to [email protected]
telnet 192.168.1.5 110
telnet 192.168.1.5 143
dig example.com @127.0.0.1
We are using the test virus from www.eicar.org.
telnet 192.168.1.5 25
Take a lot at your /var/log/maillog you should see something like this:
We are using the test message from http://spamassassin.apache.org/gtube/.
telnet 192.168.1.5 25
You will see this in your log files:
patch /etc/init.d/clamav-milter Nastavení MySQL
Základní konfigurace
bind-address =127.0.0.1
Nastavit heslo uživatele root
mysqladmin -u root heslo NEWPASSWORDNastavení SpamAssassin
Základní konfigurace
required_hits 5report_safe 0rewrite_header Předmět [SPAM]
Vytvoření databáze MySQL
mysql> UDĚLEJTE VŠE NA bayes.* TO [email protected] IDENTIFIKOVANÉ PODLE 'hesla';Konfigurovat pro použití DB
bayes_store_module Mail::SpamAssassin::BayesStore::MySQLbayes_sql_dsn DBI:mysql:bayes:localhostbayes_sql_override_username bayesbayes_sql_username bayesbayes_sql password
Konfigurace FuzzyOCR
Vytvořit databázi MySQL
Základní nastavení
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
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
chmod 700 /etc/mail/spamassassin/sa-update-keys/
wget http://daryl.dostech.ca/sa- update/sare/GPG.KEY
sa-update --import GPG.KEY
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.
#!/bin/bash##sa-update -D --channelfile /etc/mail/spamassassin/sare-sa-update-channels.txt --gpgkey 856AA88A &>/var/log/sa-updates. log
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
SOCKET=/var/run/spamass.sockEXTRA_FLAGS="-m -r 8"
Patch
patch /etc/rc.d/init.d/spamass-milter Apache Setup
Disable Modules
#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
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
Listen To One IP For HTTPS
Listen 192,168.1.6:443
Enable Gzip Compression
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
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
memory_limit =64M
Enable Virtual Hosting
NameVirtualHost *:80
Create Default Virtual Host
Roundcube Webmail Setup
Create Database
mysql -p
mysql> GRANT ALL ON roundcube.* TO [email protected] IDENTIFIED BY 'password';
Basic Config
$rcmail_config['db_dsnw'] ='mysql://roundcube:[email protected]/roundcube';
$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
Firewall Setup
Introduction
Basic Config
*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
Start Services
service spamassassin start
service spamass-milter start
service clamav-milter start
service postfix start
service dovecot start
service imapproxy start
service httpd startInitial Settings
MySQL
Configure Features
Configure Server Templates
Apache Template
Domain Owner Template
Home Directory Template
Administration User
Mail For Domain Template
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}
BIND DNS Domain Template
@ IN NS ns1.home.topdog-software.com.;slaveadmin IN A 192.168.1.6;virtualminwebmail IN A 192.168.1.5;webmail
allow-transfer { 192.168.1.2; };
MySQL Database Template
Webmin Login Template
Create Virtual Server
Testing
Postfix
Test SMTP
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
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 DSNTest dkim
Test domainkeys
Dovecot
Test POP3
+OK Dovecot ready.
user andrew.example
+OK
pass password
+OK Logged in.
quit
+OK Logging out.Test IMAP
* 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 CompletedBIND
Clamav-milter
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 Bye73BC87C4E4: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=
Spamass-milter
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 Byespamd: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,