温馨提示×

kafka安全debian如何设

小樊
43
2026-09-03 18:55:14
栏目: 智能运维

下面按 Debian 上部署 Kafka 的安全配置 给你一个实用清单,覆盖最常见的几块:认证、授权、传输加密、系统级安全


一、基础环境(Debian)

# 建议使用非 root 用户
sudo adduser kafka
sudo usermod -aG sudo kafka

# 安装 JDK(Kafka 需要)
sudo apt update
sudo apt install -y openjdk-17-jdk

Kafka 目录建议:

/opt/kafka

二、启用 TLS(传输加密)

1️⃣ 生成 CA 和证书

keytool -genkeypair -alias kafka -keyalg RSA \
  -keystore kafka.server.keystore.jks \
  -validity 365 -storepass changeit

keytool -export -alias kafka \
  -file kafka.server.cert \
  -keystore kafka.server.keystore.jks \
  -storepass changeit

keytool -import -alias ca \
  -file kafka.server.cert \
  -keystore kafka.server.truststore.jks \
  -storepass changeit

2️⃣ server.properties 配置

listeners=SSL://:9093
advertised.listeners=SSL://kafka-host:9093

ssl.keystore.location=/opt/kafka/kafka.server.keystore.jks
ssl.keystore.password=changeit
ssl.key.password=changeit

ssl.truststore.location=/opt/kafka/kafka.server.truststore.jks
ssl.truststore.password=changeit

ssl.client.auth=required

三、启用 SASL 认证(推荐)

方式一:SASL/PLAIN(简单)

server.properties

listeners=SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

ssl.* (同上)

kafka_server_jaas.conf

KafkaServer {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="admin"
  password="admin-secret"
  user_admin="admin-secret"
  user_client="client-secret";
};

启动:

export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/kafka_server_jaas.conf"

四、ACL 授权(防止乱访问)

启用 ACL

authorizer.class.name=kafka.security.authorizer.AclAuthorizer
super.users=User:admin

示例授权

kafka-acls.sh --bootstrap-server kafka:9093 \
  --command-config admin.conf \
  --add --allow-principal User:client \
  --operation Read --topic test-topic \
  --group test-group

五、Debian 系统级安全

1️⃣ 防火墙

sudo ufw allow 9093/tcp
sudo ufw enable

2️⃣ 文件权限

sudo chown -R kafka:kafka /opt/kafka
chmod 600 /opt/kafka/*.jks

3️⃣ systemd 服务(推荐)

[Unit]
Description=Kafka
After=network.target

[Service]
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
Restart=on-failure

[Install]
WantedBy=multi-user.target

六、客户端连接示例

bootstrap.servers=kafka:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.truststore.location=client.truststore.jks

七、推荐安全组合(生产)

SASL_SSL + ACL + TLS
✅ 不使用 PLAINTEXT
✅ 定期轮换证书
✅ Kafka 3.x + Debian 12


如果你愿意,我可以:

  • 给你 完整可复制配置文件
  • 教你 Kraft 模式(无 Zookeeper)安全配置
  • 或针对 Docker / 云服务器 场景讲

你现在是 测试环境还是生产环境

0