以下是在Ubuntu上设置Hadoop安全的关键步骤:
创建专用用户
sudo addgroup hadoop # 创建hadoop用户组
sudo adduser --ingroup hadoop hadoopuser # 创建hadoop用户并加入组
sudo passwd hadoopuser # 设置密码
将Hadoop安装目录权限赋予该用户:
sudo chown -R hadoopuser:hadoop /usr/local/hadoop # 假设Hadoop安装在/usr/local/hadoop
配置SSH免密登录
ssh-keygen -t rsa -P "" # 生成密钥对(无密码)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权文件
chmod 600 ~/.ssh/authorized_keys # 设置权限
测试免密登录:ssh localhost
启用Kerberos认证(可选但推荐)
sudo apt-get install krb5-server krb5-config krb5-user
/etc/krb5.conf
,设置默认领域和KDC服务器。core-site.xml
中启用Kerberos:<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
配置防火墙与网络隔离
ufw
限制Hadoop服务端口(如HDFS默认9000、YARN默认8088):sudo ufw allow 9000/tcp
sudo ufw allow 8088/tcp
sudo ufw deny in on eth0 from any # 禁止外部访问非必要端口(根据实际网络调整)
启用数据加密
hdfs-site.xml
中启用传输加密:<property>
<name>dfs.encrypt.data.transfer</name>
<value>true</value>
</property>
ssl-server.xml
/ssl-client.xml
):<property>
<name>hadoop.ssl.enabled</name>
<value>true</value>
</property>
设置权限与审计
hadoop-policy.xml
配置细粒度权限(如限制特定用户访问敏感目录)。log4j.properties
中配置):log4j.logger.org.apache.hadoop.security=INFO,audit
禁用不必要的服务与端口
/etc/hadoop/conf
目录权限为750
,仅允许hadoop用户组访问。注意:具体配置需根据实际集群规模和安全需求调整,建议参考官方文档并定期更新安全补丁。