![](/img/trans.png)
[英]Allow HTTPS connection to payseal.icicibank.com on port 443
[英]Allow specific linux user to bind to port 443
我負責設置一個通過SSL運行的JBoss Web應用程序,因此應該可以通過端口443對其進行訪問。
當然,它可以由具有root特權的用戶啟動,但這是我要避免的事情。 我想由非特權用戶運行它,以便我可以嚴格控制此應用程序執行的所有操作,並且不提供超出所需的訪問權限。
但是,問題是非特權用戶無法綁定到<1024端口。 我知道設計這種情況的原因,但是,這種安全性原則不允許我在JBoss應用程序中實踐良好的安全性。
解決此問題的最佳方法是什么? 我當然想避免使用丑陋的解決方案,例如綁定到端口8443。
1。
編寫使用特權端口的網絡服務的常用方法是:
setuid(2)
不可撤銷地放棄特權; seteuid(2)
放棄特權,但仍然能夠切換回root用戶。 2。
允許非特權用戶啟動特權服務的常用方法是設置setuid bit
。
綁定到特權端口后,服務可以切換回real user id
(啟動服務的用戶)或某些特殊用戶(例如cron守護程序的cron
用戶)。
3。
另一個(特定於Linux的)選項是為您的服務提供CAP_NET_BIND_SERVICE
功能,而不提供完整的root特權。
可以使用libpcap
在代碼中直接完成此操作(但您仍然需要setuid bit
),或者如果文件系統支持,可以通過將功能位附加到可執行文件上(因此不需要setuid bit
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.