CentOS环境下HDFS安全性配置指南
系统级安全是HDFS安全的基础,需优先完成以下设置:
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'识别超级用户账户,锁定(passwd -l <用户名>)或删除(userdel <用户名>)非必要的超级用户(如adm、lp等),减少系统权限滥用风险。/etc/login.defs文件,设置PASS_MIN_LEN 10(密码长度≥10位),并要求包含大小写字母、数字和特殊字符;同时检查并清理空口令账户(passwd -S <用户名>查看状态)。chattr +i命令为/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow添加不可修改属性,防止未经授权的修改(如chattr +i /etc/shadow)。/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,仅允许wheel组用户使用su切换至root,避免普通用户获取root权限。/etc/profile文件,添加TMOUT=300(300秒无操作自动登出),减少root账户长时间暴露的风险。Kerberos是HDFS最常用的强认证协议,配置步骤如下:
sudo yum install krb5-workstation krb5-libs。/etc/krb5.conf文件,设置领域(REALM)和KDC信息(如default_realm = YOUR.REALM.COM、kdc = kdc.your.realm.com:88)。kadmin.local命令添加HDFS主体(如hdfs/kdc.your.realm.com@YOUR.REALM.COM)并导出密钥表(ktadd -k /etc/krb5kdc/hdfs.keytab hdfs/kdc.your.realm.com)。core-site.xml,设置hadoop.security.authentication=kerberos、hadoop.security.authorization=true;编辑hdfs-site.xml,配置NameNode/Datanode的principal(如dfs.namenode.kerberos.principal=hdfs/_HOST@YOUR.REALM.COM)和keytab路径(如dfs.namenode.keytab.file=/etc/krb5kdc/hdfs.keytab)。kinit <用户名>获取票据,klist查看票据有效性。hdfs-site.xml,设置dfs.permissions.enabled=true(默认开启),强制HDFS检查用户权限。hdfs-site.xml,设置dfs.namenode.acls.enabled=true,启用ACL;使用hdfs dfs -setfacl -m user:user1:rwx /path/to/dir为用户添加权限,hdfs dfs -getfacl /path/to/dir查看ACL设置。hdfs-site.xml,设置fs.permissions.umask-mode=022(默认新建文件权限644、目录755),或077(更严格的权限)。/tmp)设置粘滞位(hdfs dfs -chmod +t /tmp),防止非所有者删除他人文件。core-site.xml,设置hadoop.ssl.enabled=true、hadoop.ssl.keystores.server.path=/path/to/server.keystore、hadoop.ssl.keystore.password=<密码>。hdfs crypto -createZone -keyName myKey -path /encrypted_data),加密现有数据(hdfs crypto -encrypt -path /plaintext_data -keyName myKey)。log4j.properties(位于Hadoop配置目录),设置hadoop.security.logger=INFO,RFAS,记录所有HDFS操作(如访问、修改、删除)。ssh-keygen),将公钥复制到目标节点(ssh-copy-id <用户名>@<节点IP>),避免每次通信输入密码。firewalld或iptables限制HDFS端口的访问(如NameNode端口50070、DataNode端口50010),仅允许信任的IP地址访问。hdfs dfs -cp命令备份HDFS数据至异地(如另一台服务器或云存储),制定数据恢复流程(如模拟数据丢失场景演练)。yum update centos-release、hadoop version检查版本),安装最新的安全补丁,修复已知漏洞。