Difference between revisions of "Nms.fjfi.cvut.cz"
From NMS
(→Ostatní) |
(→konfigurace sítě) |
||
(47 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
;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 : [http://www.supermicro.com/products/motherboard/Xeon3000/X58/X8STE.cfm Supermicro X8STE], Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz, 12GB RAM, 2x250 SATA HDD (Intel RAID1), chasis 2U (6x3.5 HDD) | ;HW : [http://www.supermicro.com/products/motherboard/Xeon3000/X58/X8STE.cfm Supermicro X8STE], Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz, 12GB RAM, 2x250 SATA HDD (Intel RAID1), chasis 2U (6x3.5 HDD) | ||
− | ;OS : [http://www.centos.org | + | ;OS : [http://www.centos.org CentOS7] |
;Využití : [https://nms.fjfi.cvut.cz/nagios/ Network Monitoring], [https://nms.fjfi.cvut.cz/user/ User Account Configuration], [https://nms.fjfi.cvut.cz/user/?p=wifi&sp=wififjfi WiFiFJFI], [[VPN|FJFI VPN Server]], [https://nms.fjfi.cvut.cz/wiki/ Admin Wiki], DHCP, caching DNS, ... | ;Využití : [https://nms.fjfi.cvut.cz/nagios/ Network Monitoring], [https://nms.fjfi.cvut.cz/user/ User Account Configuration], [https://nms.fjfi.cvut.cz/user/?p=wifi&sp=wififjfi WiFiFJFI], [[VPN|FJFI VPN Server]], [https://nms.fjfi.cvut.cz/wiki/ Admin Wiki], DHCP, caching DNS, ... | ||
;Konto : --- | ;Konto : --- | ||
Line 21: | Line 21: | ||
;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 : Asus AT5NM10-I Mini-ITX, CPU Atom 510, 2GB RAM | ;HW : Asus AT5NM10-I Mini-ITX, CPU Atom 510, 2GB RAM | ||
− | ;OS : [http://www.centos.org | + | ;OS : [http://www.centos.org CentOS7] |
− | ;Využití : Network monitoring for Trója | + | ;Využití : Network monitoring for Trója, DHCP, caching DNS, Network device registration support, ... |
;Konto : --- | ;Konto : --- | ||
Line 29: | Line 29: | ||
;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 : Dell PowerEdge SC430, Intel(R) Pentium(R) 4 CPU 2.80GHz, 2.5GB RAM, HDD 80GB | ;HW : Dell PowerEdge SC430, Intel(R) Pentium(R) 4 CPU 2.80GHz, 2.5GB RAM, HDD 80GB | ||
− | ;OS : [http://www.centos.org | + | ;OS : [http://www.centos.org CentOS7] |
;Využití : Network Monitoring for Děčín, DHCP, caching DNS, [https://nms.fjfi.cvut.cz/user/?p=wifi&sp=wififjfi WiFiFJFI], ... | ;Využití : Network Monitoring for Děčín, DHCP, caching DNS, [https://nms.fjfi.cvut.cz/user/?p=wifi&sp=wififjfi WiFiFJFI], ... | ||
;Konto : --- | ;Konto : --- | ||
+ | |||
+ | =konfigurace sítě= | ||
+ | * vychází z informací na [[Network]] | ||
+ | * pro zjednodušení správy jsou síťové interfacy pomnenovány resp. přejmenovány na <tt>netX</tt> s využitím [https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/consistent-network-interface-device-naming_configuring-and-managing-networking#configuring-user-defined-network-interface-names-by-using-systemd-link-files_consistent-network-interface-device-naming systemd link souborů] | ||
+ | ** primární interface bude mít označení <tt>net0</tt> | ||
+ | |||
+ | =ipsec (libreswan)= | ||
+ | * zabezpečené spojení mezi NMS servery | ||
+ | ** včetně dat v GRE tunelech pro privátní adresy | ||
+ | ** statická konfigurace routování přivátních adres skrz GRE tunely <tt>/etc/sysconfig/network-scripts/route-gre*</tt> | ||
+ | * používá lokálně vygenerované vzájemně důvěryhodné certifikáty | ||
+ | * je nutné zprovoznit jako první službu, protože jinak nebude fungovat komunikace mezi NMS servery (e.g. puppet repository, databaze, ...) | ||
+ | * <pre>yum install libreswan</pre> | ||
+ | * <pre>ipsec verify</pre> | ||
=Puppet= | =Puppet= | ||
− | * server 3. | + | * server 3.x běží na nms.fjfi.cvut.cz (2.6.x verze nespolupracují s 3.x klienty), novější je i facter |
* pro zpřístupnění konfigurací se používá rubygem-passenger, konfigurace <tt>/etc/httpd/conf.d/puppet.conf</tt> | * pro zpřístupnění konfigurací se používá rubygem-passenger, konfigurace <tt>/etc/httpd/conf.d/puppet.conf</tt> | ||
* po instalaci z RPM je potřeba doinstalovat některé standardní moduly | * po instalaci z RPM je potřeba doinstalovat některé standardní moduly | ||
Line 55: | Line 69: | ||
*** Trója - VLAN1 147.32.25.2 + realy (147.32.9.2, 147.32.9.4) | *** Trója - VLAN1 147.32.25.2 + realy (147.32.9.2, 147.32.9.4) | ||
* konfigurace z informací o [https://nms.fjfi.cvut.cz/user/?p=mac registrovaných zařízeních] | * konfigurace z informací o [https://nms.fjfi.cvut.cz/user/?p=mac registrovaných zařízeních] | ||
+ | ==ISC DHCP== | ||
+ | * <strike>oficiální DHCP server v CentOS7 (ISC DHCP 4.2.5) nepodporuje IPv6 classes</strike> | ||
+ | * <strike>aktuálně je nasazen novější ISC DHCP 4.3.1 z <tt>src.rpm</tt> balíku Fedory 21</strike> | ||
+ | ** <strike>nutné provést drobné změny v <tt>dhcp.spec</tt> souboru</strike> | ||
+ | ** <strike>kompilováno s vloženými ISC BIND knihovnami (požadovaná verze je 9.9.6 a CentOS7 používá 9.9.4)</strike> | ||
+ | ** <strike>revertnut <tt>dhcp-remove-bind.patch</tt> odstraňující závislost na interních ISC BIND knihovnách</strike> | ||
+ | ** <strike>portován <tt>dhcp-sd-daemon.patch</tt> (z CentOS7) namísto <tt>dhcp-sd_notify.patch</tt> vyžadujícího novější verzi systemd</strike> | ||
+ | ** <strike>použity systemd service soubory z CentOS7</strike> | ||
+ | * <strike>detaily změn se dají dohledat porovnáním <tt>spec</tt> souboru z originálního balíku (z Fedory) a lokálně upraveného</strike> | ||
+ | * na Alma9 použit distribuční ISC DHCP 4.4.2 | ||
+ | * pro funkčnost update daemon musíte: | ||
+ | <pre>dnf install python3-netaddr python3-dns python3-PyMySQL</pre> | ||
+ | |||
+ | ==Konfigurace== | ||
+ | * veškeré konfigurační soubory jsou v <tt>/etc/dhcp</tt> | ||
+ | * databáze přidělených IP adres je ve <tt>/var/lib/dhcp</tt> | ||
+ | * hlavním konfiguračním souborem je <tt>dhcpd.conf</tt> resp. <tt>dhcpd6.conf</tt>, který includuje obecné a pro lokální DHCP server specifické konfigurace | ||
+ | * ze seznamu zaregistrovaných zařízení jsou s využitím skriptu <tt>DhcpUpdate.py</tt> generovány konfigurační soubory <tt>dhcpd.static.conf</tt> resp. <tt>dhcpd6.static.conf</tt> | ||
<strike> | <strike> | ||
+ | |||
=RADVD= | =RADVD= | ||
* zkonfigurováno na FJFI zakončení [[IPv6 rozsahy|IPv6 tunelů]], tj. nms-br, nms-tr, nms-vh | * zkonfigurováno na FJFI zakončení [[IPv6 rozsahy|IPv6 tunelů]], tj. nms-br, nms-tr, nms-vh | ||
</strike> | </strike> | ||
+ | |||
+ | =TACACS+= | ||
+ | * zkonfigurován [http://www.shrubbery.net/tac_plus/|tac_plus] pro síťové prvky | ||
+ | * konfigurace v <tt>/etc/tac_plus.conf</tt> | ||
+ | * firewall nastaven tak, aby byl dostupný pouze z management VLAN | ||
+ | |||
+ | =HTTP= | ||
+ | <strike> | ||
+ | * web rozhraní pro uživatelské konfigurace | ||
+ | * konfigurace wififjfi logování (virtualhost pro privátní adresy) | ||
+ | * <pre>yum install httpd</pre> | ||
+ | * konfigurace virtualhostu <tt>/etc/httpd/conf.d/virtual.conf</tt> | ||
+ | <pre> | ||
+ | systemctl enable httpd | ||
+ | systemctl start httpd | ||
+ | </pre> | ||
+ | </strike> | ||
+ | |||
+ | =nginx= | ||
+ | * přesměrování na registraci síťových zařízení | ||
+ | * přesměrování na captive portál login do sítě wififjfi | ||
+ | yum install nginx | ||
+ | |||
+ | # konfigurace přesměrování | ||
+ | # | ||
+ | # server { | ||
+ | # listen 172.1x.19.1:80; | ||
+ | # listen 172.1x.23.1:80; | ||
+ | # listen 172.1x.79.1:80; | ||
+ | # listen 172.1x.111.1:80; | ||
+ | # server_name _; | ||
+ | # return 301 $scheme://nms.fjfi.cvut.cz/index.php?r=register&client=$remote_addr; | ||
+ | # } | ||
+ | # | ||
+ | # server { | ||
+ | # listen 172.1x.112.1:80; | ||
+ | # server_name _; | ||
+ | # return 301 $scheme://nms.fjfi.cvut.cz/index.php?r=wififjfi&client=$remote_addr; | ||
+ | # } | ||
+ | |||
+ | systemctl enable nginx | ||
+ | systemctl start nginx | ||
+ | |||
+ | =Certifikáty= | ||
+ | * aktuálně jsou zkonfigurovány DANE/TLSA záznamy v DNS | ||
+ | * při změně privátního klíče je nejprve nutný jejich updat v DNS | ||
=Logging= | =Logging= | ||
Line 76: | Line 155: | ||
systemctl enable nagios | systemctl enable nagios | ||
#systemctl start nagios # až po dokončení konfigurace | #systemctl start nagios # až po dokončení konfigurace | ||
+ | # pro autentizaci proti LDAP k web rozhraní nagiosu | ||
+ | yum install mod_ldap | ||
* konfigurace uloženy v <tt>/etc/nagios</tt> (některé lze generovat skriptem - routery/switche/ap) | * konfigurace uloženy v <tt>/etc/nagios</tt> (některé lze generovat skriptem - routery/switche/ap) | ||
* některé vlastní monitorovací pluginy přidány do <tt>/usr/lib64/nagios/plugins</tt> (např.: check_openvpn, check_radius_simple, check_radius_eap, check_mysql_ping.sh, check_kdc_user, check_imap_login.php, check_certificate.pl, check_bacula.pl, check_kdc) | * některé vlastní monitorovací pluginy přidány do <tt>/usr/lib64/nagios/plugins</tt> (např.: check_openvpn, check_radius_simple, check_radius_eap, check_mysql_ping.sh, check_kdc_user, check_imap_login.php, check_certificate.pl, check_bacula.pl, check_kdc) | ||
* některé přidané pluginy potřebují další nainstalované balíčky (např. bacula-console, freeradius-utils, ...), ty lze dohledat podle (ne)fungujícího monitoringu a příkazu, které jsou používány | * některé přidané pluginy potřebují další nainstalované balíčky (např. bacula-console, freeradius-utils, ...), ty lze dohledat podle (ne)fungujícího monitoringu a příkazu, které jsou používány | ||
+ | * konfigurace apache (přístupu k web rozhraní) je v <tt>/etc/httpd/conf.d/nagios.conf</tt> | ||
+ | |||
+ | =OpenVPN= | ||
+ | * přístup do lokálních sítí | ||
+ | * nutná instalace kerberos klienta (kinit) | ||
+ | * vygenerovat DH klíče | ||
+ | openssl dhparam -out /etc/openvpn/dh1024.tmp 1024 2> /dev/null && chmod 644 /etc/openvpn/dh1024.tmp && mv /etc/openvpn/dh1024.tmp /etc/openvpn/dh1024.pem | ||
+ | * povolení logování přístupu do databáze | ||
+ | GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-br.fjfi.cvut.cz' IDENTIFIED BY '*****'; | ||
+ | GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-tr.fjfi.cvut.cz' IDENTIFIED BY '*****'; | ||
+ | GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-vh.fjfi.cvut.cz' IDENTIFIED BY '*****'; | ||
+ | GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-dp.fjfi.cvut.cz' IDENTIFIED BY '*****'; | ||
+ | * nutné nastavit heslo a zkonfigurovat TLS pro přístup k databázi v <tt>~/.my.cnf</tt> | ||
+ | |||
+ | =NAT konfigurace= | ||
+ | * potřeba nastavit helpery pomocí <tt>IPTABLES_MODULES</tt> v <tt>/etc/sysconfig/iptables-config</tt> | ||
+ | IPTABLES_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_tftp nf_nat_tftp nf_conntrack_irc nf_nat_irc nf_conntrack_h323 nf_nat_h323 nf_conntrack_sip nf_nat_sip nf_nat_proto_gre nf_conntrack_proto_gre nf_conntrack_pptp nf_nat_pptp" | ||
+ | * IGMP proxy | ||
+ | =NAT logging= | ||
+ | * používá se standadní daemon <tt>ulogd</tt> | ||
+ | rpm -Uvh libnetfilter_acct-1.0.2-3.el7.centos.x86_64.rpm \ | ||
+ | libnetfilter_log-1.0.1-6.el7.centos.x86_64.rpm \ | ||
+ | ulogd-2.0.4-3.el7.centos.x86_64.rpm \ | ||
+ | ulogd-mysql-2.0.4-3.el7.centos.x86_64.rpm | ||
+ | yum -y install mariadb-server | ||
+ | systemctl enable mariadb | ||
+ | systemctl start mariadb | ||
+ | * konfigurace MariaDB | ||
+ | ** nastavit per database separátní InnoDB soubor<pre>innodb_file_per_table</pre> | ||
+ | ** zkonfigurovat používání SSL/TLS pro remote spojení | ||
+ | ** inspirovat se dalšími nastaveními z ostatních NMS serverů | ||
+ | * inicializace MariaDB | ||
+ | # mysql mysql | ||
+ | delete from user where user = '''''''; | ||
+ | delete from user where user = 'root' and host != 'localhost'; | ||
+ | update user set password = PASSWORD('secret'), host = '%' where user = 'root'; | ||
+ | flush privileges; | ||
+ | * vytvořit databázi pro ukládání conntrack dat | ||
+ | mysql --batch -e 'CREATE DATABASE IF NOT EXISTS `nulog`;' | ||
+ | mysql --batch -e 'GRANT select,insert,update,drop,delete,alter,alter routine,create,create routine,create temporary tables,create view ON nulog.* TO "nulog"@"localhost" IDENTIFIED BY "secret";' | ||
+ | mysql -u nulog -p nulog < mysql-ulogd2.sql | ||
+ | # z mysql-ulog2.sql je potreba odstranit sloupce: | ||
+ | # reply_ip_saddr, reply_ip_daddr, reply_ip_protocol | ||
+ | # reply_bytes, reply_packets | ||
+ | # a to z tabulek/view/funkci: | ||
+ | # conntrack, INSERT_CT, ulog2_ct | ||
+ | mysql --batch -e 'GRANT select,insert,update,drop,delete,create temporary tables ON nulog.* TO "nulog"@"localhost" IDENTIFIED BY "secret";' | ||
+ | * konfigurace <tt>/etc/ulogd.conf</tt> | ||
+ | # ... | ||
+ | stack=ct3:NFCT,ip2bin1:IP2BIN,mysql2:MYSQL | ||
+ | # ... | ||
+ | [ct3] | ||
+ | accept_src_filter=172.16.0.0/12,2001:718:2:1900::/128 | ||
+ | hash_enable=0 # requires net.netfilter.nf_conntrack_timestamp=1 | ||
+ | # ... | ||
+ | [mysql2] | ||
+ | db="nulog" | ||
+ | host="localhost" | ||
+ | user="nulog" | ||
+ | table="conntrack" | ||
+ | pass="secret" | ||
+ | procedure="INSERT_CT" | ||
+ | # ... | ||
+ | * vytvoření systemd unit file pro ulogd | ||
+ | [Unit] | ||
+ | Description=Userspace logging daemon for NFLOG | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/usr/sbin/ulogd -u nobody | ||
+ | Restart=on-failure | ||
+ | RestartSec=30 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | * nastartování ulogd | ||
+ | systemctl daemon-reload | ||
+ | systemctl enable ulogd | ||
+ | systemctl start ulogd | ||
+ | * SELinux nemá pro ulogd asi správná pravidla a tak je dočasně pro tento daemon disablován | ||
+ | semanage permissive -a ulogd_t | ||
+ | * konfigurace conntracku parametru v <tt>/etc/sysctl.d/98-ulogd.conf</tt> | ||
+ | # to log full information some kernel options must be enabled (be careful | ||
+ | # because they are by default disabled because of their impact on performance) | ||
+ | #net.netfilter.nf_conntrack_acct = 1 | ||
+ | net.netfilter.nf_conntrack_timestamp = 1 | ||
=Ostatní= | =Ostatní= | ||
Line 92: | Line 258: | ||
systemctl enable ip6tables | systemctl enable ip6tables | ||
# create configuration files using Iptables.py script | # create configuration files using Iptables.py script | ||
+ | * konfigurace SELinux (aktuálně se používá na nms-br, nms-vh, nms-dp) | ||
+ | yum install policycoreutils-python | ||
+ | # DHCPv6 omapi-port (nelze použít default port 7911 používaný již pro DHCPv4) | ||
+ | semanage port --add -t dhcpd_port_t -p tcp 7912 | ||
+ | # povolení dalších portů potřebných pro konfiguraci dhcp-failover ve více než dvou lokalitách | ||
+ | semanage port --add -t dhcpd_port_t -p tcp 648 | ||
+ | semanage port --add -t dhcpd_port_t -p tcp 848 | ||
+ | semanage port --add -t dhcpd_port_t -p tcp 649 | ||
+ | semanage port --add -t dhcpd_port_t -p tcp 849 | ||
* puppet agent | * puppet agent | ||
# install puppet client | # install puppet client | ||
− | 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 | ||
echo "server = puppet.fjfi.cvut.cz" >> /etc/puppet/puppet.conf | echo "server = puppet.fjfi.cvut.cz" >> /etc/puppet/puppet.conf | ||
Line 103: | Line 278: | ||
* arpmon | * arpmon | ||
yum install MySQL-python python-ldap python-netaddr libnet | yum install MySQL-python python-ldap python-netaddr libnet | ||
− | rpm -Uvh python-pycap-0.2- | + | rpm -Uvh python-pycap-0.2-17.el7.x86_64.rpm arpmon-0.9.17-4.noarch.rpm |
# use backup of configs /etc/arpmon.conf.enp3s0* | # use backup of configs /etc/arpmon.conf.enp3s0* | ||
systemctl enable arpmon@enp3s0.service | systemctl enable arpmon@enp3s0.service | ||
Line 118: | Line 293: | ||
systemctl enable bacula-fd | systemctl enable bacula-fd | ||
systemctl start bacula-fd | systemctl start bacula-fd | ||
− | |||
− | |||
− | |||
− | |||
* shibboleth | * shibboleth | ||
** konfigurace dle oficiálního ČVUT návodu | ** konfigurace dle oficiálního ČVUT návodu | ||
Line 135: | Line 306: | ||
** nutné zkonfigurovat přístupová práva v konfiguracích apache | ** nutné zkonfigurovat přístupová práva v konfiguracích apache | ||
** používá MySQL databázi pro ukládání nasbíraných dat | ** používá MySQL databázi pro ukládání nasbíraných dat | ||
+ | * mysql/mariadb | ||
+ | ** aktuální verze MariaDB 5.5.x v CentOS7 nepodporuje funkce pro konverzi IPv6 adres | ||
+ | ** nutné přidat knihovnu pro podporující [https://bitbucket.org/watchmouse/mysql-udf-ipv6 IPv6 funkce], které byly přidány do verze 5.6.3 | ||
+ | ** zkompilovat zdrojáky do knihovny a zaregistrovat nové funkce | ||
+ | CREATE FUNCTION inet6_ntop RETURNS STRING SONAME "mysql_udf_ipv6.so"; | ||
+ | CREATE FUNCTION inet6_pton RETURNS STRING SONAME "mysql_udf_ipv6.so"; | ||
+ | CREATE FUNCTION inet6_lookup RETURNS STRING SONAME "mysql_udf_ipv6.so"; | ||
+ | CREATE FUNCTION inet6_rlookup RETURNS STRING SONAME "mysql_udf_ipv6.so"; | ||
+ | CREATE FUNCTION inet6_mask RETURNS STRING SONAME "mysql_udf_ipv6.so"; | ||
+ | CREATE FUNCTION idna_to_ascii RETURNS STRING SONAME "mysql_udf_idna.so"; | ||
+ | CREATE FUNCTION idna_from_ascii RETURNS STRING SONAME "mysql_udf_idna.so"; | ||
+ | ** funkce nemají shodné názvy jako oficiální takže při přechodu na novou verzi bude potřeba upravit příslušné SQL dotazy | ||
+ | ** tyto funkce jsou vyžadovány monitoringem síťových zařízení (databazový backend pro <tt>arpmon</tt>) | ||
+ | * stunnel | ||
+ | ** slouží pro debugovaní problému se SSL/TLS spojeními | ||
+ | ** slouží pro přístup k Oracle databázi | ||
+ | ** konfigurace v <tt>/etc/stunnel/stunnel.conf</tt> | ||
+ | ** systemd service file <tt>stunnel.service</tt> převzat z Fedory (v CentOS7.1 není k dispozici) | ||
+ | * squid | ||
+ | ** slouží jako cache pro CVMFS | ||
+ | ** http://squid.fjfi.cvut.cz:3128 | ||
+ | ** přístup omezen na rozahy FJFI |
Latest revision as of 07:43, 7 May 2024
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
- 1 Základní informace o nms (Trojanova)
- 2 Základní informace o nms-br (Břehová)
- 3 Základní informace o nms-vh (Trója)
- 4 Základní informace o nms-dp (Děčín)
- 5 konfigurace sítě
- 6 ipsec (libreswan)
- 7 Puppet
- 8 DHCP
- 9 RADVD
- 10 TACACS+
- 11 HTTP
- 12 nginx
- 13 Certifikáty
- 14 Logging
- 15 Monitoring
- 16 OpenVPN
- 17 NAT konfigurace
- 18 NAT logging
- 19 Ostatní
Základní informace o nms (Trojanova)
- Správce
- Petr Vokáč
- HW
- Supermicro X8STE, Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz, 12GB RAM, 2x250 SATA HDD (Intel RAID1), chasis 2U (6x3.5 HDD)
- OS
- CentOS7
- Využití
- Network Monitoring, User Account Configuration, WiFiFJFI, FJFI VPN Server, Admin Wiki, DHCP, caching DNS, ...
- Konto
- ---
Základní informace o nms-br (Břehová)
- Správce
- Petr Vokáč
- HW
- ASUS 1U server RS120-E5/PA4, Intel(R) Xeon(R) CPU X3220 @ 2.40GHz, 4GB RAM, 2x250GB SATA HDD (RAID1)
- OS
- CentOS7
- Využití
- Network monitoring for Břehová, WiFiFJFI, DHCP, caching DNS, Network device registration support, ...
- Konto
- ---
Základní informace o nms-vh (Trója)
- Správce
- Petr Vokáč
- HW
- Asus AT5NM10-I Mini-ITX, CPU Atom 510, 2GB RAM
- OS
- CentOS7
- Využití
- Network monitoring for Trója, DHCP, caching DNS, Network device registration support, ...
- Konto
- ---
Základní informace o nms-dp (Děčín)
- Správce
- Petr Vokáč
- HW
- Dell PowerEdge SC430, Intel(R) Pentium(R) 4 CPU 2.80GHz, 2.5GB RAM, HDD 80GB
- OS
- CentOS7
- Využití
- Network Monitoring for Děčín, DHCP, caching DNS, WiFiFJFI, ...
- Konto
- ---
konfigurace sítě
- vychází z informací na Network
- pro zjednodušení správy jsou síťové interfacy pomnenovány resp. přejmenovány na netX s využitím systemd link souborů
- primární interface bude mít označení net0
ipsec (libreswan)
- zabezpečené spojení mezi NMS servery
- včetně dat v GRE tunelech pro privátní adresy
- statická konfigurace routování přivátních adres skrz GRE tunely /etc/sysconfig/network-scripts/route-gre*
- používá lokálně vygenerované vzájemně důvěryhodné certifikáty
- je nutné zprovoznit jako první službu, protože jinak nebude fungovat komunikace mezi NMS servery (e.g. puppet repository, databaze, ...)
-
yum install libreswan
-
ipsec verify
Puppet
- server 3.x běží na nms.fjfi.cvut.cz (2.6.x verze nespolupracují s 3.x klienty), novější je i facter
- pro zpřístupnění konfigurací se používá rubygem-passenger, konfigurace /etc/httpd/conf.d/puppet.conf
- po instalaci z RPM je potřeba doinstalovat některé standardní moduly
puppet module install puppetlabs-stdlib puppet module install puppetlabs-ntp ...
- pro puppet server je možné používat alias puppet.fjfi.cvut.cz (funkční/důvěryhodné certifikáty serveru)
- slouží ke konfiguraci zákládních služeb na serveru
- fnspe_rsyslog -- centrální logování
- fnspe_krb5 -- konfigurace kerberos klienta
- fnspe_dns -- caching DNS (bind)
- fnspe_ntp -- NTP client
- fnspe_openvpn -- OpenVPN konfigurace (pro přístup k lokálním privátním subnetům)
DHCP
- failover konfigurace (druhý server vždy v Trojance s vyjímkou Trojanka-Břehovka)
- DHCP relay na CISCO
- Břehová - VLAN1 relay (147.32.9.2, 147.32.9.4, 147.32.9.66), VLAN9 147.32.9.66
- Trojanova - VLAN1 relay (147.32.9.2, 147.32.9.4, 147.32.9.66), VLAN9 147.32.9.2, VLAN13 relay (147.32.9.2, 147.32.9.4, 147.32.9.66)
- Trója - VLAN1 147.32.25.2 + realy (147.32.9.2, 147.32.9.4)
- DHCP relay na CISCO
- konfigurace z informací o registrovaných zařízeních
ISC DHCP
-
oficiální DHCP server v CentOS7 (ISC DHCP 4.2.5) nepodporuje IPv6 classes -
aktuálně je nasazen novější ISC DHCP 4.3.1 z src.rpm balíku Fedory 21-
nutné provést drobné změny v dhcp.spec souboru -
kompilováno s vloženými ISC BIND knihovnami (požadovaná verze je 9.9.6 a CentOS7 používá 9.9.4) -
revertnut dhcp-remove-bind.patch odstraňující závislost na interních ISC BIND knihovnách -
portován dhcp-sd-daemon.patch (z CentOS7) namísto dhcp-sd_notify.patch vyžadujícího novější verzi systemd -
použity systemd service soubory z CentOS7
-
-
detaily změn se dají dohledat porovnáním spec souboru z originálního balíku (z Fedory) a lokálně upraveného - na Alma9 použit distribuční ISC DHCP 4.4.2
- pro funkčnost update daemon musíte:
dnf install python3-netaddr python3-dns python3-PyMySQL
Konfigurace
- veškeré konfigurační soubory jsou v /etc/dhcp
- databáze přidělených IP adres je ve /var/lib/dhcp
- hlavním konfiguračním souborem je dhcpd.conf resp. dhcpd6.conf, který includuje obecné a pro lokální DHCP server specifické konfigurace
- ze seznamu zaregistrovaných zařízení jsou s využitím skriptu DhcpUpdate.py generovány konfigurační soubory dhcpd.static.conf resp. dhcpd6.static.conf
RADVD
- zkonfigurováno na FJFI zakončení IPv6 tunelů, tj. nms-br, nms-tr, nms-vh
TACACS+
- zkonfigurován [1] pro síťové prvky
- konfigurace v /etc/tac_plus.conf
- firewall nastaven tak, aby byl dostupný pouze z management VLAN
HTTP
- web rozhraní pro uživatelské konfigurace
- konfigurace wififjfi logování (virtualhost pro privátní adresy)
-
yum install httpd
- konfigurace virtualhostu /etc/httpd/conf.d/virtual.conf
systemctl enable httpd systemctl start httpd
nginx
- přesměrování na registraci síťových zařízení
- přesměrování na captive portál login do sítě wififjfi
yum install nginx # konfigurace přesměrování # # server { # listen 172.1x.19.1:80; # listen 172.1x.23.1:80; # listen 172.1x.79.1:80; # listen 172.1x.111.1:80; # server_name _; # return 301 $scheme://nms.fjfi.cvut.cz/index.php?r=register&client=$remote_addr; # } # # server { # listen 172.1x.112.1:80; # server_name _; # return 301 $scheme://nms.fjfi.cvut.cz/index.php?r=wififjfi&client=$remote_addr; # } systemctl enable nginx systemctl start nginx
Certifikáty
- aktuálně jsou zkonfigurovány DANE/TLSA záznamy v DNS
- při změně privátního klíče je nejprve nutný jejich updat v DNS
Logging
- rsyslog @ nms
- zkonfigurován pro příjem logů z ostatních zařízení
- podpora standardního remote logging 514/udp, ale i zabezpečeného syslog-tls
- klienty je potřeba zkonfigurovat tak, aby i při použití TCP loggingu nekolabovali, když log server neběží
- (většinou) nepotřebujeme reliable logging a je možné v případě potřeby logovací hlášky zahazovat
- mailsql
- daemon pro parsování log souborů postfix+amavis a jejich ukládání do databáze
- log daemon zkonfigurován tak, aby přijímal "mail" logy od mailgw a ukládal je do /dev/shm
Monitoring
- nagios
yum install nagios nagios-plugins-all nagios-plugins-bacula nagios-plugins-uptime systemctl enable nagios #systemctl start nagios # až po dokončení konfigurace # pro autentizaci proti LDAP k web rozhraní nagiosu yum install mod_ldap
- konfigurace uloženy v /etc/nagios (některé lze generovat skriptem - routery/switche/ap)
- některé vlastní monitorovací pluginy přidány do /usr/lib64/nagios/plugins (např.: check_openvpn, check_radius_simple, check_radius_eap, check_mysql_ping.sh, check_kdc_user, check_imap_login.php, check_certificate.pl, check_bacula.pl, check_kdc)
- některé přidané pluginy potřebují další nainstalované balíčky (např. bacula-console, freeradius-utils, ...), ty lze dohledat podle (ne)fungujícího monitoringu a příkazu, které jsou používány
- konfigurace apache (přístupu k web rozhraní) je v /etc/httpd/conf.d/nagios.conf
OpenVPN
- přístup do lokálních sítí
- nutná instalace kerberos klienta (kinit)
- vygenerovat DH klíče
openssl dhparam -out /etc/openvpn/dh1024.tmp 1024 2> /dev/null && chmod 644 /etc/openvpn/dh1024.tmp && mv /etc/openvpn/dh1024.tmp /etc/openvpn/dh1024.pem
- povolení logování přístupu do databáze
GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-br.fjfi.cvut.cz' IDENTIFIED BY '*****'; GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-tr.fjfi.cvut.cz' IDENTIFIED BY '*****'; GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-vh.fjfi.cvut.cz' IDENTIFIED BY '*****'; GRANT INSERT ON admin.audit_log TO 'openvpn'@'nms-dp.fjfi.cvut.cz' IDENTIFIED BY '*****';
- nutné nastavit heslo a zkonfigurovat TLS pro přístup k databázi v ~/.my.cnf
NAT konfigurace
- potřeba nastavit helpery pomocí IPTABLES_MODULES v /etc/sysconfig/iptables-config
IPTABLES_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_tftp nf_nat_tftp nf_conntrack_irc nf_nat_irc nf_conntrack_h323 nf_nat_h323 nf_conntrack_sip nf_nat_sip nf_nat_proto_gre nf_conntrack_proto_gre nf_conntrack_pptp nf_nat_pptp"
- IGMP proxy
NAT logging
- používá se standadní daemon ulogd
rpm -Uvh libnetfilter_acct-1.0.2-3.el7.centos.x86_64.rpm \ libnetfilter_log-1.0.1-6.el7.centos.x86_64.rpm \ ulogd-2.0.4-3.el7.centos.x86_64.rpm \ ulogd-mysql-2.0.4-3.el7.centos.x86_64.rpm yum -y install mariadb-server systemctl enable mariadb systemctl start mariadb
- konfigurace MariaDB
- nastavit per database separátní InnoDB soubor
innodb_file_per_table
- zkonfigurovat používání SSL/TLS pro remote spojení
- inspirovat se dalšími nastaveními z ostatních NMS serverů
- nastavit per database separátní InnoDB soubor
- inicializace MariaDB
# mysql mysql delete from user where user = ''; delete from user where user = 'root' and host != 'localhost'; update user set password = PASSWORD('secret'), host = '%' where user = 'root'; flush privileges;
- vytvořit databázi pro ukládání conntrack dat
mysql --batch -e 'CREATE DATABASE IF NOT EXISTS `nulog`;' mysql --batch -e 'GRANT select,insert,update,drop,delete,alter,alter routine,create,create routine,create temporary tables,create view ON nulog.* TO "nulog"@"localhost" IDENTIFIED BY "secret";' mysql -u nulog -p nulog < mysql-ulogd2.sql # z mysql-ulog2.sql je potreba odstranit sloupce: # reply_ip_saddr, reply_ip_daddr, reply_ip_protocol # reply_bytes, reply_packets # a to z tabulek/view/funkci: # conntrack, INSERT_CT, ulog2_ct mysql --batch -e 'GRANT select,insert,update,drop,delete,create temporary tables ON nulog.* TO "nulog"@"localhost" IDENTIFIED BY "secret";'
- konfigurace /etc/ulogd.conf
# ... stack=ct3:NFCT,ip2bin1:IP2BIN,mysql2:MYSQL # ... [ct3] accept_src_filter=172.16.0.0/12,2001:718:2:1900::/128 hash_enable=0 # requires net.netfilter.nf_conntrack_timestamp=1 # ... [mysql2] db="nulog" host="localhost" user="nulog" table="conntrack" pass="secret" procedure="INSERT_CT" # ...
- vytvoření systemd unit file pro ulogd
[Unit] Description=Userspace logging daemon for NFLOG [Service] ExecStart=/usr/sbin/ulogd -u nobody Restart=on-failure RestartSec=30 [Install] WantedBy=multi-user.target
- nastartování ulogd
systemctl daemon-reload systemctl enable ulogd systemctl start ulogd
- SELinux nemá pro ulogd asi správná pravidla a tak je dočasně pro tento daemon disablován
semanage permissive -a ulogd_t
- konfigurace conntracku parametru v /etc/sysctl.d/98-ulogd.conf
# to log full information some kernel options must be enabled (be careful # because they are by default disabled because of their impact on performance) #net.netfilter.nf_conntrack_acct = 1 net.netfilter.nf_conntrack_timestamp = 1
Ostatní
- konfigurace parametrů jádra (sysctl.conf) - puppet
- konfigurace síťových rozhraní - /etc/sysconfig/network-scripts/ifcfg-*
- konfigurace firewallu (iptables, ip6tables, ipset)
yum install iptables-services ipset # add missing ipset startup script from Fedora 20 ipset-service package systemctl disable firewalld systemctl enable ipset systemctl enable iptables systemctl enable ip6tables # create configuration files using Iptables.py script
- konfigurace SELinux (aktuálně se používá na nms-br, nms-vh, nms-dp)
yum install policycoreutils-python # DHCPv6 omapi-port (nelze použít default port 7911 používaný již pro DHCPv4) semanage port --add -t dhcpd_port_t -p tcp 7912 # povolení dalších portů potřebných pro konfiguraci dhcp-failover ve více než dvou lokalitách semanage port --add -t dhcpd_port_t -p tcp 648 semanage port --add -t dhcpd_port_t -p tcp 848 semanage port --add -t dhcpd_port_t -p tcp 649 semanage port --add -t dhcpd_port_t -p tcp 849
- puppet agent
# install puppet client rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm yum install puppet echo "server = puppet.fjfi.cvut.cz" >> /etc/puppet/puppet.conf # apply puppet configuration for this node and enable automatic updates puppet agent -t -d systemctl enable puppet systemctl start puppet
- arpmon
yum install MySQL-python python-ldap python-netaddr libnet rpm -Uvh python-pycap-0.2-17.el7.x86_64.rpm arpmon-0.9.17-4.noarch.rpm # use backup of configs /etc/arpmon.conf.enp3s0* systemctl enable arpmon@enp3s0.service systemctl start arpmon@enp3s0.service
- dinfo (dočasně, bude nahrazeno něčím rozumnějším)
yum install python-dns rpm -Uvh dinfo-0.9.8-0.noarch.rpm # edit list of services in /etc/sysconfig/dinfo systemctl enable dinfo systemctl start dinfo
- bacula
yum install bacula-client # use backup of /etc/bacula/bacula-fd.conf systemctl enable bacula-fd systemctl start bacula-fd
- shibboleth
- konfigurace dle oficiálního ČVUT návodu
- použit pro zabezpečení přístupu k admin wiki, logování NMS UI a WiFiFJFI sítě, registrace zařízení
- tftp-server
- presmerovani mailu pro root uzivatele /etc/aliases + newaliases
- dinfo konfigurace
- konfigurace cron tasků
- ocsinventory
- evidence hardware linuxových stanic
- ocsinventory-agent
- doinstalovat balík perl-LWP-Protocol-https chybějící v závislostech (done by puppet)
- nutné zkonfigurovat přístupová práva v konfiguracích apache
- používá MySQL databázi pro ukládání nasbíraných dat
- evidence hardware linuxových stanic
- mysql/mariadb
- aktuální verze MariaDB 5.5.x v CentOS7 nepodporuje funkce pro konverzi IPv6 adres
- nutné přidat knihovnu pro podporující IPv6 funkce, které byly přidány do verze 5.6.3
- zkompilovat zdrojáky do knihovny a zaregistrovat nové funkce
CREATE FUNCTION inet6_ntop RETURNS STRING SONAME "mysql_udf_ipv6.so"; CREATE FUNCTION inet6_pton RETURNS STRING SONAME "mysql_udf_ipv6.so"; CREATE FUNCTION inet6_lookup RETURNS STRING SONAME "mysql_udf_ipv6.so"; CREATE FUNCTION inet6_rlookup RETURNS STRING SONAME "mysql_udf_ipv6.so"; CREATE FUNCTION inet6_mask RETURNS STRING SONAME "mysql_udf_ipv6.so"; CREATE FUNCTION idna_to_ascii RETURNS STRING SONAME "mysql_udf_idna.so"; CREATE FUNCTION idna_from_ascii RETURNS STRING SONAME "mysql_udf_idna.so";
- funkce nemají shodné názvy jako oficiální takže při přechodu na novou verzi bude potřeba upravit příslušné SQL dotazy
- tyto funkce jsou vyžadovány monitoringem síťových zařízení (databazový backend pro arpmon)
- stunnel
- slouží pro debugovaní problému se SSL/TLS spojeními
- slouží pro přístup k Oracle databázi
- konfigurace v /etc/stunnel/stunnel.conf
- systemd service file stunnel.service převzat z Fedory (v CentOS7.1 není k dispozici)
- squid
- slouží jako cache pro CVMFS
- http://squid.fjfi.cvut.cz:3128
- přístup omezen na rozahy FJFI