网站综合实例

我的收藏 专栏收录该内容
9 篇文章 0 订阅

网站综合实例

这里以www.linuxaid.com.cn为实例,指导在以服务器模式安装redhat以后,如何以最快的速度建设一个如同www.linuxaid.com.cn的服务器。在这里网站服务器上运行有以下服务器软件:Ftp、DNS、WWW、Mysql、Sendmail。

服务器安全

安装完Linux服务器以后,首先要对服务器进行初步的安全设置,一般来讲要考虑下面这些安全问题:安装服务器结束以后,缺省的各种服务器都是打开的,所以,首先需要关闭那些不需要的服务,因为这些服务可能会对系统安全造成威胁。首先需要关闭以下服务:finger、talk、ntalk、shell、login、pop3、tftp、linuxconf、ftp、telnet。这些服务的特点是他们都是由inetd进程启动的,也就是说这些服务并不直接启动,而是有inetd代其监听自己的服务端口,当有服务请求到来以后,inetd才会启动真正的服务进程,处理请求。而inetd的配置文件/etc/inetd.conf则指定了哪些服务需要从inetd来启动。因此如果需要关闭不需要的服务则应该编辑该文件,在相应的服务前加上注释符号 “#”例如,需要关闭finger服务,将:

finger stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.finger

修改为:

# finger stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.finger

对其他的服务可以采取同样的措施。

       而对于那些不是从inetd启动的服务,则通过命令来关闭,例如需要关闭sendmail服务,则:

       /etc/rc.d/init.d/sendmail stop

然后再设置其不在系统启动时启动:

       chkconfig –level 12345 sendmail off

也可以使用ntsysv命令来设定是否自启动某个服务。

       一般来讲,服务器上应当只启动必须的服务,对于那些不需要的服务,必须关闭。可以使用命令netstat –l –n来查看本机开放了那些服务:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 ins:domain              *:*                     LISTEN

tcp        0      0 ns:domain               *:*                     LISTEN

tcp        0      0 www:domain              *:*                     LISTEN

tcp        0      0 *:www                   *:*                     LISTEN

tcp        0      0 *:ftp                   *:*                     LISTEN

udp        0      0 *:1036                  *:*

udp        0      0 ins:domain              *:*

udp        0      0 ns:domain               *:*

udp        0      0 www:domain              *:*

raw        0      0 *:icmp                  *:*                     7

raw        0      0 *:tcp                   *:*                     7

Active UNIX domain sockets (only servers)

Proto RefCnt Flags       Type       State         I-Node Path    

从上面的输出可以看到,这台机器开放了dns、www、ftp、1036、icmp、tcp端口,可以查看/etc/service来确定数字表示的端口具体都是什么服务。

       这里关闭了telnet服务,那么如何登录服务器进行配置呢?这里推荐使用SSH,因为telnet协议是采用明文方式传输密码和用户名,因此这些信息可能在传输过程中被窃听,而SSH是telnet的一种替代品,它的服务器和客户端之间的所有数据传输都进行了加密,因此提高了安全性。

       若某个系统帐号用户不允许登录系统,而只允许其修改自己的密码,则需要修改起shell,也就是编辑/etc/passwd文件。举例如下,若不允许ideal登录系统则需要编辑passwd文件,修改:

ideal:x:500:500:ideal:/home/ideal:/bin/bash

为:

ideal:x:500:500:ideal:/home/ideal:/usr/bin/passwd

这样当该用户登录进入系统以后,只能修改自己的密码,修改完毕以后,系统会自动断开连接。

23.2 设置DNS服务器

       我们首先为服务器设置dns服务器。这里假定www.linuxaid.com.cn的服务器ip地址为202.99.11.120,该服务器除了要解析linuxaid.com.cn的区信息以外,还要解析longshine.com.cn的区信息。也就是说本机要负责解析两个区的域名信息。这里假设www.longshine.com.cn的IP地址是202.99.12.120。

