云计算百科
云计算领域专业知识百科平台

以前在服务器启动了docker,现在不需要了,为了安全,去掉docker服务@Ubuntu

以前在服务器启动了docker,docker里面运行了paddleserving服务器:在docker中安装paddle serving @FreeBSD(待续)_pkg-config is required for building pyav-CSDN博客。现在不需要这个docker服务器了,所以针对docker 9292端口的映射也不需要了,为了安全,准备去掉docker。以下是问题处理记录。

登录服务器,突然发现9292端口异常(实际上是自己忘记了,这是自己开的)

使用ps -auxw 列出所有进程,咨询文心进行安全审计

请看看有没有什么安全隐患:root 35010 0.0 0.0 240308 3648 ? Ssl 2022 0:30 /usr/lib/policykit-1/polkitd –no-debug
root 35104 0.0 0.0 315092 1944 ? Ssl 2022 0:01 /usr/sbin/ModemManager
root 40571 0.0 0.0 57248 8140 ? Ss 2024 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_proces
root 102790 0.2 0.2 1344948 23532 ? Ssl 2022 2876:37 /usr/bin/containerd
root 103211 0.0 0.4 1753308 37392 ? Ssl 2022 184:16 /usr/bin/dockerd -H fd:// –containerd=/run/containerd/containerd
root 103243 0.0 0.0 2488 68 ? S 2022 0:00 bpfilter_umh
root 118849 0.0 0.0 1222376 568 ? Sl 2022 0:57 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9292
root 118857 0.0 0.0 1222376 588 ? Sl 2022 0:58 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9292 -con
root 118872 0.0 0.0 114100 988 ? Sl 2022 77:17 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 4c28ed7f6fb3

根据提供的进程列表分析,以下是详细的安全评估和加固建议:

