Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Software-Firewall iptables unter Linux – Firewall-Design

Software-Firewall iptables unter Linux – Firewall-Design

齐天大圣
齐天大圣Original
2020-11-18 15:27:092194Durchsuche

In den vorherigen Artikeln haben wir die Tabellen und Ketten von iptables sowie das Hinzufügen von Regelketten usw. vorgestellt. Hier möchte ich Ihnen eine einfache Firewall-Regel mitteilen. Dieser Artikel legt hauptsächlich die Regeln für die Eingabekette des Filters fest. Dieser Artikel entspricht einer praktischen iptables-Regel, um Ihnen zu helfen, das erlernte Wissen zu vertiefen und zu festigen.

Die Anwendungsregeln lauten wie folgt:

  • Löschen Sie die bestehenden Regeln und löschen Sie alle ursprünglichen Regeln.

  • Legen Sie die Standardstrategie fest, legen Sie die Standardstrategie der Eingabekette des Filters auf Löschen fest und stellen Sie alles andere auf Akzeptieren ein.

  • Vertrauen Sie dieser Maschine, und die Loopback-Netzwerkkarte muss als vertrauenswürdig eingestellt sein.

  • Antwortdatenpakete, die aktiv vom Host angefordert werden, können in die Maschine gelangen (einrichten/verknüpfen)

  • Ungültige Datenpakete ablehnen und ungültige Datenpakete ablehnen (UNGÜLTIG)

  • Whitelist, vertrauen bestimmte IPs oder Netzwerkadressen usw.

  • Blacklist, nicht vertrauenswürdige IPs oder Netzwerkadressen usw.

  • ICMP-Pakete zulassen, ICMP-Pakete zulassen

  • Einige Ports öffnen, einige Dienste Die Ports müssen für die geöffnet sein Außenwelt, wie Ports 80, 443, 22 usw.

Wir werden drei Shell-Skriptdateien erstellen: iptables.rule, iptables.allow (Whitelist), iptables.deny (Blacklist)-Dokument. Für diese drei Dateien erstelle ich normalerweise zuerst ein Verzeichnis /etc/iptables und diese drei Dateien sind in diesem Verzeichnis vorhanden.

Als nächstes schauen wir uns den Skriptinhalt dieser iptables.rule an:

#!/bin/bash
# iptables rule

# 清楚默认规则
iptables -F
iptables -X
iptables -Z

# 修改默认策略
iptables -P INPUT  DROP
iptables -P FORWARD  ACCEPT
iptables -P OUTPUT  ACCEPT

# 信任本机
iptables -A INPUT -i lo -j ACCEPT 

# 响应数据包
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

# 拒绝无效数据包
iptables -A INPUT  -m state --state INVALID -j DROP

# 白名单
if [ -f "/etc/iptables/iptables.allow" ];then
    sh /etc/iptables/iptables.allow
fi

# 黑名单
if [ -f "/etc/iptables/iptables.deny" ];then
    sh /etc/iptables/iptables.deny
fi

# 允许icmp包
iptables -A INPUT -p icmp -j ACCEPT

# 开放部分端口
iptables -A INPUT -p tcp --dport 22  -j ACCEPT # ssh服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # www服务
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # ssl

# 保存规则
/usr/libexec/iptables/iptables.init save

Für iptables.allow schreiben wir normalerweise die vertrauenswürdige IP- oder Netzwerkadresse in diese Datei, zum Beispiel das lokale Netzwerk, in dem sich der Host befindet 192.168.1.0/24: Wenn Sie dem Host im LAN vertrauen möchten, können Sie

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

in diese Datei schreiben. Und iptables.deny wird verwendet, um den Datenverkehr bestimmter bösartiger IPs am Eindringen in den Computer zu hindern, z IP 8.210.247.5, Sie können am Ende der in iptables.rule geschriebenen Datei

iptables -A INPUT -s 8.210.247.5/32 -j DROP

den Befehl verwenden, um die Firewall-Regel zu speichern. Beachten Sie, dass die Regel erst zum Zeitpunkt Null wirksam wird, wenn dieser Befehl nicht hinzugefügt wird . Wenn iptables neu gestartet wird oder das System neu gestartet wird, werden die zuvor festgelegten Regeln ungültig.

Verwandte Empfehlungen: „Linux-Kurs

Das obige ist der detaillierte Inhalt vonSoftware-Firewall iptables unter Linux – Firewall-Design. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn