分享

Linux 网站配置说明(一)

 krrish 2010-05-27
Linux 网站配置说明(一)
2006年07月31日 星期一 下午 02:34
 

Linux 网站配置说明(一)2004-7-2 14:26:00

1.前言

本文以网站基本配置过程为实例,讲解用 Linux 做为OS,构架一个完整 Web 服务器过程。照着步骤,仔细实践,相信可以在极短时间内建筑起一个比较安全、稳健的 Web 服务器。

整个环境是在 Internet 上做,dedaozhi的基本参数是,IP地址:202.98.10.100,域名是:dedaozhi.com.cn,dedaozhi.net.cn

等。服务器所使用的OS为:Redhat Linux 7.X.

缺省安装时选择定制安装,选择软件包时除了 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服务器。

在进行实际操作前,强烈建议您看完全部内容。因为服务器的安装过程中要注意的问题非常多,如果您只是看了一部分就开始实际操作,有可能会导致问题的出现。

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服务器的主域名是dedaozhi.com.cn 所以在 Primary name+domain 这一项里面应该输入: dedaozhi.com.cn,而别名 (Aliases)可以不输入.

7.IP地址(IP address)应该输入Web服务器的IP地址,这里我们输入: 202.98.10.100

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.98.10.100,其中eth0是设备的名称,202.98.10.100是IP地址。

2.3.缺省DNS服务器地址的设置

直接使用vi修改/etc/resolv.conf,查看其中是否存在nameserver的参数,如果没有手工添加进去,如果有的话直接修改其后的IP地址即可。其格式为:nameserver 127.0.0.1

其中127.0.0.1为DNS服务器的地址,由于本站配置了DNS服务器,所以可以用本地地址,也可写为202.98.10.100。

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、下载软件包:

http://www. 下载 openssl 0.9.5a

http://www. 下载 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客户端可以从http://www./~chris/ssh/putty.exe 下载。方便您在Windows里面远程控制网站服务器。

3.2.安装ProFTPD

1、下载软件包

http://www. 下载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 ] 用于指定某个服务在指定的运行级别内是处于何种状态。

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
ftp.ftp /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服务

Linux 网站配置说明(一)
2006年07月31日 星期一 下午 02:34

Linux 网站配置说明(一)2004-7-2 14:26:00

1.前言

本文以网站基本配置过程为实例,讲解用 Linux 做为OS,构架一个完整 Web 服务器过程。照着步骤,仔细实践,相信可以在极短时间内建筑起一个比较安全、稳健的 Web 服务器。

整个环境是在 Internet 上做,dedaozhi的基本参数是,IP地址:202.98.10.100,域名是:dedaozhi.com.cn,dedaozhi.net.cn

等。服务器所使用的OS为:Redhat Linux 7.X.

缺省安装时选择定制安装,选择软件包时除了 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服务器。

在进行实际操作前,强烈建议您看完全部内容。因为服务器的安装过程中要注意的问题非常多,如果您只是看了一部分就开始实际操作,有可能会导致问题的出现。

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服务器的主域名是dedaozhi.com.cn 所以在 Primary name+domain 这一项里面应该输入: dedaozhi.com.cn,而别名 (Aliases)可以不输入.

7.IP地址(IP address)应该输入Web服务器的IP地址,这里我们输入: 202.98.10.100

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.98.10.100,其中eth0是设备的名称,202.98.10.100是IP地址。

2.3.缺省DNS服务器地址的设置

直接使用vi修改/etc/resolv.conf,查看其中是否存在nameserver的参数,如果没有手工添加进去,如果有的话直接修改其后的IP地址即可。其格式为:nameserver 127.0.0.1

其中127.0.0.1为DNS服务器的地址,由于本站配置了DNS服务器,所以可以用本地地址,也可写为202.98.10.100。

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、下载软件包:

http://www. 下载 openssl 0.9.5a

http://www. 下载 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客户端可以从http://www./~chris/ssh/putty.exe 下载。方便您在Windows里面远程控制网站服务器。

3.2.安装ProFTPD

1、下载软件包

http://www. 下载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 ] 用于指定某个服务在指定的运行级别内是处于何种状态。

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
ftp.ftp /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服务

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多