zoukankan      html  css  js  c++  java
  • [原创]Debian从零搭建搭建服务器

    debian squeezy测试通过。debian wheezy已经不对openvz支持,不知道在debian wheezy中,如何实现虚拟化。

     

    ls命令多页显示:ls | more

    查看分区情况:

    cat /etc/fstab

    blkid命令按照分区的UUID列出系统正在使用的设备信息

     

    安装资源管理器:Midnight Commander(mc)

    apt-get install mc

     

    查看当前系统提供的服务

    tasksel --list-tasks

    在显示的结果中,u表示未安装,i表示已安装。

     

    dpkg命令

    dpkg -l <packname>

    检查包packname是否已经安装

    dpkg -L <pagename>

    检查软件包中都包含哪些文件,软件包中包含的文件较多时,加上 | more 参数就可以分页来显示了。

     

    dpkg-reconfigure

    重新配置已安装的软件包。

     

    ifconfig

    查看ip信息

     

    /etc/network/interface

    网络配置文件

     

    /etc/resolv.conf

    DNS配置文件

     

    /etc/hosts

    host配置文件

     

    fdisk -l

    查看硬盘信息

     

    ntp时间同步

    1)安装ntpdate:apt-get install ntpdate

    2)创建文件:sudo nano /etc/cron.daily/timeupdate

    3)文件中写入:ntpdate pool.ntp.org

    如果担心依赖一个服务器,获取时间会失败,那么增加多个时间更新服务器,可以写为 ntpdate ntp.ubuntu.com pool.ntp.org,多个服务器之间用空格隔开即可。

    4)保存文件后,赋予该文件可执行权限: sudo chmod 755 /etc/cron.daily/timeupdate

    这里也可以直接执行命令来同步时间:

    ntpdate pool.ntp.org

     

    SSHD远程管理服务器

    1)安装SSH Server:sudo apt-get install openssh-server

    2)修改默认端口22为其他,例如3322:nano /etc/ssh/sshd_config

    3)如果在windows操作系统下远程连接服务器进行管理下载putty进行连接;如果在linux系统中,则可以安装openssh-client:sudo apt-get install openssh-client

     

     

    虚拟化的准备工作----运行带有OpenVZ补丁的Linux内核

    1)将默认shell由dash修改为bash

    sudo ln -sf /bin/bash /bin/sh

    2)禁用apparmor

    sudo /etc/init.d/apparmor stop

    sudo update-rc.d -f apparmor remove

    sudo apt-get remove apparmor apparmor-utils

    3)安装OpenVZ

    apt-get install linux-image-openvz-amd64 vzdump vzctl vzquota

    ln -s /var/lib/vz /vz

    4)调整内核参数

    sudo nano /etc/sysctl.conf

    加入如下配置:

    net.ipv4.conf.all.rp_filter=1

    net.ipv4.icmp_echo_ignore_broadcasts=1

    net.ipv4.conf.default.forwarding=1

    net.ipv4.conf.default.proxy_arp=0

    net.ipv4.ip_forward=1

    kernel.sysrq=1

    net.ipv4.conf.default.send_redirects=1

    net.ipv4.conf.all.send_redirects=0

    net.ipv4.conf.eth0.proxy_arp=1

    5)使其立即生效

    sudo sysctl -p

    6)修改VE全局配置

    sudo nano /etc/vz/vz.conf

    将NEIGHBOUR_DEVS设置为all

    7)修改vps.basic配置文件

    sudo nano /etc/vz/conf/ve-vps.basic.conf-sample

    这一步,我在debian 6.05没有找到这个文件,名称应该为:ve-basic.conf-sample

    sudo nano /etc/vz/conf/ve-basic.conf-sample

    在配置文件中,将部分值修改大一些,可能会避免很多小麻烦。

    最后,在配置文件后加入

    CAPABILITY="CHOWN:on DAC_READ_SEARCH:on SETGID:on SETUID:on NET_BIND_SERVICE:on NET_ADMIN:on SYS_CHROOT:on SYS_NICE:on"
    记得保存。

    8)重启

    9)查看当前的内核

    sudo uname -r

    可以看到如下信息:

    2.6.32-5-openvz-amd64

    说明服务器已经在运行带有OpenVZ补丁的内核了。

     

    虚拟机的创建

    1) 在OpenVZ安装完成后首选需要建立虚拟机,最简单的方法是直接下载OpenVZ官方提供的各种Linux发行版的虚拟机模板使用(下载地址:http://wiki.openvz.org/Download/templates/precreated),通过模板来建立虚拟机。

    cd /var/lib/vz/template/cache

    wget http://download.openvz.org/template/precreated/debian-6.0-x86_64.tar.gz

    或者:

    wget http://download.openvz.org/template/precreated/contrib/debian-6.0-amd64-minimal.tar.gz

    另外几个备用,如果使用相关内核可以使用它们:

    http://download.openvz.org/template/precreated/ubuntu-12.04-x86_64.tar.gz (205M)

    http://download.openvz.org/template/precreated/debian-6.0-x86_64.tar.gz(151M)

    http://download.openvz.org/template/precreated/contrib/debian-6.0-amd64-minimal.tar.gz (74.3M)

    http://download.openvz.org/template/precreated/centos-6-x86_64.tar.gz (211M)

    下载好之后,将下载好的虚拟机模板移动到/var/lib/vz/template/cache目录备用。

    sudo mv /home/ode/debian-6.0-x86_64.tar.gz /var/lib/vz/template/cache/

    2)创建虚拟机

    我不是用root用户登录的,在创建虚拟机之前可能需要修改模板文件的权限

    chmod 775 debian-6.0-amd64-minimal.tar.gz

    下面的命令创建虚拟机

    sudo vzctl create 200 --ostemplate debian-6.0-amd64-minimal

    参数200是VE的ID,简称VEID(虚拟机的编号,以后会比较常用),需要注意的是100以下的ID是OpenVZ内部使用的,我也没有试用了会是什么后果。

    创建完成后会显示如下的信息:

    虚拟机创建后,它的配置文件在 /etc/vz/conf/200.conf,默认情况下,虚拟机被创建在 /var/lib/vz/private/200/ 目录下,看看它的目录,与普通安装的linux一模一样:

     

    修改虚拟机的配置

    修改虚拟机的配置,可以直接修改配置文件,也可以用vzctl命令来修改,vzctl命令所作的修改可以实时生效,如果在修改配置的同时保存配置,需要加上 --save 选项。

     

    设置虚拟机的主机名:

    sudo vzctl set 200 --hostname test.mydomain.com --save

    设置虚拟机的IP地址:

    sudo vzctl set 200 --ipadd 192.168.0.3 --save

    设置虚拟机的DNS服务器地址:

    sudo vzctl set 200 --nameserver 61.232.206.103 --nameserver 61.234.145.102 --save

    设置虚拟机允许的socket数量为480:

    sudo vzctl set 200 --numothersock 480 --save

     

    虚拟机的启动、停止、进入、删除操作

    启动虚拟机

    sudo vzctl start 200

    进入虚拟机

    sudo vzctl enter 200

    启动虚拟机后,就可以为虚拟机安装需要的软件了。不过首先要给root用户设置密码:使用passwd命令即可。

    返回到主机

    exit

    停止虚拟机(关机)

    sudo vzctl stop 200

    删除虚拟机

    sudo vzctl destroy 200

     

    虚拟机中搭建FTP 文件服务器

    1)安装Pure-FTPd

    sudo apt-get install pure-ftpd-mysql mysql-server

    2)配置Pure-FTPd

    首先添加ftp的用户和组

    sudo groupadd -g 2001 ftpgroup

    sudo useradd -u 2001 -s /bin/false -d /dev/null -c "Pure-FTPd User" -g ftpgroup ftpuser

    上面的命令中,将/bin/false作为shell,使得该用户无法登陆到服务器的shell环境,避免了很多安全问题;将HOME目录设置为 /dev/null,使该用户在操作系统环境中无处安身。

     

    另外将ftp用户限制在chroot环境中:

    在配置目录 /etc/pure-ftpd/conf/下面创建一个名为 ChrootEveryone的文件,并将内容设置为:

    sudo sh -c "echo 'yes' > /etc/pure-ftpd/conf/ChrootEveryone"

    这样每个FTP用户自己的HOME目录就成了他的root目录,他无法到达上层目录中,也就无法浏览其它目录下的文件了。

     

    下面为Pure-FTPd创建mysql数据库

    mysql -u root -p

    mysql>CREATE DATABASE ftpusers;

    mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON ftpusers.* TO 'ftpadmin'@'localhost' IDENTIFIED BY 'ftpadminPassword';

    mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON ftpusers.* TO 'ftpadmin'@'localhost.localdomain' IDENTIFIED BY 'ftpadminPassword';

    mysql>FLUSH PRIVILEGES;

    在数据库中创建users表

    mysql>USE ftpusers;

    mysql> CREATE TABLE IF NOT EXISTS users(

    User varchar(16) NOT NULL default '',

    Password varchar(32) NOT NULL default '',

    Uid int(11) NOT NULL,

    Gid int(11) NOT NULL,

    Dir varchar(128) NOT NULL default '',

    QuotaFiles int(10) NOT NULL default '500',

    QuotaSize int(10) NOT NULL default '30',

    ULBandwidth int(10) NOT NULL default '80',

    DLBandwidth int(10) NOT NULL default '80',

    Ipaddress varchar(15) NOT NULL default '*',

    Comment tinytext,

    Status enum('0','1') NOT NULL default '1',

    ULRatio smallint(5) NOT NULL default '1',

    DLRatio smallint(5) NOT NULL default '1',

    PRIMARY KEY (User),

    UNIQUE KEY User (User)

    ) ENGINE=MyISAM;

    这里应该还要对该表进行字符设置等,mysql不太熟悉,先跳过。

    mysql>quit

     

    接下来,配置Pure-FTPd的mysql.conf

    备份配置文件:sudo cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig

    配置:sudo nano /etc/pure-ftpd/db/mysql.conf

    这一步配置的内容太多,参考《Ubuntu Server 最佳方案》222页。

    AND Status="1" AND (Ipaddress="*" OR Ipaddress LIKE "\R")

    修改该文件权限,防止其他用户和组读取:

    chmod g=o= /etc/pure-ftpd/db/mysql.conf

    重启后Pure-FTPd配置完成

    sudo /etc/init.d/pure-ftpd-mysql restart

     

    搭建php运行环境

    1)安装apache及php5

    sudo apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server

    2)有必要的话安装memcached来做缓存

    sudo apt-get install php5-memcache

    3)重启apache2使其生效

    sudo apache2ctrl restart

    4)在 /var/www/ 目录中创建一个测试文件phpinfo.php

    用nano或其他工具写一些测试html进去,加上这句:

    <?php phpinfo(); ?>

    就可以完整的显示php服务器的相关信息了。

     

    完成后,在浏览器中输入http://192.168.0.176,应该可以看到

    至此,php已经可以运行了。

     

    实现ftp的用户的web管理

    1)首先下载user manager for PureFTPd,其官方网址为:http://machiel.generaal.net/

    下载地址为:http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz

    执行以下命令,下载解压:

    cd /var/www/

    sudo wget http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz

    sudo tar xfvz ftp_v2.1.tar.gz

    2)配置user manager for PureFTPd

    sudo nano /var/www/ftp/config.php

    3)为web管理配置管理员

    在浏览器中访问:http://192.168.0.176/ftp/index.php

    会有数据库中不存在admin表的错误提示,这时应该对web管理设置管理员帐号。

    mysql -u root -p

    mysql>USE ftpusers;

    mysql> CREATE TABLE IF NOT EXISTS admin(

    Username varchar(35) NOT NULL default '',

    Password char(32) NOT NULL default '',

    PRIMARY KEY (Username)

    ) ENGINE=MyISAM;

    插入一条管理员记录:

    mysql>INSERT INTO admin (Username,Password) VALUES('ftpadmin',MD5('ftpadminPassword'));

    访问:http://192.168.0.176/ftp/index.php

    这时应该可以看到如下界面了:

    输入设定好的管理员密码:ftpadminPassword,就可以进入ftp管理界面了:

    在这里,配置完成后,在web管理界面新增加的用户只有读权限,是不能写入的,写入需要修改ftpuser或ftpgroup组对ftp目录的权限。

     

    配置邮件服务器(没有成功)

    1)安装服务器软件

    可能需要先安装postfix:sudo apt-get install postfix

    会有一个设置界面,因为目前没有域名转向过来,所以临时设为local only了。

    sudo apt-get install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd amavisd-new libclass-dbi-mysql-perl

    2)安装内容过滤工具

    sudo apt-get install spamassassin clamav-daemon razor pyzor cpio arj zoo nomarch lzop cabextract pax lha unrar

    我在debian wheezy中安装他们,lha好像已经被废弃了......暂时跳过。

    3)安装web界面工具

    sudo apt-get install squirrelmail squirrelmail-locales php5-imap

  • 相关阅读:
    网站 HTTP 升级 HTTPS 完全配置手册
    网站 HTTP 升级 HTTPS 完全配置手册
    负载均衡很难?看完这篇全懂了
    负载均衡很难?看完这篇全懂了
    负载均衡很难?看完这篇全懂了
    由浅入深,聊聊权限设计
    由浅入深,聊聊权限设计
    由浅入深,聊聊权限设计
    奇异值分解原理及Python实例
    写在西浦别离时
  • 原文地址:https://www.cnblogs.com/ode/p/3299600.html
Copyright © 2011-2022 走看看