Difference between revisions of "Nms.fjfi.cvut.cz"

From NMS
Jump to: navigation, search
(Základní informace (nms))
(Ostatní)
 
(68 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Servers}}
 
{{Servers}}
  
=Základní informace ([http://nms.fjfi.cvut.cz nms])=
+
=Základní informace o [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=3037 nms] (Trojanova)=
  
;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokac Petr Vokáč]
+
;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet Petr Vokáč]
;HW : [http://www.asus.com/products.aspx?l1=9&l2=40&l3=116&l4=0&model=1970&modelmenu=2 ASUS 1U server RS120-E5/PA4], Intel(R) Xeon(R) CPU X3220 @ 2.40GHz, 4GB RAM, 2x250GB SATA HDD (RAID1)
+
;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 CentOS5]
+
;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]], [[IPv6_rozsahy|IPv6 router for Trojanova]], [https://nms.fjfi.cvut.cz/wiki/ Admin Wiki], ...
+
;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 : ---
 +
 +
=Základní informace o [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=908 nms-br] (Břehová)=
 +
 +
;Správce : [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet Petr Vokáč]
 +
;HW : [http://www.asus.com/Commercial_Servers_Workstations/RS120E5PA4/ ASUS 1U server RS120-E5/PA4], Intel(R) Xeon(R) CPU X3220 @ 2.40GHz, 4GB RAM, 2x250GB SATA HDD (RAID1)
 +
;OS : [http://www.centos.org CentOS7]
 +
;Využití : Network monitoring for Břehová, [https://nms.fjfi.cvut.cz/user/?p=wifi&sp=wififjfi WiFiFJFI], DHCP, caching DNS, Network device registration support, ...
 +
;Konto : ---
 +
 +
=Základní informace o [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=4726 nms-vh] (Trója)=
 +
 +
;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
 +
;OS : [http://www.centos.org CentOS7]
 +
;Využití : Network monitoring for Trója, DHCP, caching DNS, Network device registration support, ...
 +
;Konto : ---
 +
 +
=Základní informace o [https://nms.fjfi.cvut.cz/user/?p=mac&sp=detail&id=20572 nms-dp] (Děčín)=
 +
 +
;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
 +
;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], ...
 +
;Konto : ---
 +
 +
=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=
 +
* 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>
 +
* 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 <tt>puppet.fjfi.cvut.cz</tt> (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)
 +
* konfigurace z informací o [https://nms.fjfi.cvut.cz/user/?p=mac registrovaných zařízeních]
 +
==ISC DHCP 4.3.1==
 +
* 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 <tt>src.rpm</tt> balíku Fedory 21
 +
** nutné provést drobné změny v <tt>dhcp.spec</tt> 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 <tt>dhcp-remove-bind.patch</tt> odstraňující závislost na interních ISC BIND knihovnách
 +
** 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
 +
** použity systemd service soubory z CentOS7
 +
* 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
 +
* pro funkčnost update daemon musíte:
 +
<pre>yum install python-netaddr python-dns MySQL-python.x86_64</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>
 +
 +
=RADVD=
 +
* zkonfigurováno na FJFI zakončení [[IPv6 rozsahy|IPv6 tunelů]], tj. nms-br, nms-tr, nms-vh
 +
</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=
 +
* 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>
 +
 +
=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 <tt>/dev/shm</tt>
 +
 +
=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 <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é 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>
 +
 +
=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>
 +
* 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í=
 +
* konfigurace parametrů jádra (sysctl.conf) - puppet
 +
* konfigurace síťových rozhraní - <tt>/etc/sysconfig/network-scripts/ifcfg-*</tt>
 +
* konfigurace firewallu (<tt>iptables</tt>, <tt>ip6tables</tt>, <tt>ipset</tt>)
 +
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 <tt>/etc/aliases</tt> + <tt>newaliases</tt>
 +
* dinfo konfigurace
 +
* konfigurace cron tasků
 +
* ocsinventory
 +
** evidence hardware linuxových stanic
 +
*** <tt>ocsinventory-agent</tt>
 +
*** 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
 +
* 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 13:28, 26 May 2017

Servery / Služby
Přístupné komukoliv
windows
srk
linux / unix
kmlinux
Omezený/individuální účet
linux / unix
bimbo · buon(KF) · km(KM) · lenochod(KJR) · linux · node(KM) · sunrise(KF) · unixlab(KFE) · vkstat(KM)
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]

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

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)
  • konfigurace z informací o registrovaných zařízeních

ISC DHCP 4.3.1

  • 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
  • pro funkčnost update daemon musíte:
yum install python-netaddr python-dns MySQL-python.x86_64

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

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

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