第一步:
       编辑系统已经存在的/etc/resolv.conf文件,设置内容如下:

domain linuxaid.com.cn.

nameserver 202.99.11.120

该文件定义了本地域名和缺省域名服务器,可以根据自己的实际情况修改该文件。

第二步:
       编辑系统已经存在的/etc/named.conf文件,初始内容为:

options {

        directory "/var/named";

};

zone "." {

        type hint;

        file "named.ca";

};

zone "0.0.127.in-addr.arpa" {

        type master;

        file "named.local";

};

修改内容如下:

options {

        directory "/var/named";

};

zone "." {

        type hint;

        file "named.ca";

};

zone "linuxaid.com.cn"{

        type master;

        file "linuxaid.com.cn";

};

zone "longshine.com.cn"{

        type master;

        file "longshine.com.cn ";

};

zone "0.0.127.in-addr.arpa"{

        type master;

        file "named.local";

};

zone “12.99.202.in-addr.arpa"{

        type master;

        file "12.99.202";

};

zone “11.99.202.in-addr.arpa"{

        type master;

        file "11.99.202";

};

其中,type指定了该域的性质,hint指根域,master表示本机对该域是权威的主域名服务器。

第三步:
       创建/var/named下的名为linuxaid.com.cn文件内容如下:

@               IN      SOA     ns. linuxaid.com.cn.    root. linuxaid.com.cn. (

                        2000080701 ; serial

                        28800 ; refresh

                        7200 ; retry

                        604800 ; expire

                        86400 ; default_ttl

                        )

@                         IN          A            202.99.11.120

@                         IN          NS      ns. linuxaid.com.cn.

@                         IN          MX     10  mail. linuxaid.com.cn.

localhost                IN          A       127.0.0.1

www               IN          A            202.99.11.120

mail            IN          A              202.99.11.120

ns                         IN          A            202.99.11.120

ftp                        IN          A            202.99.11.120

该文件是linuxaid.com.cn的域数据信息文件,其中定义了各种服务器的IP vs 域名的对应信息。其中:

@                         IN          A     202.99.11.120

一行定义域名linuxaid.com.cn对应的IP地址为201.99.11.120,当对linuxaid.com.cn进行通常的域名解析(这里指不是进行MX—邮件网关域名解析)时将会返回IP地址202.99.11.120的应答。

第四步:
       创建/var/named目录下的名为longshine.com.cn文件内容如下:

@               IN      SOA     ns. longshine.com.cn.    root. longshine.com.cn. (

                        2000080701 ; serial

                        28800 ; refresh

                        7200 ; retry

                        604800 ; expire

                        86400 ; default_ttl

                        )

@                         IN          A      202.99.12.120

@                         IN          NS      ns. longshine.com.cn.

@                         IN          MX     10  longshine.com.cn.

localhost                IN          A       127.0.0.1

www               IN          A            202.99.12.120

mail            IN          A              202.99.12.120

ns                         IN          A            202.99.12.120

ftp                        IN          A            202.99.12.120

该文件是longshine.com.cn的域数据信息文件,其中定义了各种服务器的IP vs 域名的对应信息。

第五步:
       创建/var/named目录下的名为named.local的文件内容如下:

@               IN      SOA     localhost.      root.localhost. (

                        1997022700 ; serial

                        28800 ; refresh

                        14400 ; retry

                        3600000 ; expire

                        86400 ; default_ttl

                        )

@                      IN      NS      localhost.

1                 IN      PTR     localhost.

该文件定义了本地回路的域名反向解析信息。

第五步:
       创建/var/named目录下的名为11.99.202的文件,内容如下:

@               IN      SOA     ns.linuxaid.com.cn.   root.linuxaid.com.cn. (

                        2000080501 ; serial

                        28800 ; refresh

                        7200 ; retry

                        604800 ; expire

                        86400 ; default_ttl

                        )

@               IN      NS      ns.linuxaid.com.cn.

;

;       SERVER SECTION

