this is a extra element for clear the floated element
redhatAD2.1架站全攻略——菜鸟专用
  • 12/31
  • 2008
网络配置 | Linux 3257 次查看
  声明:

  菜鸟专用,高手免看!本人是一只linux菜鸟,在架设网站的过程中吃了不少苦头,在众多大虾和老鸟的帮助下,菜鸟终于跌跌撞撞的把自己的网站建成了,呵呵!往事不堪回首,为了帮助众多的菜鸟(像我一样)在架站的过程中少走弯路,现将我的架站笔记献上,里面包含了众多老鸟和大虾的心血,在此衷心的表示感谢!本文的配置过程基于字符界面,如果使用图形界面,建议安装webmin。第一次写此类文章,错误难免,望各位兄弟批评指正!

  系统功能:

  实现网络资源共享(samba),web服务,代理服务器(squid),dns,dhcp,ftp,webmail以及磁盘配额(quota)和数据库mysql服务等常规网络服务。

  硬件环境:

  浪潮英信服务器2台,配置如下:至强1G双CPU,512M内存,108G SCSI硬盘,1000M双网卡。

  软件环境:

  redhat advanced server 2.1操作系统

  网络环境:

  服务器A提供web,dns.dhcp,samba,squid等服务

  机器名称: redhat.test.com

  机器ip地址: 10.10.1.1 61.133.126.115

  服务器B提供ftp,webmail,mysql等服务

  机器名称: mail.test.com

  机器ip地址: 10.10.1.2 61.133.126.116

  局域网所用网段: 10.10.1.1-10.10.2.200

  局域网子网掩码: 255.255.0.0

  局域网所用域名: test.com

  外部DNS服务器: 61.133.122.164

  本文结构:

  1.1 安装redhat advanced server 2.1

  1.2 samba (网络共享资源)

  1.3 apache (web服务)

  1.4 squid (代理服务器)

  1.5 dns (域名解析)

  1.6 dhcp (自动分配ip地址)

  1.7 wu_ftp (ftp服务)

  1.8 webmail (web电子邮件服务)

  1.9 quota (磁盘配额)

  1.10 mysql postgresql (数据库服务)

  1.1 安装redhat advanced server 2.1

  请把redhat AD2.1的第一张安装光盘放入光驱,修改BIOS设置从光驱启动!

  *选择图形安装方式(如果显卡不支持,你只能从文字模式安装)

  *安装过程使用English,没有中文可选,不过还不算太糟糕,英文提示都比较简单,一眼就能看懂!

  *设置键盘:一般取默认值即可,除非你的键盘很特殊,设置完毕可以在下面的测试窗口进行测试。

  *设置鼠标:一般选择三键鼠标即可,当然你也可以选上“模拟三键鼠标”。

  *选择安装模式:既然是服务器,那就选“advanced server”好了,你也可以选择“custom”。

  *硬盘分区:我们选择“manually partition with disk druid”进行手动分区,指定交换分区(swap)一般为内存容量的2倍(作为服务器使用可以酌情增大容量),指定根分区,如果你的硬盘容量足够大,可以单独为/home和/var分区,这样做可以提高数据的安全性。

  *安装启动管理程序:如果以前安装过别的操作系统,可以做成双启动,让grub进驻MBR。

  *设置grub密码:一般不用。

  *设置网络环境:填写主机名、IP地址、子网掩码、网关和DNS服务器。

  *默认语言:这里可以选择简体中文了,如果你的E文足够好,那就默认英文好了。

  *设置时区:一般不用。

  *设置账号和密码:建议填写一个足够复杂的管理员密码,否则系统危矣!

  *设置认证加密配置:若无特殊要求,一般采用默认值。

  *选择桌面管理器:有Gnome和KDE可供选择,一般选择Gnome

  *设置显卡:根据自己的实际情况设置显卡

  *安装:在安装过程中需要插入第二张安装盘,所耗费的时间与你的机器配置有关。

  *设置图形环境:你可以选择开机进入图形模式还是文字模式,同时可以测试x-windows图形模式。

  *制作启动软盘:建议制作一张启动软盘,以备不时之需!也可以跳过以后制作!

  *重新启动系统,怎么样?成功运行了吧!

  1.2 samba服务器的安装配置

  一般情况下,在安装系统的时候samba服务器就已经自动安装了,我们所要做的就是根据自己的需要进行合理配置。假设我们的服务器的名称是redhat,所在的工作组是server,想要实现的功能是在服务器上创建income和share两个文件夹,其中用户root和test都可以在income文件夹内读取和写入文件,share文件夹内root用户能写入test用户只能读取,这里samba的安全级别是用户级别(为什么不用share共享级别呢?这是最简单的共享方式,如果你只想给别人共享自己的文件,不想让他们写入的话,这是一个好主意,否则您的共享文件夹可能会成为病毒集中营,不过想要实现更灵活的权限设置的话,我劝您还是采用user用户级别,大不了把test账号公布给大家使用了)ok!let's go!!!

  建立共享文件夹income和share

  cd /home

  mkdir income

  mkdir share

  设置文件夹的权限

  chmod 777 /home/income #(任何人都可以读取和写入)

  chmod 755 /home/share #(root可以写入其他人可读取)

  修改samba配置文件smb.conf

  cd /etc/samba

  vi smb.conf

  你需要修改的地方主要有:

  workgroup = server #工作组

  netbios name = redhat #服务器名称

  security = user #安全级别(默认)

  encrypt passwords = yes #使用加密的用户密码(默认)

  在配置的文件的最后加入以下内容

  [income]

  comment = everyone's folder

  path = /home/income

  valid users = root,test #如果去掉这一行那么所有的系统用户都可以访问

  public = yes

  writable = yes

  [share]

  comment = root's folder

  path = /home/share

  valid users = root,test

  public = yes

  writable=yes

  添加系统用户test

  useradd test #添加用户

  passwd test #修改密码

  设置samba密码文件:

  cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd

  chmod 500 /etc/samba

  chmod 600 /etc/samba/smbpasswd

  设置用户root和test的samba密码:

  smbpasswd root

  smbpasswd test

  最后测试一下samba的配置文件smb.conf是否合法

  testparm #如果出现loaded services file OK,就可以了

  最后重新启动samba服务

  /etc/rc.d/init.d/smb restart

  好了,现在你就可以在其他的机器上用网上邻居登录redhat查看共享目录。

  注意:如果你的操作系统是nt/2000/xp会出现输入用户名和密码的对话框,如果是95/98/me,那你只好新建一个和linux账号相同的用户然后用它登录才能使用共享资源。

  最后奉送两个samba服务器常用的命令:

  smbclient #查看服务器共享的目录

  smbstatus #列出服务器资源被使用的情况

  1.3 web服务器的配置

  redhat advanced server2.1中的web服务配置非常简单,因为大部分配置工作系统已经替你做好了,默认情况下就支持php和cgi,当然如果你想使它支持asp的话可能还需要做更多工作,asp不用也罢!还是自由的php更让我倾心,如果你实在想修改apache配置文件的话,那就修改一下默认主页的名称吧!呵呵!高手不要扁我!谁让我们是菜鸟呢?

  cd /etc/httpd/conf

  vi httpd.conf

  :/index.html

  找到index.html后修改为default.htm,存盘退出。

  如果你还想开通个人主页空间的话,那也非常简单,随我来!假设用户cat想开通主页空间,我们可以这样做:

  useradd cat #建立新用户

  passwd cat #修改密码

  mkdir /home/cat/public_html #建立用户家目录中的网页目录,所有网页内容必须放在里面

  chmod 755 /home/cat/public_html #设置网页目录的权限,其他人可以访问

  chown cat.cat /home/cat/public_html #将public_html目录的所有人和组改为cat

  chmod 711 /home/cat #开放用户家目录权限,其他人可以进入

  1.4 squid代理服务器

  redhat AD2.1默认状态下已经安装了squid代理服务器,我们只需要修改配置文件中的几个地方就可以让它踏踏实实地为我们工作了,呵呵!等不及了吧!随我来!

  vi /etc/squid/squid.conf

  ……

  http_prot 8888 #代理服务器端口号8888,默认3128

  cache_mem 200M #设置代理服务使用的内存大小,一般推荐为物理内存的三分之一。

  cache_dir /var/spool/squid/cache 2000 16 256 #设置缓存目录和缓存最大值

  cache_access_log /var/log/squid/access.log #设置缓存存储记录文件名称和目录,如不需要设为none

  reference_age 1 month #设置缓存中的数据可以保存一个月

  acl flag src 10.8.0.0 #根据需要自己加上,定义从10.8.*.*访问代理的连接为flag

  http_access allow flag

  http_access deny all #设置除了10.8.*.*可以访问代理以外其它一概拒绝

  maximum_object_size 6M #指定Squid可以接收的最大对象的大小为6M

  ……

  重新启动Squid

  /etc/rc.d/init.d/squid restart

  在局域网内的任何一台工作站上打开IE浏览器,然后选择“工具”-“internet选项”-“连接”-“局域网设置”中使用代理服务器,地址:10.10.1.1 端口:8888 确定后看一下是不是能够通过服务器上网了(首先要保证你的服务器能够上网),如果你的代理服务器要代理局域网内所有机器上网,那你就要考虑一下代理服务器的安全问题,感兴趣的的话可以参考一下防火墙的设置!

  1.5 DNS服务器的配置

  默认状态下DNS服务器(bind)是没有安装的,我们需要手动安装,把redhat AD2.1的第二张光盘放进光驱:

  mount /mnt/cdrom

  cd /mnt/cdrom/RedHat/RPMS

  rpm -ivh bind-9.1.3-5.i386.rpm

  稍待片刻,bind就安装完成了。

  OK!现在把我们要实现的目标说一下,我们准备把本服务器配制成一台局域网内的DNS服务器,负责解析局域网内的域名XXX.test.com,无法解析的域名转发给外部DNS(61.133.122.164)进行解析,这样局域网内的客户机只需要使用内部DNS即可浏览所有网站(包括局域网内的网站)。

  需要修改的配置文件:

  /etc/named.conf

  /etc/resolv.conf

  /var/named/test.com.hosts

  /var/named/10.10.rev

  首先修改/etc/resolv.conf

  vi /etc/resolv.conf

  ……

  domain test.com #域名

  nameserver 10.10.1.1 #名称服务器

  ……

  然后修改/etc/named.conf,如果没有的话,就自己建一个。

  vi /etc/named.conf

  ……

  options {

  directory "/var/named"; #DNS目录

  pid-file "/var/run/named/named.pid"; #PID文件路径

  forwarders {

  61.133.122.164; #转发的外部DNS服务器地址

  };

  };

  zone "test.com" { #正向解析区域

  type master; #主区域

  file "/var/named/test.com.hosts"; #正向解析区域的配置文件

  };

  zone "10.10.in-addr.arpa" { #反向解析区域

  type master; #主区域

  file "/var/named/10.10.rev" #反向解析区域的配置文件

  };

  ……

  修改/var/named/test.com.hosts正向解析区域的配置文件

  vi /var/named/test.com.hosts

  ……

  $ttl 38400

  test.com IN SOA redhat.test.com. webmaster.mail.test.com. ( #服务器名称和管理员信箱

  1056588054

  10800

  3600

  604800

  38400 )

  test.com. IN NS redhat.test.com

  www.test.com. IN A 10.10.1.1 #正向解析A纪录

  mail.test.com. IN A 10.10.1.2

  ftp.test.com. IN A 10.10.1.2

  mail.test.com. IN MX 10 10.10.1.2 #邮件服务器MX纪录

  ……

  修改/var/named/10.10.rev反向解析区域的配置文件

  vi /var/named/10.10.rev

  ……

  $ttl 38400

  10.10.in-addr.arpa. IN SOA redhat.test.com. webmaster.mail.test.com (

  1056591689

  10800

  3600

  604800

  38400 )

  10.10.in-addr.arpa. IN NS redhat.test.com

  1.1.10.10.in-addr.arpa. IN PTR www.test.com

  2.1.10.10.in-addr.arpa. IN PTR mail.test.com

  2.1.10.10.in-addr.arpa. IN PTR ftp.test.com

  ……

  怎么样?简单吧!重新启动dns服务

  /etc/rc.d/init.d/named restart

  然后在任何一台客户机上把dns服务器设置为10.10.1.1,测试一下本地域名和外部域名是否能够正常解析,如果能够正常上网,那就说明没有问题了。

  1.6 DHCP服务器的配置

  默认情况下dhcp服务并没有安装,我们需要手动安装一下,把第二张系统安装盘放入光驱,然后:

  mount /mnt/cdrom

  cd /mnt/cdrom/RedHat/RPMS

  rpm -ivh dhcp-2.0pl5-8.i386.rpm

  稍待片刻,就可以安装成功了。

  修改dhcp服务的配置文件

  Vi /etc/dhcpd.conf

  ……

  subnet 10.10.0.0 netmask 255.255.0.0{

  range dynamic-bootp 10.10.1.1 10.10.2.200; #IP地址分配范围

  option routers 10.10.1.1; #默认网关

  option subnet-mask 255.255.0.0; #默认子网掩码

  option domain-name "test.com"; #默认域名

  option domain-name-servers 10.10.1.1,61.133.122.164; #dns服务器

  default-lease-time 21600; #默认租赁时间

  max-lease-time 43200; #最大租赁时间

  }

  ……

  在DNS服务器设置中,之所以把10.10.1.1放在前面是想让客户机在作域名解析的时候优先选择内部dns服务器,若域名不能解析,则用下一个dns服务器解析,如果你的dns服务器可以转发的话,那么只需要内部dns即可正常工作。

  注意:

  如果你的服务器是双网卡的话,可能还需要稍微调整一下dhcpd.conf配置,在配置文件的最后加上一句:

  ……

  subnet 61.133.126.115 netmask 255.255.255.248{

  } #这里是不需要进行dhcp服务的网卡地址和子网掩码

  ……

  最后重新启动服务:

  /etc/rc.d/init.d/dhcpd start

  如果你还想看一下ip地址的租赁情况,打开/var/lib/dhcp/dhcpd.leases文件看看就知道了。

  1.7 配置FTP服务器

  redhat AD2.1默认安装没有ftp服务器,但是它的第二张安装盘中带有wu_ftp的rpm安装包,wu_ftp是linux系统中最常用的ftp服务器软件,但是由于wu_ftp存在许多问题,而且也不是很安全,所以在这里我们不选择wu_ftp而使用功能更为强大的、安全性更高的proftp,你可以从网上下载它的最新的源码包进行编译安装,当然你也可以下载专为我们菜鸟准备的rpm安装包,以下我们就以下载的proftpd-1.2.8- 1.i386.rpm为例进行安装配置,罗嗦了这么多,赶快开始吧!!

  安装proftp

  rpm -ivh proftp-1.2.8-1.i386.rpm

  稍待片刻,安装完毕!

  cp /usr/sbin/proftpd /etc/rc.d/init.d #复制执行文件

  cp /usr/share/doc/proftp-1.2.8/sample-configurations/basic.conf /etc/proftpd.conf #复制proftp的配置文件

  创建匿名ftp用户的主目录

  mkdir /var/ftp #创建匿名用户主目录

  cd /var/ftp

  mkdir share #创建共享文件夹

  mkdir upload #创建上传文件夹

  chown ftp.ftp upload #将upload目录的所有权赋予ftp用户和组

  chmod 700 upload #除用户ftp之外其他人没有任何权限

  OK!现在我们开始配置proftp

  cd /etc

  vi proftpd.conf

  ……

  # This is a basic ProFTPD configuration file (rename it to

  # 'proftpd.conf' for actual use. It establishes a single server

  # and a single anonymous login. It assumes that you have a user/group

  # "nobody" and "ftp" for normal operation and anon.

  ServerName "天枫FTP资源站" #ftp站点名称

  ServerType standalone #运行方式,除此之外还有xinetd和inetd方式

  DefaultServer on #预设服务

  RequireValidShell off #匿名访问需要

  PassivePorts 20000 30000 #被动模式端口段

  UseReverseDNS off #加快连接速度

  TimeoutLogin 30 #身份验证超时

  TimeoutIdle 120 #无活动超时

  TimeoutNoTransfer 300 #无数据传输超时

  # Port 21 is the standard FTP port.

  Port 21 #ftp服务端口

  # Umask 022 is a good standard umask to prevent new dirs and files

  # from being group and world writable.

  Umask 022 #掩码,默认安全级别

  # To prevent DoS attacks, set the maximum number of child processes

  # to 30. If you need to allow more than 30 concurrent connections

  # at once, simply increase this value. Note that this ONLY works

  # in standalone mode, in inetd mode you should use an inetd server

  # that allows you to limit maximum number of processes per service

  # (such as xinetd).

  MaxInstances 200 #ftp服务器最大的子进程数,在standalone模式下不宜过大

  # Set the user and group under which the server will run.

  User nobody #proftp以nobody用户和组的身份运行

  Group nobody

  # To cause every FTP user to be "jailed" (chrooted) into their home

  # directory, uncomment this line.

  DefaultRoot ~ #将用户限制在自己的家目录下

  # Normally, we want files to be overwriteable.

  <Directory />

  AllowOverwrite on #允许覆盖文件

  </Directory>

  # A basic anonymous configuration, no upload directories. If you do not

  # want anonymous users, simply delete this entire <Anonymous> section.

  <Anonymous /var/ftp> #设置匿名用户的根目录

  User ftp

  Group ftp

  <Limit LOGIN>

  AllowAll #允许登陆

  </Limit>

  AllowRetrieveRestart on #支持下载续传

  RateReadBPS 60000 #限制下载速度

  # We want clients to be able to login with "anonymous" as well as "ftp"

  UserAlias anonymous ftp #ftp用户的别名

  AuthAliasOnly on #只允许使用别名,即anonymous

  # Limit the maximum number of anonymous logins

  MaxClients 50 "已达到最大用户数(%m)稍后再试" #最大用户数

  MaxClientsPerHost 6 "连接数量太多,请减少线程" #每个用户允许的最大线程数5

  # We want 'welcome.msg' displayed at login, and '.message' displayed

  # in each newly chdired directory.

  DisplayLogin welcome.msg #用户验证时的欢迎信息

  DisplayFirstChdir .message #用户改变目录时的信息

  <Directory upload> #上传文件夹的设置

  AllowStoreRestart on #支持上传续传

  <Limit WRITE>

  AllowAll #允许写入文件

  </Limit>

  <Limit READ>

  DenyAll #不允许下载文件

  </Limit>

  </Directory>

  </Anonymous>

  ……

  经过这样修改之后,proftp服务器既可以支持匿名登录又可以支持系统用户登录,如果你的服务器有个人站点的话,这样做既便于个人站点用户更新自己的主页,又不妨碍匿名用户的正常访问。匿名用户可以从share文件夹中下载文件,也可以上传文件到upload文件夹,当然你也可以根据自己的实际需要进行合理设置!

  最后启动proftpd服务:

  /etc/rc.d/init.d/proftpd start

  测试一下:nmap 127.0.0.1

  如果出现 21/tcp open ftp 就说明已经成功运行了!

  让proftp自动启动服务:

  vi /etc/rc.d/rc.local

  ……

  /usr/sbin/proftpd start

  ……

  或者

  cd /etc/rc.d/rc3.d

  ln -s /usr/sbin/proftpd S30proftpd

  1.8 webmail配置

  目前在linux平台上使用最为广泛的电子邮件服务器主要是sendmail和qmail,qmail安装配置都比较简单,功能比较强大,但对于吾等菜鸟来说,以最少的修改来获得最大的功能才是最高的境界,加上现在webmail越来越时髦,所以我们选择国人开发功能强大的openwebmail加上 sendmail来实现我们的webmail服务,配置吗?呵呵!当然是非常简单了!开始吧!

  redhat AD2.1默认安装已经把sendmail安装好了,那么我们所需要的的就是从网上下载openwebmail,理论上安装openwebmail必须具备以下软件包:

  openwebmail-2.00.tgz (主程序,必需)

  CGI.pm-2.74.tar.gz (必需)

  MIME-Base64-2.12.tar.gz (必需)

  libnet-1.0901.tar.gz (必需)

  根据我的实际经验,openwebmail在redhat AD2.1下只需要openwebmail-2.00.tgz主程序和perl-Text-Iconv-1.2-RH73.i386.rpm安装包即可正常工作,当然你也可以编译源码包进行安装,不过我必须提醒你在redhat AD2.1系统中编译源码非常不爽(起码对我们这些菜鸟来说)。

  下载安装软件 :参考地址http://turtle.ee.ncku.edu.tw/openwebmail/download/

  openwebmail-2.00.tgz

  perl-Text-Iconv-1.2-RH73.i386.rpm

  下载完成后,把它们全部放在root目录下

  安装支持包:

  rpm -ivh perl-Text-Iconv-1.2-RH73.i386.rpm

  安装主程序:

  tar -zxvf openwebmail-2.00.tgz

  解出cgi-bin和data两个文件夹,然后把它们移动到你所设定的位置

  mv cgi-bin/openwebmail /var/www/cgi-bin

  mv data/openwebmail /var/www/html

  修改apache的配置文件httpd.conf

  vi /etc/httpd/conf/httpd.conf

  修改如下:

  ……

  <Directory /var/www/cgi-bin> #修改apache的cgi设置

  AllowOverride ALL

  Options ExecCGI

  Order allow,deny

  Allow from all

  </Directory>

  ……

  重新启动apache:

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

  配置openwebmai:

  *修改openwebmail*.pl文件的属性,使它们能够正常运行

  cd /var/www/cgi-bin/openwebmail

  chown root.mail openwebmail*.pl #修改openwebmail*.pl的所有者为root用户和mail组

  chmod 4755 openwebmail*.pl #修改openwebmail*.pl的权限

  *配置openwebmail.conf

  vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf

  需要修改的地方:

  ……

  ow_cgidir /var/www/cgi-bin/openwebmail #所有者的cgi目录

  ow_htmldir /var/www/html/openwebmail #所有者的html目录

  default_language zh_CN.GB2312 #默认语言

  ……

  *根据自己的需要配置openwebmail.conf.default

  vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf.default

  这是我自己修改的地方:

  ……

  smtpserver mail.test.com #smtp服务器

  default_language Chinese-Simplified #默认语言

  defualt_charset gb2312 #默认语言编码

  <defautl_signature> #默认签名

  ——

  欢迎使用openwebmail电子邮件系统

  ——

  </default_signature>

  default_style Hotmail #默认样式

  default_iconset Cool3D.Chinese.Simplified#默认图标

  default_bgurl Envelope.gif #默认背景图片

  ……

  *修改auth_unix.pl文件

  vi /var/www/cgi-bin/openwebmail/auth_unix.pl

  需要修改的地方:

  ……

  my $unix_passwdfile_encrypted="/etc/shadow"

  my $unix_passwdmkdb="none"

  ……

  *初始化设置

  /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

  如果出现welcome to the open webmail,祝贺你!你已经成功了一半!

  配置sendmail

  *安装imap和pop3服务

  mount /mnt/cdrom

  cd /mnt/cdrom/RedHat/RPMS

  rpm -ivh imap-2001a-10.0as.i386.rpm

  稍待片刻,安装完毕

  *修改sendmail.cf

  vi /etc/sendmail.cf

  ……

  O DaemonPortOptions=Port=smtp,Addr=mail.test.com,Name=MTA #设置邮件服务器的地址,也可用IP地址

  ……

  *修改邮件别名aliases

  vi /etc/aliases

  ……

  root webmaster #让用户webmaster接收发给root的信件

  list zhangsan,lisi,…… #邮件列表

  ……

  *修改中继邮件设置

  vi /etc/mail/access

  ……

  mail.test.com RELAY #中继mail.test.com的邮件

  10.8 RELAY #中继10.8网段用户的邮件

  ……

  *重新启动sendmail

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

  最后测试:

  在浏览器地址栏中输入:http://mail.test.com/cgi-bin/openwebmail/openwebmail.pl

  用存在的系统用户进入(root除外)系统,如果能够正常收发邮件说明你已经大功告成了

  1.9 配置quota(磁盘配额)

  无论是samba、ftp还是webmail服务,如果允许用户无限制的写入文件,那么你就面临着非常危险的境地,你的硬盘空间很快就会被用户的文件所填满,造成其他用户无法存取文件,为了避免这种灾难的发生,我们有必要对用户所使用的磁盘空间进行限制,当然这对于在webmail中限制用户的邮箱容量也是一个很好的注意!

  *编辑fstab文件

  vi /etc/fstab

  修改部分如下:

  ……

  LABEL=/home /home ext3 defaults,usrquota 1 2 #在/home分区对用户进行磁盘限额

  ……

  保存并重新启动(一定要重启,否则不会生效)

  *产生配置文件

  quotacheck -ugavm

  稍待片刻,检查完成以后会在/home目录下产生aquota.user配置文件供设置磁盘限额使用

  *编辑用户磁盘限额(假设用户为test)

  edquota test

  ……

  Disk quotas for user test (uid501):

  Filesystem blocks soft hard inodes soft hard

  /dev/hdb2 160 15360 20480 65 500 550

  ……

  以上设置用户test的磁盘限额为:磁盘软限制15M,磁盘硬限制20M,用户现有文件160K;文件数量软限制500个,文件数量硬限制550个,用户现有文件65个;用户使用磁盘空间超过15M或者文件数量超过500个,在宽限期内系统给出警告信息;用户使用磁盘空间达到20M或者文件数量达到550 个或者宽限期已到,系统禁止存取文件!

  *批量设置用户磁盘限额

  cd /home

  edquota -p test *

  用设置好磁盘限额的一个用户作为模本,然后应用到所有用户

  *编辑超过soft limit的宽限期

  edquota -t

  ……

  Filesystem block grace period inodes grace period #磁盘空间和文件数量宽限期

  /dev/hdb2 10days 10days

  ……

  *几个常用命令

  quotaoff -avug #取消磁盘空间限制

  quotaon -avug #重新启动磁盘空间限制

  quota -v #普通用户检查自己是否超过磁盘限额

  repquota -au #系统管理员检查所有用户

  repquota -ag #系统管理员检查所有组

  repquota -a #系统管理员检查全部数据 (很好用)

  1.10 SQL数据库服务

  redhat AD2.1在默认情况下并没有安装任何数据库系统,但是它的安装盘中却给我们提供了两个重量级的数据库软件mysql和postgresql,由于网上介绍mysql数据库的文章已经够多了,在这里我们只作简单介绍,重点向大家介绍另一道大菜那就是postgresql——一种对象关系型数据库系统。

  ***mysql数据库

  *安装mysql

  把redhat AD2.1的第二张安装盘放入光驱

  mount /mnt/cdrom

  cd /mnt/cdrom/RedHat/RPMS

  rpm -ivh mysql-devel-3.23.41-1.i386.rpm

  rpm -ivh mysql-server-3.23.41-1.i386.rpm

  稍待片刻,安装完毕

  *启动mysql服务器

  /etc/rc.d/init.d/mysqld start

  *测试一下:

  mysql

  如果出现Welcome to the MYSQL Monitor字样,那就说明mysql已经正常工作了

  利用mysql可以和proftp以及apache进行整合!在这里不再赘述,具体操作请参看有关文章!

  ***postgresql数据库

  *postgresql数据库的主从式结构设计:一个数据库的运行阶段需要三个程序合作完成

  管理程序: postmaster

  前台应用程序:psql

  后台服务程序:postgres

  *安装postgresql服务器

  检查是否已经安装了postgresql

  rpm -qa|grep postgresql

  如没有安装,则放入第二张安装盘

  mount /mnt/cdrom

  cd /mnt/cdrom/RedHat/RPMS

  rpm -ivh postgresql-libs-7.1.3-2.i386.rpm #先安装函数库软件包

  rpm -ivh postgresql-7.1.3-2.i386.rpm #安装客户端软件包

  rpm -ivh postgresql-server-7.1.3-2.i386.rpm #安装服务器端软件包

  rpm -ivh postgresql-devel-7.1.3-2.i386.rpm #安装程序发展软件包

  安装结束后,系统会创建一个postgres新帐号,其家目录在/var/lib/pgsql

  *设置与启动postgresql服务器

  设置数据库管理员postgres的密码:

  passwd postgres

  设置环境变量:

  su -postgres #改变用户身份为postgres

  vi /var/lib/pgsql/.bash_profile #修改环境变量

  ……

  PS1='[\u@\h \W]$' #加入这一行

  export PGLIB PGDATA

  ……

  存盘退出,执行source ~/.bash_profile命令,使环境设置立即生效

  source ~/.bash_profile

  以用户root身份启动postgresql服务

  su -root

  /etc/rc.d/init.d/postgresql start

  Initializing database: [OK] #第一次启动会进行初始化服务器的操作

  StartingPostgreSQLservice [OK]

  初始化服务器之后会产生一个名为template1的默认数据库。

  *测试postgresql服务器

  切换成postgres的身份:

  su -postgress

  执行客户端程序psql:

  psql template1 #连接到默认数据库template1

  如果出现template1=#的提示符说明数据库连接成功!

  测试psql的命令模式:

  template1=# CREATE DATABASE test; #创建新的数据库test

  CREATE DATEBASE #创建数据库成功

  template1=# \c test #连接到新数据库test

  You are now connected to database test. #连接成功

  test=# CREATE TABLE bar (i int4,c char(16)); #创建新数据表bar

  CREATE #创建数据表成功

  test=# \q #退出

  注意:在psql命令模式中分为两种命令,一种是sql命令,另一种是psql自行处理的中介命令,两个最明显的区别在于中介命令以“\”符号开头,而sql命令以“;”结尾。

  postgresql服务的更多功能请参考相关资料!!!

  完工了!

  *****万里长征的最后一步:设置需要自动启动的服务*****

  配置完服务器之后,我们要选择一下需要自动启动的服务,之所以把选择自启动服务放在最后是因为许多服务是我们后来才安装的,一开始无法全面选择!本着服务最少最安全的原则,我们只保留必需的服务,其余的服务一概干掉!以下是我们需要保留的服务(仅供参考):

  服务器A: redhat.test.com 提供服务:web、dns、dhcp、samba、squid

  dhcpd

  httpd

  ipchains

  iptables

  named

  network

  smb

  squid

  xinetd

  服务器B: mail.test.com 提供服务:ftp、webmail、mysql或者postgresql

  imap

  ipop3

  ipchains

  iptables

  mysqld或者postgresql

  network

  sendmail

  xinetd