一、关键风险点分析

  • ‌Docker相关服务暴露风险‌

    • 检测到Docker代理进程暴露端口: /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9292 # IPv4 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9292 # IPv6
    • 风险等级:高危(直接暴露在0.0.0.0且无网络隔离)
  • ‌权限管理服务风险‌

    • polkitd进程(PID 35010)运行参数含–no-debug,可能隐藏审计日志
    • 历史漏洞记录:CVE-2021-4034(pkexec本地提权)
  • ‌容器运行时长期运行‌

    • containerd(PID 102790)已运行2876小时,存在未更新漏洞风险
    • dockerd(PID 103211)使用默认套接字(-H fd://)可能权限过宽
  • 二、紧急处理措施

  • ‌Docker端口加固‌

    # 立即限制9292端口访问(示例仅允许内网)
    sudo iptables -A DOCKER-USER -p tcp –dport 9292 ! -s 192.168.1.0/24 -j DROP
    sudo ip6tables -A DOCKER-USER -p tcp –dport 9292 ! -s fd00::/8 -j DROP

    # 验证规则
    sudo iptables -L DOCKER-USER -n –line-numbers

  • ‌Polkit安全配置‌

    # 检查polkit规则权限
    grep -r "allow_any" /etc/polkit-1/rules.d/

    # 更新polkit到最新版(修复已知漏洞)
    sudo apt install –only-upgrade policykit-1

  • 三、深度安全建议

  • ‌容器运行时加固‌

    # 1. 启用containerd审计日志
    sudo mkdir -p /etc/containerd/conf.d/
    cat <<EOF | sudo tee /etc/containerd/conf.d/audit.toml
    version = 2
    [plugins."io.containerd.runtime.v1.linux"]
    runtime = "runc"
    runtime_root = "/run/containerd/runc"
    [debug]
    level = "info"
    EOF

    # 2. 限制docker.sock权限
    sudo chmod 660 /var/run/docker.sock
    sudo chown root:docker /var/run/docker.sock

  • ‌网络隔离方案‌

    # 创建docker安全网络
    docker network create –internal secure-net
    docker network connect secure-net <your_container>

    # 验证网络配置
    docker inspect <container_id> | grep -A 5 Networks

  • 四、风险等级评估表

    风险点影响范围修复优先级验证方法
    Docker 9292端口暴露 全网可达 紧急 telnet <IP> 9292
    Polkit调试模式关闭 本地提权 pkaction –version
    Containerd长期运行 容器逃逸 containerd –version
    Docker默认套接字权限 权限提升 ls -l /var/run/docker.sock

    五、监控方案建议

  • ‌实时检测脚本‌

    #!/bin/bash
    # 监控异常容器创建
    sudo auditctl -w /usr/bin/docker -k docker_cmd
    sudo ausearch -k docker_cmd | grep exec

    # 检测polkit异常请求
    journalctl -u polkit –since "1 hour ago" | grep -i "security"

  • ‌日志分析重点‌

    • /var/log/containers/目录下的异常启动记录
    • journalctl -u docker中的特权操作(–privileged参数)
  • 建议立即处理Docker端口暴露问题,并在24小时内完成polkit升级。其他项目可在周维护窗口期实施。

    准备把docker关闭:

    以下是关闭Docker服务的系统化操作指南,涵盖不同场景下的安全关闭方法及后续验证流程:


    ‌一、常规关闭方法(推荐)‌

    ‌1. 使用systemd管理服务‌

    # 1. 停止所有运行中的容器
    sudo docker stop $(sudo docker ps -aq)

    # 2. 停止Docker服务(含containerd依赖)
    sudo systemctl stop docker containerd

    # 3. 禁用开机自启(可选)
    sudo systemctl disable docker containerd

    # 4. 验证状态
    sudo systemctl status docker containerd

    ‌输出示例‌:

    sudo docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    4c28ed7f6fb3 registry.baidubce.com/paddlepaddle/serving:0.8.0-devel "bash" 2 years ago Up 2 years 22/tcp, 0.0.0.0:9292->9292/tcp, :::9292->9292/tcp test
    sudo docker stop 4c28ed7f6fb3
    4c28ed7f6fb3

    sudo systemctl stop docker containerd
    Warning: Stopping docker.service, but it can still be activated by:
    docker.socket
    sudo systemctl status docker containerd
    ● docker.service – Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Active: inactive (dead) since Thu 2025-06-12 11:33:38 CST; 37s ago

    ‌2. 传统SysVinit系统‌

    # CentOS 6/Debian 8等旧系统 sudo service docker stop sudo chkconfig docker off # 禁用自启


    ‌二、紧急关闭场景‌

    ‌1. 强制终止进程(当systemd失效时)‌

    # 1. 查找Docker相关进程
    sudo ps aux | grep -E 'docker|containerd|dockerd'

    # 2. 强制终止(谨慎使用)
    sudo kill -9 $(pgrep dockerd) $(pgrep containerd)

    # 3. 清理残留套接字
    sudo rm -f /var/run/docker.sock /run/containerd/containerd.sock

    ‌2. 清除Docker网络残留‌

    # 删除所有Docker虚拟网卡(防止网络冲突)
    sudo ip link show | grep -E 'docker|veth' | awk '{print $2}' | cut -d':' -f1 | xargs -I {} sudo ip link del {}


    ‌三、验证关闭状态‌

    检查项命令示例预期结果
    服务状态 systemctl is-active docker inactive
    进程存活 pgrep dockerd 无输出
    端口占用 `ss -tulnp | grep -E '2375 2376 9292'` 无Docker相关端口
    容器状态 docker ps -a Cannot connect to the Docker daemon

    ‌四、数据持久化处理‌

    ‌1. 备份重要数据
    导出镜像‌

    sudo docker save -o /mnt/data/data/paddleservingimages.tar 4c28ed7f6fb3

    好么,动手太快了,忘记先备份了。 docker ps啥也没有了

    sudo docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

    bashCopy Code

    备份卷数据 sudo tar -czvf /backup/docker_volumes.tar.gz /var/lib/docker/volumes/

    ‌2. 清理残留数据(彻底卸载时)‌

    # 1. 停止所有服务后
    sudo apt purge docker-ce docker-ce-cli containerd.io # Debian/Ubuntu
    sudo yum remove docker-ce docker-ce-cli containerd.io # CentOS/RHEL

    # 2. 删除数据目录(谨慎操作)
    sudo rm -rf /var/lib/docker /var/lib/containerd

    删除数据后,硬盘空间释放不少

    df -H

    /dev/vda1 53G 50G 933M 99% /

    /dev/vda1 53G 27G 24G 53% /


    ‌五、安全建议‌

  • ‌关闭前操作‌:

    • 确保无关键业务容器运行(通过docker ps确认)
    • 导出关键镜像(使用docker save)
  • ‌关闭后检查‌:

    • 确认无残留进程(ps aux \\| grep docker)
    • 验证防火墙规则(如iptables -L中无DOCKER链)
  • ‌替代方案‌:

    • 若需临时隔离,可修改iptables规则: sudo iptables -I INPUT -p tcp –dport 2375 -j DROP
      sudo iptables -I INPUT -p tcp –dport 2376 -j DROP


  • ‌六、常见问题处理‌

    ‌1. 错误:Cannot connect to the Docker daemon‌
    • ‌原因‌:服务已停止或权限不足
    • ‌解决‌: sudo usermod -aG docker $USER # 添加用户到docker组(需重新登录生效)
    ‌2. 错误:Device or resource busy‌
    • ‌原因‌:有进程占用Docker资源
    • ‌解决‌: sudo lsof /var/lib/docker # 查找占用进程 sudo kill -9 <PID> # 终止相关进程

    通过以上步骤,可安全关闭Docker服务并验证关闭状态。如需重新启用,使用sudo systemctl start docker即可恢复服务。

    总结

    把服务器的docker服务关掉了。

    空间释放了27G

    服务器的9292端口备用。9292是paddleserving的默认开放端口。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 以前在服务器启动了docker,现在不需要了,为了安全,去掉docker服务@Ubuntu
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!