| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

安全防范

木马病毒
黑客技术
系统安全
防火墙
安全防范

本类阅读TOP10

·双网卡共享上网解析
·代理服务器使用祥解
·在Windows XP中共享上网
·常用端口对照详解
·局域网共享资源安全防护大全
·为什么局域网中机器PING通却不能上网?
·最新奇迹私服复制漏洞大全(含98c)
·在家远程控制公司的局域网电脑
·远程破OICQ密码给工具QQExplorer ver 1.25介绍
·技巧:多种途径访问局域网中的计算机

站内搜索

网站综合实例

这里以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命令进行测试:

[[email protected] /]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目录下,然后运行命令:

[[email protected] /]# tar xvfz mysql-3.23.24-beta-pc-linux-gnu-i686.tar.gz

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

[[email protected] /]# ./scripts/mysql_install_db

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

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

[[email protected] /]# 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服务器就需要指定密码信息:

[[email protected] /]# 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服务器,则需要使用以下命令:

[[email protected] /]# /usr/sbin/chkconfig –level 35 httpd on

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

[[email protected] /]# /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 [email protected]

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 [email protected]

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程序:

[[email protected] /etc]# mail [email protected]

这里你应该将[email protected]设置为你自己的外部邮箱。然后看能否收到,只要缺省安装了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则会具有[email protected],但是也许管理员会希望man在test1.com和test2.com两个域上都有邮箱,而且是同一个信箱,也就是说,当我向[email protected][email protected]发送邮件,man都可以从[email protected]信箱收到。要实现这种设置,需要编辑文件/etc/mail/virtuusertable文件,添加如下内容:

[email protected] man

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

/etc/rc.d/sendmail restart

就可以实现这个效果。

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

webmaster: man

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





相关文章
  • 设置不同主机之间互相信任登录
  • 虚拟服务器解决方案
  • 网络流量监控器mrtg全攻略
  • 用wvdial和ppp轻松上网
  • 用rsync实现网站镜像和备份
  • 改进Web站点性能的五个方面
  • 建立高可扩展的web邮件系统
  • 实现一个网桥式防火墙
  • 完美的RH8+gnome+KDE使用simsun的方案
  • 如何设置串口多用户卡
  • 如何编写用例文档
  • 如何监测内存泄漏
  • 如何用Apache反向代理设置对外的WWW服务器
  • 多层次负载平衡之4
  • 多层次负载平衡之3
  • 多层次负载平衡之2
  • 多层次负载平衡之1
  • 域星型局域网组网指南
  • 囚禁你的精灵(daemon)进程
  • 嗅探器检测工具和对策
  • 相关软件




    月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
    电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
    音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

    月光软件站·版权所有