Gather ye rosebuds while ye may

开始使用Ubuntu


网络配置与服务这门课对我来说已经成为周二晚的噩梦了。
在下周二之前要做的事情有点多:

  1. dns server 正向反向的解析
  2. apache 服务器
    1. 重设置文档主目录
    2. 只监听80和81端口
    3. 主目录默认打开 php jsp html文档
    4. 设置默认字符集为 GB2312
    5. 建立虚拟目录 OA: /var/www/OA
    6. 访问目录时需要用户认证,只认证 teacher
    7. 建立一个基于 IP 地址的虚拟 Web 站点,IP 地址有192.168.1.6和192.168.1.8,第一个站点主目录为var/www/www1,并且192.168.1.0/24子网可访问;第二个站点主目录为var/www/www2,并且192.168.1.0/24和com.cn域的客户访问
  3. ftp 下面的语句使用时出错的话,请大胆尝试sudotouch等操作

开始之前

选用虚拟机和 ubuntu

虚拟机方面,Parallels Desktop绝对是不二之选,但是很贵而且每次更新都收费,不给我们这些学生活路。关于版权这东西,最近我发现我正处于版权尴尬的巅峰。virtual box 免费就用它吧。
然后选用了 ubuntu kylin 14.04 这个个人喜好不同,特别是看到室友更新15瞬间爆炸之后。

各种工具

gwet zsh sublime text 还有各种插件 autojump predawn Valign


dns server

跟着这个文章
唯一卡住的地方就只有

1
sudo service bind9 restart

这个时候就使用

1
tail /var/log/syslog

来查看错误,我这里是因为/etc/bind/named.conf:12: open: /etc/rndc.key: file not found
进去把它删除了就行了
趁着热先,生成系统快照再说。。。
发现一个问题,重启之后
1
subl /etc/resolv.conf

会自动改回到127.0.0.1,导致反向的解析失效,记得每次开机都要改成本机的 ip 地址。


apache

设置文档主目录

下面用/var/www/myweb为例
安装:

1
sudo apt-get install apache2

配置文件: /etc/apache2/apache2.conf
找到<Directory /var/www/>这一行,改成<Directory /var/www/myweb>
进入这个文件/etc/apache2/sites-available/000-default.conf
找到DocumentRoot /var/www/一行,改为DocumentRoot /var/www/myweb
然后在/var/www/myweb下面创建你的index.html文件
然后重启 Apache 服务:

1
sudo /etc/init.d/apache2 restart

这样就可以在127.0.0.1上使用新的文档主目录了

设置监听端口

先改这个文件: /etc/apache2/ports.conf
找到这个Listen 80改成这个Listen 你的IP地址:81 Listen 你的IP地址:80
然后改这个文件: /etc/apache2/sites-enabled/000-default.conf
整个文件都是基于80端口的,把这些<VirtualHost *:80>...</VirtualHost>复制下来粘贴一遍,然后把80改成81
然后重启 Apache 服务:

1
sudo /etc/init.d/apache2 restart

试试看你的IP地址:80你的IP地址:81是不是都能看到你刚才设置的 index.html内容了

字符集

/etc/apache2/apache2.conf中添加AddDefaultCharset GB2312

添加虚拟目录

我的方法跟网上能找到的稍微有点不一样
具体就是 我没有httpd.conf这个文件,配置的信息都添加到了/etc/apache2/apache2.conf里面

1
2
3
4
5
6
7
Alias /OA "/home"
<Directory /home>
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>

然后需要把 /home 目录的权限给访问者:
1
sudo chmod -R 777 /home

这个也是解决403 forbidden 错误的方法
然后在/etc/apache2/sites-enabled/000-default.conf里面添加OA这个虚拟目录:<VirtualHost *:81/OA>...</VirtualHost>

设置权限

我的阿帕奇为啥没有htpasswd
安装htpasswd

1
sudo apt-get install apache2-utils

修改目录的权限,在apache2.conf里面:

1
2
3
4
5
6
7
Alias /OA "/home"
<Directory /home>
Options FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

注意第四行是AuthConfig
000-default.conf中相应目录中添加AccessFileName .htaccess
使用htpasswd创建teacher这个用户: /usr/bin/htpasswd -c /home/password teacher
然后就在该目录下创建.htaccess文件:
1
2
3
4
AuthName "!!!password file auth!!!" 
AuthType Basic
AuthUserFile /home/password
Require user teacher

最后还是重启一下


FTP

安装

1
sudo apt-get install vsftpd

检查一下:

1
sudo service vsftpd status

可以看到运行状态

允许匿名访问

在使用之前最好还是先备份一下配置文件
备份vsftpd的配置文件:

1
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old

然后打开vsftpd.conf,找到这一行:anonymous_enable=NO,改成YES

ftp 访问的根目录

新建一个用户和这个用户的目录:

1
2
mkdir -p /home/test
useradd test -g ftp -d /home/test -s /sbin/nologin

设置密码:
1
passwd test

设置一个可以访问的共享目录,别人就不会看到这个文件夹以外的东西了。
还是打开这个vsftpd.conf文件,在最后新加一行anon_root=这里填目录路径,并把这几行注释取消掉:

  1. local_enable=YES //允许本地访问
  2. write_enable=YES //访问用户可以创建文件夹
  3. chroot_list_enable=YES //设置允许列表中的用户访问
  4. chroot_list_file=/etc/vsftpd.chroot_list//允许列表的位置
  5. max_clients=100//设置最大连接客户端数
  6. max_per_ip=2//设置每IP最大连接数

然后新建允许列表,在其中添加test这一行

1
echo 'test' > /etc/vsftpd.chroot_list

注意,要单独设置用户和匿名用户同时访问的话请把 anonymous 也添加到这个允许列表中

连接 ftp:

1
ftp 你的 IP 地址

如果出现了530错误, 就在 /etc/shells 最后一行添加/sbin/nologin
500错误,用这个:

1
chmod a-w /home/test

记得重启服务以生效