;

120             IN      PTR               www.linuxaid.com.cn.

120             IN      PTR               mail.linuxaid.com.cn.

120             IN      PTR               ns.linuxaid.com.cn.

120             IN      PTR               ftp.linuxaid.com.cn.

该文件定义了202.99.11网络的域名反向解析信息。

第六步:
       创建/var/named目录下的名为12.99.202的文件内容如下:

@               IN      SOA     ns.longshine.com.cn.   root.longshine.com.cn. (

                        2000080501 ; serial

                        28800 ; refresh

                        7200 ; retry

                        604800 ; expire

                        86400 ; default_ttl

                        )

@               IN      NS      ns.longshine.com.cn.

;

;       SERVER SECTION

;

120             IN      PTR               www.longshine.com.cn.

120             IN      PTR               mail.longshine.com.cn.

120             IN      PTR               ns.longshine.com.cn.

120             IN      PTR               ftp.longshine.com.cn.

该文件定义了202.99.12网络的域名反向解析信息。

启动
启动dns服务器可以使用命令:ndc start,若输出结果为”new pid is 2317”,若输出错误,则需要查看上面的配置文件是否正确设置。这时,使用命令”ps ax|grep named”       应该输出:

2317 ?        S      0:00 /usr/sbin/named

2319 pts/0    S      0:00 grep named

停止dns服务器进程的命令为:ndc stop。

也可以使用命令/etc/rc.d/init.d/named start|stop来启动或关闭某个服务。

若需要在启动时自动启动DNS服务器,则使用命令:

       /sbin/chkconfig –level 35 named on

若需要关闭自动启动DNS服务器,则使用命令:

       /sbin/chkconfig –level 35 named off

测试:
       启动DNS服务器以后,使用命令nslookup命令进行测试:

              [root@www /]nslookup

Default Server:  ns.linuxaid.com.cn

Address:  202.99.11.120

              >www

Server:  ns.linuxaid.com.cn

Address:  202.99.11.120

 

Name:    www.linuxaid.com.cn

Address:  202.99.11.120

              >set q=mx

              >linuxaid.com.cn

> set q=mx

> plagh.com.cn

Server:  ns.linuxaid.com.cn

Address:  202.99.11.120

 

linuxaid.com.cn    preference = 10, mail exchanger = mail. linuxaid.com.cn

linuxaid.com.cn    nameserver = ns linuxaid.com.cn

mail. linuxaid.com.cn       internet address =202.99.11.120

ns. linuxaid.com.cn internet address =202.99.11.120

>exit

若测试结果和上面的一样,则说明DNS服务安装成功。

19.2 设置FTP服务器

只要成功地以服务器模式安装了redhat,ftp服务器就应该已经正常的在运行了,在本机,使用命令测试:

       ftp localhost

若显示连接成功,则说明ftp服务器已经成功安装并且运行正常。若连接时显示:

ftp: connect: Connection refused

ftp>

则说明ftp服务没有开放,则需要编辑/etc/inetd.conf文件,确保有如下的内容:

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

相反的,若希望关闭ftp服务器,则需要在上面一行的内容前面添加#,将其注释掉,然后查找inetd进程的进程号,

ps ax|grep inetd

353 ?        S      0:00 inetd

作说明inetd的进程号为353,然后kill –HUP 353,就可以关闭ftp服务器了。

       下面讨论这样一种情况,现在有一个目录为/www/htdocs/developer,希望用户user1能读写该目录,但是其不能telnet进入系统,而user1的主目录为/home/user1。这种需求主要是满足多个管理员对网站的不同部分进行管理,但是又不允许其通过telnet服务登录网站,只允许其将内容ftp到网站上。这就需要添加一个组,这里随便定义为developer组:

              /usr/sbin/groupadd developer

然后将user1添加到该组内:

              /usr/sbin/usermod –G developer user1

然后修改/www/htdocs/developer属于developer组:

              chgrp –R developer /www/htdocs/developer

