折腾 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。设置如下:

项目
ServerTokens Prod
ServerSignature Off

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

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

上面那个 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?是不是以后所有命令都需要我一个一个教你?”

是的,就是这么不靠谱。

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

《折腾 Ubuntu 服务器手记》上有5条评论

发表评论

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