折腾 Ubuntu 服务器手记


发布于

|

分类

折腾Ubuntu服务器手记

Background and 悲剧 Ground

由于实在厌烦了服务器每天被攻击、一星期就得重启一次、远程连接莫名其妙连不上、apache 莫名其妙不能提供服务、用户帐户里面发现 5 个隐藏账户、一直出现 Findpassword 之类的软件和 nc.exe 这样的知名软件,一怒之下把服务器做成了 Ubuntu。

Why Ubuntu ?

当时在和丁延鹏商量,用什么 Linux 。首选肯定是 Cent OS 了,有图形界面,各种支持也都不错。然后就在他的虚拟机上安了一个。默认安装方式下来——没桌面……

那好,重新安一下吧。选择 “带有桌面环境的 Web 服务器”。20 分钟,好了。进入系统,没有发现 Apache、Mysql……败了……(我可不想自己安装然后再配置……我懒……)

然后就下载了 Ubuntu 14.04 LTS 。 这次竟然是 LTS 。记得上一个 LTS 是 12.04 吧。一路比较顺利。而且我也知道 Ubuntu 安出来没桌面环境——去年就做过这方面的铺垫了。只是当时 VNC 一直搞不定,于是就放弃了。

虚拟机测试正常,就去服务器那儿安装了。

Install

制作了启动 U 盘。插上去……嘀~ Windows Server 2003 正在启动……

不对啊~换到自己的笔记本上试试? Ubuntu Installer ……

难道是启动 U 盘有问题?换个格式写入,USB-ZIP+ 还是不行。

逼我去买 CD 的节奏啊这是……幸好一个 Ubuntu Server 的大小是 500MB,不像 Ubuntu Desktop 那样一张 CD 刚刚好刻录不下。

刻录好,放进 CD,立刻熟悉的 Installer 展现在眼前。

使用整个磁盘。由于不知道下面的几个选项都是啥意思,又懒得自己分区,所以选择这个。

后面……检测网络的时候按 ESC,手动配置网络。

再后面……选择安装什么组件。SSH 肯定是需要的了,然后 Lamp,然后没了。一是用不到,二是不会配置。

Over。

一看能启动了,能登录了,走人。网络中心里面快动成冰棍了。

Configuration

网站

回去下了 PuTTy 和 Filezilla。

PuTTy 连接。首先 apt-get update,然后 apt-get upgrade。由于是教育网,速度不错。

apt-get install unzip zip wget rsync 7z 7zip unrar vsftpd

然后就是上传个 demo 页面进去。 /var/www 竟然没有权限。sudo chmod -Rf 777 www 或者 sudo chowm -Rf me:me www 就好了。实在不忍心给 777 权限。上传个 PhpMyAdmin 先,毕竟喜欢图形。

Ubuntu 下 Apache 启用/禁用配置文件的方法如下表:

项目语法
启用模块a2enmod XXX
禁用模块a2dismod XXX
启用站点a2ensite XXX
禁用站点a2dissite XXX
启用配置文件a2enconf XXX
禁用配置文件a2disconf XXX

很方便是吧。实际上它是做了 XX-available 到 XX-enabled 的一个软连接。自己写也可以。看喜好。

做完这些之后,service apache2 reload 或者 servica apache2 restart 都可以。restart 可能造成外网访问突然中断一下……但是好像比较彻底吧,各种错误 Restart 的时候都能检测出来。

去配置/etc/apache2/apache2.conf。好像没有什么要配置的。

去配置 etv/apache2/conf-available/security.conf。设置如下:

项目
ServerTokensProd
ServerSignatureOff

去配置 /etc/apache2/conf-available/charset.conf。写上 AddDefaultCharset UTF-8,保存退出。

/etc/apache2/sites-available 写一份模板出来:

# <Directory /var/www/Example >
#             Options FollowSymLinks
#             AllowOverride All
#             Require all granted
# </Directory>
<VirtualHost *:80>

        ServerName www.example.com
        # ServerAdmin [email protected]
        DocumentRoot /var/www/Example

        # ErrorLog ${APACHE_LOG_DIR}/error_Example.log
        # CustomLog ${APACHE_LOG_DIR}/access_Example.log combined

        <Directory /var/www/Example >
            Options FollowSymLinks
            AllowOverride All
        </Directory>

</VirtualHost>

上面那个 Directory 是为了避免以后将网站数据放在其他地方导致 Apache 不能访问 (403)。

MySQL

默认的 MySQL 是不能远程访问的,即使你新建一个% 的用户也不行。

需要修改 /etc/mysql/my.cnf,找到 bind-address,后面的值改成本机 IP 即可。

FTP

上面用 apt-get install vsftpd 安装了 vsftpd 了,下面看一下是否在监听 21 端口。

查看端口占用 netstat -nat
查看 vsFTPd 状态 ps -ef |grep vsftpd

开启本地登录,开启本地用户写入,开启监牢,关闭匿名登录。

service vshttpd restart

有了这些就好办了。useradd XXX,新建用户,在 /home/XXX 里面新建 www 文件夹,当作这个用户的网站文件夹。

当然,更推荐的是 adduser XXX 的方式然后手动给他创建 home。 adduser 出来的用户是个 “三无” 用户,感觉更安全一点。当然,用 useradd 方便。

设置/home/xxx 的权限为 655,不用递归。

新建一个 www 文件夹存放这个用户的网站。权限任意。

然后,为了让这些 “准 FTP 用户” 只能登录 FTP 不能登陆 ssh,需要用 usermod -s /sbin/nologin ExampleUser 来不准他登陆。但这样会导致 ftp 也无法登录。

这时候需要这样做: sudo vi /etc/shells,然后添加/usr/bin/nologin。Over。

上传一大堆网站数据……建议打包上传然后用命令解压。会快一点。或者,上传个 php 在线解压的东西也很方便。

复制 Vhosts 模板文件,稍加修改,然后 a2ensite XXX,一个站点就启用了。

其他小设置

安装桌面:

sudo apt-get install –no-install-recommends ubuntu-desktop

下面的远程桌面服务我没成功过。就不写了。

后记

看着简单是吧?整整一个星期。

首先是权限。权限折腾了三天,终于理清思路了。

然后是 FTP 的问题。归根到底还是权限的问题。实在没办法,开启监牢,禁止 ssh,Over。花了三天。

无数次尝试 sudo,无数次尝试 chmod,chown,ll。

BTW:这些命令都是刚刚学会的。

我,一个轻度使用 Ubuntu 四年,只会使用 apt-get 的人。正式使用 Ubuntu 是这个暑假,发上一个 “在 Ubuntu 里安装 Theano 和 CUDA” 博文的时候。vim 是那天中午在高中机房里面看了半小时学会的,能当记事本用了。其他的,都是临时找的。

给网络中心一同学说想把服务器换成 Linux,“吓死我了,有人敢挑战 linux,大神……”

在群里面问如何设置,直接被骂死:“擦擦什么都不会还敢实体配置 Ubuntu Server?是不是以后所有命令都需要我一个一个教你?”

是的,就是这么不靠谱。

总之,一星期,忙碌、纠结、快乐。


评论

  1. liu 的头像

    hen hao hen qiang da!!!

  2. php程序员 的头像

    页面好像都看不见文字。

    1. 小金鱼儿 的头像
      小金鱼儿

      那是因为 Google 字体的原因。。。。现在没时间换主题,等等,等等。。。

  3. LL 的头像
    LL

    看看头像在不在

  4. leisure 的头像
    leisure

    … 两个小时前还不能访问。。

    二级域名映射虚拟目录的配置有空了给分享一下 。。。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注