Difference between revisions of "Mailgw.fjfi.cvut.cz"
(→postfix) |
(→amavis) |
||
(98 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet Petr Vokáč] | ;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet Petr Vokáč] | ||
− | ;HW : Intel(R) | + | ;HW : IBM System x iDataPlex dx340 Server -[638922X], 2x Intel(R) Xeon(R) CPU E5440 @ 2.83GHz, 16GB DDR2 533MHz, 300GB SAS |
;OS : [http://www.centos.org CentOS7] | ;OS : [http://www.centos.org CentOS7] | ||
;Využití : mailová brána (antivir+antispam) + SMTP AUTH server smtp.fjfi.cvut.cz, RADIUS server pro [http://eduroam.fjfi.cvut.cz/ Eduroam] | ;Využití : mailová brána (antivir+antispam) + SMTP AUTH server smtp.fjfi.cvut.cz, RADIUS server pro [http://eduroam.fjfi.cvut.cz/ Eduroam] | ||
;Konto : pro autentizované odesílání mailů přes smtp.fjfi.cvut.cz použijte hlavní uživatelské jméno/heslo, pro Eduroam je potřeba [https://nms.fjfi.cvut.cz/?p=wifi&sp=eduroam nadefinovat samostatné heslo] | ;Konto : pro autentizované odesílání mailů přes smtp.fjfi.cvut.cz použijte hlavní uživatelské jméno/heslo, pro Eduroam je potřeba [https://nms.fjfi.cvut.cz/?p=wifi&sp=eduroam nadefinovat samostatné heslo] | ||
− | =[[Mailgw | + | =Informace pro správce= |
+ | [[Image:Mailgw.png|Zpracování mailů na mailgw]] | ||
+ | ==Změna MX záznamů== | ||
+ | Pokud chcete změnit MX záznamy v DNS tak, aby maily procházely přes mailgw, nestačí (ve většině případů) jen upravit přísušné záznamy v DNS, ale je potřeba změnit i konfiguraci postfixu na mailgw. Ten se musí dozvědět, na jaký stroj má maily fyzicky doručovat - je potřeba přídat správné rádky do <tt>/etc/postfix/transport</tt> a provést <tt>postmap /etc/postfix/transport</tt>. | ||
+ | |||
+ | ==Další dokumentace== | ||
+ | |||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2007/mis/ Přesun oficiálních adres @km1, @troja z Mercuryho] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2006/mailgw/ Konfigurace (duben 2006)] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2005/mailgw_cont/ Doplnění k aktuální konfiguraci (říjen 2005)] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2005/mailgw/ Prezentace ke stavu realizace (březen 2005)] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2004/mail_gw/ Základní definice projektu mailové brány] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2004/comp_zapis.html Zápis ze schůzky (prosinec 2004)] | ||
+ | * [http://kmlinux.fjfi.cvut.cz/~vokac/activities/2004/comp_mail/ Motivace pro mailovou bránu (prosinec 2004)] | ||
+ | |||
+ | ==Použitý software== | ||
+ | |||
+ | * [http://www.centos.org/ CentOS] | ||
+ | * [http://www.postfix.org/ Postfix] | ||
+ | * <strike>[http://www.openldap.org/ OpenLDAP]</strike> | ||
+ | * [http://www.ijs.si/software/amavisd/ amavis-new] | ||
+ | * [http://www.kaspersky.com/ Kaspersky Anti-Virus] | ||
+ | * [http://spamassassin.apache.org/ Spamassassin] | ||
+ | * [http://fuzzyocr.own-hero.net/ FuzzyOcr] | ||
+ | * [http://sourceforge.net/projects/dkim-milter/ DKIM Milter] | ||
+ | * [http://sourceforge.net/projects/dk-milter/ DomainKeys Milter] | ||
+ | * [http://sourceforge.net/projects/sid-milter/ SID Milter] | ||
+ | * <strike>[http://www.nuclearelephant.com/projects/dspam/ DSPAM]</strike> | ||
+ | |||
+ | ==Základní instalace== | ||
* standardní (minimální) instalace operačního systému | * standardní (minimální) instalace operačního systému | ||
* standardní puppet konfigurace pro server (certifikáty, logging, monitoring, ...) | * standardní puppet konfigurace pro server (certifikáty, logging, monitoring, ...) | ||
− | rpm -Uvh http:// | + | rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm |
yum install puppet | yum install puppet | ||
# use mailgw puppet client certificates from backup | # use mailgw puppet client certificates from backup | ||
Line 33: | Line 62: | ||
systemctl enable puppet | systemctl enable puppet | ||
systemctl start puppet | systemctl start puppet | ||
+ | |||
==mailgw== | ==mailgw== | ||
* instalace [https://fedoraproject.org/wiki/EPEL EPEL] repository | * instalace [https://fedoraproject.org/wiki/EPEL EPEL] repository | ||
Line 40: | Line 70: | ||
** zkompilovaná ze src.rpm balíčku + postfix-2.11.0-local_message_limit.patch | ** zkompilovaná ze src.rpm balíčku + postfix-2.11.0-local_message_limit.patch | ||
** aktuálně používána verze 3.0 (podpora SMTPUTF8 z RFC 6531..6533) | ** aktuálně používána verze 3.0 (podpora SMTPUTF8 z RFC 6531..6533) | ||
+ | ** instalace <pre>yum install libicu pam_krb5 perl-Date-Calc</pre><pre>rpm -Uvh postfix-3.0.1-2.el7.centos.x86_64.rpm postfix-pcre-3.0.1-2.el7.centos.x86_64.rpm postfix-perl-scripts-3.0.1-2.el7.centos.x86_64.rpm</pre> | ||
* konfigurace v <tt>/etc/postfix</tt> | * konfigurace v <tt>/etc/postfix</tt> | ||
** postfix klade důraz na zachování kompatibility konfiguračních souborů | ** postfix klade důraz na zachování kompatibility konfiguračních souborů | ||
** pokud není potřeba měnit chování mailserveru stačí zkopírovat konfigurační soubory | ** pokud není potřeba měnit chování mailserveru stačí zkopírovat konfigurační soubory | ||
** z cronu jsou automaticky updatovány některé konfigurační soubory dle informací z AD | ** z cronu jsou automaticky updatovány některé konfigurační soubory dle informací z AD | ||
+ | ** z cronu jsou automaticky updatovány <tt>dh_512.pem</tt> a <tt>dh_1024.pem</tt><pre>openssl dhparam -out dh_512.pem 512 && openssl dhparam -out dh_1024.pem 2048</pre> | ||
+ | ** povolení dalších portů v SELinuxu <pre>semanage port -a -t amavisd_recv_port_t -p tcp 10022</pre><pre>semanage port -a -t amavisd_send_port_t -p tcp 10023</pre><pre>semanage port -a -t amavisd_recv_port_t -p tcp 9998</pre><pre>semanage port -a -t smtp_port_t -p tcp 10028</pre><pre>semanage boolean --modify --on antivirus_can_scan_system</pre> | ||
+ | ** přidat aliasy "root" a "spam" do <tt>/etc/aliases</tt> a spustit <tt>newaliases</tt> | ||
+ | * konfigurace SASL autentizace | ||
+ | ** instalace potřebných knihoven<pre>yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi</pre><pre>systemctl enable saslauthd</pre><pre>systemctl start saslauthd</pre> | ||
+ | ** nutná správná konfigurace kerbera v <tt>/etc/krb5.conf</tt> | ||
+ | ** postfix autentizace proti kerberu v <tt>/etc/pam.d/smtp.postfix</tt> | ||
+ | |||
+ | ====milter pluginy==== | ||
+ | * opendkim | ||
+ | ** instalace <pre>yum install opendkim</pre> | ||
+ | ** konfigurace <tt>/etc/opendkim</tt> a <tt>/etc/opendkim.{sign,verify}.conf</tt> | ||
+ | ** SELinux<pre>semanage port -a -t milter_port_t -p tcp 10039</pre><pre>semanage port -a -t milter_port_t -p tcp 10040</pre> | ||
+ | ** podpora více instancí OpenDKIM v systemd <tt>/root/etc/systemd/system/opendkim@.service</tt><pre>systemctl enable opendkim@sign.service</pre><pre>systemctl enable opendkim@verify.service</pre> | ||
+ | * srs-milter | ||
+ | ** instalace <pre>rpm -Uvh srs-milter-0.0.2-1.x86_64.rpm libspf2-1.2.10-0.el7.centos.x86_64.rpm libsrs2-1.0.18-1.x86_64.rpm</pre> | ||
+ | ** SELinux <pre>semanage port -a -t milter_port_t -p tcp 10043</pre><pre>semanage port -a -t milter_port_t -p tcp 10044</pre> | ||
+ | ** start služby <pre>systemctl enable srs-milter@forward</pre><pre>systemctl enable srs-milter@reverse</pre> | ||
+ | * sid-milter | ||
+ | ** instalace <pre>rpm -Uvh sid-milter-1.0.0-0.el7.centos.x86_64.rpm</pre> | ||
+ | ** start služby <pre>systemctl enable sid-milter</pre> | ||
+ | |||
+ | ====policy delegation==== | ||
+ | * postfix poskytuje [http://www.postfix.org/SMTPD_POLICY_README.html policy delegation] protokol pro zpracovaní mailů na základě jejich envelope (CONNECT, HELO, MAIL FROM, RCPT TO, DATA) | ||
+ | * použitá implementace [https://github.com/vokac/ppolicy ppolicy] (Python Postfix Policy Server) | ||
+ | ** umožňuje psát pravidla pro zpracování mailu v pythonu | ||
+ | ** využívá python-twisted framework a dle konfigurace závisí i na dalších python balíčcích <pre>yum install python-twisted-core MySQL-python python-dns python-GeoIP</pre> | ||
+ | ** instalace z připraveného RPM<pre>rpm -Uvh ppolicy-2.7.0-0beta19.noarch.rpm</pre><pre>systemctl enable ppolicy</pre> | ||
+ | ** konfigurace resp. python script řídící chování ppolicy <tt>/etc/postfix/ppolicy.conf</tt> | ||
+ | ** před prvním startem je nutné vytvořit MySQL databázi a zpřístupnit ji uživateli z konfiguračního souboru (detaily v <tt>ppolicy.sql</tt>) | ||
+ | ** nutné vytvořit databázi změn <pre>CREATE TABLE `changes` (`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00')</pre> | ||
+ | |||
+ | ====trénování spamu==== | ||
+ | * učící adresy <tt>spam</tt> a <tt>nospam</tt> | ||
+ | * při zpracování příchozího mailu zavolány přes pipe skripty pro učení | ||
+ | * je potřeba nastavit správný SELinux kontext | ||
+ | # FIXME: tohle nestačí, protože ten skript potřebuje číst/zapisovat do /var/spool/amavisd | ||
+ | # dočasně "vyřešeno" tak, že logování ve skriptu se provádí do /tmp | ||
+ | semanage fcontext -a -t postfix_pipe_exec_t /etc/postfix/spam-learn.py | ||
+ | restorecon -v /etc/postfix/spam-learn.py | ||
+ | # FIXME: jako dočasné řesení lze převést postfix_type_t do permissive módu | ||
+ | semanage permissive -a postfix_pipe_t | ||
===amavis=== | ===amavis=== | ||
Line 50: | Line 123: | ||
** vylepšená podpora CRM114 | ** vylepšená podpora CRM114 | ||
** několik bugfixů týkajících se LDAP | ** několik bugfixů týkajících se LDAP | ||
− | ** detaily ve zdrojovém balíčku <tt>amavisd-new-2.xx.xx.src.rpm<tt> | + | ** přidáno RPM pro p0f (systemd service file, script wrapper) |
+ | ** detaily ve zdrojovém balíčku <tt>amavisd-new-2.xx.xx.src.rpm</tt> | ||
* závislost na řadě balíčků z [https://fedoraproject.org/wiki/EPEL EPEL] + dalších potřebných (perl) modulů zkompilovaných z Fedora src.rpm balíčků | * závislost na řadě balíčků z [https://fedoraproject.org/wiki/EPEL EPEL] + dalších potřebných (perl) modulů zkompilovaných z Fedora src.rpm balíčků | ||
yum install spamassassin | yum install spamassassin | ||
Line 59: | Line 133: | ||
perl-Digest-SHA1 perl-Mail-DKIM perl-Mail-SPF perl-Net-DNS perl-Net-Server \ | perl-Digest-SHA1 perl-Mail-DKIM perl-Mail-SPF perl-Net-DNS perl-Net-Server \ | ||
perl-NetAddr-IP perl-Socket6 perl-Time-HiRes perl-Unix-Syslog perl-Razor-Agent \ | perl-NetAddr-IP perl-Socket6 perl-Time-HiRes perl-Unix-Syslog perl-Razor-Agent \ | ||
− | perl-LDAP | + | perl-LDAP perl-Image-Info |
# missing CentOS7+EPEL packages | # missing CentOS7+EPEL packages | ||
rpm -Uvh perl-File-LibMagic-1.00-4.el7.centos.x86_64.rpm unrar-4.0.7-1.el7.centos.x86_64.rpm | rpm -Uvh perl-File-LibMagic-1.00-4.el7.centos.x86_64.rpm unrar-4.0.7-1.el7.centos.x86_64.rpm | ||
# install and enable amavisd | # install and enable amavisd | ||
− | rpm -Uvh amavisd-new-2.10.1-1.el7.centos.noarch.rpm | + | rpm -Uvh amavisd-new-2.10.1-1.el7.centos.noarch.rpm amavisd-new-p0f-2.10.1-1.el7.centos.noarch.rpm |
− | systemctl enable amavisd-service | + | systemctl enable amavisd.service |
− | * konfigurace <tt>/etc/amavisd | + | systemctl enable amavisd-p0f.service |
+ | * konfigurace <tt>/etc/amavisd/</tt> | ||
+ | * konfigurace správného síťového rozhraní pro p0f v <tt>/etc/sysconfig/amavisd-p0f</tt> (+ disablování samostatné služby p0f) | ||
* informace o mailech zpracovaných amavisem se ukládají do MariaDB | * informace o mailech zpracovaných amavisem se ukládají do MariaDB | ||
** nutné vytvořit příslušnou databázi | ** nutné vytvořit příslušnou databázi | ||
** potřebné informace v nainstalovaném README.sql-mysql | ** potřebné informace v nainstalovaném README.sql-mysql | ||
** pro zjednodušení práce s databází jsou tabulky v <tt>ppolicy</tt> databázi | ** pro zjednodušení práce s databází jsou tabulky v <tt>ppolicy</tt> databázi | ||
+ | ===== karanténa ===== | ||
+ | * ukládány všechny zablokované maily | ||
+ | ** detekovaný vir | ||
+ | ** detekovaný spam při nastavené hladině pro zahazování spamu (uživatel musí explicitně povolit) | ||
+ | * všechny ostatní maily | ||
+ | ** veškeré zpracované maily jsou na mailgw dva týdny zálohovány, aby je bylo možné znovu doručit v případě problémů s mailboxy | ||
+ | |||
+ | ==== spamassassin ==== | ||
+ | * lokální pravidla v <tt>/etc/mail/spamassassin/99_zzzz_my.cf</tt> | ||
+ | * FuzzyOCR | ||
+ | yum install giflib-utils netpbm-progs transfig libjpeg-turbo-utils pango libwebp | ||
+ | rpm -Uvh spamassassin-FuzzyOcr-3.6.0-6.el7.centos.noarch.rpm \ | ||
+ | perl-String-Approx-3.27-6.el7.centos.x86_64.rpm \ | ||
+ | ocrad-0.24-1.el7.centos.x86_64.rpm \ | ||
+ | gifsicle-1.87-1.el7.centos.x86_64.rpm \ | ||
+ | gocr-0.50-3.el7.centos.x86_64.rpm \ | ||
+ | tesseract-3.03-0.2.rc1.el7.centos.x86_64.rpm \ | ||
+ | tesseract-osd-3.03-0.2.rc1.el7.centos.x86_64.rpm \ | ||
+ | leptonica-1.71-2.el7.centos.x86_64.rpm | ||
+ | * Mail::SpamAssassin::Plugin::RelayCountry | ||
+ | rpm -Uvh perl-IP-Country-utils-2.26-4.el7.centos.noarch.rpm \ | ||
+ | perl-IP-Country-2.26-4.el7.centos.noarch.rpm \ | ||
+ | perl-Geography-Countries-2009041301-13.el7.centos.noarch.rpm | ||
+ | * Mail::SpamAssassin::Plugin::DCC | ||
+ | rpm -Uvh DCC-1.3.158-0.el7.centos.x86_64.rpm | ||
+ | chown amavis -R /etc/dcc | ||
+ | |||
+ | ==== CRM114 ==== | ||
+ | yum install tre | ||
+ | rpm -Uvh crm114-0-8.14.20100106.el7.centos.x86_64.rpm | ||
+ | |||
+ | ==== antivir ==== | ||
+ | * KAV<pre>rpm -Uvh klms-8.0.1-705.i386.rpm; yum install glibc.i686</pre> | ||
+ | ** (první) konfigurace pomocí <tt>/opt/kaspersky/klms/bin/klms-setup.pl</tt> | ||
+ | ** pro přístup amavisu k soketům klms je potřeba přidat amavis uživatele do skupiny klusers<pre>usermod -G klusers amavis</pre><pre>usermod -G amavis kluser</pre> | ||
+ | ** je nutné zabránit promazávání tmp adresářů klms pomocí konfigurace tmpfiles v <tt>/usr/lib/tmpfiles.d/klms.conf</tt><pre>X /tmp/klmstmp</pre><pre>X /tmp/klms_filter</pre> | ||
+ | ** každoročně je nutné importovat nový licenční soubor<pre>/opt/kaspersky/klms/bin/klms-control --licenser --install-additional-key "license".key</pre> | ||
+ | * ESET Mail Security | ||
+ | ** instalace <pre>rpm -Uvh esets-4.0.10.x86_64.rpm</pre> | ||
+ | ** licence <pre>/opt/eset/esets/sbin/esets_lic --import=ess_business_edition.lic</pre> | ||
+ | ** konfigurace <tt>/etc/opt/eset/esets/esets.cfg</tt> uživatelského jména/hesla (<tt>av_update_username</tt>/<tt>av_update_password</tt>) pro updaty | ||
+ | ** lze spouštět i přímo přes [http://support.eset.com/kb3723/ systemd přidáním service souboru] do <tt>/etc/systemd/system/eset.service</tt> | ||
+ | ** licence | ||
+ | *** licence na webu ČVUT jsou pouze pro stanice, tj. ESET File Security, které pro každé scanování přes amavis spouští nový proces a je to tim pádem nepoužitelně pomalé | ||
+ | *** na požádání lze získat i licenční soubory ESET Mail Security | ||
+ | *** pro fungování amavisu resp. <tt>esets_cli</tt> je nutné použít tu druhou licenci (ale je take dobré nainstalovat i první licenci, aby fungoval i <tt>esets_scan</tt>) | ||
+ | * clamav | ||
+ | ** instalace <pre>yum install clamav-server-systemd clamav-update</pre> | ||
+ | ** aktivace updatu vykomentováním posledního řádku v <tt>/etc/sysconfig/freshclam</tt> a "Example" na začátku <tt>/etc/freshclam.conf</tt> | ||
+ | |||
+ | ===rspamd=== | ||
+ | |||
+ | Bude integrováno jako řešení sloužící k odmítání spamu ještě během SMTP konverzace. | ||
+ | |||
+ | ===certifikáty=== | ||
+ | * postfix je aktuálně zkonfigurován s podporou DANE/TLSA | ||
+ | * TLSA záznám je vázán na veřejný klíč (zbylý obsah certifikátu se muže měnit, např. platnost) | ||
+ | * při změně veřejného (privátního) klíče je nutné postarat se o změnu TLSA záznamu v DNS | ||
+ | ** před vyměnou certifikátu je potřeba přidat nový TLSA otisk | ||
+ | ** vlastní výměnu certifikátu je možné udělat až po uplynutí TTL TLSA DNS záznamu | ||
+ | ** po výměně certifikátu je možné odmazat starý TLSA otisk z DNS | ||
===ostatní=== | ===ostatní=== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* mariadb | * mariadb | ||
** databáze využívána amavisem, ppolicy a radius serverem | ** databáze využívána amavisem, ppolicy a radius serverem | ||
Line 94: | Line 215: | ||
systemctl enable mariadb.service | systemctl enable mariadb.service | ||
systemctl start mariadb.service | systemctl start mariadb.service | ||
+ | ** konfigurace v <tt>/etc/my.cnf.d</tt> (per database innodb file, SSL connection support) | ||
+ | mysql -B mysql -e 'UPDATE `user` SET `host` = "%" WHERE `user` = "root" AND `host` = "mailgw1.fjfi.cvut.cz"' | ||
+ | mysql -B mysql -e 'UPDATE `user` SET `password` = PASSWORD("secret") WHERE `user` = "root"' | ||
+ | # some additional cleanup | ||
+ | mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "localhost" AND `user` = "ppolicy"' | ||
+ | mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "localhost" AND `user` = ""' | ||
+ | mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "mailgw1.fjfi.cvut.cz"' | ||
+ | mysql -B mysql -e 'DELETE FROM `user` WHERE `host` != "%" AND `user` = "root"' | ||
+ | mysql -B mysql -e 'FLUSH PRIVILEGES' | ||
* unbound | * unbound | ||
** mailserver provádí hodně DNS dotazů a tak je rozumné provozovat cachovací DNS lokálně | ** mailserver provádí hodně DNS dotazů a tak je rozumné provozovat cachovací DNS lokálně | ||
Line 99: | Line 229: | ||
** instalace <pre>yum install unbound</pre> | ** instalace <pre>yum install unbound</pre> | ||
** konfigurace <tt>/etc/unbound/unbound.conf</tt> | ** konfigurace <tt>/etc/unbound/unbound.conf</tt> | ||
+ | *** poslouchat na veřejných <tt>interface</tt> | ||
+ | *** zkonfigurovat <tt>access-control</tt> pouze pro ČVUT adresy | ||
+ | *** nastavit <tt>forward-zone</tt> "." na naše (cachovací) DNS | ||
+ | ** pro spolehlivé startování služeb vyžadujících DNS je nutné disablovat 127.0.0.1 jako cachovací nameserver dokud unbound neběží | ||
+ | *** nutné disablovat update DNS konfigurace v <tt>/etc/NetworkManager/NetworkManager.conf</tt><pre>dns=none</pre> | ||
+ | *** vytvořit novou systemd "oneshot" service <tt>/etc/systemd/system/dns-cache-disable.service</tt> startovanou před network targetem, která disabluje použivání (nenastartované) lokální DNS cache<pre>ExecStart=/usr/bin/sed -i 's/^\(nameserver *127.0.0.1\)/#\1/' /etc/resolv.conf</pre> | ||
+ | *** vytvořit novou systemd "oneshot" service <tt>/etc/systemd/system/dns-cache-enable.service</tt> startovanou po startu cachovacího DNS (vyžadující běžící službu DNS), která enabluje použivání lokální DNS cache<pre>ExecStart=/usr/bin/sed -i 's/^#\(nameserver *127.0.0.1\)/\1/' /etc/resolv.conf</pre> | ||
+ | *** <strike>do <tt>unbound.service</tt> přidat skript po startu služby<pre>ExecStartPost=/usr/bin/sed -i 's/^#\(nameserver *127.0.0.1\)/\1/' /etc/resolv.conf</pre></strike> | ||
+ | *** přidat jako první řádek <tt>/etc/resolv.conf</tt><pre>nameserver 127.0.0.1</pre> | ||
+ | * dinfo | ||
+ | ** lokální daemon poskytující remote rozhraní pro různé služby | ||
+ | ** aktivní modul "mail" v <tt>/etc/sysconfig/dinfo</tt> | ||
+ | ** služba <pre>systemctl enable dinfo</pre> | ||
+ | ** (do budoucna v plánu nahradit nejakým standardním nástrojem, např. mcollective, RESTful API, ...) | ||
+ | * snmp | ||
+ | ** pro export základních informací o postfix frontě (počet mailů, velikost, ...) | ||
+ | ** používáno Nagiosem pro monitoring | ||
+ | ** instalace <pre>yum install net-snmp</pre> | ||
+ | ** konfigurace v <tt>/etc/snmp</tt> | ||
+ | ** služba <pre>systemctl enable snmpd</pre> | ||
+ | * bacula-client | ||
+ | yum install bacula-client | ||
+ | # konfigurace /etc/bacula | ||
+ | systemctl enable bacula-fd | ||
+ | |||
+ | ==relay== | ||
+ | |||
+ | Aktuálně je používáno jako outbound relay pro odchozí maily, aby bylo možné jednoduše měnit adresu např. pro případ, kdy současná adresa z nějakého důvodu dostane "poor reputation". Celá služba běží na stejném hardware jako mailgw, ale je v samostatném kontejneru s přidělenou IPv4+IPv6 adresou. Aktuálně je instalace řešena jako nspawn kontejner, ale do budoucna se počítá s nějakým vhodnějším řešením buď s využitím podman (aktualně nemá rozumnou podporu IPv6) nebo např. kuberentes. | ||
+ | |||
+ | ===instalace=== | ||
+ | ===konfigurace=== | ||
==radius== | ==radius== | ||
Line 105: | Line 266: | ||
* instalace<pre>yum install freeradius freeradius-utils freeradius-ldap freeradius-mysql</pre> | * instalace<pre>yum install freeradius freeradius-utils freeradius-ldap freeradius-mysql</pre> | ||
* konfigurace <tt>/etc/raddb</tt> dle [http://www.eduroam.cz/ Eduroam návodu] resp. aktuálních FJFI konfigurací | * konfigurace <tt>/etc/raddb</tt> dle [http://www.eduroam.cz/ Eduroam návodu] resp. aktuálních FJFI konfigurací | ||
+ | * SELinux konfigurace | ||
+ | semanage fcontext -a -t radiusd_exec_t /etc/raddb/RadiusPostAuth.py | ||
+ | restorecon -v /etc/raddb/RadiusPostAuth.py | ||
* nutné výtvořit MariaDB databázi podle <tt>/etc/raddb/mods-config/sql/main/mysql</tt> | * nutné výtvořit MariaDB databázi podle <tt>/etc/raddb/mods-config/sql/main/mysql</tt> | ||
mysql -e 'CREATE DATABASE radius' | mysql -e 'CREATE DATABASE radius' | ||
mysql radius < schema.sql | mysql radius < schema.sql | ||
− | mysql radius < setup.sql | + | mysql radius < setup.sql |
+ | mysql -B mysql -e 'GRANT SELECT,LOCK TABLES ON radius.* TO "radius_reader"@"%" IDENTIFIED BY "secret"' | ||
+ | * služba <pre>systemctl enable radiusd</pre> | ||
* skripty pro registraci zařízení přihlášených přes Eduroam potřebují další python moduly<pre>yum install python-ldap MySQL-python</pre> | * skripty pro registraci zařízení přihlášených přes Eduroam potřebují další python moduly<pre>yum install python-ldap MySQL-python</pre> | ||
+ | <strike> | ||
===radsecproxy=== | ===radsecproxy=== | ||
− | + | * při použití FreeRadius 3.x již není potřeba, protože podpora radsec je do FreeRadiusu integrována | |
* vytvořen RPM balíček <tt>radsecproxy-1.6.6-0.el7.centos.x86_64.rpm</tt> | * vytvořen RPM balíček <tt>radsecproxy-1.6.6-0.el7.centos.x86_64.rpm</tt> | ||
* konfigurace <tt>/etc/radsecproxy.conf</tt> | * konfigurace <tt>/etc/radsecproxy.conf</tt> | ||
+ | * služba <pre>systemctl enable radsecproxy</pre> | ||
+ | </strike> | ||
+ | |||
+ | ==firewall== | ||
+ | * služba <pre>systemctl enable firewalld</pre> | ||
+ | * konfigurace | ||
+ | # trusted hosts | ||
+ | firewall-cmd --permanent --zone=trusted | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=147.32.9.2 | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1900::2 | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=147.32.9.3 | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1900::3 | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=147.32.9.67 | ||
+ | firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1800::3 | ||
+ | # internal (FNSPE) network | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=147.32.4.0/22 | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=147.32.8.0/22 | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=147.32.22.0/24 | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=147.32.25.0/24 | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=2001:718:2:1800::/56 | ||
+ | #firewall-cmd --permanent --zone=internal --add-source=2001:718:2:1900::/56 | ||
+ | #firewall-cmd --permanent --zone=internal --remove-servce=ipp-client | ||
+ | #firewall-cmd --permanent --zone=internal --remove-servce=mdns | ||
+ | #firewall-cmd --permanent --zone=internal --remove-servce=dhcpv6-client | ||
+ | #firewall-cmd --permanent --zone=internal --remove-servce=samba-client | ||
+ | # work (CTU) network | ||
+ | firewall-cmd --permanent --zone=work --add-source=147.32.0.0/16 | ||
+ | firewall-cmd --permanent --zone=work --add-source=2001:718:2::/48 | ||
+ | firewall-cmd --permanent --zone=work --add-service=dns | ||
+ | firewall-cmd --permanent --zone=work --remove-service=ipp-client | ||
+ | firewall-cmd --permanent --zone=work --remove-service=dhcpv6-client | ||
+ | # public services | ||
+ | firewall-cmd --permanent --zone=public --add-service=smtp | ||
+ | firewall-cmd --permanent --zone=public --add-port=465/tcp | ||
+ | firewall-cmd --permanent --zone=public --add-port=587/tcp | ||
+ | firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.4.0/26" service name="radius" accept' | ||
+ | firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.7.0/26" service name="radius" accept' | ||
+ | firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.22.224/27" service name="radius" accept' | ||
+ | firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="195.113.233.246" service name="radius" accept' | ||
+ | firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="195.113.187.22" port port="2083" protocol="tcp" accept' | ||
+ | # apply changes in firewall configuration | ||
+ | firewall-cmd --reload |
Latest revision as of 08:42, 18 September 2019
Servery / Služby |
Přístupné komukoliv |
Omezený/individuální účet |
Služby |
backup · DHCP · DNS · doména FJFI · eduroam · fileserver · IdM · forum · gitlab · lists · moodle · indico · mailgw · K4 · mailserver · NMS · openvpn · skolniftp · ssh · videokonference · VoIP · video · VPN · wififjfi · wiki · www |
Učebny |
e-sklipek · KFE unixlab · KFE pclab · PD1 · KM 105 · KM 115 |
Ostatní |
Network · Blokované porty |
[edit] · [view] |
Contents
Základní informace
- Správce
- Petr Vokáč
- HW
- IBM System x iDataPlex dx340 Server -[638922X], 2x Intel(R) Xeon(R) CPU E5440 @ 2.83GHz, 16GB DDR2 533MHz, 300GB SAS
- OS
- CentOS7
- Využití
- mailová brána (antivir+antispam) + SMTP AUTH server smtp.fjfi.cvut.cz, RADIUS server pro Eduroam
- Konto
- pro autentizované odesílání mailů přes smtp.fjfi.cvut.cz použijte hlavní uživatelské jméno/heslo, pro Eduroam je potřeba nadefinovat samostatné heslo
Informace pro správce
Změna MX záznamů
Pokud chcete změnit MX záznamy v DNS tak, aby maily procházely přes mailgw, nestačí (ve většině případů) jen upravit přísušné záznamy v DNS, ale je potřeba změnit i konfiguraci postfixu na mailgw. Ten se musí dozvědět, na jaký stroj má maily fyzicky doručovat - je potřeba přídat správné rádky do /etc/postfix/transport a provést postmap /etc/postfix/transport.
Další dokumentace
- Přesun oficiálních adres @km1, @troja z Mercuryho
- Konfigurace (duben 2006)
- Doplnění k aktuální konfiguraci (říjen 2005)
- Prezentace ke stavu realizace (březen 2005)
- Základní definice projektu mailové brány
- Zápis ze schůzky (prosinec 2004)
- Motivace pro mailovou bránu (prosinec 2004)
Použitý software
- CentOS
- Postfix
-
OpenLDAP - amavis-new
- Kaspersky Anti-Virus
- Spamassassin
- FuzzyOcr
- DKIM Milter
- DomainKeys Milter
- SID Milter
-
DSPAM
Základní instalace
- standardní (minimální) instalace operačního systému
- standardní puppet konfigurace pro server (certifikáty, logging, monitoring, ...)
rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm yum install puppet # use mailgw puppet client certificates from backup # of the /var/lib/puppet/ssl cat >> /etc/puppet/puppet.conf <<EOF [main] # puppet server name must be in config file, because new puppet # client doesn't support passing this information from environmet # of the startup script server = puppet.fjfi.cvut.cz # distribute custom facts and types from # the server to managed clients automatically pluginsync = true EOF # apply puppet configuration puppet agent --test --debug --waitforcert=120 # enable and start puppet daemon systemctl enable puppet systemctl start puppet
mailgw
- instalace EPEL repository
postfix
- používá se opatchovaná verze postfixu umožňující specifikovat jiný limit na velikost mailů pro lokální stroje
- zkompilovaná ze src.rpm balíčku + postfix-2.11.0-local_message_limit.patch
- aktuálně používána verze 3.0 (podpora SMTPUTF8 z RFC 6531..6533)
- instalace
yum install libicu pam_krb5 perl-Date-Calc
rpm -Uvh postfix-3.0.1-2.el7.centos.x86_64.rpm postfix-pcre-3.0.1-2.el7.centos.x86_64.rpm postfix-perl-scripts-3.0.1-2.el7.centos.x86_64.rpm
- konfigurace v /etc/postfix
- postfix klade důraz na zachování kompatibility konfiguračních souborů
- pokud není potřeba měnit chování mailserveru stačí zkopírovat konfigurační soubory
- z cronu jsou automaticky updatovány některé konfigurační soubory dle informací z AD
- z cronu jsou automaticky updatovány dh_512.pem a dh_1024.pem
openssl dhparam -out dh_512.pem 512 && openssl dhparam -out dh_1024.pem 2048
- povolení dalších portů v SELinuxu
semanage port -a -t amavisd_recv_port_t -p tcp 10022
semanage port -a -t amavisd_send_port_t -p tcp 10023
semanage port -a -t amavisd_recv_port_t -p tcp 9998
semanage port -a -t smtp_port_t -p tcp 10028
semanage boolean --modify --on antivirus_can_scan_system
- přidat aliasy "root" a "spam" do /etc/aliases a spustit newaliases
- konfigurace SASL autentizace
- instalace potřebných knihoven
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi
systemctl enable saslauthd
systemctl start saslauthd
- nutná správná konfigurace kerbera v /etc/krb5.conf
- postfix autentizace proti kerberu v /etc/pam.d/smtp.postfix
- instalace potřebných knihoven
milter pluginy
- opendkim
- instalace
yum install opendkim
- konfigurace /etc/opendkim a /etc/opendkim.{sign,verify}.conf
- SELinux
semanage port -a -t milter_port_t -p tcp 10039
semanage port -a -t milter_port_t -p tcp 10040
- podpora více instancí OpenDKIM v systemd /root/etc/systemd/system/opendkim@.service
systemctl enable opendkim@sign.service
systemctl enable opendkim@verify.service
- instalace
- srs-milter
- instalace
rpm -Uvh srs-milter-0.0.2-1.x86_64.rpm libspf2-1.2.10-0.el7.centos.x86_64.rpm libsrs2-1.0.18-1.x86_64.rpm
- SELinux
semanage port -a -t milter_port_t -p tcp 10043
semanage port -a -t milter_port_t -p tcp 10044
- start služby
systemctl enable srs-milter@forward
systemctl enable srs-milter@reverse
- instalace
- sid-milter
- instalace
rpm -Uvh sid-milter-1.0.0-0.el7.centos.x86_64.rpm
- start služby
systemctl enable sid-milter
- instalace
policy delegation
- postfix poskytuje policy delegation protokol pro zpracovaní mailů na základě jejich envelope (CONNECT, HELO, MAIL FROM, RCPT TO, DATA)
- použitá implementace ppolicy (Python Postfix Policy Server)
- umožňuje psát pravidla pro zpracování mailu v pythonu
- využívá python-twisted framework a dle konfigurace závisí i na dalších python balíčcích
yum install python-twisted-core MySQL-python python-dns python-GeoIP
- instalace z připraveného RPM
rpm -Uvh ppolicy-2.7.0-0beta19.noarch.rpm
systemctl enable ppolicy
- konfigurace resp. python script řídící chování ppolicy /etc/postfix/ppolicy.conf
- před prvním startem je nutné vytvořit MySQL databázi a zpřístupnit ji uživateli z konfiguračního souboru (detaily v ppolicy.sql)
- nutné vytvořit databázi změn
CREATE TABLE `changes` (`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00')
trénování spamu
- učící adresy spam a nospam
- při zpracování příchozího mailu zavolány přes pipe skripty pro učení
- je potřeba nastavit správný SELinux kontext
# FIXME: tohle nestačí, protože ten skript potřebuje číst/zapisovat do /var/spool/amavisd # dočasně "vyřešeno" tak, že logování ve skriptu se provádí do /tmp semanage fcontext -a -t postfix_pipe_exec_t /etc/postfix/spam-learn.py restorecon -v /etc/postfix/spam-learn.py # FIXME: jako dočasné řesení lze převést postfix_type_t do permissive módu semanage permissive -a postfix_pipe_t
amavis
- používá se opatchovaná verze nejnovější verze
- přidává specifické hlavičky X-CTU-FNSPE s informacemi o běhu amavisu/spamassassinu
- vylepšená podpora CRM114
- několik bugfixů týkajících se LDAP
- přidáno RPM pro p0f (systemd service file, script wrapper)
- detaily ve zdrojovém balíčku amavisd-new-2.xx.xx.src.rpm
- závislost na řadě balíčků z EPEL + dalších potřebných (perl) modulů zkompilovaných z Fedora src.rpm balíčků
yum install spamassassin yum install altermime arj bzip2 cabextract clamav-server clamav-server-systemd \ freeze lrzip lzop lz4 nomarch p7zip p7zip-plugins tmpwatch unzoo yum install perl-Archive-Tar perl-Archive-Zip perl-Authen-SASL perl-BerkeleyDB \ perl-Convert-TNEF perl-Convert-UUlib perl-DBD-SQLite perl-DBI perl-Digest-SHA \ perl-Digest-SHA1 perl-Mail-DKIM perl-Mail-SPF perl-Net-DNS perl-Net-Server \ perl-NetAddr-IP perl-Socket6 perl-Time-HiRes perl-Unix-Syslog perl-Razor-Agent \ perl-LDAP perl-Image-Info # missing CentOS7+EPEL packages rpm -Uvh perl-File-LibMagic-1.00-4.el7.centos.x86_64.rpm unrar-4.0.7-1.el7.centos.x86_64.rpm # install and enable amavisd rpm -Uvh amavisd-new-2.10.1-1.el7.centos.noarch.rpm amavisd-new-p0f-2.10.1-1.el7.centos.noarch.rpm systemctl enable amavisd.service systemctl enable amavisd-p0f.service
- konfigurace /etc/amavisd/
- konfigurace správného síťového rozhraní pro p0f v /etc/sysconfig/amavisd-p0f (+ disablování samostatné služby p0f)
- informace o mailech zpracovaných amavisem se ukládají do MariaDB
- nutné vytvořit příslušnou databázi
- potřebné informace v nainstalovaném README.sql-mysql
- pro zjednodušení práce s databází jsou tabulky v ppolicy databázi
karanténa
- ukládány všechny zablokované maily
- detekovaný vir
- detekovaný spam při nastavené hladině pro zahazování spamu (uživatel musí explicitně povolit)
- všechny ostatní maily
- veškeré zpracované maily jsou na mailgw dva týdny zálohovány, aby je bylo možné znovu doručit v případě problémů s mailboxy
spamassassin
- lokální pravidla v /etc/mail/spamassassin/99_zzzz_my.cf
- FuzzyOCR
yum install giflib-utils netpbm-progs transfig libjpeg-turbo-utils pango libwebp rpm -Uvh spamassassin-FuzzyOcr-3.6.0-6.el7.centos.noarch.rpm \ perl-String-Approx-3.27-6.el7.centos.x86_64.rpm \ ocrad-0.24-1.el7.centos.x86_64.rpm \ gifsicle-1.87-1.el7.centos.x86_64.rpm \ gocr-0.50-3.el7.centos.x86_64.rpm \ tesseract-3.03-0.2.rc1.el7.centos.x86_64.rpm \ tesseract-osd-3.03-0.2.rc1.el7.centos.x86_64.rpm \ leptonica-1.71-2.el7.centos.x86_64.rpm
- Mail::SpamAssassin::Plugin::RelayCountry
rpm -Uvh perl-IP-Country-utils-2.26-4.el7.centos.noarch.rpm \ perl-IP-Country-2.26-4.el7.centos.noarch.rpm \ perl-Geography-Countries-2009041301-13.el7.centos.noarch.rpm
- Mail::SpamAssassin::Plugin::DCC
rpm -Uvh DCC-1.3.158-0.el7.centos.x86_64.rpm chown amavis -R /etc/dcc
CRM114
yum install tre rpm -Uvh crm114-0-8.14.20100106.el7.centos.x86_64.rpm
antivir
- KAV
rpm -Uvh klms-8.0.1-705.i386.rpm; yum install glibc.i686
- (první) konfigurace pomocí /opt/kaspersky/klms/bin/klms-setup.pl
- pro přístup amavisu k soketům klms je potřeba přidat amavis uživatele do skupiny klusers
usermod -G klusers amavis
usermod -G amavis kluser
- je nutné zabránit promazávání tmp adresářů klms pomocí konfigurace tmpfiles v /usr/lib/tmpfiles.d/klms.conf
X /tmp/klmstmp
X /tmp/klms_filter
- každoročně je nutné importovat nový licenční soubor
/opt/kaspersky/klms/bin/klms-control --licenser --install-additional-key "license".key
- ESET Mail Security
- instalace
rpm -Uvh esets-4.0.10.x86_64.rpm
- licence
/opt/eset/esets/sbin/esets_lic --import=ess_business_edition.lic
- konfigurace /etc/opt/eset/esets/esets.cfg uživatelského jména/hesla (av_update_username/av_update_password) pro updaty
- lze spouštět i přímo přes systemd přidáním service souboru do /etc/systemd/system/eset.service
- licence
- licence na webu ČVUT jsou pouze pro stanice, tj. ESET File Security, které pro každé scanování přes amavis spouští nový proces a je to tim pádem nepoužitelně pomalé
- na požádání lze získat i licenční soubory ESET Mail Security
- pro fungování amavisu resp. esets_cli je nutné použít tu druhou licenci (ale je take dobré nainstalovat i první licenci, aby fungoval i esets_scan)
- instalace
- clamav
- instalace
yum install clamav-server-systemd clamav-update
- aktivace updatu vykomentováním posledního řádku v /etc/sysconfig/freshclam a "Example" na začátku /etc/freshclam.conf
- instalace
rspamd
Bude integrováno jako řešení sloužící k odmítání spamu ještě během SMTP konverzace.
certifikáty
- postfix je aktuálně zkonfigurován s podporou DANE/TLSA
- TLSA záznám je vázán na veřejný klíč (zbylý obsah certifikátu se muže měnit, např. platnost)
- při změně veřejného (privátního) klíče je nutné postarat se o změnu TLSA záznamu v DNS
- před vyměnou certifikátu je potřeba přidat nový TLSA otisk
- vlastní výměnu certifikátu je možné udělat až po uplynutí TTL TLSA DNS záznamu
- po výměně certifikátu je možné odmazat starý TLSA otisk z DNS
ostatní
- mariadb
- databáze využívána amavisem, ppolicy a radius serverem
- instalace
yum install mariadb-server systemctl enable mariadb.service systemctl start mariadb.service
- konfigurace v /etc/my.cnf.d (per database innodb file, SSL connection support)
mysql -B mysql -e 'UPDATE `user` SET `host` = "%" WHERE `user` = "root" AND `host` = "mailgw1.fjfi.cvut.cz"' mysql -B mysql -e 'UPDATE `user` SET `password` = PASSWORD("secret") WHERE `user` = "root"' # some additional cleanup mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "localhost" AND `user` = "ppolicy"' mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "localhost" AND `user` = ""' mysql -B mysql -e 'DELETE FROM `user` WHERE `host` = "mailgw1.fjfi.cvut.cz"' mysql -B mysql -e 'DELETE FROM `user` WHERE `host` != "%" AND `user` = "root"' mysql -B mysql -e 'FLUSH PRIVILEGES'
- unbound
- mailserver provádí hodně DNS dotazů a tak je rozumné provozovat cachovací DNS lokálně
- cachovací DNS server s forwardery na oficiální FJFI/ČVUT DNS servery
- instalace
yum install unbound
- konfigurace /etc/unbound/unbound.conf
- poslouchat na veřejných interface
- zkonfigurovat access-control pouze pro ČVUT adresy
- nastavit forward-zone "." na naše (cachovací) DNS
- pro spolehlivé startování služeb vyžadujících DNS je nutné disablovat 127.0.0.1 jako cachovací nameserver dokud unbound neběží
- nutné disablovat update DNS konfigurace v /etc/NetworkManager/NetworkManager.conf
dns=none
- vytvořit novou systemd "oneshot" service /etc/systemd/system/dns-cache-disable.service startovanou před network targetem, která disabluje použivání (nenastartované) lokální DNS cache
ExecStart=/usr/bin/sed -i 's/^\(nameserver *127.0.0.1\)/#\1/' /etc/resolv.conf
- vytvořit novou systemd "oneshot" service /etc/systemd/system/dns-cache-enable.service startovanou po startu cachovacího DNS (vyžadující běžící službu DNS), která enabluje použivání lokální DNS cache
ExecStart=/usr/bin/sed -i 's/^#\(nameserver *127.0.0.1\)/\1/' /etc/resolv.conf
-
do unbound.service přidat skript po startu službyExecStartPost=/usr/bin/sed -i 's/^#\(nameserver *127.0.0.1\)/\1/' /etc/resolv.conf
- přidat jako první řádek /etc/resolv.conf
nameserver 127.0.0.1
- nutné disablovat update DNS konfigurace v /etc/NetworkManager/NetworkManager.conf
- dinfo
- lokální daemon poskytující remote rozhraní pro různé služby
- aktivní modul "mail" v /etc/sysconfig/dinfo
- služba
systemctl enable dinfo
- (do budoucna v plánu nahradit nejakým standardním nástrojem, např. mcollective, RESTful API, ...)
- snmp
- pro export základních informací o postfix frontě (počet mailů, velikost, ...)
- používáno Nagiosem pro monitoring
- instalace
yum install net-snmp
- konfigurace v /etc/snmp
- služba
systemctl enable snmpd
- bacula-client
yum install bacula-client # konfigurace /etc/bacula systemctl enable bacula-fd
relay
Aktuálně je používáno jako outbound relay pro odchozí maily, aby bylo možné jednoduše měnit adresu např. pro případ, kdy současná adresa z nějakého důvodu dostane "poor reputation". Celá služba běží na stejném hardware jako mailgw, ale je v samostatném kontejneru s přidělenou IPv4+IPv6 adresou. Aktuálně je instalace řešena jako nspawn kontejner, ale do budoucna se počítá s nějakým vhodnějším řešením buď s využitím podman (aktualně nemá rozumnou podporu IPv6) nebo např. kuberentes.
instalace
konfigurace
radius
freeradius
- instalace
yum install freeradius freeradius-utils freeradius-ldap freeradius-mysql
- konfigurace /etc/raddb dle Eduroam návodu resp. aktuálních FJFI konfigurací
- SELinux konfigurace
semanage fcontext -a -t radiusd_exec_t /etc/raddb/RadiusPostAuth.py restorecon -v /etc/raddb/RadiusPostAuth.py
- nutné výtvořit MariaDB databázi podle /etc/raddb/mods-config/sql/main/mysql
mysql -e 'CREATE DATABASE radius' mysql radius < schema.sql mysql radius < setup.sql mysql -B mysql -e 'GRANT SELECT,LOCK TABLES ON radius.* TO "radius_reader"@"%" IDENTIFIED BY "secret"'
- služba
systemctl enable radiusd
- skripty pro registraci zařízení přihlášených přes Eduroam potřebují další python moduly
yum install python-ldap MySQL-python
radsecproxy
- při použití FreeRadius 3.x již není potřeba, protože podpora radsec je do FreeRadiusu integrována
- vytvořen RPM balíček radsecproxy-1.6.6-0.el7.centos.x86_64.rpm
- konfigurace /etc/radsecproxy.conf
- služba
systemctl enable radsecproxy
firewall
- služba
systemctl enable firewalld
- konfigurace
# trusted hosts firewall-cmd --permanent --zone=trusted firewall-cmd --permanent --zone=trusted --add-source=147.32.9.2 firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1900::2 firewall-cmd --permanent --zone=trusted --add-source=147.32.9.3 firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1900::3 firewall-cmd --permanent --zone=trusted --add-source=147.32.9.67 firewall-cmd --permanent --zone=trusted --add-source=2001:718:2:1800::3 # internal (FNSPE) network #firewall-cmd --permanent --zone=internal --add-source=147.32.4.0/22 #firewall-cmd --permanent --zone=internal --add-source=147.32.8.0/22 #firewall-cmd --permanent --zone=internal --add-source=147.32.22.0/24 #firewall-cmd --permanent --zone=internal --add-source=147.32.25.0/24 #firewall-cmd --permanent --zone=internal --add-source=2001:718:2:1800::/56 #firewall-cmd --permanent --zone=internal --add-source=2001:718:2:1900::/56 #firewall-cmd --permanent --zone=internal --remove-servce=ipp-client #firewall-cmd --permanent --zone=internal --remove-servce=mdns #firewall-cmd --permanent --zone=internal --remove-servce=dhcpv6-client #firewall-cmd --permanent --zone=internal --remove-servce=samba-client # work (CTU) network firewall-cmd --permanent --zone=work --add-source=147.32.0.0/16 firewall-cmd --permanent --zone=work --add-source=2001:718:2::/48 firewall-cmd --permanent --zone=work --add-service=dns firewall-cmd --permanent --zone=work --remove-service=ipp-client firewall-cmd --permanent --zone=work --remove-service=dhcpv6-client # public services firewall-cmd --permanent --zone=public --add-service=smtp firewall-cmd --permanent --zone=public --add-port=465/tcp firewall-cmd --permanent --zone=public --add-port=587/tcp firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.4.0/26" service name="radius" accept' firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.7.0/26" service name="radius" accept' firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="147.32.22.224/27" service name="radius" accept' firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="195.113.233.246" service name="radius" accept' firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="195.113.187.22" port port="2083" protocol="tcp" accept' # apply changes in firewall configuration firewall-cmd --reload