版權聲明:本文為CSDN博主「不會吐絲的蜘蛛俠拾弃】酱埽」的原創(chuàng)文章陌宿,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明忱屑。
原文鏈接:https://blog.csdn.net/manweizhizhuxia/article/details/129809159
Hadoop常用端口介紹
HDFS
NameNode
50070 dfs.namenode.http-address http服務的端口
50470 dfs.namenode.https-address https服務的端口
DataNode
50010 dfs.datanode.address datanode服務端口蹬敲,用于數據傳輸
50075 dfs.datanode.http.address http服務的端口
50475 dfs.datanode.https.address https服務的端口
50020 dfs.datanode.ipc.address ipc服務的端口
8020 fs.defaultFS 接收Client連接的RPC端口,用于獲取文件系統(tǒng)metadata信息莺戒。
journalnode
8485 dfs.journalnode.rpc-address RPC服務
8480 dfs.journalnode.http-address HTTP服務
ZKFC
8019 dfs.ha.zkfc.port ZooKeeper FailoverController伴嗡,用于NN HA
YARN
ResourceManager
8032 yarn.resourcemanager.address RM的applications manager(ASM)端口
8030 yarn.resourcemanager.scheduler.address scheduler組件的IPC端口
8031 yarn.resourcemanager.resource-tracker.address IPC
8033 yarn.resourcemanager.admin.address IPC
8088 yarn.resourcemanager.webapp.http.address.rm1 http服務端口
8090 yarn.resourcemanager.webapp.https.address.rm1 https服務端口
NodeManager
8040 yarn.nodemanager.localizer.address localizer IPC
8042 yarn.nodemanager.webapp.address http服務端口
8041 yarn.nodemanager.address NM中container manager的端口
JobHistory Server
10020 mapreduce.jobhistory.address IPC
19888 mapreduce.jobhistory.webapp.address http服務端口,加個s就是https服務端口https://192.168.56.43:19888/jobhistory/logs
HBase
Master
60000 hbase.master.port IPC
60010 hbase.master.info.port http服務端口
RegionServer
60020 hbase.regionserver.port IPC
60030 hbase.regionserver.info.port http服務端口
Hive
Metastore
9083 metastore默認連接端口
HiveServer
10000 hiveserver2 默認連接端口
10002 hiveserver2 默認web端口
ZooKeeper
Server
2181 /etc/zookeeper/conf/zoo.cfg 客戶端提供服務的端口
2888 /etc/zookeeper/conf/zoo.cfg follower用來連接到leader,只在leader上監(jiān)聽該端口从铲。
3888 /etc/zookeeper/conf/zoo.cfg 用于leader選舉的瘪校。只在electionAlg是1,2或3(默認)時需要。
8080 /etc/zookeeper/conf/zoo.cfg web管理后端名段,可禁用阱扬,添加一行admin.serverPort=0
Hadoop相關漏洞
漏洞一:
端口:8088
協(xié)議:TCP
服務:radan-http
漏洞:
Apache Hadoop YARN 資源管理器 REST API未授權訪問漏洞【原理掃描】
官方建議修復方案:
臨時解決方案:
通過系統(tǒng)內置防火墻只允許端口被業(yè)務主機訪問
廠商解決方案:
更新Hadoop到2.X以上版本并啟用Kerberos認證功能,禁止匿名訪問
https://hadoop.apache.org/releases.html
不接受官方建議修復方案:
默認情況下吉嫩,Hadoop HTTP Web控制臺(ResourceManager价认,NameNode嗅定,NodeManagers和DataNodes)是允許無需任何形式的身份驗證的訪問自娩。
HDFS一般會開啟kerberos認證,但是YARN一般不開啟kerberos認證
方案一:如果開啟了kerberos認證:
就是core-site.xml有以下配置:
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
1渠退、yarn 的8088是ResourceManager的web界面
2忙迁、hdfs 的50070是NameNode的web界面
3、將yarn的端口8088訪問從http改為https端口號8090碎乃,
將hdfs的端口50070訪問從http改為https端口號50470姊扔,
也可以掃不到。
修改hdfs-site.xml梅誓,恰梢,新增 以下配置佛南。注意是https,和集群名更改
<property>
<name>dfs.http.policy</name>
<value>HTTPS_ONLY</value>
</property>
<property>
<name>dfs.namenode.https-address.bigdata.nn1</name>
<value>192.168.56.41:50470</value>
</property>
<property>
<name>dfs.namenode.https-address.bigdata.nn2</name>
<value>192.168.56.42:50470</value>
</property>
<property>
<name>dfs.datanode.https.address</name>
<value>0.0.0.0:50475</value>
</property>
修改yarn-site.xml,嵌言,新增 以下配置嗅回。注意是https
<!-- resourcemanager配置https -->
<property>
<name>yarn.resourcemanager.webapp.https.address.rm1</name>
<value>192.168.56.41:8090</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address.rm2</name>
<value>192.168.56.42:8090</value>
</property>
<!-- nodemanager配置https -->
<property>
<name>yarn.nodemanager.webapp.https.address</name>
<value>0.0.0.0:8042</value>
</property>
<!-- jobhistory如果之前有配置,只需在原配置http加個s變成https即可 -->
<property>
<name>yarn.log.server.url</name>
<value>https://192.168.56.43:19888/jobhistory/logs</value>
</property>
<!-- 這會為YARN守護程序配置HTTP端點摧茴。支持以下值: - HTTP_ONLY:僅在http上提供服務 - HTTPS_ONLY:僅在https上提供服務 -->
<property>
<name>yarn.http.policy</name>
<value>HTTPS_ONLY</value>
</property>
3绵载、升級后重啟resourcemanager,nodemanager苛白,娃豹,訪問 https://192.168.56.41:8090/cluster
4、如果使用nginx配置域名訪問 https://yarn-test.com/cluster
其中域名證書购裙,通過手動簽發(fā)生成懂版。生成證書
/etc/nginx/cert/tls-yarn.key;
/etc/nginx/cert/tls-yarn.crt;
server {
listen 443 ssl;
server_name yarn-test.com;
location / {
deny all;
}
ssl_certificate /etc/nginx/cert/tls-yarn.crt;
ssl_certificate_key /etc/nginx/cert/tls-yarn.key;
ssl_session_timeout 5m;
location /cluster {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_set_header Host yarn-test.com;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwaeded-Proto https;
proxy_pass https://yarn-test.com;
}
location /static {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_set_header Host yarn-test.com;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwaeded-Proto https;
proxy_pass https://yarn-test.com;
}
location /proxy {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_set_header Host yarn-test.com;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwaeded-Proto https;
proxy_pass https://yarn-test.com;
}
}
# yarn-resourcemanager服務器,配active那臺
upstream yarn-test.com {
server 192.168.56.41:8090;
}
方案二:開啟Hadoop的偽/簡單身份驗證
1、修改core-site.xml這幾個配置
<!-- -->
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<!-- 定義用于HTTP web控制臺的身份驗證躏率。支持的值是:simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# -->
<property>
<name>hadoop.http.authentication.type</name>
<value>simple</value>
</property>
<!--初始化類 -->
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<!--
簽名秘密文件定续,用于對身份驗證令牌進行簽名。
對于集群中的每個服務禾锤,ResourceManager, NameNode, DataNode和NodeManager私股,可以使用相同的secret。
這個文件應該只有運行守護進程的Unix用戶可以讀恩掷。
-->
<property>
<name>hadoop.http.authentication.signature.secret.file</name>
<value>/opt/hadoop/secret/hadoop-http-auth-signature-secret</value>
</property>
<!-- 指示在使用“簡單”身份驗證時是否允許匿名請求倡鲸。 -->
<property>
<name>hadoop.http.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
2、/opt/hadoop/secret/hadoop-http-auth-signature-secret 文件寫入
hadoop
3黄娘、重啟HDFS和YARN
4峭状、在訪問路徑后面加user.name參數,逼争,如:
http://192.168.56.41:50070?user.name=hadoop
http://192.168.56.41:8088?user.name=hadoop
zookeeper相關漏洞
漏洞一:
端口:2181
協(xié)議:TCP
服務:zookeeper
漏洞:
ZooKeeper 未授權訪問【原理掃描】
官方建議修復方案:
為ZooKeeper配置相應的訪問權限优床。
方式一:
1)增加一個認證用戶
addauth digest 用戶名:密碼明文
eg. addauth digest user1:password1
2)設置權限
setAcl /path auth:用戶名:密碼明文:權限
eg. setAcl /test auth:user1:password1:cdrwa
3)查看Acl設置
getAcl /path
方式二:
setAcl /path digest:用戶名:密碼密文:權限
不接受官方建議修復方案:
1、zkClish.sh進入zookeeper客戶端:
執(zhí)行命令
setAcl / ip:192.168.56.41:cdrwa,ip:192.168.56.42:cdrwa,ip:192.168.56.43:cdrwa
把所有需要的IP都寫上誓焦。
2胆敞、添加后,連接zkCli.sh客戶端杂伟,執(zhí)行命令會出現
[zk: localhost:2181(CONNECTED) 0] ls /
Authentication is not valid : /
執(zhí)行 connect IP 2181 即可
[zk: localhost:2181(CONNECTED) 1] connect 192.168.56.41 2181
[zk: 192.168.56.41(CONNECTED) 2] ls /
[zookeeper]
漏洞二:
端口:8080
協(xié)議:TCP
服務:http
Eclipse Jetty 安全漏洞(CVE-2020-27216)
Eclipse Jetty 安全漏洞(CVE-2022-2048)
Eclipse Jetty拒絕服務漏洞(CVE-2020-27223)
Eclipse Jetty信息泄露漏洞(CVE-2020-27218)
遠端WWW服務支持TRACE請求
Eclipse Jetty信息泄露漏洞(CVE-2021-28169)
官方建議修復方案:
太多
不接受官方建議修復方案:
zookeeper的8080端口是管理后端(admin)如果要改端口可以
admin.serverPort=8082
修復漏洞移层,可以選擇禁用此端口。
1赫粥、修改zookeeper安裝目錄中的conf/zoo.cfg文件观话,添加一行:
admin.serverPort=0
2、重新啟動Zookeeper服務越平。沒有8080端口频蛔。
hive相關漏洞
漏洞一:
端口:10002
協(xié)議:TCP
服務:http
漏洞Eclipse Jetty HTTP請求走私漏洞(CVE-2017-7658)
Eclipse Jetty HTTP請求走私漏洞(CVE-2017-7657)
Eclipse Jetty HTTP請求走私漏洞(CVE-2017-7656)
Eclipse Jetty 安全漏洞(CVE-2020-27216)
Eclipse Jetty 輸入驗證錯誤漏洞(CVE-2018-12545)
Eclipse Jetty信息泄露漏洞(CVE-2018-12536)
Eclipse Jetty 信息泄露漏洞(CVE-2019-10246)
Eclipse Jetty跨站腳本執(zhí)行漏洞(CVE-2019-10241)
Eclipse Jetty 信息泄露漏洞(CVE-2019-10247)
官方建議修復方案:
目前廠商已發(fā)布升級補丁以修復漏洞灵迫,補丁獲取鏈接:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=535669
不接受官方建議修復方案:
1、10002 為hiveserver2的默認端口晦溪,webUI頁面龟再,沒什么用就禁用掉。
默認是10002.寫0或者負數就是禁用尼变,
2利凑、hive-site.xml增加配置:
<property>
<name>hive.server2.webui.port</name>
<value>0</value>
<description>The port the HiveServer2 WebUI will listen on. This can beset to 0 or a negative integer to disable the web UI</description>
</property>
3、重啟hiveserver2嫌术,就沒有10002端口了哀澈。
————————————————
版權聲明:本文為CSDN博主「不會吐絲的蜘蛛俠《绕」的原創(chuàng)文章割按,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明磷籍。
原文鏈接:https://blog.csdn.net/manweizhizhuxia/article/details/129809159