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

Простая настройка брандмауэра Docker в CentOS7 (руководство)

Простая конфигурация брандмауэра Docker в CentOS7

Отключение услуги firewalld

systemctl disable firewalld
systemctl stop firewalld

Установка службы брандмауэра iptables

yum install iptables-services

Создание скрипта конфигурации 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
# OpenVPN Configuration
# 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

加入开机启动项

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

Отключите автоматический запуск связанных служб

# Замечание: Docker автоматически добавляет некоторые
systemctl disable iptables.service
systemctl disable docker

Некоторые проблемы docker в CentOS7

При установке mysql в CentOS выдается ошибка chown mod /var/lib/mysql permission denied, которую можно решить с помощью следующего метода 1.

При.mount данных тома в CentOS на данные тома в контейнере возникает ошибка permission denied, которую можно решить с помощью следующего метода 1.

1. В CentOS7 безопасность Selinux запрещает некоторые права доступа, что приводит к тому, что при.mount /var/lib/mysql mysql и mariadb выдают сообщение об ошибке, как показано ниже:

[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

Команда logs показывает, что сообщение об ошибке такое: chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied

Таким образом, есть три способа решения проблемы:

  • В команде docker run добавьте --privileged=true, чтобы добавить определенные права доступа к контейнеру
  • Отключение selinux
  • Добавление правил selinux, изменение каталога монтирования

2. Иногда, при запуске контейнера с портовым отображением, может出现以下提示:

1 iptables failed: 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

Эти вещи, искал и искал, но не нашли объяснения, посмотрел на http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/, статья говорит, что нужно изменить файл iptables, но в CentOS 7 возможно, что этот файл даже не существует, или не установлен сервис iptables, в результате после перезагрузки хоста, восстановился, в процессе попытался использовать команду firewall-cmd для запроса и остановки брандмауэра.

Резюме

Вот и все, что есть в этой статье, надеюсь, что содержимое статьи будет иметь определенную ценность для вашего обучения или работы, если у вас есть вопросы, пожалуйста, оставляйте комментарии для обмена, спасибо за поддержку учебника "Крик"

Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему владельцу, содержимое предоставлено пользователями Интернета в порядке добровольного вклада и самостоятельной загрузки, сайт не имеет права собственности, не прошел人工 редактирование и не несет ответственности за связанные с этим юридические обязательства. Если вы обнаружите спорное содержимое, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. При подтверждении факта нарушения сайт незамедлительно удалят спорное содержимое.

Основной учебник
Вам может понравиться