Linux服务器的配置

2019-08-27    来源:爱站科技

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

  在安装LINUX虚拟主机的时候我们需要进行重新配置,但是你知道该如何配置Linux服务器吗?想了解的小伙伴们现在就一起跟小编去了解关于Linux服务器的配置介绍。

一个全套的LINUX虚拟主机业务应该包括DNS解析,FTP上传,APACHE虚拟主机设置,磁盘空间限定等等,前提条件:假设我们有一台经过注册合法的DNS服务器,域名为ns.domain.com(aa.aa.aa.aa),一台用作邮件转发服务器(bb.bb.bb.bb)以及一台WEB服务器(cc.cc.cc.cc),客户在申请域名的时候将自己的DNS服务器指向设置为 ns.domain.com或其IP地址aa.aa.aa.aa。现在假设一家公司注册了test.com这个域名并由我们来负责做DNS指向和网站寄存业务,我们来看一看具体的步骤是怎样的1.添加用户帐号# groupadd guest(设置一个用户组,将所有的虚拟主机用户都放到这个组里)# adduser -g guest -s /usr/bin/passwd -d /opt/vhosts/www.test.com test;创建一个用户,该用户符合下列条件:1.他的登陆用户名是test2.用户组是guest3.他的shell是/usr/bin/passwd

  这样用户将无法登陆我们的系统,而只能用ftp上传文件,当他试图用telnet或者ssh方式访问server时,他只能修改自己的明码。4.他的主页空间是在/opt/vhosts/www.test.com目录下。

  我们还需要修改/etc/shells文件把/usr/bin/passwd追加到该文件的最后:

  # echo /usr/bin/passwd >>/etc/shells

  # cat /etc/shells(检查改动是否生效)

  /bin/bash

  /bin/sh

  /bin/tcsh

  /bin/csh

  /bin/ash

  /bin/bsh

  /bin/bash2

  /bin/ksh

  /bin/zsh

  /usr/bin/passwd <--我们所修改的部分

  之所以这么做是因为出于安全的因素,如果用户的shell没有在/etc/shells文件中列出,那么该用户将被禁止使用ftp服务。2.设置FTP服务

  设置ftp服务主要是设置访问控制,禁止FTP用户访问除其自己目录以外的其他目录以免其对我们的服务器构成威胁。修改你自己机器上的/etc/ftpaccess文件把该文件改为:

  class all real,guest,anonymous *

  email root@localhost

  loginfails 5

  readme README* login

  readme README* cwd=*

  message /welcome.msg login

  message .message cwd=*

  guestgroup guest

  compress yes all

  tar yes all

  chmod yes guest

  chmod no anonymous

  delete yes guest

  delete no anonymous

  overwrite yes guest

  overwrite no anonymous

  rename yes guest

  rename no anonymous

  log transfers anonymous,real inbound,outbound

  shutdown /etc/shutmsg

  passwd-check rfc822 warn

  注意这里的guest要和你上面添加用户之前定义的用户组一致,也就是说如果你添加的用户是其他组比如是ftpuser的话,那么你要把ftpaccess文件里的guest全部换成ftpuser。

  之后,还需要把/home/ftp/目录下的所有文件都复制到该用户的目录下才能保证安全的目录控制:

  # cp -r /home/ftp/* /opt/vhosts/www.test.com/

  注意要保证etc,lib,bin等目录的权限和/home/ftp/目录下的权限一致。这样该用户的ftp就基本设置好了,测试一下吧:

  # ftp 127.0.0.1Connected to 127.0.0.1.

  220 ns2.cnuol.com FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST 2000) ready.

  Name (127.0.0.1:root): test

  Password:

  230 User linuxpub logged in.

  Remote system type is UNIX.

  Using binary mode to transfer files.

  ftp>ls

  200 PORT command successful.

  150 Opening ASCII mode data connection for /bin/ls.

  total 13872

  -rw-r--r-- 1 jiangpen zelex 1422 Dec 6 03:53 .Xdefaults

  -rw------- 1 root root 31 Dec 6 04:04 .bash_history

  -rw-r--r-- 1 jiangpen zelex 24 Dec 6 03:53 .bash_logout

  -rw-r--r-- 1 jiangpen zelex 230 Dec 6 03:53 .bash_profile

  -rw-r--r-- 1 jiangpen zelex 124 Dec 6 03:53 .bashrc

  drwxr-xr-x 3 jiangpen zelex 4096 Nov 4 00:03 .kde

  -rw-r--r-- 1 jiangpen zelex 435 Dec 6 03:53 .kderc

  -rw-r--r-- 1 jiangpen zelex 3394 Dec 6 03:53 .screenrc

  d--x--x--x 2 root root 4096 Mar 12 08:24 bin

  d--x--x--x 2 root root 4096 Mar 12 08:24 etc

  drwxr-xr-x 2 root root 4096 Mar 12 08:24 lib

  drwxr-sr-x 2 root ftp 4096 Feb 4 2000 pub

  226 Transfer complete.

  ftp>cd /

  ftp>ls

  200 PORT command successful.

  150 Opening ASCII mode data connection for /bin/ls.

  total 13872

  -rw-r--r-- 1 jiangpen zelex 1422 Dec 6 03:53 .Xdefaults

  -rw------- 1 root root 31 Dec 6 04:04 .bash_history

  -rw-r--r-- 1 jiangpen zelex 24 Dec 6 03:53 .bash_logout

  -rw-r--r-- 1 jiangpen zelex 230 Dec 6 03:53 .bash_profile

  -rw-r--r-- 1 jiangpen zelex 124 Dec 6 03:53 .bashrc

  drwxr-xr-x 3 jiangpen zelex 4096 Nov 4 00:03 .kde

  -rw-r--r-- 1 jiangpen zelex 435 Dec 6 03:53 .kderc

  -rw-r--r-- 1 jiangpen zelex 3394 Dec 6 03:53 .screenrc

  d--x--x--x 2 root root 4096 Mar 12 08:24 bin

  d--x--x--x 2 root root 4096 Mar 12 08:24 etc

  drwxr-xr-x 2 root root 4096 Mar 12 08:24 lib

  drwxr-sr-x 2 root ftp 4096 Feb 4 2000 pub

  226 Transfer complete.

  好了,我们可以看到这个用户只能访问自己的home目录了。

  3.设置DNS服务

  本人水平很次,文章中有什么不周之处还望大家批评指正,谢谢! DNS服务如果只是达到能使用的话,我觉得配置起来是最简单的了,可是最近论坛以及OICQ上总有网友向我询问这方面的问题,可是有很少能把自己的问题说清楚,所以忙的我不亦乐乎。下面我就讲讲最基本的DNS配置以及在虚拟主机业务中的DNS的配置。首先,还是要先说明前提条件: 1.有一台安装好了的DNS服务器,版本建议用BIND-8.2.3,该版本本站有下载,路径是http: //ftp.cnuol.com/network/bind/bind-8.2.3-src.tar.gzBIND9我没使用过但是听说有一些安全隐患,大家如果要选用的话最好先了解清楚。 2.这台服务器必须是经过注册的合法的DNS服务器(ns.domain.com),此外当客户在填写域名注册表的时候必须将其主DNS服务器填写为该服务器所对应的域名ns.domain.com。具体的做法请到CNNIC或NIC上查询,此项内容不在本文讨论范围之内。接下来要首先要把主DNS配置好使它能解析域名domain.com,我不具体讲如何配置,我只把配置文件的示例列出来,大家只要把其中的 domain.com换成你自己域的域名,把IP换成自己的IP就可以启动DNS服务了。

  /etc/named.conf文件:

  options {

  directory "/var/named";

  };

  zone "." {

  type hint;

  file "named.ca";

  };

  zone "domain.com"{

  type master;

  file "db.domain.com";

  };

  zone "8.96.202.in-addr.arpa"{

  type master;

  file "named.rev";

  };

  zone "0.0.127.in-addr.arpa"{

  type master;

  file "named.local";

  };

  /var/named/named.ca

  这是一个cache文件可以通过运行

  # dig > named.ca来获得

  /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/db.domain.com

  @ IN SOA domain.com. root.domain.com. (

  2000122001 ; serial

  28800 ; refresh

  14400 ; retry

  1209600 ; expire

  43200 ; default_ttl

  )

  @ IN NS ns.domain.com.

  @ IN MX 10 smtp.domain.com.

  domain.com. IN A 202.96.8.198

  ns.domain.com. IN A 202.96.8.193

  smtp.domain.com. IN A 202.96.8.193

  pop3.domain.com. IN A 202.96.8.194

  web.domain.com IN A 202.96.8.195

  /var/named/named.rev

  @ IN SOA domain.com. root.domain.com. (

  2001032102 ; serial

  28800 ; refresh

  14400 ; retry

  3600000 ; expire

  86400 ; default_ttl

  )

  @ IN NS ns.domain.com.

  193 IN PTR ns.domain.com.

  194 IN PTR smtp.domain.com.

  195 IN PTR web.domain.com.

  修改/etc/resolv.conf把DNS服务器设置为本机

  nameserver 202.96.8.193

  然后启动DNS服务

  # ndc start

  测试:

  #nslookup

  Default Server: ns.domain.com

  Address: 202.96.8.93

  >ns.domain.com

  Server: ns.domain.com

  Address: 202.96.8.193

  Name: ns.domain.com

  Address: 202.96.8.193

  如果正向和反向都可以解析的话就没有什么问题了。

  下面看看虚拟主机的DNS是如何实现的。虚拟主机的DNS其实和主DNS的配置差不多,只是少了反向解析的部分,我们只需要修改 /etc/named.conf和/var/named/下的一个DB文件就可以了。对于我门上次提到的test.com这个域名来说具体步骤如下:

  1。修改/etc/named.conf,在最后加入下面几行

  zone "test.com"{

  type master;

  file "db.test.com";

  };

  2.在/var/named目录下创建一个名为db.test.com的文件,内容如下:

  @ IN SOA test.com. root.test.com. (

  2000122001 ; serial

  28800 ; refresh

  14400 ; retry

  1209600 ; expire

  43200 ; default_ttl

  )

  @ IN NS ns.test.com.

  @ IN MX 10 smtp.test.com.

  test.com. IN A 202.96.8.200

  ns.test.com. IN A 202.96.8.193

  smtp.test.com. IN A 202.96.8.200

  pop3.test.com. IN A 202.96.8.200

  web.test.com. IN A 202.96.8.201

  从这个文件可以看出来,将来我们要把该域名的邮件服务器放在202.96.8.200这台服务器上,外发和POP3服务都是由202.96.8.200台服务器提供。该域的HTTP服务器是202.96.8.201,因此我们要把上面的ftp用户开在202.96.8.200这台服务器上以方便用户自己上传更新主页。

  做好解析之后,必须重新启动DNS使改动生效:

  # ndc restart

  如果你觉得不放心还可以用nslookup来做一下测试,看看我们刚才做的虚拟主机能否正常解析。当客户的虚拟主机解析工作作好之后,根据DNS服务器的刷新时间的长短可能需要等半天他的域名才能被internet上其他的DNS服务器被正常解析。

  在下一次,本人将介绍配置apache的虚拟主机服务

  4.Apache

  在开始之前要规划好网站需要提供哪些服务设计好合理的虚拟主机目录存放位置,以免日后改动给自己带来麻烦。

  本文以最常用的方式介绍Apache+MySQL+PHP的配置方式,尽量以简单直接的命令行和配置文件说明问题避免涉及一些原理性问题以免给初学者带来困难。

  首先安装MySQL

  # tar zxvf mysql-3.23.36.tar.gz

  # cd mysql-3.23.36

  # 调整mysql的最大连接数,具体作好看本站文章《加大MySQL的最大连接数》

  # ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=all --with-mysqld-user=mysql

  # make

  # make install

  # echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf(将mysql的lib库加入系统)

  # su -

  # ldconfig(使改动生效)

  # cd mysql-3.23.36/support-files/

  # chmod 700 mysql.server(使脚本root可执行)

  # cp mysql.server /etc/rc.d/init.d/mysql

  # chkconfig --add mysql(将mysql的加入启动文件)

  # chown -R mysql.root /usr/local/mysql/var(调整目录属性)

  # chmod 700 /usr/local/mysql/var

  # adduser mysql -s /bin/false

  # /usr/local/mysql/bin/mysql_install_db(初始化数据库)

  # /etc/rc.d/init.d/mysql start(启动数据库)

  # /usr/local/mysql/bin/mysql

  elcome to the MySQL monitor. Commands end with ; or \g.

  Your MySQL connection id is 11856 to server version: 3.22.32

  Type 'help' for help.

  mysql> usr mysql

  mysql> update user set password=password("password") where user='root';(给root分配口令)

  mysql>flush privileges;(使改动生效)

  安装apache

  # tar zxvf apache-1.3.19.tar.gz

  # cd apache-1.3.19

  # ./configure --enable-module=most --enable-shared=max --disable-rule=WANTHSREGEX

  # make

  # make install

  # cp /usr/local/apache/bin/apachectl /etc/rc.d/rc3.d/S85httpd(自动启动httpd)

  # cp /usr/local/apache/bin/apachectl /etc/rc.d/rc0.d/K15httpd(自动关闭HTTPD)

  # cp /usr/local/apache/bin/apachectl /etc/rc.d/rc6.d/K15httpd

  安装PHP

  # tar zxvf php-version.tar.gz

  # cd php-version

  # ./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql --with-system-regex

  # make

  # make install

  # cp php.ini-dist /usr/local/lib/php.ini

  配置Apache使之支持虚拟主机和PHP

  在httpd.conf文件里找到:

  DirectoryIndex index.html

  把她改为:(使支持以php结尾的入口文件)

  DirectoryIndex index.php index.php3 index.html index.htm

  添加:(使支持对PHP文件的解释)

  AddType application/x-httpd-php .php

  AddType application/x-httpd-php .php3

  AddType application/x-httpd-php-source .phps

  在文件最后添加:

  NameVirtualHost 202.96.8.201(使支持虚拟主机,IP为你服务器的IP)

  (设置本机的web是IP202.96.8.201的虚拟主机)

  ServerAdmin webmast@domain.com(设置本机WEB的管理员信箱)

  DocumentRoot /opt/vhosts/web.domain.com(设置本机WEB目录)

  ServerName web.domain.com (设置web服务名,需要有DNS解析)

  ErrorLog logs/domain.com-error_log(设置错误日志)

  CustomLog logs/domain.com-access_log common(设置访问日志)

  (设置本机的web是IP202.96.8.201的虚拟主机)

  ServerAdmin webmast@test.com(设置本机WEB的管理员信箱)

  DocumentRoot /opt/vhosts/web.test.com(设置本机WEB目录,要和我们上面定义的ftp用户的目录一致,以方便用户自己上传主页)

  ServerName web.test.com (设置web服务名,需要有DNS解析)

  ErrorLog logs/test.com-error_log(设置错误日志)

  CustomLog logs/test.com-access_log common(设置访问日志)

  基本上就是这样,以后如果有新的虚拟主机就按照这个格式添加到httpd.conf文件的最后然后重新启动apache就可以生效了

  下次将介绍基于sendmail和postfix的虚拟邮件的配置以及如何在这2中邮件系统中实现stmp认证服务

  设置sendmail的虚拟主机

  其实很简单的,只要修改sendmail.cw文件加入虚拟与名就可以了

  vi /etc/sendmail.cw(新版本的是/etc/mail/local-host-names

  virtualdomain1.com

  aaa.com

  ccc.com

上文中介绍了Linux服务器的配置,本文的目的在于让大家在短时间内学会配置虚拟主机服务的方法,感兴趣的朋友们快动起手来吧。

标签: Linux服务器

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Linux下关于NTOP的安装过程

下一篇:如何在Linux系统中开关端口