最后,设置该目录为developer完全控制:

              chmod  -R 775  /www/htdocs/developer

这样/www/htdocs/developer就属于developer组所有,并且完全可以由属于developer组的用户控制。

19.3 安装设置mysql服务器

       需要从www.mysql.org下载最新版本,目前最新版本是3.23。这里主要讨论以二进制包的方式安装Mysql。

首先从mysql主页下载mysql-3.23.24-beta-pc-linux-gnu-i686.tar.gz到/usr/src目录下,然后运行命令:

              [root@www /]# tar xvfz mysql-3.23.24-beta-pc-linux-gnu-i686.tar.gz

解压发布,然后使用命令”cd mysql-3.23.24-beta”进入mysql的目录,运行:

              [root@www /]# ./scripts/mysql_install_db

就会实现mysql的缺省安装,缺省是安装在/usr/local/mysql目录下,该目录下包含了mysql的所有的lib库,可执行文件等等。

       下面使用mysql的客户端来测试mysql是否正常:

              [root@www /]# mysql –u root

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 61 to server version: 3.23.22-beta

 

Type 'help' for help.

 

mysql>

缺省安装情况下mysql有一个root用户(注和系统的root用户没有直接关系),该数据库用户具有对整个库的读写权限,而且root用户是没有任何密码的,所以首先需要为该用户添加密码,。在mysql提示符下输入如下SQL语句:

'UPDATE user SET Password = PASSWORD ('yourpassword')'

       'WHERE user = 'root';'

       'FLUSH PRIVILEGES;'

这样,就实现了对root用户增加密码的任务,现在使用quit命令退出mysql,然后重新连接mysql服务器就需要指定密码信息:

[root@www /]# mysql –u root –pyourpasswd

然后才能连接mysql服务器。

但是一般都推荐添加一个非root的而具有root的所有权限的数据库用户,因此使用下面的SQL语句实现添加一个具有root权限的名为ideal的用户:

'INSERT INTO users'

'VALUES ('localhost','ideal','idealsppasswd','y','y','y','y','y','y','y','y','y','y','y','y','y','y');'

这样,你就完成了在本系统上安装Mysql服务器的任务,具体的权限设置及如何建库、如何建表、如何访问库数据,请参考mysql的手册,里面有非常详尽的使用帮助。

19.4设置www服务器

以服务器模式安装redhat以后,系统缺省地就已经安装了apach服务器,使用命令:

              ps ax+grep httpd

来查看系统的apache服务器是否正在运行,若已经正在运行了,从另外一台windows机器上,在浏览器中输入www服务器的IP地址就会访问到apache的缺省主页。若apache没有启动,则需要使用命令:

              /etc/rc.d/init.d/httpd start

来启动apache服务器,若服务器成功启动,然后再从windows机器上使用浏览器进行测试,一般来讲只要成功按服务器模式安装了Redhat,一般apache就能启动运行的,若不能启动运行,最常见的毛病是apache服务器的httpd.conf中本机的名字没有正确设置,这时候需要编辑/etc/httpd/conf/httpd.conf中ServerName一行的内容,对于本机具有正式域名的服务器,这里设置ServerName为服务器域名,以www.linuxaid.com.cn为例:

ServerName       www.linuxaid.com.cn

若服务器没有正式域名,则在这里指定ServerName为本机IP地址。然后再启动apache服务器。

       若希望在机器启动时自动启动www服务器,则需要使用以下命令:

              [root@www /]# /usr/sbin/chkconfig –level 35 httpd on

       若希望在启动时不启动www服务器,则使用命令:

              [root@www /]# /usr/sbin/chkconfig –level 35 httpd off

       若希望在本机上创建多个虚拟主机,这里假设linuxaid需要设置两个虚拟主机:www.linuxaid.com.cn和forum.linuxaid.com.cn。由于www.linuxaid.com.cn只能分配一个IP地址,所以这里采用基于域名的多虚拟域名服务器。编辑/etc/httpd/httpd.conf,添加下面的内容:

