day4-Iptables Firewall

Es wird empfohlen, von Zhu Shuangyin geschriebene Iptables zu lernen.
Http://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/iptables / page / 2 /
http://www.zsythink.net/archives/1199 "iptables-Konzept"
http://www.zsythink.net/archives/1493 "iptables-Abfrage der tatsächlichen Betriebsregeln"

1. Einführung in die Iptables-Firewall-Struktur

Fügen Sie hier eine Bildbeschreibung ein

Das Flussdiagramm der iptables, die zum Filtern in den Host eingegeben werden

防火墙规则的执行顺序默认为从前到后依次执行、遇到匹配的规则就不在继续向下检查,如果遇到不匹配的规则则会继续向下进行。
重点:匹配上了拒绝规则也是匹配,因此,不在继续向下进行,这一点需注意。

Fügen Sie hier eine Bildbeschreibung ein

Beziehung zwischen Tabelle und Kette

Hinweis: Die rohe Tabelle ist hier nicht geschrieben, und der alte Junge sagte, dass er sie fast nie benutzt hat, deshalb schenke ich ihr nicht viel Aufmerksamkeit.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Einführung in die Filtertabelle

Fügen Sie hier eine Bildbeschreibung ein

Einführung in die Nat-Tabelle

Fügen Sie hier eine Bildbeschreibung ein

Mangle Tisch Einführung

Fügen Sie hier eine Bildbeschreibung ein

Zweitens: Iptables-Befehlsregeln und -Konfiguration

iptables Tabelle und Kettenarbeitsablaufdiagramm

Ganz links sehen Sie den Datenfluss. Erläuterungen zu Prozessen finden Sie im Blog von Zhu Shuangyin.
Fügen Sie hier eine Bildbeschreibung ein
Bei allgemeinen Betriebs- und Wartungsarbeiten wird die Mangeltabelle selten verwendet. Um die häufig verwendete Iptalbes-Technologie besser zu verstehen und zu beherrschen, ist dies der Fall wie folgt vereinfacht:
Fügen Sie hier eine Bildbeschreibung ein

从上图我们看出,当数据包进入时,首先经过的是NAT表的PREROUTING的链,接着会分两条路走,
如果是进入主机就通过FILTER表的 INPUT链,然后到达主机内部(LOCALPROCESS),
最后通过NAT表与FILTER的OUTPUT 返回;如果是流经主机则会通过FILTER表的 FORWARD链,
最后出站时通过NAT表的POSTROUTING链。
注:以上流程图是一个形象的图,和实际流程略有出入,但不影响我们理解IPTABLES原理。

Drittens konfigurieren Sie die Host-Firewall der Produktionsumgebung

Das Arbeitsablaufdiagramm der Host-Firewall lautet wie folgt

http://www.netfilter.org/documentation/HOWTO//packet-filtering-HOWTO-6.html
Fügen Sie hier eine Bildbeschreibung ein

Speichern Sie die Firewall-Konfiguration dauerhaft

centos5 、 centos6

/etc/ini.d/iptables save
iptables-save >/etc/sysconfig/iptables
#其中 /etc/sysconfig/iptables为iptables的默认文件路径
#保存前备份 cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

#15、保存IPtables规则
iptables-save > ~/iptables.rules
#16、还原IPtables规则
iptables-restore < ~/iptables.rules

Fügen Sie hier eine Bildbeschreibung ein
Wiederhergestellt: oder überschreiben Sie die Bak-Datei und starten Sie die Firewall neu
Fügen Sie hier eine Bildbeschreibung ein

Ein Skript zur Initialisierung und grundlegenden Firewall-Konfiguration (Skripte von Teacher Old Boy)

https://www.cnblogs.com/blog-tim/p/10291337.html Das
Skript enthält viele Beispiele

#!/bin/bash
#define variable Path 
IPT=/sbin/iptables

#remove any existing rules
$IPT -F
$IPT -X
$IPT -Z

#设置SSH的允许,已改默认SSH端口,变成52113
$IPT -A INPUT -s 202.81.17.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -s 202.81.18.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT

#允许放行的ip端、IPS
$IPT -A INPUT -s 202.81.17.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT

#改变防火墙的默认policy
$IPT --policy OUTPUT ACCEPT
$IPT --policy FORWARD DROP
$IPT -P INPUT DROP

#允许放行环回网卡 loopback interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#拦截IP欺骗(IP Address Spoofing)和bad addresses 
$IPT -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
$IPT -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
$IPT -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP
$IPT -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP

#拦截隐藏扫描stealth scans等扫描 下面的就cvcv了
# prevent all Stealth Scans and TCP State Flags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
#SYN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# FIN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
# FIN is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
# PSH is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
# URG is the only bit set, without the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP


#允许nagios
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 5666 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp --dport 5666 -j ACCEPT
$IPT -A INPUT -s 202.81.18.0/24 -p tcp --dport 5666 -j ACCEPT

#允许mysql oracle数据库
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3307 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 3308 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp --dport 1521 -j ACCEPT

#允许ftp
$IPT -A INPUT -p tcp --dport 21 -j ACCEPT

#允许http
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p tcp -m multiport --dport 8080,8081,8082,8888,8010,8020,8030,8150 -j ACCEPT

#允许snmp  (UDP协议)
$IPT -A INPUT -s 192.168.1.0/24 -p udp --dport 161 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p udp --dport 161 -j ACCEPT

#允许rsync 873  -m tcp:是要装载 tcp模块 。 -p tcp:使用tcp的协议
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p tcp -m tcp --dport 873 -j ACCEPT
$IPT -A INPUT -s 202.81.17.0/24 -p tcp -m tcp --dport 873 -j ACCEPT

#允许nfs 2049,portmap 111
$IPT -A INPUT -s 192.168.1.0/24 -p udp -m multiport --dport 111,892,2049 -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dport 111,892,2049 -j ACCEPT

#$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
$IPT -A INPUT -s 124.43.62.96/27 -p icmp -m icmp --icmp-type any -j ACCEPT
$IPT -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#end
#bash common-ipt.sh

Fügen Sie hier eine Bildbeschreibung ein

Vier tatsächliche Fälle

Ich denke du magst

Origin blog.csdn.net/Nightwish5/article/details/113629517
Empfohlen
Rangfolge