OpenSSH构建SSH服务器
SSH服务和Telnet服务一样,通过远程登录登录到系统,在远程操控系统。但它与Telnet的不同点就是:Telnet在传输的过程中是平文传输,而SSH是将传输内容加密,在传送的过程中保证了传送内容的保密性,从而提高了系统的安全性。
在这里,我们不准备将SSH服务作为用户上传下载文件的工具。我们只用SSH服务的开通为远程管理系统提供方便。另外在用户认证方式上,为了服务器和用户的安全,禁止用户密码的认证方式,而基于“钥匙”的方式。
首先修改SSH的配置文件。如下:
[root@sample ~]#vi /etc/ssh/sshd_config ← 用vi打开SSH的配置文件 |
然后保存并退出。(vi保存退出的命令为ZZ)
因为我们只想让SSH服务为管理系统提供方便,所以在不通过外网远程管理系统的情况下,只允许内网客户端通过SSH登录到服务器,以最大限度减少不安全因素。设置方法如下:
[root@sample ~]#vi /etc/hosts.deny ← 修改屏蔽规则,在文尾添加相应行 # sshd: ALL ← 添加这一行,屏蔽来自所有的SSH连接请求 # sshd: 192.168.0. ← 添加这一行,只允许来自内网的SSH连接请求 |
重新启动SSH服务
在修改完SSH的配置文件后,需要重新启动SSH服务才能使新的设置生效。
[root@sample ~]#/etc/rc.d/init.d/sshd restart ← 重新启动SSH服务器 |
这时,在远程终端(自用PC等等)上,用SSH客户端软件以正常的密码的方式是无法登录服务器的。为了在客户能够登录到服务器,我们接下来建立SSH用的公钥与私钥,以用于客户端以“钥匙”的方式登录SSH服务器。
SSH2的公钥与私钥的建立
登录为一个一般用户,基于这个用户建立公钥与私钥。(这里以centospub用户为例)登录为一个一般用户,基于这个用户建立公钥与私钥。(这里以centospub用户为例)
[root@sample ~]#su - centospub ← 登录为一般用户centospub |
然后确认一下公钥与密钥的建立,以及对应于客户端的一些处理。
[centospub@sample ~]$cd ~/.ssh ← 进入用户SSH配置文件的目录 |
然后,将私钥通过安全的方式转移到欲通过SSH连接到服务器的PC上。这里,以通过3.5寸磁盘为介质为例:
centospub@sample .ssh]$exit ← 退出一般用户的登录(返回root的登录) |
这样,我们通过对应于centospub用户的私钥,就可以在远程终端上通过SSH客户端连接到服务器了。但服务器生成的私钥匙不能被客户端直接应用…
安装JDK
从SUN下载jdk-1_5_0_14-linux-i586.bin
在/usr下新建java文件夹,将安装包放在/usr/java目录下
# mkdir /usr/java # chmod a+x jdk-1_5_0_14-linux-i586.bin ← 使当前用户拥有执行权限 |
配置环境变量
# vi /etc/profile |
在最后加入以下几行:
export JAVA_HOME=/usr/java/jdk1.6.0_10 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin |
重启生效
Tomcat5 自动启动
root@sample ~]# vi /etc/rc.d/init.d/tomcat ← 建立Tomcat启动脚本,如下:
#!/bin/bash
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.
export JDK_HOME=/home/graduate/jdk1.6.0_16 ← 以免启动时找不到jdk
export JAVA_HOME=/home/graduate/jdk1.6.0_16 ← 以免启动时找不到jdk
# Source function library.
. /etc/rc.d/init.d/functions
start(){
if [ -z $(/sbin/pidof java) ]; then
echo "Starting tomcat"
/home/graduate/apache-tomcat-6.0.14/bin/startup.sh
touch /var/lock/subsys/tomcat
else
echo "tomcat allready running"
fi
}
stop(){
if [ ! -z $(/sbin/pidof java) ]; then
echo "Shutting down tomcat"
/home/graduate/apache-tomcat-6.0.14/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
else
echo "tomcat not running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
/home/graduate/apache-tomcat-6.0.14/bin/catalina.sh version
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
exit 0
[root@sample ~]# chmod 755 /etc/rc.d/init.d/tomcat ← 将启动脚本属性设置为755(使之可执行)
[root@sample ~]# chkconfig --add tomcat ← 将Tomcat加入到chkconfig中
[root@sample ~]# chkconfig tomcat on ← 将Tomcat设置为自启动
[root@sample ~]# chkconfig --list tomcat ← 确认Tomcat服务状态
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 确认2~5为on的状态就OK
[root@sample ~]# /etc/rc.d/init.d/tomcat start ← 启动Tomcat
Starting tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /usr/local/jdk1.5.0_08
iptable防火墙配置
CentOS系统安装完成后,除了22端口是开发的,其他的端口都被防火墙关闭了。防火墙的启动,可以执行ntsysv进行查看。
防火墙关闭是安全考虑。但是要让80开放啊,还要让3306让我想要让他访问的服务器访问啊,要不然这机器放着也没用啊。
[root@sample ~]#iptables -I INPUT -p tcp --dport 80 -j ACCEPT ← 开放80端口 [root@sample ~]#iptables -I INPUT -p tcp --dport 8080 -j ACCEPT ← 开放8080端口 [root@sample ~]#iptables -I INPUT -p tcp --dport 3306 -j ACCEPT ← 开放3306端口 [root@sample ~]#/etc/rc.d/init.d/iptables save ← 保存配置,非常重要 |
再查看是否已经成功:
[root@sample ~]#/etc/init.d/iptables status |
如看到:
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
表示80端口已经开通