当前位置: 首页 > news >正文

以前在服务器启动了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

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

一、关键风险点分析

  1. 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且无网络隔离)
  2. 权限管理服务风险

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

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

二、紧急处理措施

  1. 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
    

  2. Polkit安全配置

     
    # 检查polkit规则权限
    grep -r "allow_any" /etc/polkit-1/rules.d/# 更新polkit到最新版(修复已知漏洞)
    sudo apt install --only-upgrade policykit-1
    

三、深度安全建议

  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
    

  2. 网络隔离方案

     
    # 创建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

五、监控方案建议

  1. 实时检测脚本

     
    #!/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"
    

  2. 日志分析重点

    • /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 EngineLoaded: 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 dockerinactive
进程存活pgrep dockerd无输出
端口占用`ss -tulnp | grep -E '237523769292'`无Docker相关端口
容器状态docker ps -aCannot 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% /

五、安全建议

  1. 关闭前操作‌:

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

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

    • 若需临时隔离,可修改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的默认开放端口。

相关文章:

  • NVIDIA Container Toolkit 报错 Failed to initialize NVML: Unknown Error 的解决
  • 实现AI数据高效评估的一种方法
  • SQL进阶之旅 Day 27:存储过程与函数高级应用
  • 鸿蒙 UI 开发基础语法与组件复用全解析:从装饰器到工程化实践指南
  • NAS文件共享、PACS影像存储,速率提升400%?
  • Kotlin 协程与 ViewModel 的完美结合
  • 【二分答案1-----切木棒】
  • 视频自动生成字幕原理和自动生成字幕的应用实例
  • 事件(Event)
  • 同时装两个MySQL, 我在MySQL5的基础上, 安装MySQL8
  • 循环数组中相邻元素的最大差值
  • java BIO/NIO/AIO
  • 【unitrix】 1.3 Cargo.toml 文件解析
  • SM3算法Python实现(无第三方库)
  • 【GitOps】Kubernetes安装ArgoCD,使用阿里云MSE云原生网关暴露服务
  • 山东大学《Web数据管理》期末复习宝典【万字解析!】
  • HarmonyOS运动开发:打造便捷的静态快捷菜单
  • ArkUI-X在Android上使用Fragment开发指南
  • ThreadLocal原理及内存泄漏分析
  • 【从零学习JVM|第八篇】深入探寻堆内存
  • 领卷网站如何做代理/下载百度地图2022最新版官方
  • 佛山怎么做网站/怎样建网站赚钱
  • 有没有交流做服装的网站/站长统计入口
  • 涿州网站建设公司有哪些/灰色关键词排名代发
  • 小学网站建设方案书/百度的广告推广需要多少费用
  • 张家港企业做网站/百度账号申请注册