English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

CentOS7 Docker防火墙的简单配置教程

Configurazione semplice del firewall Docker in CentOS7

Disabilitazione del servizio firewalld

systemctl disable firewalld
systemctl stop firewalld

Installazione del servizio di firewall iptables

yum install iptables-services

Creazione dello script di configurazione iptables

cat >> /usr/local/bin/fired.sh <<'EOF'
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -i eth0 -m state -state NEW -m recent -update -seconds 60 -hitcount 50 -j DROP
#iptables -A OUTPUT -o eth0 -m owner -uid-owner vivek -p tcp --dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 1:1023 --dport 1:1023 --syn -j DROP
iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65534 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 --sport 1024:65534 -j ACCEPT
iptables -A INPUT -p tcp --dport 2376 --sport 1024:65534 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 --sport 1024:65534 -j ACCEPT
# Configurazione OpenVPN
# iptables -A POSTROUTING -t nat -s 10.8.0.0/24 -o eth0 -j MASQUERADE
# iptables -A FORWARD -i tun+ -j ACCEPT
# iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p TCP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT
# iptables -A INPUT -p UDP -i eth0 --dport 10173 --sport 1024:65534 -j ACCEPT
EOF
chmod +x /usr/local/bin/fired.sh

Aggiungi alla lista di avvio automatico

cat >> /etc/rc.d/rc.local <<EOF
# Firewall & Docker
/usr/bin/systemctl start iptables.service
/usr/local/bin/fired.sh
/usr/bin/systemctl start docker
EOF
chmod +x /etc/rc.d/rc.local

Disabilita l'avvio automatico dei servizi correlati

# Nota: Docker si aggiunge automaticamente alcuni
systemctl disable iptables.service
systemctl disable docker

Alcuni problemi di docker su CentOS7

Quando si installa mysql su CentOS si riceve il messaggio chown mod /var/lib/mysql permission denied. Puoi risolvere il problema con il metodo 1 di seguito.

Quando si monta un volume di dati su CentOS e si accede al volume all'interno del container, si riceve un errore di permission denied. Puoi risolvere il problema con il metodo 1 di seguito.

1. Centos7 sicurezza Selinux blocca alcune autorizzazioni di sicurezza, il che provoca che mysql e mariadb mostrino il seguente messaggio quando si esegue mount /var/lib/mysql:

[root@localhost mariadb]# docker run -d -v ~/mariadb/data/:/var/lib/mysql -v ~/mariadb/config/:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=‘123456‘ test01/mariadb
19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d
[root@localhost mariadb]# docker ps -a
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS          NAMES
19c4aa113c61  test01/mariadb  "docker-entrypoint.sh" 4 seconds ago  Exited (1) 1 seconds ago            desperate_kelle

Usando il comando logs, si scopre che il messaggio di avviso è: chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied

Quindi, ci sono tre soluzioni possibili:

  • In docker run aggiungi --privileged=true per dare al container permessi specifici
  • Disattiva selinux
  • Aggiungi regole a selinux e modifica la directory di mount

A volte, durante l'avvio di un container con mappatura di porte, può apparire il seguente messaggio:

1 fallito iptables: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 52080 -j DNAT --to-destination 192.168.20.22:52080 ! -i docker0: iptables: No chain/target/match by that name

Questo oggetto non ha fornito spiegazioni dopo aver cercato a lungo, ho consultato l'articolo http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/, che dice di modificare il file iptables, ma potrebbe non esistere il file iptables in CentOS7, o potrebbe non essere installato il servizio iptables, dopo aver riavviato l'host host, è stato ripristinato, durante il tentativo di utilizzare il comando firewall-cmd per query e fermare il firewall.

Sommario

Questo è tutto il contenuto dell'articolo. Spero che il contenuto di questo articolo abbia un valore di riferimento per la tua apprendimento o lavoro. Se hai domande, puoi lasciare un commento per discuterle, grazie per il supporto di呐喊教程.

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, di proprietà del rispettivo autore. Il contenuto è stato fornito volontariamente dagli utenti di Internet e caricato autonomamente; il sito web non detiene il diritto di proprietà e non ha eseguito alcuna modifica editoriale, né assume alcuna responsabilità legale correlata. Se si riscontrano contenuti sospetti di copyright, si prega di inviare una email a: notice#oldtoolbag.com (al momento dell'invio, sostituire # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata la sussistenza, il sito eliminerà immediatamente il contenuto sospetto di copyright.