如何设定实施Java程序的Linux平安情况-2
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 ___FCKpd___2quot;Starting Tomcat Java server: "
daemon su -c /home/tomcat/tcstart.sh tomcat
echo
return $RETVAL
}
stop() {
echo -n ___FCKpd___2quot;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 ___FCKpd___2quot;Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2007/0719/27918_2.html
版权声明:
原创作品,应许转载,转载时请务必以超链接体式名目标明文章 原始出处 、作者信息和本声明。否则将深究法律责任。