LinuxAid网站配置实例<一>

发表于:2007-07-02来源:作者:点击数: 标签:
1.前言 本文将以LinuxAid网站基本配置过程为实例,讲解怎么用 Linux 做为OS,构架一个完整的Web服务器的过程。照着步骤,仔细实践,相信您可以在极短的时间内建筑起一个比较 安全 、稳健的Web服务器。 整个环境就是在实际Internet上做,LinuxAid的基本参数是

1.前言

    本文将以LinuxAid网站基本配置过程为实例,讲解怎么用 Linux 做为OS,构架一个完整的Web服务器的过程。照着步骤,仔细实践,相信您可以在极短的时间内建筑起一个比较安全、稳健的Web服务器。
    整个环境就是在实际Internet上做,LinuxAid的基本参数是,IP地址:202.99.11.120,域名是:linuxaid.com.cn,linuxaid.net.cn等。服务器所使用的OS为:Redhat Linux 6.2
    缺省安装时选择定制安装,选择软件包时除了 Sendmail 之外,不选择任何的服务器软件,同时应该安装C、C++开发包。我们将要手工编译安装的软件包有:
Apache 1.3.12 #WEB服务器,提供HTTP服务
Resin 1.2.b1 #JSP解释器,提供JSP/SERVLET解释服务
PHP 4.0p2 #PHP解释器,提供PHP解释服务
Mysql 3.22.32 #数据库服务器,提供数据库存储服务
Proftpd 1.2.0rc2 #匿名FTP服务器,提供文件传输服务
Bind 8.2.2p5 #域名服务器(DNS),提供域名解析服务
Openssh-2.1.1.p4 #安全外壳,用于代替系统缺省的TELNET服务
Postfix-19991231-pl09 #邮件传递服务器(MTA),提供邮件发送服务
    我们将把所有的自行编译的软件都放置于 /usr/local/servers ,也就是说配置是所使用的参数 --prefix 将指向 /usr/local/servers/packages(其中packages为软件包的名称,如Web服务器将使用 apache)。
    本文将以安装手册的形式出现,力求简单明了,可以指导您迅速的将一台只有基本操作系统(Linux)的计算机安装成为一台可以提供邮件(MAIL)、域名(DNS)、文件传输(FTP)、Web、JSP编程环境、PHP编程环境及数据库支持的Web服务器。
    在进行实际操作前,我们强烈的建议您在看完全部内容。因为服务器的安装过程中要注意的问题非常多。如果您只是看了一部分就开始实际操作,有可能会导致问题的出现。同时,Web服务器是一个比较复杂的系统,虽然我们尽力的将可能遇到的问题列出来并提供解决的方法,但仍然有可能出现一些无法遇见的问题。您可以自行尝试查出错误的原因,如果可能的话,将您得到的结果通过我们的网站()与其他读者共同分享。如果您遇到无法解决的问题,您可以直接到我们的技术支持网站 技术支持论坛讨论,我们的在线支持工程师会给您详细的解释。

2.基础网络配置
2.1.网卡的安装与设置

    使用 netconf 按照以下的步骤:
1.使用方向键↓选择Basic host information并按回车
2.填写 Host name,一般情况下是www,如果您是用来做Web服务器的话
3.使用方向键↓将光标移动至 Adaptor 1 的范围内
4.选择 Enabled 选项,使网卡有效
5.使用方向键将光标移动至Config Mode内,选择IP地址方式,对于Web服务器应该选择 Manual
6.我们的Web服务器的主域名是linuxaid.com.cn 所以在 Primary name+domain 这一项里面应该输入 linuxaid.com.cn,而别名(Aliases)可以不输入
7.IP地址(IP address)应该输入Web服务器的IP地址,这里我们输入202.99.11.120
8.因为我们假设Web服务器是安装在一个C类的子网内,所以子网掩码(Netmask)应该选择255.255.255.0(将光标放置于Netmask输入内,按ctrl+x键将会弹出一个列表框在其中选择即可。提示:在所有有v字样的列表框内都可以按ctrl+x键选择)
9.Linux里面每一个以太网设备都必须有一定设备名,将光标放置于Net device输入框内按键盘ctrl+x键选择设备名,在Linux里面第一个以太网设备的名称应该选择eth0。
10.在设备名选择完之后,应该为此设备选择一个驱动程序,使Linux的内核可以驱动它正常的工作。这里假设我们的网卡的ne2000兼容的10M网卡。使用ctrl+x选择ne即可。
11.在驱动选择完成之后,要看网卡的具体情况确定是否需要输入中断号和端口号。这里我们的网卡的NE2000 ISA的网卡,没有PNP功能我们只有自己手工的将中断号和端口号输进去。
12.至了这里,网卡的参数我们已经设置完成,用TAB键将键盘移动到Accept处按键盘的回车键保存设置。并退出netconf,重新启动Linux之后用以下的命令查看网卡工作是否正常
# ifconfig eth0
正常情况下应该会显示关于网卡的相关信息,如果没有的话,检查您的设置步骤是否正确。

