wordpress hosting - vpn - cloud - statistiekservice - email

firewalld als opvolger van iptables

Het oude iptables is vervangen door oa. Fedora door firewalld. Een van de redenen is omdat het laden van een nieuwe firewall configuratie met iptables een restart van de firewall en daarmee mogelijk allerlei bestaande verbindingen verbrak. Daarnaast ondersteund firewalld 'zones' wat handig kan zijn als gebruik gemaakt wordt van een notebook of andere mobiele apparaten. Je kan door zones te gebruiken een andere firewall ruleset gebruiken op 't werk dan thuis.

Hier een paar handige commando's voor firewalld:

Lijst met actieve zones:

firewall-cmd --get-active-zones

Voeg een interface toe aan een zone:

firewall-cmd --zone=[zone] --add-interface=[interface]

Lijst met services in zone public:

firewall-cmd --zone=public --list-all

Laat in zone public permanent verkeer toe op poort 80 (http):

firewall-cmd --permanent --zone=public --add-port=80/tcp

Laat in zone public permanent verkeer toe naar samba:

firewall-cmd --permanent --zone=public --add-port=80/tcp

Stel de standaard zone in op home:

firewall-cmd --set-default-zone=home --add-service=samba

Portforwarding voorbeeld (stuur SSH tcp verkeer van port 22 door naar ip 10.0.0.1 naar port 3753:

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753:toaddr=10.0.0.1

Herstarten na wijzingingen is niet nodig, een reload is voldoende: firewall-cmd --reload

 

Er is een zgn. panic mode voor 't geval je snel al het netwerkverkeer wilt blokkeren ten tijde van bijvoorbeeld een ddos aanval:

Zet de panic mode aan: firewall-cmd --panic-on

Zet de panic mode uit: firewall-cmd --panic-off

Query tijdens de panic mode: firewall-cmd --query-panic

Installatie OpenVPN

openvpn

openvpn

Algemeen

Een VPN ofwel een virtueel prive netwerk, maakt het mogelijk om netwerkverkeer versleuteld door een "tunnel" over internet te versturen. Hierdoor kan bijvoorbeeld veilig ge-internet wordt of een bedrijfsnetwerk worden benaderd als gebruik gemaakt wordt van een (publieke) wifi.

Er zijn een aantal stappen nodig om dit te installeren:

  1. installatie en configuratie OpenVPN server
  2. netwerk / firewall aanpassingen
  3. configuratie OpenVPN client

Hoe deze drie stappen kunnen worden uitgevoerd staat hieronder.

OpenVPN server

installatie

Op de website van OpenVPN kan de broncode / source worden download maar voor de meeste distributies is een kant en klaar package.

De installatie van de OpenVPN server is eenvoudig onder de meeste Linux distributies, voor Red Hat, Fedora en dergelijke volstaat:

yum install openvpn easy-rsa

configuratie

Ga naar /usr/share/openvpn/easy-rsa/2.0. Hier staan een aantal scripts om de CA, server en client certifcaten aan te maken. Begin met

. ./vars

en geef

./clean-all

om eventuele eerdere certifcaten te verwijderen en te beginnen met een shone lei.

aanmaken CA

Om het CA certicaat aan te maken geef:

./build-ca

Opmerking: Geef antwoord op de gestelde vragen en vul bij Common Name de volledige naam (FQDN) van de server in!

aanmaken server certificaat

Om het server certificaat te maken, geef:

./build-key-server server

aanmaken client certificaat

Om een client certificaat aan te maken geef:

./build-key client1

Opmerking: De naam van het certificaat, in dit voorbeeld client1 kan natuurlijk vrij worden gekozen. Kies een passende naam, bijv. de naam van een locatie waar de client gebruikt wordt. Aan te bevelen is om voor elke client een certificaat aan te maken. Dit hoeft niet maar is wel veiliger en overzichtelijker. Als meerder clients van hetzelfde certificaat gebruik maken moet dit in de configuratie van de server worden aangegeven door:

duplicate-cn

configuratiebestanden

Ga naar /etc/openvpn en in de standaard installatie staan daar geen bestanden. Maak een directory keys aan en copyeer de inhoud van /usr/share/openvpn/easy-rsa/2.0/keys in deze zojuist aangemaakt keys directory:

cp /usr/share/openvpn/easy-rsa/2.0/keys/* /etc/openvpn/keys/

Copyeer de voorbeeld configuratiebestanden voor de server en client:

cp /usr/share/doc/openvpn-2.2.1/sample-config-files/client.conf /etc/openvpn
cp /usr/share/doc/openvpn-2.2.1/sample-config-files/server.conf /etc/openvpn

Installatie client

Volgt nog…

Netwerk configuratie

Om verkeer van de tunnel naar bijv. het interne netwerk of internet te regelen en om toegang te krijgen tot de OpenVPN server zijn een aantal aanpassingen nodig in de netwerkconfiguratie.

Het opzetten van de firewall om toegang tot de OpenVPN server indien deze op de standaard port 1194/udp luistert en de gebruikte netwerkinferface eth0 is:

iptables -A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT

Het toelaten van verkeer tussen de tunnel en eth0 en NAT instellen:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT