На прошлой неделе я установил кластер openshift origin 3.11 и уже столкнулся с двумя проблемами безопасности.(Серверы имеют только один общедоступный сетевой интерфейс) Dnsmasq использовался для проведения DDoS-атак с отражением / усилением, как и служба portmapper.
Openshift устанавливает правила iptables для работы кластера, и я благодарю ихправила гарантировали безопасность самого кластера, но с двумя проблемами я оказался не прав.
Я решил эти 2 проблемы, установив брандмауэр для доступа к портам 53 и 111 и предоставив всем доступ между узлами в кластере, но я неконечно, если этого достаточно.
Есть ли у вас какие-либо рекомендации / правила, которые нужно добавить, чтобы сделать кластер openshift безопасным, и я должен редактировать правила iptables, так как они были установлены самим openshift?
Это вывод моего iptables -L узла master-etc до настоящего времени, и, честно говоря, я нашел, что эти правила слишком допустимы, но так как я не iptables и openshift pro, я не уверен, что яЯ в порядке с ними.
Chain INPUT (policy ACCEPT)
target prot opt source destination
KUBE-NODEPORT-NON-LOCAL all -- anywhere anywhere /* Ensure that non-local NodePort traffic can flow */
KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */
OPENSHIFT-FIREWALL-ALLOW all -- anywhere anywhere /* firewall overrides */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- node2.domain.com anywhere
ACCEPT all -- node1.domain.com anywhere
ACCEPT all -- master.domain.com anywhere
OS_FIREWALL_ALLOW all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
KUBE-FORWARD all -- anywhere anywhere /* kubernetes forwarding rules */
OPENSHIFT-ADMIN-OUTPUT-RULES all -- anywhere anywhere /* administrator overrides */
OPENSHIFT-FIREWALL-FORWARD all -- anywhere anywhere /* firewall overrides */
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
KUBE-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere node2.domain.com
ACCEPT all -- anywhere node1.domain.com
ACCEPT all -- anywhere master.domain.com
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain KUBE-EXTERNAL-SERVICES (1 references)
target prot opt source destination
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- anywhere anywhere /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
Chain KUBE-FORWARD (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere /* kubernetes forwarding rules */ mark match 0x1/0x1
ACCEPT all -- 10.128.0.0/14 anywhere /* kubernetes forwarding conntrack pod source rule */ ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere 10.128.0.0/14 /* kubernetes forwarding conntrack pod destination rule */ ctstate RELATED,ESTABLISHED
Chain KUBE-NODEPORT-NON-LOCAL (1 references)
target prot opt source destination
Chain KUBE-SERVICES (1 references)
target prot opt source destination
REJECT tcp -- anywhere 172.30.188.158 /* openshift-ansible-service-broker/asb:port-1337 has no endpoints */ tcp dpt:menandmice-dns reject-with icmp-port-unreachable
REJECT tcp -- anywhere 172.30.188.158 /* openshift-ansible-service-broker/asb:port-1338 has no endpoints */ tcp dpt:wmc-log-svc reject-with icmp-port-unreachable
Chain OPENSHIFT-ADMIN-OUTPUT-RULES (1 references)
target prot opt source destination
Chain OPENSHIFT-FIREWALL-ALLOW (1 references)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:4789 /* VXLAN incoming */
ACCEPT all -- anywhere anywhere /* from SDN to localhost */
ACCEPT all -- anywhere anywhere /* from docker to localhost */
Chain OPENSHIFT-FIREWALL-FORWARD (1 references)
target prot opt source destination
DROP all -- 10.128.0.0/14 anywhere /* attempted resend after connection close */ ctstate INVALID
ACCEPT all -- anywhere 10.128.0.0/14 /* forward traffic from SDN */
ACCEPT all -- 10.128.0.0/14 anywhere /* forward traffic to SDN */
Chain OS_FIREWALL_ALLOW (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:10250
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:10256
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT udp -- anywhere anywhere state NEW udp dpt:4789
ACCEPT tcp -- anywhere anywhere state NEW tcp dpts:cslistener:ndmp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:jetcmeserver
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:2379
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:2380
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pcsync-https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pcsync-http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:senomix02
ACCEPT udp -- anywhere anywhere state NEW udp dpt:senomix02
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:EtherNet/IP-1
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:24007
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:24008
ACCEPT tcp -- anywhere anywhere state NEW tcp dpts:49152:49251
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:24010
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:iscsi-target
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:sunrpc
Я бы изменил политику по умолчанию при вводе на Drop на всех вычислительных узлах (node1 и node2) как стартер.