FILTER表,默认的表,包含如下三种内建链:mysql
NAT表,当一个包试图建立新链接时将访问该表,该表包含如下内建链:sql
MANGLE表,用于包的更改:docker
本次业务需求,咱们仅须要操做FILTER表。数据库
因为每条tcp链接对于每一个主机来讲,都须要两个端口。对服务端来讲,须要监听端口,即inputPort,也须要对客户端进行响应的出端口,即 outputPort。对客户端来讲,也须要两个端口,一个去链接服务端的outputPort,一个接受服务端返回数据的inputPort。服务器
限制端口,能够在客户端进行限制,也能够在服务端进行限制。通常都是客户端去链接服务端的某个指定端口,全部只有服务端的inputPort是固定的,客户端的inputPort、outputPort和服务端的outPort都是随机端口,每次从新链接后,都会改变。故咱们仅需用iptables对服务端的input端口进行限制便可。网络
说明: -A:参数就当作是添加一条 INPUT 的规则 -p:指定是什么协议 咱们经常使用的tcp 协议,固然也有udp,例如53端口的DNS --dport:就是目标端口,当数据从外部进入服务器为目标端口 --sport:数据从服务器出去,则为数据源端口 -j:就是指定是 ACCEPT接收或者DROP不接收
iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
sudo iptables -F && sudo iptables -X && sudo iptables -Z && sudo iptables -S
结果以下:并发
-P INPUT ACCEPT -P FORWARD DROP -P OUTPUT ACCEPT
Loopback接口,也被称为lo ,就是一台电脑用来进行网络链接到自身。 iptables -A INPUT -i lo -j ACCEPT
socket
由于output没有作限制,因此只须要限制input便可。iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT
tcp
由于对input作了限制,因此当本身去链接别家服务器的端口时,本身做为客户端,input端口须要开通,且该端口时随机的,故只能对数据源端口进行区分iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT
oop
首先先查看本机docker使用的网段,再进行设置,此处docker网段为172.17.0.1/24,若不设置该规则,masami将没法访问mysql数据库iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT
目前仅对kafka和baas进行了限制,未对k8s的slave和master进行限制
10.0.0.59 master1 10.0.0.69 slave1 10.0.0.71/192.168.9.28 baas1 10.0.0.70 master2 10.0.0.91 slave2 10.0.0.92/192.168.9.51 baas2 10.0.0.83 master3 10.0.0.95 slave3 10.0.0.74/192.168.9.32 baas3 10.0.0.55 master4 10.0.0.49 slave4 10.0.0.42/192.168.9.30 baas4 10.0.0.56 master5 10.0.0.61 slave5 10.0.0.73/192.168.9.29 baas5 10.0.0.65/192.168.9.45 kafka1 10.0.0.77/192.168.9.46 kafka2 清理原有规则 iptables -F && iptables -X && iptables -Z && reboot kafka1 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被特定ip链接 iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许docker0和本地网卡流量 iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.65 -j ACCEPT 容许docker0内部流量 iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT kafka2 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,2375 -j ACCEPT 容许下面端口被特定ip链接 iptables -A INPUT -p tcp -s 10.0.0.69,10.0.0.91,10.0.0.95,10.0.0.49,10.0.0.61,10.0.0.65,10.0.0.77 -m multiport --dports 9092:9094,2181:2183,2888:2890,3888:3890 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,9092:9094,2181:2183,2888:2890,3888:3890 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许docker0和本地网卡流量 iptables -A INPUT -s 172.18.0.0/24 -d 10.0.0.77 -j ACCEPT 容许docker0内部流量 iptables -A INPUT -s 172.18.0.0/24 -d 172.18.0.0/24 -j ACCEPT baas5 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许masami和mysql通信 iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT baas4 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许masami和mysql通信 iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT baas3 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许masami和mysql通信 iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT baas2 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,31410,8080,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许masami和mysql通信 iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT baas1 iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT 容许回环流量 iptables -A INPUT -i lo -j ACCEPT 容许下面端口被别人链接 iptables -A INPUT -p tcp -m multiport --dports 22,80,443,8080,8081,31020:31024,31031:31036,2375 -j ACCEPT 容许本身去链接别人的如下端口 iptables -A INPUT -p tcp -m multiport --sports 22,443,31410,8080,38254,31020:31024,31031:31036 -m conntrack --ctstate ESTABLISHED -j ACCEPT 容许masami和mysql通信 iptables -A INPUT -s 172.17.0.0/24 -d 172.17.0.0/24 -j ACCEPT转载请注明出处:https://www.cnblogs.com/zooqkl