使用非root賬戶運行tomcat

        在Linux中,賬戶root有着生殺予奪的絕對權力,所以必要隨便使用root賬戶。這也就是說我們不能用root賬戶來運行暴露在外網上的切可以增刪改文件的應用程序。所以我們開發的網站或者說像tomcat等WEB服務是不可直接通過root權限來運行的,因爲我們的網站服務都有記錄日誌、上傳文件等文件操作,一旦網站有漏洞,就有可能引起攻擊,甚至整個服務器都有可能被黑客控制。所以我們需要用非root賬戶,最好是nologin賬戶來運行tomcat等web服務。
        但是爲了安全考慮,在Linux系統中1024以下的端口都歸root賬戶所有,其他用戶沒有使用這些端口的權限。所以最好的做法是用非root賬戶運行tomcat,端口當然要大於1024,可以是常用的8080,https端口爲8443.通過root賬戶運行 其它軟件(例如Apache、nginx),然後跳轉端口80到8080上,跳轉端口443到8443上。然後通過防火牆跳轉端口80到8080上,跳轉443端口到8443上。但是通過防火牆跳轉必須暴露原始端口8080和8443。

1、新建nologin賬戶tomcat命令如下:

useradd tomcat -M -d / -s /usr/sbin/nologin

其中參數-M不創建用戶主目錄  -d指定用戶主目錄  -s指定用戶shell
2、設置tomcat安裝目錄下所有文件的所有者和所屬組爲tomcat(由於tomcat是由root解壓的,所有文件所屬權爲root,如果不進行移權其他用戶將無法啓動tomcat服務):

chown -R tomcat:tomcat /usr/local/tomcat8.5

3、使用systemctl命令管理tomcat服務,首先在目錄/lib/systemd/system/下新建文件tomcat.service,內容如下:

[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target remote-fs.target nss-lookup.target redis.service mysql.service
Requires=mysql.service  redis.service
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat

[Install]
WantedBy=multi-user.target

4、新建立的服務,需要註冊到系統服務,命令如下:

systemctl enable tomcat.service

5、新建的或修改過的服務,需要使服務生效,命令如下

systemctl daemon-reload

6、啓動服務

#啓動服務
systemctl start tomcat.service
#關閉服務
systemctl stop tomcat.service
#重啓服務
systemctl restart tomcat.service
#查看服務狀態
systemctl status tomcat.service

7、開啓防火牆,並設置開放端口,以ubuntu爲例

#開啓防火牆
sudo ufw enable 
#開放端口
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8080
sudo ufw allow 8443

8、防火牆端口跳轉命令如下:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

參考文章:
https://blog.csdn.net/zhangjianying/article/details/6574438
https://www.cnblogs.com/qq931399960/p/9152201.html
https://blog.csdn.net/bigdata_mining/article/details/80699180
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章