2.2.IP地址的修改
    使用netconf按照以下的步骤:
1.Basic host information
2.填写 Host name,一般情况下是www,如果您是用来做Web服务器的话
3.使用方向键↓将光标移动至 Adaptor 1范围内的IP address输入框内,输入您想要更改的IP地址,输入完成之后用TAB键移动至Accept按钮处按回车即可。
4.使用手工的方式修改可以用以下的命令:
# ifconfig eth0 202.99.11.120
其中eth0是设备的名称,202.99.11.120是IP地址。

2.3.缺省DNS服务器地址的设置
    直接使用vi修改/etc/resolv.conf,查看其中是否存在nameserver的参数,如果没有手工添加进去,如果有的话直接修改其后的IP地址即可。其格式为
nameserver 127.0.0.1
其中127.0.0.1为DNS服务器的地址,由于本站配置了DNS服务器,所以可以用本地地址,也可写为202.99.11.120。

3.服务器安全
    做为Web服务器,我们首先要考虑的一条就是安全。Linux在安装完成之后,缺省的情况下会打开一些端口以提供一些基础如Telnet、Finger等服务。
    对于我们来说是没有任何用处的,说不定还会导致一些安全问题。为此,在服务器的建设初始,我们将就考虑将这些对我们日常工作没有起到作用的服务关闭掉。在这一部分,我们将会介绍如何使用 openssh 和 proftpd 代替 inetd 最常用的两个服务 telnetd 和 ftpd,从而实现最终将 inetd 从系统同删除掉。
    在进行具体的操作前,强烈的建议您先为自己添加一个独立的用户,一般来说我是这样处理的。添加一个组名为 ftpusers,再添加一个用户 myuser 其组为 ftpusers。相应的命令为:
#groupadd ftpusers
#useradd myuser –g ftpusers
此用户将用于进行常规的维护,与测试,象Telnet、FTP这些工作的测试。

3.1.安装 openssh
1、下载软件包:
从 下载 openssl 0.9.5a
从 下载 openssh-2.1.1.p4
下载的软件包放置于 /usr/local/src。
2、将软件包解压缩

# cd /usr/local/src
# tar zxvf openssl-0.9.5.tar.gz
# tar zxvf openssh-2.1.1.p4.tar.gz

3、编译并安装 openssl和openssh

# cd /usr/local/src
# cd openssl-0.9.5
# ./configure --prefix=/usr/local/servers/openssl #设置安装路径
# make
# make install

    编译(make)过程所需的时间比较长,在我的PIII600+128MB SCSI硬盘的机器上编译的过程需要差不多五分钟。所以请耐心等候其编译完成。
    在完成 openssl 的编译与安装之后,我们就可以开始编译与安装 openssh。步骤如下:

# cd /usr/local/src
# cd openssh-2.1.1.p4
# ./configure --prefix=/usr/local/servers/openssh --with-ssl-dir=/usr/local/servers/openssl
# make
# make install
# cd /usr/local/src/openssh-2.1.1.p4/contrib/redhat
# install -m 644 sshd.pam /etc/pam.d/sshd
# sed ‘s//sbin///local/servers/openssh/sbin//g’ sshd.init > /etc/rc.d/init.d/sshd
# chmod 755 /etc/rc.d/init.d/sshd
# chkconfig --level 345 sshd on
# chkconfig --level 0126 sshd off

4、测试sshd
启动 sshd:

# /etc/rc.d/init.d/sshd start

如果出现:

Starting sshd: [ OK ]

    则证明 sshd 已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确。
    sshd 正确启动之后,我们试试用其客户端看是否可以正确的联接至服务器:

# cd /usr/local/servers/openssh/bin
# ./ssh 127.0.0.1 #连接本地的SSH服务器

    使用此命令之后正常情况下会要求您输入root的密码,您输入之后如果可以成功的进入则证明 sshd 已经成功的安装完成了。

    ssh的win32客户端可以从 下载。方便您在Windows里面远程控制网站服务器。

3.2.安装ProFTPD

