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

CentOS7 Docker防火墙的简单配置

禁用 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下的一些坑

在centos的docker上安装mysql提示chown mod /var/lib/mysql permission denied,通过下面的方法1解决。

在centos上挂载数据卷,在容器内部访问数据卷的时候报permission denied出错,通过下面的方法1解决。

1.Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/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

logs命令查看,发现提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied

于是,解决方法有这么三个:

  • 在docker run中加入 --privileged=true 给容器加上特定权限
  • 关闭selinux
  • 在selinux添加规则,修改挂载目录de

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的文件,只是centos7有可能根本就没有这个文件,或者没有装iptables的服务,结果最后重启宿主机,恢复了,期间尝试使用firewall-cmd命令查询,和停止防火墙。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • 详解centos6和centos7防火墙的关闭
  • centos7中firewall防火墙命令详解
  • CentOS7下Firewall防火墙配置用法详解(推荐)
  • Centos7.1防火墙开放端口快速方法
  • CentOS7安装iptables防火墙的方法
  • CentOS7中防火墙的一些常用配置介绍
  • docker 详解设置容器防火墙
  • Docker高级教程之智能添加与修改防火墙规则
(0)

相关推荐

  • CentOS7安装iptables防火墙的方法

    CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services 禁用/停止自带的firewalld服务 #停止fir

  • CentOS7下Firewall防火墙配置用法详解(推荐)

    centos 7中防火墙是一个非常的强大的功能了,但对于centos 7中在防火墙中进行了升级了,下面我们一起来详细的看看关于centos 7中防火墙使用方法. FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口. 以前的 system-config-firewall/lokkit 防火墙模型是静态

  • 详解centos6和centos7防火墙的关闭

    CentOS6.5查看防火墙的状态: [zh@localhost ~]$service iptable status 显示结果: [zh@localhost ~]$service iptable status Redirecting to /bin/systemctl status iptable.service iptable.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead

  • Centos7.1防火墙开放端口快速方法

    例如安装Nagios后,要开放5666端口与服务器连接,命令如下: [root@centos7-1 ~]# firewall-cmd --add-port=5666/tcp 即时打开,这里也可以是一个端口范围,如1000-2000/tcp success [root@centos7-1 ~]# firewall-cmd --permanent --add-port=5666/tcp 写入配置文件 success [root@centos7-1 ~]# firewall-cmd --reload

  • Docker高级教程之智能添加与修改防火墙规则

    资料简介:如果你有以下痛苦: 1.使用默认docker0桥接方式: 2.修改防火墙规则的话,使用手动修改配置: 3.并且修改时候还得计算来源端口,防止重复端口使用户登陆错误容器: 4.并当容器意外重启,内网ip变化后还得修改规则 那么你可以看看本文了,对你这些痛处都有解决方法. 目前docker容器设置访问规则的话,就2个方法 1.在docker容器创建的时候,使用-p来设置 2.在容器运行中,获取容器的ip,然后在宿主机的iptables力通过nat链做dnat设置 我之前一直使用第2个方法,

  • centos7中firewall防火墙命令详解

    为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start fir

  • docker 详解设置容器防火墙

    docker 容器防火墙设置 启动容器时增加参数 方法一:完全开放 --privileged=true 但是这样的话就将系统的所有能力都开放给了Docker容器 有一个image为aaa的将启动为容器名为bbb的且在容器内需要使用iptables功能,可以使用–privileged=true来进行开启,如: docker run --privileged=true -d -p 4489:4489/tcp --name bbb aaa 方法二:部分开放 对于iptables需要的权限进行开放,其它

  • CentOS7中防火墙的一些常用配置介绍

    centos 7中防火墙是一个非常的强大的功能了,但对于centos 7中在防火墙中进行了升级了,下面我们一起来详细的看看关于CentOS7中防火墙的一些常用配置. # 启动 systemctl start firewalld # 查看状态 systemctl status firewalld # 停止关闭 systemctl disable firewalld systemctl stop firewalld # 把一个源地址加入白名单,以便允许来自这个源地址的所有连接 # 这个在集群中使用常

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

    CentOS7 Docker防火墙的简单配置 禁用 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

  • CentOS7+apache+php7+mysql5.7配置教程详解

    yum upgrade yum install net-tools 安装apache 关闭SELinux 编辑器打开 etc/selinux/config 文件,找到 SELINUX=enforcing 字段,将其改成 SELINUX=disabled ,并重启设备. yum -y install httpd mod_ssl 配置防火墙 firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=4

  • Linux下防火墙的简单配置与插入规则介绍

    查看当前的防火墙设置 iptables -L INPUT -n --line-numbers 删除一条策略,例如第4行策略 iptables -D INPUT 4 -A:在尾部插入 -I (insert)在指定链中插入一条新规则,为指明插入到第几行 (如:在第七行插入) iptables -I INPUT 7 -p tcp -m state --state NEW -m tcp --dport 81 -j ACCEPT 然后保存 service iptables save 然后重启 servic

  • CentOS安装mysql5.7 及简单配置教程详解

    安装 保证你的用户有权限 安装 没有 切换 root su root (su的意思:swich user) # rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm 可能会遇到 warning: /var/tmp/rpm-tmp.6V5aFC: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 可以忽略(个人意见,百度了一下没找到合适的答案)

  • windows下Nginx多域名简单配置教程

    本文实例为大家分享了Nginx多域名的简单配置教程,供大家参考,具体内容如下 1. windows下安装nginx的目录结构如下: 2. 在nginx-1.12.1目录下conf/nginx.conf 内容 #user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile o

  • Windows下MongoDb简单配置教程

    如何在Windows下对MongoDb进行简单的配置,本文为大家解答. 以管理员的启动cmd 进入安装目录下 输入:mongod --auth --port 3406 --dbpath=库地址 --logpath= 全地址 --install --serviceName "自定义名称" 注:库地址可只指定到文件夹,LOG地址需指定到具体文件 --auth 启用权根控制 --port 指定端口 --ip 指定IP不指定则为本地 -- serviceName windows服务名称 上述完

  • ASP.NET 主题的简单配置教程

    主题和css差不多但是他可以提供一些css不能提供的特性 ---------------主题是基于控件而不是HTML(主题允许定和和重用几乎所有的属性) ---------------主题应用在服务器上 ---------------可以通过配置文件来应用主题 ---------------主题不会像css那样重叠(如果一个主题和空间里同时定义了属性,那么主题的定义会覆盖控件的属性,当然这个也可以修改) 主题里面的控件不能定义ID 简单实例 1.网站---添加新项---外观文件(后缀名为.ski

  • CentOS7下 Apache的安装配置方法

    前些天安装了Nginx,为了好玩我就又安装Apache,Apache的安装还算顺利.在此做一下学习记录和经验分享. 一.安装httpd 1.先查看一下系统有没有已经安装了httpd的,如果啥都没查到,那就是没安装呗.如果有#rpm -e 查到的rpm报名,进行删除即可. #rpm -qa | grep httpd 2.我这里就直接使用yum安装了(会自动安装依赖包),为了简单方便. yum -y install httpd 3.httpd -v 查看安装版本,安装成功之后,查找配置文件位置,对h

  • 详解CentOS7下PostgreSQL 11的安装和配置教程

    1. 官网地址 官网上提供了安装参考步骤:点击此处查看官网 2. 安装RPM yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 3. 安装客户端 yum install postgresql11 4. 安装服务器端 yum install postgresql11-server 5. 安装依赖包 yum install

  • CentOS7环境中DHCP配置教程

    目录 CentOS7环境中配置命令步骤 1.设置DHCP配置文件 2.设置全局配置 3.网段声明作用于整个子网段,部分配置参数优先级高于全局配置参数 4.host主机声明给单机分配固定的IP地址 5.最后开启服务 FTP服务 FTP实验操作步骤 一.安装软件包 二.设置匿名用户访问的FTP服务(最大权限) 三.匿名访问测试 四.设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录) 五.修改匿名用户.本地用户登录的默认根目录 六.使用user_list用户

随机推荐