说明:
1、以下每个服务要求服务器重启后依然有效;
2、yum服务通过http://172.16.0.1/yum提供;
3、要求selinux处于permissive状态;
4、本地网络为172.16.X.0/24,测试网络为192.168.0.0/24;
5、每位同学的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为stuX.example.com,其中X为你的座位号;
1、主机名称解析服务器配置,要求:#dig -t NS . > named.ca
1)建立DNS服务器,负责解析的域为magedu.com;
2)要求将MX记录指向mail.magedu.com,且对应A记录为本机IP;
3)要求将NS记录指向ns.magedu.com,且对应A记录为本机IP;
4)建立www1,www2,proxy等A记录指向本机IP;为mail主机建立别名记录pop3和imaps;
5)为所有A记录建立PTR记录;
6)magedu.com区域仅允许172.16.0.0/16网络中的主机做区域传送;对应的反向区域不允许任何主机做区域传送;
7)为正向区域建立子域委派,两个子域为tech.magedu.com和fin.magedu.com,子域服务器地址为172.16.x.5;(仅给出实现授权的记录即可)
8)将example.com域的所有请求转发至172.16.0.1进行解析;
9)此DNS服务拒绝192.168.1.0/24网络内的任何主机使用;
yum -y install bind
主配置文件:
vim /etc/named.conf
acl Q
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
allow-transfer { 172.16.0.0/16;};
};
zone "16.172.in-addr.arpa" IN {
type master;
file "172.16.zone";
allow-transfer { none; };
};
zone "example.com" IN {
type forward;
forwarders {'172.16.0.1;};
forward only;
};
区域配置文件:
cd /var/named
dig -t NS . > named.ca
vim localhost.zone
$TTL 600
@ IN SOA localhost. admin.local. (
01
2H
20M
7D
1D )
localhost. IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local
$TTL 600
@ IN SOA localhost. admin.local. (
01
2H
20M
7D
1D )
@ IN NS localhost.
1 IN PTR 127.0.0.1
vim magedu.com.zone
$TTL 600
@ IN SOA localhost. admin.local. (
01
2H
20M
7D
1D )
IN NS ns
IN MX 10 mail
tech.magedu.com IN NS ns.tech.magedu.com
fin.magedu.com IN NS ns.fin.magedu.com
ns.tech.magedu.com IN A 172.16.5.1
ns.fin.magedu.com IN A 172.16.5.1
ns IN A 172.16.5.1
mail IN A 172.16.5.1
www1 IN A 172.16.5.1
www2 IN A 172.16.5.1
proxy IN A 172.16.5.1
pop3 IN CNAME mail
imaps IN CNAME mail
vim 172.16.zone
$TTL 600
@ IN SOA localhost. admin.local. (
01
2H
20M
7D
1D )
IN NS ns.magedu.com
1 IN NS mail.magedu.com.
1 IN PTR ns.magedu.com
1 IN PTR www1.magedu.com
1 IN PTR www2.magedu.com
1 IN PTR proxy.magedu.com
#iptables -A INPUT -d 192.168.1.0/24 -p udp --dport 53 -j REJECT
#iptables -A INPUT -d 192.168.1.0/24 -p tdp --dport 53 -j REJECT
2、对本机的sshd服务做访问控制,要求:
1)仅允许172.16.0.0/16网段的主机访问;
vim /etc/hosts.allow
sshd:172.16.
vim /etc/hosts.deny
sshd:ALL
2)仅通过ssh协议的v2版提供服务;Protocol 2
vim /etc/ssh/sshd_config
Protocol 2 //默认开户
3)仅允许root用户、develop组和dba组中的用户访问;
vim /etc/ssh/sshd_config
allowusers root
allowgroups develop dba
3、建立httpd服务器,要求:
1)提供两个基于名称的虚拟主机:
(a)www1.magedu.com,页面文件目录为/var/www/html/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.magedu.com,页面文件目录为/var/www/html/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
2)www1主机仅允许172.16.0.0/16网络中的客户机访问;www2主机可以被所有主机访问;
编译安装httpd
# yum groupinstall -y "Development Libraries" "Development Tools" "X Software Development"
# yum install -y pcre pcre-devel
# rpm -Uvh apr-1.4.6-1.i386.rpm
# rpm -Uvh apr-devel-1.4.6-1.i386.rpm
# rpm -Uvh apr-util-1.4.1-1.i386.rpm
# rpm -Uvh apr-util-devel-1.4.1-1.i386.rpm
# yum install -y pcre pcre-devel
如果没有以上版本的apr和apr-util软件包的rpm版,也可以使用源码包编译安装
安装的时候指定--prefix路径,然后在编译apache的时候,使用--apr=/path/to/apr --apr-util=/path/to/apr-util
# tar xf httpd-2.4.1.tar.bz2
# cd httpd-2.4.1
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib
# make
# make install
# mkdir -pv /var/www/html/www1
# mkdir -pv /var/www/html/www2
# echo "
" > /var/www/html/www1/index.html
www1.magedu.com
" > /var/www/html/www1/index.html
# echo "
" > /var/www/html/www2/index.html
www2.magedu.com
" > /var/www/html/www2/index.html
# vim /etc/httpd/httpd.conf
把Include /etc/httpd/extra/httpd-vhosts.conf 前面的#号去掉
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
# vi /etc/httpd/extra/httpd-vhosts.conf
DocumentRoot
"/var/www/html/www1"
ServerName
www1.magedu.com
ErrorLog
"/var/log/httpd/www1.err"
CustomLog
"/var/log/httpd/www1.access" common
Order allow,deny
Allow from 172.16.0.0/16
Deny from all
DocumentRoot
"/var/www/html/www2"
ServerName
www2.magedu.com
ErrorLog
"/var/log/httpd/www2.err"
CustomLog
"/var/log/httpd/www2.access" common
4、建立nginx服务器,要求:
1)通过8080端口提供服务;
2)提供两个基于名称的虚拟主机(都通过8080端口提供服务):
(a)www1.magedu.com:8080,页面文件目录为/www/html/www1;错误日志为/var/log/nginx/www1.err,访问日志为/var/log/nginx/www1.access;
(b)www2.magedu.com:8080,页面文件目录为/www/html/www2;错误日志为/var/log/nginx/www2.err,访问日志为/var/log/nginx/www2.access;
3)www2主机仅允许172.16.0.0/16网络中的主机访问;
4)为nginx提供sysv服务控制脚本;
5)本机的8080端口仅允许已经建立的连接请求出站,仅允许新请求和已建立连接的请求入站;
编译安装nginx:
首先下载nginx-1.0.13到本地,而后执行如下命令进行编译安装过程:
在编译过程之前首先建立用户及用户组:
# groupadd -r nginx
# useradd -r -g nginx -s /bin/false -M nginx
# tar xf nginx-1.0.13.tar.gz
# cd nginx-1.0.13
# ./configure \
--prefix=/usr \ #指定其安装路径
--sbin-path=/usr/sbin/nginx \ #指定其脚本路径
--conf-path=/etc/nginx/nginx.conf \ #指定其配置文件路径
--error-log-path=/var/log/nginx/error.log \ #错误日志存放路径
--http-log-path=/var/log/nginx/access.log \ #访问日志的路径
--pid-path=/var/run/nginx/nginx.pid \ #进程的pid文件
--lock-path=/var/lock/nginx.lock \ #锁文件所在位置
--user=nginx \ #进程运行用户
--group=nginx \ #进程运行组
--with-http_ssl_module \ #支持ssl模块(https加密)
--with-http_flv_module \ #支持流媒体模块
--with-http_stub_status_module \ #支持输出数据信息
--with-http_gzip_static_module \ #可使用静态gzip压缩
--http-client-body-temp-path=/var/tmp/nginx/client/ \ #请求内容的暂时存放位置
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ #代理服务器的暂时存放位置
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ #fastcgi的存放位置
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ #uwsgi的存放位置
--http-scgi-temp-path=/var/tmp/nginx/scgi \ #简单cgi的存放位置
--with-pcre #支持pcre
make & make install
/usr/sbin/nginx启动nginx
1、
提供SysV服务脚本/etc/rc.d/init.d/nginx此处脚本内容编辑如下:
vim /etc/rc.d/init.d/nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
chmod +x /etc/rc.d/init.d/nginx增加配置文件的执行权限
加入服务列表:
chckconfig –add nginx 吧nginx
chkconfig nginx on 设置开机自动启动
netstat –tnlp查看nginx是否已经启动
至此nginx源码编译完成
vim /etc/nginx/nginx.conf
server {
listen 8080;
server_name www1.magedu.com;
access_log /var/log/nginx/www1.magedu.com_error_log;
error_log /var/log/nginx/www1.magedu.com_access_log;
location / {
root /www/html/www1;
index index.html index.htm;
}
server {
listen 8080;
server_name www2.magedu.com;
access_log /var/log/nginx/www2.access ;
error_log /var/log/nginx/www2.err;
location / {
root /www/html/www2;
index index.html index.htm;
allow 172.16.0.0/16;
deny all;
}
}
iptables -A INPUT -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8080 -m state --state ESTABLISHED -j ACCEPT
5、为第3题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(linux);
(2)设置部门为TECH,主机名为www2.magedu.com,邮件为[email protected];
(3)此服务禁止来自于192.168.0.0/24网络中的主机访问;
vim /etc/pki/tls/openssl.cnf
修改 dir = /etc/pki/CA
cd /etc/pki/CA
#(umask 077; openssl genrsa 2048 > private/cakey.pem) 此处存放CA的密钥 private/cakey.pem是固定写法
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 自己作为CA服务器 申请发证并签证cacert.pem是固定写法
#mkdir cdrts crl newcerts
#touch index.txt serial
#echo 01 > serial
#echo 01 > crlnumber
#cd /etc/httpd/
#mkdir ssl
#cd ssl
#(umask 077; openssl genrsa 1024 > httpd.key) 生成私钥文件
#openssl req -new -key httpd.key -out httpd.csr 提起公钥www2.magedu.com
#openssl ca -in httpd.csr -out httpd.crt 请求CA颁发证书
vim /etc/httpd/conf
把Include /etc/httpd/extra/httpd-ssl.conf前的#去掉
加载ssl所需要的模块,打开第88行和第128行的注释
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so
vim /etc/httpd/extra/httpd-ssl.conf
# General setup for the the virtual host
DocumentRoot "/var/www/html/www2
ServerName www2.magedu.com:443
ServerAdmin [email protected]
ErrorLog "/var/log/httpd/error_log"
TransferLog "/var/log/httpd/access_log"
Order deny,allow
Deny from 192.168.0.0/24
打开以下注释:
SSLCertificateFile "/etc/httpd/ssl/httpd.crt"
SSLCertificateKeyFile "/etc/httpd/ssl/httpd.key"
另外:yum install mod_ssl
vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/html/www1"
ServerName www2.magedu.com
SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key
6、为第3题中的第1个虚拟主机提供php+mysql的服务,要求:
(1)通过在原有主页中添加phpinfo()测试页表明启用php成功;
(2)将mysql的root用户密码设置为"123456"(引号中的内容);
(3)通过http://www1.magedu.com/pma提供本机mysql服务的web管理接口;
安装mysql-5.5.19
1、准备数据存放的文件系统
新建一个逻辑卷,并将其挂载至特定目录即可,过程:
fdisk /dev/sda 建一个分区,大概2G 即可,类型要是8e的。如 /dev/sda5
# pvcreate /dev/sda5先创建物理卷
# vgcreate myvg /dev/sda5再创建物理卷组
# lvcreate -L 1G -n lv1 /dev/myvg 创建逻辑卷并指定大小为1G,名字为lv1
# mke2fs -j /dev/myvg/lv1格式化
其逻辑卷的挂载目录为/mydata,则# mkdir /mydata
# mount /dev/myvg/lv1 /mydata 如果想开机自启动,则可在/etc/fstab内添加内容。
而后需要创建/mydata/data目录做为mysql数据的存放目录。
# mkdir /mydata/data
这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
2、新建用户以安全方式运行进程:
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
# chown -R mysql:mysql /mydata/data
3、安装并初始化mysql-5.5.19
首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.19-linux2.6-i686.tar.gz,
# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local
# cd /usr/local/
# ln -sv mysql-5.5.19-linux2.6-i686 mysql
# cd mysql
# chown -R mysql:mysql .
# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root .
4、为mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
5、为mysql提供sysv服务脚本:
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
并查看是否有执行权限,若无 则加上执行权限
service mysqld start
添加至服务列表:
# chkconfig --add mysqld
# chkconfig mysqld on
而后就可以启动服务测试使用了(service mysql start)。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
6、输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
7、输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
8、输出mysql的库文件给系统库查找路径:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
而后让系统重新载入系统库:
# ldconfig
若无mysql库文件则:
vim /etc/ld.so.conf.d/mysql.conf
添加/usr/local/mysql/bin
则再次重新载入系统库即可
9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。
步骤如下
Vim /etc/profile
增加:PATH=$PATP:/usr/local/mysql/bin
至此mysql源码编译安装完成
mysql
>use mysql
> update user set password=password('123456') where user='root' and host='127.0.0.1';
编译安装php
tar xf php-5.3.10.tar.bz2
# cd php-5.3.10
# ./configure --prefix=/usr/local/php4httpd --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt
说明:如果前面第1步解决依赖关系时安装mcrypt相关的两个rpm包,此./configure命令还可以带上--with-mcrypt选项以让php支持mycrpt扩展。
# make
# make test
# make intall
为php提供配置文件:
# cp php.ini-production /usr/local/php/lib/php.ini
3、 编辑apache配置文件httpd.conf,以apache支持php
# vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
cd /var/www/html/www1
mv index.html index.php
vim index.php
phpinfo();
?>
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
下载phpMyAdmin-2.11.10-all-languages.tar.gz
tar xvf phpMyAdmin-2.11.10-all-languages.tar.gz
cd phpMyAdmin-2.11.10
mv * ../pma
cd ../pma
cp config.sample.inc.php config.inc.php
vim config.inc.php 在$cfg['blowfish_secret'] = 'huewfeondhzn'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
然后重新启动服务: service httpd restart
在浏览器输入网址: http://www1.magedu.com/pma
7、架设FTP服务器,要求:
(1)可以让匿名用户访问;
yum install vsftpd
chkconfig --add vsftpd
chkconfig vsftpd on
service vsftpd on
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
(2)通过基于mysql的虚拟用户为ftpuser1和ftpuser2提供文件共享服务;且ftpuser1可以上传文件、创建目录、删除文件和下载文件,但ftpuser2只能下载文件;
下载pam_mysql-0.7RC1.tar.gz
# tar zxvf pam_mysql-0.7RC1.tar.gz
# cd pam_mysql-0.7RC1
# ./configure --with-mysql=/usr/local/mysql --with-openssl
# make
# make install
mydql -p
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to vsftpd@localhost identified by '123456';
mysql> grant select on vsftpd.* to [email protected] identified by '123456';
mysql> use vsftpd
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> name char(20) NOT NULL UNIQUE KEY,
-> password char(48) NOT NULL
-> );
DESC users; 可查看users表都有什么内容
mysql> insert into users(name,password) values('ftpuser1',password('ftpuser1'));
mysql> insert into users(name,password) values('ftpuser2',password('ftpuser2'));
mysql> select * from users\G;
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
3.修改vsftpd的配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录
#useradd -s /sbin/nologin -d /var/ftpuser ftpuser
#chmod go+rx /var/ftpuser
请确保/etc/vsftpd/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
chroot_local_user=YES
为/etc/vsftpd/vsftpd.conf添加以下选项
guest_enable=YES
guest_username=ftpuser
修改/etc/vsfptd/vsftpd.conf中的pam_service_name=vsftpd为如下内容:
pam_service_name=vsftpd.my
添加一行: user_config_dir=/etc/vsftpd/virusers
mkdir /etc/vsftpd/virusers
cd /etc/vsftpd/virusers
vim ftpuser1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim ftpuser2
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
(3)FTP服务仅允许172.16.0.0/16中的主机访问,且每秒钟接受的新请求的个数不能超过10个;
#iptables -A INPUT -s 172.16.0.0/16 -p tcp --dport 21 -m state --state NEW -m limit --limit 10/second -j ACCEPT
(4)开启ftp服务的传输日志,日志文件为/var/log/vsftpd.log;
vim /etc/vsftpd.conf
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
8、设置/data目录通过nfs共享,但仅允许172.16.0.0/16网段的主机访问;
#service nfs start
#vim /etc/exports
/data 172.16.0.0/16
9、为第4题中的第1个虚拟主机提供php+mysql的服务,要求:
(1)通过在原有主页中添加phpinfo()测试页表明启用php成功;
(2)mysql服务器使用跟第6题中的同一个mysql,而php则需要编译安装最新版本;
(3)通过http://www1.magedu.com:8080/wp提供wordpress博客系统;
mysql 已安装
编译安装php
tar xf php-5.3.10.tar.bz2
# cd php-5.3.10
# ./configure --prefix=/usr/local/php4nginx --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt
说明:如果前面第1步解决依赖关系时安装mcrypt相关的两个rpm包,此./configure命令还可以带上--with-mcrypt选项以让php支持mycrpt扩展。
# make
# make test
# make intall
为php提供配置文件:
# cp php.ini-production /usr/local/php/lib/php.ini
3、 编辑apache配置文件httpd.conf,以apache支持php
# vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
cd /var/www/html/www1
mv index.html index.php
vim index.php
phpinfo();
?>
而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。
get wordpress-3.0.4-zh_CN.zip
mv wordpress-3.0.4-zh_CN.zip /var/www/html/www1/
cd /var/www/html/www1/
unzip wordpress-3.0.4-zh_CN.zip
mv wordpress ./
cp wp-config-sample.php wp-config.php
vim wp-config.php
define('DB_NAME','wordpress');
define('DB_USER','wp';
define('DB_PASSWORD','123456');
define('DB_HOST','localhost')
mysql
CREAT DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO wp@localhost IDENTIFIED BY '123456'
FLUSH PRIVILEGES;
10、通过PAM完成以下功能:
(1)禁止root用户在tty6终端登录;
# vi /etc/pam.d/system-auth
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
# vi /etc/securetty
删除tty6
(2)设置ubuntu用户登录系统后所能够打开的文件个数硬限制为200,软限制为120;
# vim /etc/security/limits.conf
ubuntu soft nofile 120
ubuntu hard nofile 200
(3)设置develop组中的用户登录系统后所能够运行的进程数的硬限制为300,软限制为200;
# vi /etc/security/limits.conf
@develop soft nproc 200
@develop hard nproc 300
11、设置telnet服务,要求:
(1)仅允许来自于192.168.0.0/24中的主机访问此服务;
(2)每个IP所能够发起的并发连接请求最多为6个;
(3)此服务所接受的最大并发连接数为20,达到20时则暂停提供服务10秒钟;
# yum install telnet-server
# vim /etc/xinetd.d/telnet
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
only_from = 192.168.0.0/24
per_source = 6
instances = 20
cps = 20 10
}
12、设定本机对ping请求的响应:
(1)本机仅接受来自于172.16.0.0/16网络的ping请求,且请求频度每秒不能超过10个;
iptables -A INPUT -s 172.16.0.0/16 -p icmp --icmp-type 8 -m limt --limit 6/second --limit-burst 10 -j ACCEPT
(2)本机可以向其它任意主机发起Ping请求;
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
13、为第4题中的nginx服务的第二个虚拟机建立访问控制,要求:
1)为此虚拟主机提供基本认证功能,并为其提供两个虚拟用户webuser1和webuser2,密码均为redhat,要求允许此两用户在提供密码的情况下访问此站点;
# /usr/local/apache/bin/htpasswd -cm /etc/nginx/.htpasswd webuser1
# /usr/local/apache/bin/htpasswd -m /etc/nginx/.htpasswd webuser2
# vi /usr/local/nginx/conf/nginx.conf
server {
listen 8080;
server_name www2.magedu.com;
root /www/html/www2/;
index index.html;
access_log /var/log/nginx/www2.access;
error_log /var/log/nginx/www2.err;
auth_basic "Hi Buddy.";
auth_basic_user_file "/etc/nginx/.htpasswd";
location / {
allow 172.16.0.0/16;
deny all;
}
}
至此,已完成所有题目,如有错误之处还望指出。
转载于:https://blog.51cto.com/rain1118/824819