1、下载软件包
    从 下载proftpd-1.2.0rc2.tar.gz
    下载的软件包放置于 /usr/local/src。
2、将下载的软件包解压缩

# cd /usr/local/src
# tar zxvf proftpd-1.2.0rc2.tar.gz

3、编译并安装proftpd

# ./configure --prefix=/usr/local/servers/proftpd
# make
# make install

4、修改 /etc/inetd.conf 将其中的 ftp 服务关闭掉
    使用 vi /etc/inetd.conf 打开 inetd 配置文件,搜索 ftp,在
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
这一行的最前面插入一个 # 号,修改之后的结果如下:

# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a

    在vi环境下使用 :wq 存盘退出以后,使用 killall -HUP inetd 重新启动 inetd,使所做的修改生效。
5、生成ProFTPD启动文件

# cd /etc/rc.d/init.d
# sed ‘s/sbin/atd/local/servers/proftpd/sbin/proftpd/g’ atd > proftpd
# sed ‘s/atd/proftpd/g’ proftpd > /tmp/txt
# sed ‘s/at daemon/proftpd daemon/g’ /tmp/txt > proftpd
# rm /tmp/txt
# chmod 755 proftpd
# chkconfig --level 345 proftpd on
# chkconfig --level 0126 proftpd off

    说明:chkconfig,是一个在Linux里面用于修改服务器(daemon)运行环境的小程序,其命令格式为 chkconfig [–level <levels>] <name> <on|off|reset>用于指定某个服务在指定的运行级别内是处于何种状态。
6、为ProFTPD创建PAM文件

使用 vi 在 /etc/pam.d 创建一个名为 ftp 的文件,其内容为:

auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so

7、修改ftp用户的shell,并创建其主目录

# usermod –s /bin/bash ftp
检查/home/ftp 是否存在,如果不存在使用以下的命令创建

# mkdir /home/ftp
# chown /home/ftp
# chmod 700 /home/ftp

如果您不希望匿名登录有效,本节可以不做
8、修改ProFTPD的启动参数

# vi /usr/local/servers/proftpd/etc/proftpd.conf
搜索 nogroup,并将其改为 nobody
:%! sed ‘s/nogroup/nobody/g’
修改完成后存盘退出
9、启动ProFTPD
# /etc/rc.d/init.d/proftpd start
如果出现
Starting proftpd daemon: [ OK ]

    则证明ProFTPD已经正确的安装并已经在后台运行,如果出现其它的提示,请检查您的安装步骤是否正确。
10、测试ftp的联接是否正常

ftp localhost

使用我们先前创建的用户登录。
如果无法联接,则检查您的ProFTPD是否已经在运行(可以用 ps –ax | grep “proftpd” 查看是否有ProFTPD进程)。
如果无法登录,检查您的用户名及口令是否正确;如果确认所输入的用户及口令正确而又无法登录,请检查第9步是否有正确的进行。

3.3.关闭因特网超级服务器(inetd)
    经过以上的步骤,我们已经实现了使用openssh代替telnetd实现远程登录,用proftpd代替in.ftpd提供匿名文件传输服务。Inetd提供的基础功能,我们都已经实现,现在可以将inetd彻底的关闭掉。使用以下的命令:

# /etc/rc.d/init.d/inet stop
# chkconfig 0123456 inet off

    经过以上的命令之后就可以将inet关闭掉,并且在下次启动时系统也不会自动启动inetd服务。

4.数据库服务器的安装
    经过第一部分的工作,我们已经成功的建立了一个比较安全的环境。可以开始做一些实质性的工作。首先做为Web服务器,必须提供数据库支持,我们就从数据库的安装与基本的维护开始。这里我们选择MySQL做为我们的数据库服务器。您可以从下载到最新版本的MySQL。我们选择稳定版本的3.22.32做为我们说明的版本。
4.1.下载软件包
从下载MySQL 3.22.32 并放置于/usr/local/src
4.2.将下载的软件包解压缩

# cd /usr/local/src
# tar zxvf mysql-3.22.32.tar.gz

4.3.编译并安装MySQL

# cd /usr/local/src/mysql-3.22.32
# ./configure --prefix=/usr/local/servers/mysql
# make
# make install
# cd /usr/local/servers/mysql/bin
# ./mysql_install_db

4.4.启动MySQL并设置管理员口令

# cd /usr/local/servers/mysql/bin
# ./safe_mysqld& #启动MySQL服务器
# ./mysqladmin -u root password ‘password’ #使用mysqladmin修改root的口令
#为’password’

原文转自:http://www.ltesting.net