亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

如何設定執行Java程序的Linux安全環境3
2007-07-20   中國IT實驗室

iptables 解決方案

  xinetd 是處理請求重新導向的一種好方法,但它執行了一個處理序以在連接端口之間實際轉信數據,這確實增加了一些開銷。最新的 Linux 內核版本透過使用 iptables 來支持一種更好的設定重新導向的方法。iptables 與 xinetd 的區別之處在于它是一個真正的內核組件。因此,它可以避免 xinetd 方法增加的開銷。使用 iptables 的唯一缺點是它可能比 xinetd 更難以組態,而且它只可用于相當新的內核版本。

  您需要執行支持 iptables 的 2.4.x 或更新的內核,以便使用我在這里描述的技術。組態和設定 iptables 是一個確信由幾篇文章來單獨描述的主題,所以我不打算在這里嘗試討論該主題。如果對 iptables 的入門需要幫助,請閱讀 Linux 分發版的手冊。要快速檢查 iptables 是否在您的系統上執行,嘗試以 root 使用者身份執行︰

  /sbin/service iptables status

  如果它正在執行,您將會在控制臺上看到表和鏈的清單。

  iptables 使用幾個不同的表和封包鏈來處理規則的。為了將進入 HTTP 請求從連接端口 80 重新導向到系統中的另一個連接埠,您將要使用 nat 表(表示網絡地址轉換,Network Address Translation)和 PREROUTING 鏈。清單 2 提供了要執行的實際指令(以 root 使用者身份),以便于加入一條處理這一請求的規則。這條規則的作用是將進入包的目標連接端口 80 修改成目標連接端口 8080,因此祇有在您沒有阻止從外部使用連接埠 8080 時,這條規則才會正確工作。一旦執行了該指令,您就應該能夠立即處理進入請求。

  清單 2. iptables 重新導向規則

  /sbin/iptables -t nat \

  -A PREROUTING -j REDIRECT -p tcp \

  ——destination-port 80:80 ——to-ports 8080

  /sbin/service iptables save

  以便于儲存目前 iptables 組態。

  自動啟動 Tomcat

  當執行諸如 Tomcat 之類別的 Java 服務時的另一個問題是當系統啟動時,如何自動啟動該應用程序,以及當系統關機時如何自動停止它(換句話說,將它當作守護程序執行)。經驗豐富的 Linux 使用者已經知道怎樣做,但如果您還是個 Linux 新手,以下就是一些基礎知識。

  如果您就在您的個人系統上執行它并且想要使用與直接執行 Tomcat 一樣的對 Tomcat 的文件和目錄的存取權,那么您可以用您自己的使用者名稱來設定它。但是,通常,一個比較好的想法是︰為將要作為守護程序執行的任何程序設定一個單獨的使用者。要針對 Tomcat 執行這一作業,以 root 使用者身份執行︰

  /usr/sbin/useradd tomcat

  這將建立一個名為 tomcat 的使用者賬戶并建立一個用于 Tomcat 安裝的主目錄 /home/tomcat.所建立的主目錄的所有者是 tomcat 使用者,而且通常只容許這個使用者存取(當然還有 root 使用者)。如果想要從其它賬戶存取 Tomcat 安裝,可以將許可權變更成包括組存取權,并將 tomcat 組新增到這些其它賬戶。

  總之,要將 Tomcat 當作守護程序執行,需要將服務組態文件新增到 /etc/init.d 目錄中,而您可能要將該文件命名為「tomcat」。清單 3 提供了該文件的樣本。這假設了 Tomcat 安裝在 /home/tomcat 下,并且該位置中有兩個 shell 指令碼文件,用于處理啟動和停止服務器(tcstart.sh 和 tcstop.sh)。在執行實際的 Tomcat 啟動或停止指令碼之前,需要使用這些文件來設定 Tomcat 所需的環境變量(包括 JAVA_HOME 和 JDK_HOME)。

  清單 3. Tomcat 服務定義

#!/bin/bash
#
# tomcat Starts Tomcat Java server.
#
#
# chkconfig: 345 88 12
# description: Tomcat is the server for Java servlet applications.
### BEGIN INIT INFO
# Provides: $tomcat
### END INIT INFO
# Source function library.
。 /etc/init.d/functions
[ -f /home/tomcat/tcstart.sh ] || exit 0
[ -f /home/tomcat/tcstop.sh ] || exit 0
RETVAL=0
umask 077
start() {
echo -n $"Starting Tomcat Java server: "
daemon su -c /home/tomcat/tcstart.sh tomcat
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down Tomcat Java server: "
daemon su -c /home/tomcat/tcstop.sh tomcat
echo
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
      exit $?

熱詞搜索:

上一篇:如何設定執行Java程序的Linux安全環境2
下一篇:如何設定執行Java程序的Linux安全環境4

分享到: 收藏