当前位置: 首页 > 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的默认开放端口。

http://www.xdnf.cn/news/997345.html

相关文章:

  • Linux 基本命令
  • GO后端开发内存管理及参考答案
  • 没有宝塔面板的服务器上的WordPress网站打包下载到本地?
  • 动态多目标进化算法:MOEA/D-SVR求解CEC2018(DF1-DF14),提供完整MATLAB代码
  • 数字图像处理与OpenCV初探
  • 机器学习 [白板推导](五)[支持向量机]
  • uni-app隐藏返回按钮
  • VAS5081电动工具专用3-8节串联电池监控芯片奇力科技
  • 深入理解常用依存关系标签
  • 常见的几种排序算法
  • ​​MPI + OpenMP 环境配置指南(Windows/Linux)​
  • 【C++】继承和派生
  • 【靶场】upload-labs-文件上传漏洞闯关
  • Java面试题020:一文深入了解微服务之负载均衡Feign
  • docker-Dockerfile 配置
  • EMS企业微电网能效管理 + IBMS智能化集成系统:双擎驱动企业绿色低碳转型
  • 快速搭建运行Django第一个应用—投票
  • JAVA_学习(IDEA
  • RT-Thread Studio 配置使用详细教程
  • linux基于内存实现jar文件搜索
  • Java 大数据机器学习模型在电商用户画像构建与精准营销中的应用
  • Modbus TCP转DeviceNet网关配置温控仪配置案例
  • 76. 最小覆盖子串
  • ROS2双目相机标定与测距全流程详解:从原理到实践
  • 聊一聊 Linux 上对函数进行 hook 的两种方式
  • Go 语言:高并发编程的性能突围之路
  • Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络)的区别
  • @RequestBody和@ResponseBody注解的作用是什么
  • MySQL 分区
  • mysql_mcp_server quickstart