223 Firewalling mit iptables [0.5 PT]

Posted About 1 year ago. Visible to the public.

Du musst kein Netzwerkspezialist sein oder iptables in- und auswendig kennen. Du solltest aber die Grundlagen verstanden haben. Spätestens wenn du dir ansiehst wie z.B. Kubernetes Netzwerke aufspannt wirst du dieses Wissen benötigen.

Ziele

  • Du kennst die grundsätzlichen "Bestandteile" von iptables
    • Tables
    • Chains
    • Rules
    • Targets
  • Du verstehst was drop, reject, return und accept machen.
  • Du kennst die 4 default tables
  • Wie kannst du dir iptables Regeln für den Filter table anzeigen lassen?
  • Wie kann eine spezifische iptables rule gelöscht werden?
  • Was kann ich mir bei den INPUT, OUTPUT und FORWARD chains im Filter table vorstellen?
  • Erkläre PREROUTING und POSTROUTING im NAT table.
  • Du weißt was chain policy ist. Was ist der übliche default Wert dafür?
  • Du kannst einfache iptables Regeln z.B. für das blocken von bestimmten Traffic oder das freigeben schreiben.
  • Du weißt was ufw ist.

Inhalte

Du musst nicht alle Inhalte ansehen. Wähle die, die dir am besten gefallen.

Aufgaben

  1. Erkläre die folgenden iptables Regeln:

    • iptables -A INPUT -i lo -j ACCEPT
    • iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    • iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  2. Erstelle dir 2 VMs/LXC Container. Erstelle das Netzwerk so, dass die Instanzen miteinander kommunizieren können und auch das Hostsystem diese erreichen kann.

  3. Eingehender Netzwerktraffic soll per default ins drop target laufen.

  4. Installiere auf einem von beiden Nginx. Erstelle eine Firewall Regel, dass der andere Container diesen Port erreichen kann.

  5. Installiere SSH auf beiden Servern. Erstelle eine Firewall Regel, dass dein Host System den Port erreichen kann.

  6. Besprich zusammen mit deinem Mentor diese Grafik von Wikipedia Show archive.org snapshot .

  7. Wirf einen kurzen Blick auf das tool ufw.

Claus-Theodor Riegg
Last edit
12 months ago
Claus-Theodor Riegg
License
Source code in this card is licensed under the MIT License.
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-01-23 11:01)