Binnen de openstack horizon interface heb je de mogelijkheid om je netwerken te beveiligen met behulp van security groups. Zo kun je toegang van buitenaf of binnenuit beperken voor een instance en je systemen beveiligen tegen aanvallen of ongewenste toegang. Deze handleiding beschrijft de werking van security groups en hoe je deze het beste beheert, begeleid met video instructies.
- Uitleg security groups
- Default instelling security groups
- Toelaten van ICMP ping requests
- Toelaten van remote access
- Toelaten van webserver http/https
- Uitleg terminologie
Uitleg security groups
Security groups gebruik je om je instances en netwerken te beschermen tegen aanvallen of ongewenste toegang van buitenaf. Het is mogelijk om per instance een security rule toe te voegen. Security groups bieden een extra gratis firewall voorziening om je omgeving van buitenaf af te schermen. Het is een soort 2e laag van bescherming voor je netwerk.
Default instelling security groups
Bij het aanmaken van een nieuwe instance in de horizon interface wordt hieraan automatisch de default security group toegekend 'default'. Deze security group laat standaard geen verkeer van de buitenwereld naar binnen toe maar wel verkeer vanaf je systeem naar de buitenwereld. Hierdoor is je systeem standaard niet bereikbaar van buitenaf.
Toelaten van ICMP ping requests
Om te testen of je instance bereikbaar is vanaf het internet verstuur je een ping request naar je vps, standaard staat deze gesloten en dien je hiervoor een security group in te stellen op je vps.
- Log in op de horizon web interface.
- Selecteer vervolgens in het linkermenu 'Compute' en daarna 'Instances'.
- Vanuit het overzicht selecteer je bij de betreffende instance uit het rechter rolldown menu 'Edit Security Groups'.
- Selecteer '+' bij de optie 'allow-icmp' en selecteer daarna 'Save'.
- Hierna is de nieuwe security group setting per direct actief.
Je test dit door vanaf de command line op je werkstation het volgende commando te gebruiken waarbij je 1.2.3.4 vervangt door het ip-adres van je instance : "ping 81.96.4.1"
Toelaten van remote access
Voor het beheer van de server moet deze bereikbaar zijn via SSH of Remote Desktop. In onderstaand voorbeeld wordt toegang voor ssh ingesteld.
- Log in op de horizon web interface.
- Selecteer in het linker zij menu 'Network' en selecteer daarna 'Security Groups'.
- Selecteer rechts boven 'Create Security Group'.
- Geef bij 'Name' een naam op voor de nieuwe security rule. In ons voorbeeld "SSH" en eventueel een description. Selecteer hierna 'Create Security Group'.
- Selecteer daarna in het overzicht rechts bij de nieuwe security group 'Manage Rules'.
- Selecteer hierna rechts bovenin '+Add Rule'.
- Selecteer bij 'Rule' 'Custom TCP Rule'.
- Selecteer bij 'Direction' 'INGRESS' Het gaat hier om verkeer van buiten naar binnen toe.
- Geef bij 'Port' 22 op voor de SSH-service.
- Geef bij 'CIDR' het IP van waaraf je verbindt met je managementstation, bijvoorbeeld het IP van je kantoor internetaansluiting, bijvoorbeeld 1.2.3.4/32 en selecteer daarna 'ADD'.
- Selecteer vervolgens in het linker menu 'Compute'en daarna 'Instances'.
- Vanuit het overzicht selecteer bij het betreffende instance uit de rechter rolldown menu 'Edit Security Groups'.
- Selecteer '+' bij de optie 'SSH' en selecteer daarna 'SAVE'.
- Hierna is de nieuwe security group setting per direct actief.
Om te testen of je instance bereikbaar is verbind je met een ssh client naar je server.
Toelaten van webserver http/https
Het onderstaande voorbeeld laat zien hoe je een service beschikbaar maakt voor je gebruikers, zoals een webserver.
- Log in op de horizon web interface.
- Selecteer vervolgens in het linker menu 'Compute' en daarna 'Instances'.
- Vanuit het overzicht selecteer bij het betreffende instance uit het rechter rolldown menu 'Edit Security Groups'.
- Selecteer '+' bij de optie 'allow-web' en selecteer daarna 'Save'.
- Hierna is de nieuwe security group setting per direct actief.
Om te testen of je dienst beschikbaar is geef je het IP van je systeem op als adres in je webbrowser. Ook is het mogelijk om een Telnet uit te voeren op port 80 of een portscan uitvoeren naar je systeem met bijvoorbeeld nmap.
Voor gebruikers van DirectAdmin dien je ook port 2222/TCP toe te voegen voor het beheer van je DirectAdmin installatie.
Uitleg terminologie
Voordat je begint met het configureren van security groups is het belangrijk bekent te zijn met een aantal termen die worden gebruikt en welke hieronder zijn beschreven.
- Direction
Bij direction bepaal je de richting van het netwerkverkeer. Er zijn 2 verschillende types die worden gebruikt bij het instellen van firewall rules.
ingress: ingress verkeer komt van buiten naar binnen toe, bijvoorbeeld een externe gebruiker die gebruik wil maken van je webserver.
egress: egress verkeer komt van binnen het systeem naar buiten, bijvoorbeeld als je op je server een bestand wil verzenden naar een externe partij.
Het meest gebruikelijke bij het instellen van je firewall rules is om voor 'egress' verkeer alles toe te laten en 'ingress' verkeer te beperken enkel tot wat je wil toelaten op je systeem. Dit is ook de standaard binnen openstack security groups als je een nieuwe security rule aanmaakt. Alles mag naar buiten maar niets mag naar binnen.
- Ether Type
Bij Ether Type specificeer je welk type netwerk je gebruik van maakt. Wanneer je aangeeft welke ip range of welk subnet in een security rule mag worden gebruikt wordt deze automatisch voor je bepaald. In de security rules worden er maar 2 Ether types gebruikt, IPV4 networking, bijvoorbeeld 1.2.3.4/5 of het nieuwe IPV6, bijvoorbeeld 2a02:348:5e6:1::9bc0
- IP Protocol
Je kunt hier het IP-protocol type opgeven, meestal zal dit TCP zijn en in enkele gevallen UDP-verkeer.
- Port/ Port range
Hier geef je de service port op van de dienst die je wil doorlaten, bijvoorbeeld voor je webserver is dat http-verkeer op port 80 of port 443. het is ook mogelijk om een port range op te geven, bijvoorbeeld por 2000 tot 3000.
- Remote IP Prefix
Het IP dat je systeem mag benaderen, bijvoorbeeld het IP van je thuisverbinding 1.2.3.4. Om alles door te laten stel je 0.0.0.0/0 in voor ipv4 en ::/0 voor ipv6. Of een specifieke IP-range, bijvoorbeeld 8.8.8.0/24
- Lijst met veel voorkomende service porten
20: File Transfer Protocol (FTP) Data Transfer
21: File Transfer Protocol (FTP) Command Control
22: Secure Shell (SSH) Secure Login
23: Telnet remote login service, unencrypted text messages
25: Simple Mail Transfer Protocol (SMTP) E-mail routing
53: Domain Name System (DNS) service
80: Hypertext Transfer Protocol (HTTP) used in the World Wide Web
110: Post Office Protocol (POP3)
119: Network News Transfer Protocol (NNTP)
123: Network Time Protocol (NTP)
143: Internet Message Access Protocol (IMAP) Management of digital mail
161: Simple Network Management Protocol (SNMP)
194: Internet Relay Chat (IRC)
443: HTTP Secure (HTTPS) HTTP over TLS/SSL
465: Authenticated SMTP[10] over TLS/SSL (SMTPS)[83]
587: email message submission (SMTP)
993: Internet Message Access Protocol over TLS/SSL (IMAPS)
Via deze link vind je een uitgebreid overzicht van alle service porten die beschikbaar zijn.