Nms.fjfi.cvut.cz
From NMS
(Redirected from DHCP)
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