目录
Content

- Chapter_1

Chapter_1

0.确认Selinux 在开启状态（enforcing）

setup->firewall->enforcing

需要重启

配置yum客户端

1.系统正常启动并默认进入runlevel 5 的X 模式，保证root通过密码redhath0217745可以正常登录。

vi /etc/inittab -> 将默认启动等级改为５

passwd root

-> 输入两次密码 请将密码记在纸上，以备不时之需

2.根据本机的设备号静态设置ip为192.168.0.X/255.255.255.0，网关为192.168.0.254，主机名为stuX.example.com，默认DNS解析服务器为192.168.0.254

setup -> network -> edit device -> eth0

setup -> network -> edit dns

注意每步退出都要save

chattr +i /etc/resolv.conf

3.划分一个500M的分区，挂到/common目录下，其文件系统类型为ext3,并将/home所在的文件系统缩减为200M

fdisk /dev/sda

-> n

-> 回车

-> +500M

-> w

partprobe /dev/sda

mkfs.ext3 /dev/sdaX

echo "/dev/sdaX /common ext3 default 0 0" >> /etc/fstab

mount -a

mount (检查)

注意：必需要写fstab文件

lvm缩小使用图形化工具(建议)

或者使用命令行方式

umount /home

e2fsck -f /dev/vg0/lv0

resize2fs /dev/vg0/lvo 200M

lvreduce -L 200M /dev/vg0/lvo

mount /dev/vg0/lv0 /home

4.创建admin,dbuser和users组

groupadd admin

groupadd dbuser

groupadd users

5.用户user1，附加组属于admin和users组，user2，附加组为admin和dbuser组，user3不属于admin组并不可在终端上登录

useradd -G admin,users user1

useradd -G admin,dbuser

useradd -s /sbin/nologin user3

6./common目录下创建adm目录，所有者为root,所属组为admin组

mkdir /common/adm

chgrp admin /common/adm

7.任何人在/common/adm目录下创建文件是都属于admin组,并且此目录下的文件只能由创建者和root删除。

chmod g+s /common/adm

chmod o+t /common/adm

8.把/etc/hosts文件复制到/common/adm下，所有都和所有组为root，保证user1对该文件有读写权限，user2用户没有任何权限，以后新加用户对此文件有读权限

cp /etc/hosts /common/adm

chown root. /common/adm

mount -o remount,acl /common

setfacl -m u:user1:rw- /common/adm/hosts

setfacl -m u:user2:--- /common/adm/hosts

chmod o+r /common/adm/hosts

9.admin组中的成员都可以收到发给admin组的邮件，发给user3的邮件会自动抄送给user1

vi /etc/aliases

->admin: user1,user2

->user3: user1,user3

newaliases

10.设置本服务器加入由192.168.0.254提供的名字为RHCE的NIS域

setup -> authication -> use nis -> nis name & server IP

11.当NIS域用户nisuser4登录的时候可以自动挂接其在192.168.0.254上的家目录/home/nisuser/nisuser4（192.168.0.254上NFS服务目录已成功导出）

vi /etc/auto.master

将

/misc /etc/auto.misc

改为

/home/nisuser /etc/auto.misc

vi /etc/auto.misc

将里面原来内容注示

增加一行

* -rw,soft,intr 192.168.0.254:/home/nisuser/&

service autofs restart

chkconfig autofs on

12.在nfs://server1:/var/ftp/pub/kernel目录下有新的内核，请下载并升级内核，在系统开机时使用新内核启动系统

rpm -ivh .....

13.设置打印机,配置IPP网络打印机，并且

测试通过

Ipp default text_based_onley chkconfig cups on

15.设置时间与server1服务器同步

Chkconfig ntpd on /status synorize

16.smb共享系统/common/adm目录为标签sharesmb，为不可见共享，只有example.com域可以访问，smb用户user1可以通过密码redhat读写此目录 工作组为GROUP

yum install samba

____________________________

vi /etc/samba/smb.conf

workgroup = GROUP

hosts allow = 192.168.0.

[sharesmb]

comment = give me RHCE

path = /common/adm

browseable = no

public = no

writable = yes

printable = no

write list = user1

---------------------------

smbpasswd -a user1

-> redhat

-> redhat

chcon -R -t public_content_t /common

chmod 775 /common/adm

semanage fcontext -a -t public_content_t "/common(/.*)?"

setsebool -P samba_export_all_rw=1

service smb restart

chkconfig smb on

smbclient //192.168.0.X/sharesmb -U user1%redhat

17.nfs共享/common/adm,保证只有example.com域可以读写

yum install nfs

vi /etc/exports

-> /common/adm 192.168.0.0/255.255.255.0(rw)

chcon -R -t public_content_t /common

semanage fcontext -a -t public_content_t "/common(/.*)?"

service nfs restart

chkconfig nfs on

18.配置web服务器监听80端口，域名stuX.example.com的本地根目为/var/www/html,将index.html下载并存放到网站主目录下

yum install httpd

下载index.html并放到/var/www/html

service httpd start

chkconfig httpd on

19.实现ftp服务器，只有example.com域的用户可以访问，不允许user1用户登录

yum install vsftpd

echo user1 >> /etc/vsftpd/ftpusers

echo "vsftpd: ALL EXCEPT 192.168.0." >> /etc/hosts.deny

setsebool -P ftp_home_dir=1

service vsftpd start

chkconfig vsftpd on

20.实现ssh服务，windows.com域不能访问

echo "sshd: 192.168.1." >> /etc/hosts.deny

21.实现pop服务，windows.com域不能访问

yum install dovecot