NameVirtualHost 210.12.114.130

<VirtualHost 210.12.114.130>

ServerAdmin lix@dns.plagh.cn

DocumentRoot /home/httpd/www.linuxaid.com.cn

ServerName www.linuxaid.com.cn

ErrorLog /var/log/httpd/www.linuxaid.com.cn/error.log

</VirtualHost>

 

<VirtualHost 210.12.114.130>

ServerAdmin lix@dns.plagh.cn

DocumentRoot /home/httpd/forum.linuxaid.com.cn

ServerName forum.linuxaid.com.cn

ErrorLog /var/log/httpd/forum.linuxaid.com.cn/error.log

</VirtualHost>

       然后分别在/home/httpd/创建名字为www.linuxaid.com.cn和forum.linuxaid.com.cn的目录,分别将两个www服务器的html页面拷贝到各自的目录下。然后在/var/log/httpd/创建名字为www.linuxaid.com.cn和forum.linuxaid.com.cn的目录,然后分别在这两个目录下创建文件error.log:

              touch error.log

然后重新启动apche服务器:

       /etc/rc.d/init.d/httpd restart

然后从网络上就可以测试虚拟服务器的可达性。

       对于大规模应用的web服务器,则需要调整其运行参数以使其能处理更多的服务请求。这就需要调整配置文件/etc/httpd/conf/httpd.conf中下面两个参数:

MinSpareServers 5

MaxSpareServers 20

StartServers 8

MaxClients 150

这几个参数的含义分别为:

       系统中最少有MinSpareServers个www服务器空闲进程等待服务请求。

       系统中最少有MaxSpareServers个www服务器空闲进程等待服务请求。

       系统启动以后,初始有StartServers个www服务器进程等待服务请求。

       最大同时有有MaxClients个www服务器进程。

管理员应该根据自己系统的负载情况,设置这些参数。

19.4设置sendmail服务器

当前linux的各个发布都将sendmail作为缺省地邮件服务器软件,所以这里主要讨论在redhat6.2环境下如何将sendmail邮件服务器软件运行起来,实现正常的邮件收发。

编辑/etc/sendmail.cw文件,添加本机的域名到该文件中,这里以linuxaid.com.cn为例:

              linuxaid.com.cn

              mail.linuxaid.com.cn

然后重新启动sendmail邮件服务器:

              /etc/rc.d/init.d/sendmail restart

然后测试邮件服务器,使用mail程序:

              [lix@mail /etc]# mail ideal@btamail.net.cn

这里你应该将ideal@btamail.net.cn设置为你自己的外部邮箱。然后看能否收到,只要缺省安装了sendmail,正确地修改了/etc/sendmail.cw文件,就肯定可以接收到信件,收到信件以后可以回复给发送者,然后再使用mail程序接收信件,若接收成功就表示 sendmail初步接收成功,更复杂的设置可以参考具体章节。

若需要在启动时自动启动SENDMAIL服务器,则使用命令:

       /sbin/chkconfig –level 35 sendmail on

若需要关闭自动启动SENDMAIL服务器,则使用命令:

       /sbin/chkconfig –level 35 sendmail off

下面讨论两个比较典型的需求:

一种是若本机器有两个域名:test1.com和test2.com,这里设定test1.com为主域名,于是当为系统添加一个系统帐号man1,则帐号man则会具有man@test1.com,但是也许管理员会希望man在test1.com和test2.com两个域上都有邮箱,而且是同一个信箱,也就是说,当我向man@test1.com和man@test2.com发送邮件,man都可以从man@test1.com信箱收到。要实现这种设置,需要编辑文件/etc/mail/virtuusertable文件,添加如下内容:

man@test2.com man

然后运行make,重新启动sendmail:

/etc/rc.d/sendmail restart

