Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Software-Firewall iptables unter Linux – Firewall-Design
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!