vi /etc/dovecot.conf

-> listen [*]

service dovecot restart

chkconfig dovecot on

iptables -F

iptables -F -t nat

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 110 -j REJECT

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 109 -j REJECT

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 995 -j REJECT

iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 110 -j REJECT

iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 109 -j REJECT

iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 995 -j REJECT

service iptables save

chkconfig iptables on

22.实现sendmail，可以在localhost和其他机器连接本机发信

yum install sendmail

vi /etc/mail/sendmail.mc

将所有127.0.0.1替换到 0.0.0.0

service sendmail start

chkconfig sendmail on

23.实现squid，更改端口为8080，只能让example.com域能访问

yum install squid

vi /etc/squid/squid.conf

将http_port 3128 改为 http_port 8080

添加acl

acl MYRHCE src 192.168.0.0/24

http_access allow MYRHCE

service squid start

chkconfig squid on

26.实现user1 在4：01 显示 hi !

su - user1

crontab -e

-> 01 04 * * * echo hi

service crond restart

chkconfig crond on

27.允许进行数据包转发 sysctl.conf

echo 1 > /proc/sys/net/ipv4/ip_for_ward

vi /etc/sysctl.conf

将

net.ipv4.ip_forward = 0

改为

net.ipv4.ip_forward = 1

28.你的邮件服务器可以从远程和本地接收邮件，user1用户可以从远程接收邮件，user1用户默认邮件保存目录为/var/spool/mail/user1

yum install dovecot

service dovecot start

chkconfig dovecot on

29.配置quota,使user1在其家目录中能成功创建60K文件，但不能创建90K的文件

mount -o remount,usrquota,grpquota /home

quotacheck -cvug /home

edquota -u user1 (软硬限额小于90K大于60K)

quotaon /home

echo "quotaon /home" >> /etc/rc.local

vi /etc/fstab

将home所挂载的那一行 挂载参数一列 改成 defaults,usrquota,grpquota

24.实现imaps，只有example.com能使用，并且设置dovocet的imaps key ！(附加题)

iptables -A INPUT ! -s 192.168.0.0/24 -p tcp --dport 993 -j REJECT

iptables -A INPUT ! -s 192.168.0.0/24 -p udp --dport 993 -j REJECT

service iptables save

chkconfig iptables on

mv /etc/pki/dovecot/private/dovecot.pem /etc/pki/dovecot/private/dovecot.pem.orig

mv /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/certs/dovecot.pem.orig

cd /etc/pki/dovecot

vi /etc/pki/dovecot/dovecot-openssl.cnf (按要求修改OU CN email-adress nscretType等相关内容)

/usr/share/doc/dovecot-1.0/examples/mkcert.sh

接下来需要对/etc/dovecot.conf进行设置，主要修改的地方是：

ssl_disable=no

ssl_cert_file=/etc/pki/dovecot/certs/dovecot.pem

ssl_key_file=/etc/pki/dovecot/private/dovecot.pem

ssl_parameters_regenerate=168

verbose_ssl=no

service dovecot restart

chkconfig dovecot on

30.配置虚拟主机wwwX.example.com其根目录为/var/www/wwwX.example.com. 目录/var/www/html/input,只能bob用户密码bobpass上传文件。(之前的主机仍可用)

vi /etc/httpd/conf/httpd.conf

将

#NameVirtualHost *:80

井号去掉 改成

NameVirtualHost *:80

最后追加

<VirtualHost *:80>

ServerAdmin root@stuX.example.com

DocumentRoot /var/www/html

ServerName stuX.example.com

ErrorLog logs/stuX.example.com-error_log

CustomLog logs/stuX.example.com-access_log common

<Directory "/var/www/html/input">

Options none

AllowOverride AuthConfig

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerAdmin root@wwwX.example.com

DocumentRoot /var/www/wwwX.example.com

ServerName wwwX.example.com

ErrorLog logs/wwwX.example.com-error_log

CustomLog logs/wwwX.example.com-access_log common

</VirtualHost>

mkdir wwwX.example.com 下载index.html放入此目录

mkdir /var/www/html/input

chown apache. /var/www/html/input

cd /var/www/html/input

vi .htaccess

AuthName "RRRRHCE"

AuthType basic

AuthUserFile /etc/httpd/conf/.htpasswd

<Limit GET>

require user user1

</Limit>

<Limit PUT POST>

require user user1

</Limit>

htpasswd -c /etc/httpd/conf/.htpasswd user1

-> redhat

-> redhat

service httpd restart

chkconfig httpd on

31.配置虚拟主机wwwX.example.com其根目录为/var/www/wwwX.example.com. user1用户对/var/www/html/input有写入权限。(之前的主机仍可用)

vi /etc/httpd/conf/httpd.conf

将

#NameVirtualHost *:80

井号去掉 改成

NameVirtualHost *:80

最后追加

<VirtualHost *:80>

ServerAdmin root@stuX.example.com

DocumentRoot /var/www/html

ServerName stuX.example.com

ErrorLog logs/stuX.example.com-error_log

CustomLog logs/stuX.example.com-access_log common

</VirtualHost>

<VirtualHost *:80>

ServerAdmin root@wwwX.example.com

DocumentRoot /var/www/wwwX.example.com

ServerName wwwX.example.com

ErrorLog logs/wwwX.example.com-error_log

CustomLog logs/wwwX.example.com-access_log common

</VirtualHost>

mkdir /var/www/wwwX.example.com 下载index.html放入此目录

mkdir /var/www/html/input

chown apache.user1 /var/www/html/input

chmod 770 /var/www/html/input

service httpd restart

chkconfig httpd on