就可以实现这个效果。

       第二种情况是,希望设置一个别名信箱,也就是希望发往webmaster@test1.com的所有的信件都实际上发给了用户man@test1.com,而且实际上并没有添加webmaster这个邮件帐号,它只是man@test1.com的一个别名。编辑/etc/alliases文件,添加如下内容:

       webmaster:              man

然后运行命令/usr/bin/ newaliases,重新启动sendmail服务器:/etc/rc.d/init.d/sendmail restart就可以了。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
1024点FFT快速傅立叶变换.zip (511.44 KB) AD7266的Verilog驱动程序.zip (558.32 KB) BOOTLOADER (基于Platform Flash).rar (973.98 KB) ChipScope使用示例.zip (1.06 MB) DDR SDRAM控制器verilog代码.zip (475.63 KB) DDR SDRAM控制器参考设计VHDL代码.zip (990.35 KB) DDR2 Controller.zip (303.76 KB) EDK9.1嵌入式开发实验代码.zip (2.76 MB) FFT变换的IP核的源代码.zip (35.22 KB) EDK中PS2自定义IP.zip (29.69 KB) FM收音机的解码及控制器VHDL语言实现.zip (61.29 KB) FPGA语音通信平台设计实例.zip (62.09 KB) FPGA实现CAN总线控制器源码.rar (860.86 KB) IP camera的开源系统.zip (1.69 MB) LCD IP CORE.zip (347.12 KB) LCD12864 在Spartan-3E实现教程和代码.zip (1.08 MB) PCI Express IP核应用参考设计.zip (1.67 MB) PCI Express标准概述白皮书.zip (1.12 MB) PCIE DMA例子.zip (1.78 MB) PCI的核.zip (5.74 MB) PCI总线IP核(华为的商用).zip (31.33 KB) PS2键盘控制程序.zip (4.78 KB) PICOBLAZE控制LCD1602的源码.zip (759.6 KB) Sparten3E的EDK实验.zip (1.41 MB) System Generator的设计实例.rar (960.75 KB) The SDRAM controller is designed for the Virtex V300bg432-6.zip (2.35 MB) ucos_ii 在microblaze平台上的移植.zip (364.1 KB) USB IP核.zip (157.43 KB) USB2.0 IP核源代码.zip (206.47 KB) USB接口控制器参考设计VHDL代码(Xilinx).zip (58.43 KB) USB大容量存储开发板CPLD代码.zip (514.32 KB) USB接口应用系统设计实例.zip (10.67 KB) USB通信全套资料.zip (1.96 MB) Verilog编写的信道估计.zip (3.25 KB) Verilog编写的基于SPARTAN板的VGA接口显示程序.zip (3.34 MB) Verilog实现闰年的判断(ISE8.21中调试通过).zip (158.15 KB) VGA显示IP核(包括驱动).zip (31.63 KB) VHDL编写的PCI代码(PCI2.2兼容).zip (825.82 KB) VHDL实现对图像的采集和压缩.zip (425.1 KB) xilinx 3s400开发板厂家光盘源码(按键防抖动).zip (172.45 KB) Xilinx DDR2存储器接口调试代码.rar (2.63 MB) Xilinx DDR3最新VHDL代码(通过调试).rar (101.46 KB) Xilinx EDK工程一例MicroBlaze内置USB固件程序.rar (2.67 MB) Xilinx EDK设计试验.rar (5.51 MB) Xilinx ISE9.x FPGA_CPLD设计指南(原书光盘上的源码).zip (9.3 MB) Xilinx Sdram 参考设计:含Verilog和VHDL版本级详细说明文档.rar (368.68 KB) Xilinx SPARTAN-3E入门开发板实例.zip (401.57 KB) Xilinx sparten3E 键盘和开发板的通信和LCD的字符显示.zip (1.98 KB) Xilinx spratan3 xcs100E(VGA PS2).zip (2.14 MB) Xilinx TCP_IP协议实现.rar (2.45 MB) Xilinx 的Basys板VGA显示图片原码.zip (829.2 KB) Xilin
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值