1)设定eth0网卡地址为192.168.0.11,子网为255.255.255.0,MTU的值为6000
#ifconfig eth0 192.168.0.11 netmask 255.255.255.0 mtu 6000
2)用route来增加一个路由,目的网段为192.168.1.0
#route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
3)删除以上建立的路由信息
#route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
4)加入默认网关192.168.0.2
#route add default gw 192.168.0.2
5)删除默认网关192.168.0.2
#route del default gw 192.168.0.2
6)用ip命令来操作管理网络
6.1)用ip命令显示eth0的介面信息
6.2)关闭eth0网卡
6.3)更改eth0网卡代号为ckhitler,并查看结果
6.4)更改eht0网卡的MAC地址为bb:bb:bb:bb:bb:bb,并查看结果
6.5)开启eth0网卡
#ip link show
#ip -s link show eth0
#ip link set eth0 down
#ip link set eth0 name ckhiler
#ip link show
#ip link set eth0 address bb:bb:bb:bb:bb:bb
#ip link show
#ip link set eth0 up
7)启用dhcp的client
#dhclient eth0
8)PING网关地址192.168.0.1,判断MTU包,是否在1000以内
#ping -c 2 -s 1000 -M do 192.168.0.1
9)PING网关地址192.168.0.1,判断MTU包,是否在1000以内
#ping -c 2 -s 2000 -M do 192.168.0.1
10)追踪到www.britepic.org的路由表
#traceroute -n www.britepic.org
11)用netstat显示端口信息
11.1)显示TCP/UDP端口状态为LISTEN的信息
11.2)显示TCP/UDP端口状态为ESTABLISHED的信息
#netstat -tunl
#netstat -tun
12)用nslookup来查询www.britepic.org域名的正解信息
#nslookup www.britepic.org
13)用nslookup来查询202.108.9.39地址的反解信息
#nslookup 202.108.9.39
14)用tcpdump来监视网络数据包信息
14.1)只监视网卡eth0的网络数据包
14.2)只监视网卡eth0及端口25的网络数据包
14.3)只监视网卡eth0及端口25的网络数据包,并用16进程方式显示
14.4)只监视网卡eth0及端口25和源地址为192.168.0.3的网络数据包,并用16进程方式显示
14.5)只监视网卡eth0及端口25和源地址为192.168.0.3而长度为10240的网络数据包
14.6)只监视网卡eth0及端口25和源地址为192.168.0.3的网络数据包,以Snarf的形式抓完整的数据包到/tmp/data.cap文件
#tcpdump -i eth0 -nn
#tcpdump -i eth0 -nn port 25
#telnet 192.168.1.12 25
#tcpdump -i lo -nn -X ‘port 25’
#tcpdump -i eth0 -nn ‘port 25 and src host 192.168.0.3’ -X
#tcpdump -i eth0 -s 10240 -nn ‘port 25 and src host 192.168.0.3’ -X
#tcpdump -i eth0 -nn ‘port 25 and src host 192.168.0.3’ -s0 -w /tmp/data.cap
15)用nc命令监视本机地址端口22的信息,并将信息写入test.txt文件
#nc -vv -o test.txt 192.168.0.12 22
16)用nmap扫描192.168.0.12地址的TCP/UDP端口
#nmap -sTU 192.168.0.12
17)用nmap扫描192.168.0.0/24网段活跃的主机
#nmap -sP 192.168.0.0/24
18)用nmap扫描192.168.0.0/24网段的端口,端口范围在1-1024
#nmap -p 1-1024 192.168.0.0/24
1).更改Shell
1.1).利用PS1变量改变命令提示,新提示符包括使用者帐号名称(u),主机名(h),完整路径(w),时间(A),历史命令个数(\#)
1.2).更改ls显示目录文件的颜色为白色字体,蓝色背景
参考答案:
PS1='[\u@\h \w \A #\#]\$ ‘
echo $LS_COLORS
declare -x LS_COLORS=$LS_COLORS:”di=00;37;44″
2).显示本SHELL的PID值
参考答案:
echo $$
3).显示上个命令的回传码
参考答案:
echo $?
4).提示使用者 30 秒內输入自己的名字,将该输入字串存储到 named 变量
参考答案:
read -p “Please input your name: ” -t 30 named
5).变量运算
5.1).进行 100+300+50 的加运算,将结果存入数值变量sum
5.2).定义a=3,b=5,输出a+b的和
5.3).显示输出Your cost is $5.00
参考答案:
declare -i sum=100+300+50
echo $sum
a=3
b=5
echo $[$a + $b]
echo Your cost is \$5.00
6).让sum变量变成环境变量
参考答案:
declare -x sum
export|grep sum
7).将sum变量变成只读变量
参考答案:
declare -r sum
sum=love
8).立即将当前的历史命令写到history档案中
参考答案:
history -w
9).显示所有stty的参数,将erase更改为ctrl+h
参考答案:
stty -a
stty erase ^h
10).将erase更改为默认的后退键(backspace)
参考答案:
stty erase ^?
11).打印输出PATH 变量的第五个路径
参考答案:
echo $PATH|cut -d ‘:’ -f 5
12).打印输出PATH变量的第3列与第5列
参考答案:
echo $PATH | cut -d ‘:’ -f 3,5
13).输出export命令的信息,但要求是每行第12字符以后的字串
参考答案:
export | cut -c 12-
14).显示/etc/passwd 內容是以 : 来分隔的,以字符形式来排序第三栏
参考答案:
cat /etc/passwd | sort -t ‘:’ -k 3
15).显示/etc/passwd 內容是以 : 来分隔的,以数字形式来排序第三栏
参考答案:
cat /etc/passwd | sort -t ‘:’ -k 3 -n
16).聚合last命令的帐号一栏
参考答案:
last | cut -d ‘ ‘ -f1 | sort | uniq -c
17).将ls -l /home资料存一份到 ~/homefile ,同时输出到屏幕
参考答案:
ls -l /home | tee ~/homefile | more
18).将ls -l /资料追加一份到~/homefile下,同时输出到屏幕
参考答案:
ls -l / | tee -a ~/homefile | more
19).打印输出/etc/passwd文件,将冒号 (:) 删除
参考答案:
cat /etc/passwd | tr -d ‘:’
20).将 /etc/passwd 与 /etc/shadow 相关资料整合成一栏
参考答案:
join -t ‘:’ /etc/passwd /etc/shadow
21).将 /etc/passwd 与 /etc/group 整合,依据的是/etc/passwd第4列的GID,及/etc/group第3列的GID
参考答案:
join -t ‘:’ -1 4 /etc/passwd -2 3 /etc/group
22).将 /etc/passwd 与 /etc/shadow 同一行贴在一起
参考答案:
paste /etc/passwd /etc/shadow
23).通过ulimit,显示所有当前资源极限
参考答案:
ulimit -a
24).通过ulimit设置创建文件的最大块为1,一块为512字节,拷贝passwd文件进行测试
参考答案:
ulimit -f 1
cp /etc/passwd .
25).通过ulimit设置创建文件的最大块数为无限制
参考答案:
ulimit -f unlimited
26).查看/etc/passwd文件,依据每行的第二个字符进行排序
参考答案:
cat /etc/passwd|sort -k 1.2
27).查看/etc/yp.conf是否有拼写错误
参考答案:
aspell check /etc/yp.conf
28).xargs的用法
28.1).新建三个文件:1.txt,2.txt,3.txt
28.2).用ls -l将三个文件名重定向到delete.txt
28.3).用xargs通过delete.txt将三个文件删除
参考答案:
touch 1.txt 2.txt 3.txt
ls -l 1.txt 2.txt 3.txt|awk ‘{print $9}’>delete.txt
cat delete.txt |xargs rm -f
29).BASH内置的命令集
29.1).查看内置的命令集
29.2).尝试打开BASH下vi属性,按esc键进入vi的命令操作介面,敲i进入插入,敲入hacker,敲esc键,用dd删除当前行
29.3).关闭BASH的vi属性
参考答案:
set -o
set -o vi
set +o vi或用bash命令恢复
30.1).在shell下搜索之前最近输入的以aspell为关键词的命令
30.2).输入aspell check /etc/pnm2ppa.conf,将光标移到行首,再将光标移到行尾
30.3).剪切命令行中光标所在处之前的所有字符(不包括自身),粘贴刚才剪切的命令行
30.4).退到行首,剪切命令行中光标所在处之后的所有字符,包括自身
参考答案:
ctrl+r
输入aspell
Ctrl+a
Ctrl+e
Ctrl+u
Ctrl+y
Ctrl+a
Ctrl+k1)在每行的行首增加字符串HITLER
参考答案:
:g/^/s//HITLER/g
2)在每行的行尾添加LOVE
参考答案:
:g/$/s//LOVE/g
3)从文本的第3行至最后一行的行首全部插入字符串“HACKER”
参考答案:
:3,$s/^/HACKER/
4)在整个文件中的root替换为特定字符串hacker
参考答案:
:%s/root/hacker/g
5)将3到7行的sbin换成xxxx
参考答案:
:3,7s/sbin/xxxx/
6)移动光标,到5行,到行尾,到行首,下移10行,上移7行,到屏幕的底层,到屏幕的顶层,到屏幕的中间
参考答案:
5G,$,0,10+,7-,L,H,M
7)移动到10行,左移10个字符,删除到行首,删除到行尾
参考答案:
10G,10->,d0,d$
8)将1行到5行之间的内容拷贝到第10行下
参考答案:
:1,5 co 10
9)将1行到3行之间的内容移至到第5行下
参考答案:
:1,3 m 5
10)将1行到15行之间的内容删除
参考答案:
:1,15 d
11)执行shell命令ls -l /tmp
参考答案:
:! ls -l /tmp
12)将命令ls -l /root的输出结果放到当前行
参考答案:
!!ls -l /root
13)在打开的文件file中光标所在处读入/etc/passwd
参考答案:
:r /etc/passwd
14)仅仅把第20~59行之间的内容存盘成文件/tmp/1
参考答案:
:20,59w /tmp/1
15)移动到第1行,对当前的行到文件尾的数据进行排序
参考答案:
G
!}sort
16)设置vi中色彩高亮
参考答案:
syntax on
17)显示在vi状态行上的vi状态信息,包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比
参考答案:
ctrl+G1)将/etc/man.config复制到/tmp目录下,用gzip压缩
参考答案:
cd /tmp
cp /etc/man.config .
gzip man.config
2)查看/tmp/man.config.gz文件里的内容
参考答案:
zcat man.config.gz
3)解压缩man.config.gz
参考答案:
gzip -d man.config.gz
4)将man.config.gz用最佳压缩比压缩,且包留副本
参考答案:
gzip -9 -c man.config >man.config.gz
5)将man.config用bzip2压缩
参考答案:
bzip2 -z man.config
6)读man.config.bz2的内容
参考答案:
bzcat man.config.bz2
7)解压缩man.config.bz2
参考答案:
bzip2 -d man.config.bz2
8)用最佳的压缩比例压缩,且保留副本
参考答案:
bzip2 -9 -c man.config>man.config.bz2
9)用tar的gzip压缩打包/etc目录下所有文件
参考答案:
tar -zcvf /tmp/etc.tar.gz /etc
10)查看etc.tar.gz文件里的内容
参考答案:
tar -tzvf /tmp/etc.tar.gz
11)用tar的bzip2压缩打包/etc/目录下的所有文件
参考答案:
tar -jcvf /tmp/etc.tar.bz2 /etc
12)查看etc.tar.bz2文件中的内容
参考答案:
tar -jtvf etc.tar.bz2
13)只解压缩etc.tar.gz包中etc/passwd文件
参考答案:
tar -zxvf /tmp/etc.tar.gz etc/passwd
14)用tar的gzip压缩打包/etc/目录下的文件,并加上权限
参考答案:
tar -zcvpf /tmp/etc.tar.gz /etc
15)用tar的gzip压缩打包/etc/目录下比2007-06-01新的文件
参考答案:
tar -N ‘2007/06/01’ -zcvf etc.tar.gz /etc
16)用tar的gzip压缩打包/etc/所有文件,但不包括/etc/passwd
参考答案:
tar –exclude /etc/passwd -zcvf myfile.tar.gz /etc
17)备份/dev/sda的mbr
参考答案:
dd if=/dev/sda ōf=/tmp/mbr.back bs=512 count=1
18)用cpio备份/etc/目录下所有的普通文件
参考答案:
find /etc -type f | cpio -o > /tmp/etc.cpio
19)用cpio解压缩/tmp/etc.cpio
参考答案:
cpio -idvm < /tmp/etc.cpio
1)读分区/dev/sda1的文件系统详细信息
参考:
dumpe2fs /dev/sda1
2)查看LINUX内核支持的文件系统
参考:
ls -l /lib/modules/`uname -r`/kernel/fs
3)查看已经启用的档案系统
参考:
cat /proc/filesystems
4)将系统内的所有特殊档案格式及名称都列出來
参考:
df -aT
5)用fdisk分割磁盘/dev/sdb.分区如下:
sdb1为主分区1200M
sdb2为扩展分区1200M
sdb5为逻辑分区500M
sdb6为逻辑分区300M
sdb7为逻辑分区400M
其中sdb6为swap,sdb7为vfat32
6)将sdb5格式化为ext3,且名称为logical,block为2048,inode为4096
参考:
mke2fs -j -L logical -b 2048 -i 4096 /dev/sdb5
7)用fsck检查/dev/sdb5,显示进度,指定文件系统为ext3
参考:
fsck -C -t ext3 /dev/sdb5
8)新建/mnt/sdb5目录,挂载/dev/sdb5分区
参考:
mkdir /mnt/sdb5
mount -t ext3 /dev/sdb5 /mnt/sdb5
9)将/dev/sdb5重新挂载,并加入ro
参考:
mount -o remount,ro /mnt/sdb5/
10)将/mnt/sdb5卸载
参考:
umount /mnt/sdb5
11)将label为logical的分区挂载到/mnt/sdb5
参考:
mount -t ext3 -L logical /mnt/sdb5
12)将/home目录挂载到/tmp/home上去
参考:
mkdir /tmp/home
mount –bind /home /tmp/home
13)建立sdc40设备,指定为存储设备,主设备号3,次设备号10
参考:
mknod /dev/sdc40 b 3 10
13)改变/dev/sdb5设备的label为sdb5,并用dumpe2fs查看显示结果
参考:
e2label /dev/sdb5 sdb5
dumpe2fs -h /dev/sdb5|grep “volume name”
14)格式化/dev/sdb7为ext2,用tune2fs -j将其转化为ext3
参考:
mkfs -t ext2 /dev/sdb7
tune2fs -j /dev/sdb7
15)设定/dev/sdb7超级块属性:
15.1)设置每两次进行文件系统完整性检查的最大挂装次数为0,即不检查
15.2)设置每两次进行文件系统完整性检查的时间间隔为0,即不检查
15.3)列出/dev/sdb7的超级块属性
参考:
tune2fs -c 0 -i 0 /dev/sdb7
tune2fs -l /dev/sdb7
16)当本系统第一次使用ext3文件系统时,可能要将ext3模块重新加载进initrd中
参考:
mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
17)查看主板上IDE接口信息
参考:
lspci -v
18)查看硬盘/dev/sdb的读写效能
参考:
hdparm -Tt /dev/sdb
19)将/dev/sdb6格式化为swap,并用swapon激活,用free查看,最后关闭/dev/sdb6的swap
参考:
mkswap /dev/sdb6
swapon /dev/sdb6
free -m
swapoff /dev/sdb6
free -m
20)用dd建立交换文件,用swapon激活
参考:
dd if=/dev/zero ōf=/tmp/swap bs=4k count=16382
mkswap /tmp/swap
free -m
swapon /tmp/swap
free -m
swapoff /tmp/swap
1)建立测试组gtest,测试用户test1,test2,test3以上两个测试用户的初始组为gtest参考答案:
groupadd gtest
useradd -m -g gtest test1
useradd -m -g gtest test2
useradd -m -g gtest test3
passwd test1
passwd test2
passwd test3
2)让/dev/sdb5支持quota
参考答案:
vi /etc/fstab
/dev/sdb5 /mnt/sdb5 ext3 usrquota,grpquota 1 2
3)重新挂载/dev/sdb5,并检查结果
参考答案:
mount -o remount /dev/sdb5
cat /etc/mtab|grep sdb5
4)扫描磁盘使用者情况,产生aquota.group和aquota.user
参考答案:
quotacheck -avug
ls /mnt/sdb5/* -l
5)启动quota
参考答案:
quotaon -avug
6)编辑用户test1的block软限制为4M,硬限制为5M
参考答案:
edquota -u test1
/dev/sdb5 0 4096 5120 0 0 0
7)切换到test1用户,用dd产生三个测试文件,分别是3M,4M,5M,观察结果
参考答案:
chmod 777 /mnt/sdb5
su – test1
cd /mnt/sdb5
dd if=/dev/zero ōf=test3 bs=1024k count=3
dd if=/dev/zero ōf=test3 bs=1024k count=4
dd if=/dev/zero ōf=test3 bs=1024k count=5
8)返回root用户,编辑用户test2的inodes,软限制60,硬限制100
参考答案:
edquota -u test2
/dev/sdb5 2 0 0 1 60 100
9)写一个测试inodes脚本,要求在/mnt/sdb5上新建200个文件
参考答案:
vi test.sh
#!/bin/bash
declare -i i
for ((i=1; i<=200; i++))
do
touch file$i;
done
10)将test1的quota复制给test3
参考答案:
edquota -p test1 test3
11)设定限定时间为1天
参考答案:
edquota -t
12)查看test1,test2,test3用户的quota
参考答案:
quota -vu test1 test2 test3
13)编辑组gtest的block的soft为30000,hard为40000,inodes的soft为1000,hard为2000
参考答案:
edquota -g gtest
/dev/sdb5 3082 30000 40000 2 1000 2000
14)查看gtest组的quota
参考答案:
quota -vg gtest
15)查看系統內所有的具有quota的文件系统信息
参考答案:
repquota -av
16)查看用户和组的quota
参考答案:
repquota -aug
17)关闭系统所有的quota
参考答案:
quotaoff -a
18)测试test1和test2的quota是否已经关闭
参考答案:
su – test1
cd /mnt/sdb5
dd if=/dev/zero ōf=test10 bs=1024k count=10
exit
su – test2
cd /mnt/sdb5
sh -x test.sh
exit1)定制策略
1.1)设定INPUT为ACCEPT
1.2)设定OUTPUT为ACCEPT
1.3)设定FORWARD为ACCEPT
参考答案:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
2)定制源地址访问策略
2.1)接收来自192.168.0.3的IP访问
2.2)拒绝来自192.168.0.0/24网段的访问
参考答案:
iptables -A INPUT -i eth0 -s 192.168.0.3 -j ACCPET
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP
3)目标地址192.168.0.3的访问给予记录,并查看/var/log/message
参考答案:
iptables -A INPUT -s 192.168.0.3 -j LOG
4)定制端口访问策略
4.1)拒绝任何地址访问本机的111端口
4.2)拒绝192.168.0.0/24网段的1024-65534的源端口访问SSH
参考答案:
iptables -A INPUT -i eth0 -p tcp –dport 111 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 –sport 1024:65534 –dport ssh -j DROP
5)定制CLIENT端的防火墙访问状态
5.1)清除所有已经存在的规则;
5.2)设定预设策略,除了INPUT设为DROP,其他为ACCEPT;
5.3)开放本机的lo可以自由访问;
5.4)设定有相关的封包状态可以进入本机;
参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state –state INVALID -j DROP
6)定制防火墙的MAC地址访问策略
6.1)清除所以已经存的规则;
6.2)将INPUT设为DROP
6.3)将目标计算机的MAC设为ACCEPT
参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -A INPUT -m mac –mac-source 00-C0-9F-79-E1-8A -j ACCEPT
7)设定ICMP包,拒绝除192.168.6.0网段的所有ICMP数据包进入服务器
参考答案:
iptables -A INPUT -s ! 192.168.6.0 -p icmp -j DROP
8)定制防火墙的NAT访问策略
8.1)清除所有策略
8.2)重置ip_forward为1
8.3)通过MASQUERADE设定来源于192.168.6.0网段的IP通过192.168.6.217转发出去
8.4)通过iptables观察转发的数据包
参考答案:
iptables -F
iptables -X
iptables -Z
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.6.0 -o 192.168.6.217 -j MASQUERADE
iptables -L -nv
9)定制防火墙的NAT访问策略
9.1)清除所有NAT策略
9.2)重置ip_forward为1
9.3)通过SNAT设定来源于192.168.6.0网段通过eth1转发出去
9.4)用iptables观察转发的数据包
参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.6.217
iptables -L -nv
10)端口转发访问策略
10.1)清除所有NAT策略
10.2)重置ip_forward为1
10.3)通过DNAT设定为所有访问192.168.6.217的22端口,都访问到192.168.6.191的22端口
10.4)设定所有到192.168.6.191的22端口的数据包都通过FORWARD转发
10.5)设定回应数据包,即通过NAT的POSTROUTING设定,使通讯正常
参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.6.217 -p tcp –dport 22 -j DNAT –to-destination 192.168.6.191:22
iptables -A FORWARD -p tcp -d 192.168.6.191 –dport 22 -j ACCEPT
iptables -t nat -I POSTROUTING -p tcp –dport 22 -j MASQUERADE
1)将/dev/sdb硬盘进行分区,分成两个区,指定类型为LVM
参考答案:
fdisk /dev/sdb
LVM的类型为8e
2)让内核读取最新的分区信息
参考答案:
partprobe
3)扫描pv卷,并将sdb1/sdb2指定为PV格式
参考答案:
pvscan
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvscan
4)查看PV的详细状态
参考答案:
pvdisplay
5)用sdb1和sdb2建立vg,vg名为ckvg,并指定PE为32MB
参考答案:
vgcreate -s 32M ckvg /dev/sdb1 /dev/sdb2
6)扫描vg
参考答案:
vgscan
7)显示ckvg的详细信息
参考答案:
vgdisplay
8)将sdb2从ckvg中抽除,并查看ckvg的详细信息
参考答案:
vgreduce ckvg /dev/sdb2
9)将sdb2加入到ckvg中,并查看ckvg的详细信息
参考答案:
vgextend ckvg /dev/sdb2
10)在ckvg上创建lv,空间大小为1000M,vl取名为cklv
参考答案:
lvcreate -L 1000M -n cklv ckvg
11)用ls查看新创建的lv
参考答案:
ll /dev/ckvg/cklv
12)搜索并显示lv
参考答案:
lvscan
lvdisplay
13)格式化cklv,新建目录/mnt/lvm,并将cklv挂载到/mnt/lvm
参考答案:
mke2fs -j /dev/ckvg/cklv
mkdir /mnt/lvm
mount -t ext3 /dev/ckvg/cklv /mnt/lvm/
14)扩展空间
@)卸载cklv
@)增加新分区/dev/sdb3
@)将/dev/sdb3做成pv
@)将/dev/sdb3加入到ckvg
@)将cklv再扩展1000M
@)用resize2fs处理cklv
@)从新挂载cklv
参考答案:
umount /mnt/lvm
fdisk /dev/sdb
partprobe
pvcreate /dev/sdb3
vgextend ckvg /dev/sdb3
vgdisplay
pvscan
lvextend -L +1000M /dev/ckvg/cklv
lvdisplay
resize2fs -f /dev/ckvg/cklv
mount -t ext3 /dev/ckvg/cklv /mnt/lvm/
df -h
15)移除LVM
@)先卸载系统上面的 LVM 磁区;
@)使用 lvremove 移除 LV ;
@)使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
@)使用 vgremove 移除 VG:
@)使用 pvremove 移除 PV;
@)最后,使用 fdisk 修改 ID 回來啊!
参考答案:
umount /mnt/lvm
lvremove /dev/ckvg/cklv
vgchange -a n ckvg
vgremove ckvg
pvremove /dev/sdb1
pvremove /dev/sdb2
pvremove /dev/sdb3
1)列出logrotate套件所有的目录和文档参考答案:
rpm -ql logrotate
2)列出logrotate套件的所有资讯
参考答案:
rpm -qi logrotate
3)列出logrotate套件的所有配置文档
参考答案:
rpm -qc logrotate
4)列出zip-2.3-27.i386.rpm包要求的环境
参考答案:
rpm -qpR zip-2.3-27.i386.rpm
5)用RPM校验/etc/crontab有没有被修改过
参考答案:
rpm -Vf /etc/crontab
6)修改/etc/crontab,再校验一下
参考答案:
echo “00 1 * * * root cat /etc/passwd” >> /etc/crontab
rpm -Vf /etc/crontab
7)重建rpm资讯库
参考答案:
rpm –rebuilddb
8)安装coreutils的SRPM包,并生成RPM套件
参考答案:
rpmbuild -ba coreutils.spec
9)承上题,生成SRPM套件
rpmbuild -bb coreutils.spec
10)自己建立一个RPM包
@)在SOURCES下新建一个SHELL
@)将shell,打包成tar.gz包
@)进行SPECS目录,编辑spec文件
@)根据生成的spec,打包成rpm包
@)安装rpm包,并校验
spec文件格式如下:
格式如下:
Summary: This is a demo RPM package.
Name: rpmbuild
Version: 1.0
Release: 1
License: GPL
Group: rpmbuild
Source: rpmbuild.tar.gz
Url: http://ckhitler.lupaworld.com
Packager: ckhitler
%descrīption
This package is just a demo RPM.
%prep
%setup -c
%install
install -m 755 rpmbuild.sh /usr/local/bin/rpmbuild.sh
%files
/usr/local/bin/rpmbuild.sh
参考答案:
cd /usr/src/RedHat/SOURCES
echo “i love you qiu ming” > rpmbuild.sh
tar cvzf rpmbuild.tar.gz rpmbuild.sh
cd /usr/src/redhat/SPECS
vi rpmbuild.spec
Summary: This is a demo RPM package.
Name: rpmbuild
Version: 1.0
Release: 1
License: GPL
Group: rpmbuild
Source: rpmbuild.tar.gz
Url: http://ckhitler.lupaworld.com
Packager: ckhitler
%descrīption
This package is just a demo RPM.
%prep
%setup -c
%install
install -m 755 rpmbuild.sh /usr/local/bin/rpmbuild.sh
%files
/usr/local/bin/rpmbuild.sh
rpmbuild -bb rpmbuild.spec
rpm -ivh /usr/src/redhat/RPMS/i386/rpmbuild-1.0-1.i386.rpm
rpm -qi rpmbuild
10)用cpio将rpm包转换cpio文件,再将其导入到新增的目录下
参考答案:
rpm2cpio sysstat-5.0.5-1.i386.rpm>sysstat.cpio
mkdir sysstat
mv sysstat.cpio sysstat
cpio -it<sysstat.cpio
1.1).下载lzo2和openvpn软件包,网址rpmfind.net
1.2).确认是否以加载tun模组,如未加载,手工加载,注:RedHat EL3(U5)以上均以在内核编译完成
1.3).在客户端/服务端安装:lzo2-2.02-2.el3.rf.i386.rpm,lzo2-devel-2.02-2.el3.rf.i386.rpm,openvpn-2.0.9-1.el3.rf.i386.rpm
参考答案:
lsmod|grep tun
modprobe tun
rpm -ivh lzo2-2.02-2.el3.rf.i386.rpm
rpm -ivh lzo2-devel-2.02-2.el3.rf.i386.rpm
rpm -ivh openvpn-2.0.9-1.el3.rf.i386.rpm
2.1).更新rpm资料库
2.2).查看OpenVPN的所有相关文档
参考答案:
updatedb
locate openvpn
3).服务端操作:
3.1).将模版中的easy-rsa的目录链接到/etc/openvpn/的路径下
3.2).查看/etc/openvpn/easy-rsa/目录下所有文件
3.3).进入/etc/openvpn/easy-rsa/目录,更改所有脚本为可执行
3.4).执行vars脚本建立环境变量,之后执行clean-all脚本清空从前的认证
3.5).执行build-ca脚本生成根证书CA,Common Name指定为主机名,其余直接按回车,默认为vars中的设置
3.6).查看生成的根证书
3.7).执行build-dh脚本生成Diffie-Hellman参数文件(dh-pem文件),用作SSL/TLS连接
3.8).查看产生的dh-pem文件
参考答案:
服务器端:
ln -s /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn
ll /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/
chmod 755 *
. ./vars
./clean-all—清空从前的认证
./build-ca
输入上面的命令后,会输入一长串字符,对于Country Name、State or Province Name等等参数都在vars文件中设置,可直接回车。
但Common Name (eg, your name or your server’s hostname) []:必须输入你的服务器名字(你想取的任意名字)。
这里输入的是主机名(pmg)
ll keys/
./build-dh
ll keys/
4.1).生成服务器的ca证书,提示your name or your server’s hostname:时,输入server,其余回答均为默认
4.2).查看生成的服务器证书文件
4.3).生成客户端的ca证书,提示your name or your server’s hostname:时,输入client,其余回答均为默认
4.4).查看生成的客户端证书文件
参考答案:
./build-key-server server
your name or your server’s hostname:输入的是server
ll keys/
./build-key client
注意:这里你输入的your name or your server’s hostname:名,一定是client(证书名)
不能写错,否则就会出现SSL验证失败
ll keys/
5.1).为防止恶意攻击(如DOS、UDP port flooding),生成一个”HMAC firewall”
5.2).查看生成的ta文件
参考答案:
openvpn –genkey –secret /etc/openvpn/easy-rsa/keys/ta.key
ll keys/
6.1).执行脚本make-crl生成吊销证书链文件
6.2).查看生成的吊销证书链文件
参考答案:
./make-crl vpncrl.pem
ll keys/
7.1).将模版配置文件复制到/etc/openvpn目录下
7.2).将/etc/openvpn/easy-rsa/keys目录下证书复制到/etc/openvpn
7.3).编辑/etc/openvpn/server.conf文件
7.4).监听所有本机上的网络接口(默认)
7.5).设定的监听端口,默认是1194,修改为8205
7.6).设定在传输层使用的协议,设定UDP协议(默认)
7.7).设定传输设备节点为tun(三层设备),tap为二层设备,要加入IP路由所以选择tun(默认)
7.8).设定根证书CA、服务器证书、以及服务器密钥文件的位置为/etc/openvpn/keys(默认)
7.9).设定Server端虚拟出来的VPN网段,更改为server 10.88.99.0 255.255.255.0
7.10).设定虚拟地址租约文件,用于记录某个Client获得的IP地址(默认)
7.11).设定本机的虚拟地址为10.88.99.1,子网掩码为255.255.255.0
7.12).设定接入的Client之间能够被允许互相访问
7.13).设定允许单证书多连接,Client使用的CA的Common Name有重复也可连接
7.14).设定每10秒通过ping来确定Client存活,超过120秒无反馈为失效(默认)
7.15).设定ta密钥的路径,server端后面的数字肯定使用0,client使用1
7.16).使用Lzo功能对虚拟链路进行压缩,服务端/客户端要同时开启(默认)
7.17).设定状态记录日志路径为/var/log/openvpn-status.log
7.18).设定OpenVPN的服务日志路径/var/log/openvpn.log
7.19).每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后
7.20).设定OpenVPN的dubug等级,使用默认3级(默认)
7.21).保存退出
参考答案:
cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn
cp /etc/openvpn/easy-rsa/keys /etc/openvpn -a
vi /etc/openvpn/server.conf
port 8205
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.88.99.0 255.255.255.0
ifconfig-pool-persist ipp.txt
ifconfig 10.88.99.1 255.255.255.0
client-to-client
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/keys/ta.key 0
comp-lzo
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
保存退出
8.1).启动VPN服务端
8.2).查看openvpn.log
8.3).查看VPN的端口号
8.4).查看VPN虚拟的IP地址及路由
参考答案:
服务端:
openvpn –config /etc/openvpn/server.conf
tail -f /var/log/openvpn.log
netstat -anp|grep 8205
ifconfig
route
9).客户端操作
9.1).将客户端的配置模板COPY到/etc/openvpn
9.2).新建/etc/openvpn/keys目录,用于存放客户端的CA证书
参考答案:
客户端:
cp /usr/share/doc/openvpn-2.0.9/sample-config-files/client.conf /etc/openvpn/
#ln -s /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn
mkdir /etc/openvpn/keys
10).服务端操作
10.1).将服务端生成的CA根证书COPY到客户端keys目录下
10.2).将服务端生成的客户端CA证书COPY到客户端keys目录下
10.3).将服务端生成的ta证书COPY到客户端keys目录下
参考答案:
服务端:
cd /etc/openvpn/keys/
scp ca.* 192.168.6.217:/etc/openvpn/keys
scp client.* 192.168.6.217:/etc/openvpn/keys
scp ta.* 192.168.6.217:/etc/openvpn/keys
11).配置client.conf
11.1).设定远程Server的IP地址和端口
11.2).始终重新解析Server的IP地址,无需人为重新启动,即可重新接入VPN
11.3).Client的不绑定特定的监听端口
参考答案:
客户端:
vi /etc/openvpn/client.conf
remote 192.168.6.220 8205
resolv-retry infinite
nobind
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key
tls-auth /etc/openvpn/keys/ta.key 1
12.1).启动客户端vpn
12.2).查看客户端的IP地址
12.3).测试客户端与服务端VPN的连通性
12.4).查看服务端的openvpn.log
参考答案:
客户端:
openvpn –config /etc/openvpn/client.conf
ifconfig
ping 10.88.99.1
服务端:
ping 10.88.99.6
tail -f /var/log/openvpn.log
13.1).关闭VPN服务端于客户端
13.1).以daemon方式运行服务端与客户端程序
参考答案:
客户端/服务端:
kill -9 `ps -ef|grep vpn|awk ‘{print $2}’`
服务端:
openvpn –daemon –config /etc/openvpn/server.conf
客户端:
openvpn –daemon –config /etc/openvpn/client.conf
1)打印所有的服务列表状态
参考答案:
chkconfig –list
2)将atd服务在init3,init5的运行级别下设为开
参考答案:
chkconfig –level 35 atd on
3)启动atd服务,并用at设定在5分钟之后,将passwd文件输出到/tmp/hacker文件
参考答案:
service atd restart
at now +5 minutes
more /etc/passwd>/tmp/hacker
4)用at在2007年8月26日执行命令,将shadow文件输出到/tmp/kkk文件
参考答案:
at 10:00 2007-08-26
more /etc/shadow>/tmp/kkk
5)查询系统是否有at例行任务,查到后删除该任务
参考答案:
atq
atrm 3
atq
6)显示所用的kill信号,并用man查询signal的详细信息
参考答案:
kill -l
man 7 signal
7)打印当前进程,包括CPU,内存等信息
参考答案:
ps aux
8)打印当前进程,以扩展格式显示输出
参考答案:
ps -ef
9)打印当前进程,以树状格式显示输出
参考答案:
ps axjf
10)打印当前进程,并显示所有命令参数信息
参考答案:
ps auxeww
11)用top命令显示当前系统进程状态,每隔2秒更新一次
参考答案:
top -d 2
12)用top命令将显示两次的结果输出到top.txt文件里
参考答案:
top -b -n 2 >top.txt
13)用top命令监控sshd进程,并用top命令将该进程的优先级更改为10
参考答案:
top -d 2 -p `pgrep sshd|sed -n 1p`
r
输入进程号
10
14)用killall命令,重载syslogd进程,强制杀死httpd进程
参考答案:
ps -ef|grep syslogd
killall -1 syslogd
ps -ef|grep syslogd
killall -9 httpd
15)显示当前网络中tcp/udp协议的连接IP和端口号及对映的PID
参考答案:
netstat -tulnp
16)用sar显示当前CPU的利用率,共显示三次,一秒更新一次
参考答案:
sar -u 1 3
17)用sar显示当前内存的利用率,共显示三次,一秒更新一次
参考答案:
sar -r 1 3
18)用sar显示物理磁盘的利用率,共显示三次,一秒更新一次
参考答案:
sar -d 1 3
19)用sar显示系统进程资源的利用率,共显示1万次,一秒更新一次
参考答案:
sar -v 1 1000
18)在proc里查看sshd进程的详细信息,比如maps,status等
参考答案:
cd /proc/
ps aux|grep sshd
cd 1700
more maps
19)进入/root目录,用fuser查出/root/的进程,并杀掉/root进程
参考答案:
cd
fuser -v /root
fuser -k /root
20)用lsof查出系统中用到/lib/tls/libc-2.3.2.so文件的进程
参考答案:
lsof /lib/tls/libc-2.3.2.so
21)用lsof列出关于root用户的所有程序开启的socket
参考答案:
lsof -u root -a -U
22)用lsof列出有哪些进程在对/root目录进行操作
参考答案:
lsof /root/
23)用lsof查看有哪些进程在用网络
参考答案:
lsof -i
24)用lsof查看sshd服务用了哪些文件
参考答案:
lsof -c sshd
25)用lsof查看用户root所开启的进程中用了哪些文件
参考答案:
lsof -u root
26)用lsof查看除用户root外,其它用户所开启的进程中用了哪些文件
参考答案:
lsof -u^root
27)用lsof查看目前系统上面所有的被启动的设备
参考答案:
lsof +d /dev
28)用watch来监控free,每1秒更新一次
参考答案:
watch -n 1 -d free
29)用watch来监控Oracle进程所用的CPU利用率等,间隔时间为45秒
参考答案:
watch –interval=45 “ps auxw|grep oracle”
30)列出树状的进程
参考答案:
pstree
31)列出init和syslogd服务的PID
参考答案:
pidof init syslogd
32)找出 bash即以bash为PPID的几个主要的PID
参考答案:
pidof -x bash
33)用root给一个nice值为-5,用于执行vi,并观察该进程
参考答案:
nice -n -5 vi &
ps -l
34)更改vi进程的优先级,给nice值加10
参考答案:
renice 10 18852
35)用pgrep列出mingetty的进程号
参考答案:
pgrep -l mingetty
1)编写内核态程序,hello.c,功能:插入时打印输出Hello,world,退出时打印输出Goodbye, world
参考答案:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(“Dual BSD/GPL”);
static int hello_init(void)
{
printk(KERN_EMERG “Hello, world\n”);
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG”Goodbye, world\n”);
}
module_init(hello_init);
module_exit(hello_exit);
2)编写对映的Makefile,执行后生成ko模块,文件存放目录与hello.c一致
参考答案:
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.9-42.EL/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
3)编译hello.c为内核模块程序,并将内核模块插入到modules中,观察结果
参考答案:
make
insmod hello.ko
4)用lsmod查看目前的模块
参考答案:
lsmod
5)用modinfo查看hello模块
参考答案:
modinfo hello.ko
6)列出所有的模块文件
参考答案:
modprobe -l
7)列出所有的模块信息
参考答案:
modprobe -c
8)升级内核RedHat es4(2.6.9)–>2.6.23
8.1)删除以前留下的.o文件
8.2)以菜单方式进行内核方式选择
8.3)清除掉以前的.o文件
8.4)制作出核心文件
8.5)制作出模组相关的文件
8.6)安装模组
8.7)产生initrd文件
8.8)安装核心到boot
8.9)编辑menu.lst,加入新核心选项
参考答案:
cd linux-2.6.23/
make mrproper
make menuconfig
保存退出
vi .config
make clean
make bzImage
make modules
make modules_install
mkinitrd /boot/initrd-2.6.23.img 2.6.23
make install
/boot/grub/menu.lst加入以下内容:
title ckhitler Kernel (2.6.23)
root (hd0,1)
kernel /boot/bzImage-2.6.23 ro root=LABEL=/
initrd /boot/initrd-2.6.23.img
1)编写内核态程序,hello.c,功能:插入时打印输出Hello,world,退出时打印输出Goodbye, world
参考答案:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(“Dual BSD/GPL”);
static int hello_init(void)
{
printk(KERN_EMERG “Hello, world\n”);
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG”Goodbye, world\n”);
}
module_init(hello_init);
module_exit(hello_exit);
2)编写对映的Makefile,执行后生成ko模块,文件存放目录与hello.c一致
参考答案:
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.9-42.EL/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
3)编译hello.c为内核模块程序,并将内核模块插入到modules中,观察结果
参考答案:
make
insmod hello.ko
4)用lsmod查看目前的模块
参考答案:
lsmod
5)用modinfo查看hello模块
参考答案:
modinfo hello.ko
6)列出所有的模块文件
参考答案:
modprobe -l
7)列出所有的模块信息
参考答案:
modprobe -c
8)升级内核redhat es4(2.6.9)–>2.6.23
8.1)删除以前留下的.o文件
8.2)以菜单方式进行内核方式选择
8.3)清除掉以前的.o文件
8.4)制作出核心文件
8.5)制作出模组相关的文件
8.6)安装模组
8.7)产生initrd文件
8.8)安装核心到boot
8.9)编辑menu.lst,加入新核心选项
参考答案:
cd linux-2.6.23/
make mrproper
make menuconfig
保存退出
vi .config
make clean
make bzImage
make modules
make modules_install
mkinitrd /boot/initrd-2.6.23.img 2.6.23
make install
/boot/grub/menu.lst加入以下内容:
title ckhitler Kernel (2.6.23)
root (hd0,1)
kernel /boot/bzImage-2.6.23 ro root=LABEL=/
initrd /boot/initrd-2.6.23.img
9)安装grub软件到/dev/sda
参考答案:
grub-install /dev/sda
10)进入grub的shell
10.1)先设定/boot目录的那个 partition
10.2)搜索stage1
10.3)搜索内核文件
10.4)安装grub到mbr
参考答案:
grub
root (hd0,0)
find /boot/grub/stage1
find /boot/vmlinuz-2.6.9-42.EL
setup (hd0)1)新建一个组group1,新建一个系统组group2
参考答案:
groupadd group1
groupadd -r group2
cat /etc/group /etc/gshadow|grep group[1-2]
2)更改组group2的GID为103,更改组名为grouptest
参考答案:
groupmod -g 103 -n grouptest group2
cat /etc/group /etc/gshadow|grep group*
3)删除组grouptest
参考答案:
groupdel grouptest
4)新建用户user1,指定UID为777,目录为/home/user1,初始组为group1,有效组为root,指定shell为/bin/bash
参考答案:
useradd -u 777 -d /home/user1 -g group1 -G root -s /bin/bash user1
cat /etc/passwd /etc/group|grep user1
5)新建一个系统用户user2
参考答案:
useradd -r user2
grep user2 /etc/passwd
6)查看用户user1的组群,切换到user1,在主目录下新建文件test1,再切换有效组为root,再新建文件test2
参考答案:
groups user1
su – user1
touch test1
newgrp root
touch test2
ls -l test[1-2]
7)修改用户user1的个人说明为This is a test
参考答案:
usermod -c “This is a test” user1
8)修改用户密码过期时间为2008-07-27
参考答案:
usermod -e “2008-07-27” user1
9)更改用户user1的密码为111111,加锁用户user1并查看/etc/shadow,用户user1通过ssh登录127.0.0.1,
解锁用户user1,再通过ssh登录.
参考答案:
passwd user1
usermod -L user1|grep user1 /etc/shadow
ssh user1@127.0.0.1
usermod -U user1|grep user1 /etc/shadow
ssh user1@127.0.0.1
10)更改用户主目录/home/user1为/home/user11
参考答案:
usermod -d /home/user11 -m user1|ls /home
11)查看所有支持的shell,将root更改为csh,并查看结果,并将root改为bash
参考答案:
chsh -l
chsh -s /bin/csh; grep root /etc/passwd;chsh -s /bin/bash
12)更改自己的相关信息,如电话号码等
参考答案:
chfn
grep root /etc/passwd|sed -n 1p
13)查看自己的相关信息
参考答案:
finger root
14)列出用户user1的UID,GID等
参考答案:
id user1
15)增加用户user3,user4,增加组testgroup,给组testgroup设定密码,将组testgroup管理权授予user1,并同时将root,user1,user3加入到testgroup,检查结果,切换到user1,将user4加入到testgroup组
参考答案:
useradd user3;useradd user4
groupadd testgroup;gpasswd testgroup
gpasswd -A user1 -M root,user1,user3 testgroup
grep testgroup /etc/group /etc/gshadow
su – user1
gpasswd -a user4 testgroup
16)使用passwd给user1用户密码冻结,用passwd查看user1相关信息,最后用passwd给用户user1解冻
参考答案:
passwd -l user1
passwd -S user1
passwd -u user1
17)切换user1用户,用su加命令行直接查看shadow的头3行
参考答案:
su – user1
su – -c “head -n 3 /etc/shadow”
18)将user1加入sudoer,权限为可登入所有主机,可变换所有用户,可执行所有命令,切换到user1,用sudo在root下建立user1目录用sudo以user3的身份在/tmp/下新建文件user3
参考答案:
visudo
加入以下内容:
user1 ALL=(ALL) ALL
退出
sudo mkdir /root/user1
sudo -u user3 touch /tmp/user3
19)将testgroup组加入sudoer,权限为可登入所有主机,可变换所有用户,可执行所有命令,且不用输入密码,切换到user4,用sudo在查看/etc/shadow内容.
参考答案:
visudo
加入以下内容:
%testgroup ALL=(ALL) NOPASSWD: ALL
退出
sudo more /etc/shadow
20)在user1用户下面,用sudo切换到root
参考答案:
sudo su –
21)用user2登录tty3,用user1登录tty1,用user1向user2发送消息i love you
参考答案:
write user2
i love you
ctrl+d
22)user2将接收消息关闭
参考答案:
mesg n
23)在root,向所有人发消息
参考答案:
wall i love qiuming
25)用chpasswd更改user1口令为111111
参考答案:
echo “user1:111111″|chpasswd
26)通过root向user1发送邮件,切换到user1进行校对
参考答案:
mail user1
Subject: i love you
i ‘m chenkuo
qiuming me like you
.
Cc:
su – usre1
27)比对passwd和shadow是否一致
参考答案:
pwck
28.1)用chage显示用户test密码资料
28.2)用chage变更密码更改日期
28.3)用chage变更策略,密码最少要用1天才能变更密码
28.4)用chage变更策略,即每隔一个星期就要变更一次密码
28.5)用chage变更策略,即密码过期3天后,还没有变更密码,就锁定帐户
28.6)用chage变更策略,即帐号到期日为2008-05-01
参考答案:
chage -l test
chage -d 2005-07-25 test
chage -m 1 test
chage -M 7 test
chage -I 3 test
chage -E 2008-05-01 test
29.1)激活accton的详细日志记录功能,可以记录各用户的所有操作
29.2)等待3分钟后,查看root用户的所有动作
29.3)关闭accton
参考答案:
accton /var/account/pacct
lastcomm |grep root
accton
30.1)用ac命令查看每个用户登录系统的时间,会列出当天一个个用户的时间总和
30.2)用户登录系统的每天总时间,会列出一天一天的时间总和
参考答案:
ac -p
ac -d
准备测试环境:
cat > test.txt
“Open Source” is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn’t fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can’t finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol ‘*’ is represented as start.
Oh! My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world is the same with “glad”.
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let’s go.
# I am VBird
1)在test.txt文件中搜索the字符串,并显示行号
参考答案:
grep -n ‘the’ test.txt
2)在test.txt文件中反向搜索the字符串,并显示行号
参考答案:
grep -vn ‘the’ test.txt
3)在test.txt文件中搜索the字符串,显示行号并忽略大小写
参考答案:
grep -in ‘the’ test.txt
4)在test.txt文件中搜索oo字符串,但排除goo
参考答案:
grep -n ‘[^g]oo’ test.txt
5)在test.txt文件中搜索oo字符串,但排除oo之前的小写字母
参考答案:
grep -n ‘[^a-z]oo’ test.txt
6)在test.txt文件中搜索有数字的一行
参考答案:
grep -n [0-9] test.txt
7)在test.txt文件中只列出行首的the,并忽略大小写
参考答案:
grep -ni ^the test.txt
8)在test.txt文件中搜索开头不是英文字母的语句
参考答案:
grep -n ^[^a-zA-Z] test.txt
9)在test.txt文件中找到结尾为.的一行
参考答案:
grep -n ‘\.$’ test.txt
10)在test.txt文件中查找空白行
参考答案:
grep -n ‘^$’ test.txt
11)在test.txt文件中查找两个以上的o
参考答案:
grep -n ‘ooo*’ test.txt
12)在test.txt文件中查找以g开头,并且以g结尾的字符串
参考答案:
grep -n ‘g.*g’ test.txt
13)显示/etc/passwd文件,并且打印行号,同时去掉2至5行
参考答案:
nl /etc/passwd|sed ‘2,5d’
14)显示/etc/passwd文件,并且打印行号,在第二行后面加上drink tea
参考答案:
nl /etc/passwd | sed ‘2a drink tea’
15)显示/etc/passwd文件,并且打印行号,将2-5行替换为No 2-5 number
参考答案:
nl /etc/passwd | sed ‘2,5c No 2-5 number’
16)显示/etc/passwd文件的5-7行,打印地号
参考答案:
nl /etc/passwd | sed -n ‘5,7p’
17)显示/etc/passwd文件内容,将所有的sbin换成love
参考答案:
nl /etc/passwd|sed ‘s/sbin/love/g’
18)显示/etc/passwd文件内容,将只显示5-10行,并将5-10行的sbin换成love
参考答案:
nl /etc/passwd|sed ‘5,10 s/sbin/love/’|sed -n ‘5,10p’
19)显示/etc/目录下所有文件的属性和文件名
如:attr=-rwxrwxrwx filename=passwd
参考答案:
ls -l /etc/|awk ‘{print “attr=” $1 “\t\tfilename=” $9}’|sed ‘1’d
20)显示所有登录用户,并显示登录用户的所在行数和列数
参考答案:
last | awk ‘{print $1 “\t lines: ” NR “\t columes: ” NF}’
21)只显示/etc/passwd文件的用户名和UID,且UID小于10
参考答案:
cat /etc/passwd|awk ‘BEGIN {FS=”:”} $3 < 10 {print $1 “\t ” $3}’
22)根据使用频率列举 Shell 历史记录中的命令
参考答案:
history|awk ‘{print $2}’|awk ‘BEGIN{FS=”|”}{print $1}’|sort|uniq -c|sort -n
1)显示日期格式例如:
2007-06-10 18:08:29
参考:
date +%Y-%m-%d\ %H:%M:%S
2)在/tmp/下新建目录testqq,并指定权限711
参考:
mkdir -m 711 /tmp/testqq
3)显示环境变量path,但将/root加入到$PATH中
参考:
echo $PATH
PATH=”$PATH”:/root
4)用cat显示/etc/passwd,并打印出行号
参考:
cat -n /etc/passwd
5)显示/etc/passwd文件中的11-20行
参考:
head -n 20 /etc/passwd|tail -n 10
6)用whereis列出二进制文档passwd
参考:
whereis -b passwd
7)用whereis列出man page所在目录
参考:
whereis -m passwd
8)显示出/etc/目录下所有文件的ctime时间
参考:
ls -lc
9)显示出/etc/目录下所有文件的atime时间
参考:
ls -lu
10)显示出/etc/目录下所有文件夹的mtime时间
参考:
ls -l
11)寻找/etc/目录下一天前新增的目录或档案
参考:
find /etc -ctime +1
12)寻找/etc/目录下二十四小时更动过的目录或档案
参考:
find /etc -mtime 0
13)寻找/etc/目录下比/etc/passwd日期新的文件或目录
参考:
find /etc -newer /etc/passwd
14)寻找/home目录下所有test用户的文件或目录
参考:
find /home -user test
15)搜索/home下档案属性为f(普通文件)的文档
参考:
find /home -type f
16)搜索/目录下所有的特殊位(suid,sgid,sbit)
参考:
find / -perm +7000
17)搜索/目录下所有的特殊位文件,并显示详细信息
参考:
find / -perm +7000 -exec ls -l {} \;
18)搜索/目录下所有大于1M的文件
参考:
find / -size +1000k
19)查询/etc目录下一个小时之前更改的文件,不包括目录
参考答案:
find /etc/ -mmin +60 \! -type d
20)查询/etc目录下一个小时之后更改的文件,不包括目录
参考答案:
find /etc/ -mmin -60 \! -type d
21.1)查询/etc/目录下没用owner授权的文件
21.2)将/etc/目录下没有owner的文件授权为root用户的文件
参考答案:
find /etc -nouser
find /etc -nouser -exec chown root.root {} \;
22)copy文件/etc/passwd到/tmp目录下,保持时间戳
参考答案:
cp -p /etc/passwd /tmp/passwd
23)查看/tmp/目录的使用空间
参考答案:
du -sh /tmp/1)新建用户test
useradd -s /bin/bash test
2)将bin sbin等目录COPY到/home/test目录下
cd /home/test
cp -Rf /bin /sbin /usr/sbin /etc /home/test
3)新建lib目录,将需要的lib库文件COPY到lib目录下
mkdir lib
ldd bin/sh|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
ldd bin/ls|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
ldd bin/clear|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
4)赋权限
chown -R test:test /home/test
5)建立shtest.c源文件
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char **argv)
{
int i;
chdir(“/home/test/”);
i=chroot(“/home/test”);
if(i!=0)
{
perror(“chroot”);
}
if(argc>1&&strcmp(argv[1],”root”)==0)
{
system(“/bin/sh”);
}
else
{
seteuid(getuid());
system(“/bin/sh”);
}
}
6)编译shtest.c,生成shtest
gcc /tmp/shtest.c -o shtest
7)将shtest复制到/bin目录下
cp shtest /bin/shtest
8)编辑/etc/passwd,将默认的SHELL改为shtest
vi /etc/passwd
test:x:1819:1819::/home/test:/bin/shtest
9)测试
su – test1)打开telnet服务,让root有权限直接登入
参考答案:
vi /etc/xinetd.d/telnet
将disable改为no
disable = no
vi /etc/pam.d/login
注释掉:
#auth required pam_securetty.so
2)设置XINETD/TELNET服务,绑定172.16.128.128,设定只允许从172.16.128.0网段访问
,但不允许172.16.128.10访问,允许访问的时间为9:00-18:00,最多可以有10个连接,登入后的umask为022,nice为10
参考答案:
service telnet
{
bind = 172.16.128.128
only_from = 172.16.128.0/24
no_access = 172.16.128.10
access_times = 9:00-18:00
instance = 10
log_on_failure += USERID
umask = 022
nice = 10
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
disable = no
}
3)通过防火墙限制对telnet服务的连接请求
1)对源地址:172.16.128.1开放对telnet服务的连接请求
2)拒绝172.16.128.0/24网段对127.16.128.1的连接请求
参考答案:
iptables -A INPUT -p tcp -i eth0 -s 172.16.128.1 –dport 23 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s 172.16.128.0/24 –dport 23 -j DROP
4)利用TCP_Wrappers
1)允许172.16.128.1访问
2)拒绝所有地址
参考答案:
vi /etc/hosts.allow
in.telnetd: 172.16.128.2
vi /etc/hosts.deny
in.telnetd: ALL
5)SSH无验证登录
参考答案:
client:
ssh-keygen -t rsa
cd ~/.ssh
scp id_rsa.pub 172.16.128.128:~/
server:
mkdir ~/.ssh
cd ~
cat id_rsa.pub >>~/.ssh/authorized_keys
6)通过编辑sshd_config,只允许IP地址为172.16.128.1,及用户为root的可以访问
参考答案:
编辑sshd_config
vi /etc/ssh/sshd_config
加入以下的配置信息
AllowUsers root@172.16.128.1
重启服务
service sshd restart
7)用ssh做遂道端口转发,将对本地的777端口的连接,转发到172.16.128.128的22端口上
参考答案:
ssh -L 777:127.0.0.1:22 test@220.200.95.239
ssh -p 777 test@127.0.0.1
8)启动vnc,设定为kde文件启动
参考答案:
vncserver
cd .vnc/
vi xstartup
#xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
#twm &
startkde&
vncserver -kill :1
vncserver
9)RSH服务
9.1)启用rsh服务
9.2)编辑hosts及.rhosts文件,授权172.16.128.1访问
9.3)允许root访问
9.4)客户端连接测试date,ls -l /tmp命令
9.5)客户端测试文件COPY命令,将文件拷到服务器端,将服务器端文件拷到本地
参考答案:
服务器端:
vi /etc/xinetd.d/rsh
更改disable 为no
disable = no
service xinetd restart
vi /etc/hosts
加入
172.16.128.1 pc1
172.16.128.128 pc2
vi /root/.rhosts
加入
pc1 root
vi /etc/pam.d/rsh
注释掉pam_securetty.so
如下:
#auth required pam_securetty.so
客户端:
vi /etc/hosts
加入
172.16.128.1 pc1
172.16.128.128 pc2
rsh pc2 date
rsh pc2 ‘ls -l /tmp/’
rcp -r root@pmea:~/rsh* .
rcp -r smg-3.* root@pmea:~/
10)rlogin服务
10.1)允许root访问
10.2)开启rlogin服务
10.3)编辑hosts及.rhosts文件,授权172.16.128.1访问
10.4)客户端测试rlogin连接pc2
参考答案:
服务端:
vi /etc/pam.d/rlogin
注释掉pam_securetty.so
如下:
#auth required pam_securetty.so
vi /etc/xinetd.d/rlogin
将disable置为no
disable = no
vi /root/.rhosts
加入
pc1 root
客户端:
rlogin -l root pc2
11)rsync
11.1)将/etc/目录所有文件同步到/tmp目录下,注意是本级目录,如/etc/passwd—->/tmp/passwd
11.2)将/etc/目录所有文件同步到/tmp目录下,注意是下级目录,如/etc/passwd—–>/tmp/etc/passwd
11.3)通过ssh,将root用户目录下的资料同步到本地的/tmp目录
参考答案:
rsync -av /etc/ /tmp
rsync -av /etc /tmp
rsync -av -e ssh root@172.16.128.128:~ /tmp 1)试验1
1.1)将/tmp做为NFS服务共享
1.2)充许所有客户端访问
1.3)充许客户读写
1.4)客户端如果以ROOT用户身份访问,挂载后即有ROOT权限
1.5)将服务端:/tmp挂载到客户端的/temp
1.6)在/temp目录新建一个测试文件,并查看属性
参考答案:
服务端:
service portmap restart
vi /etc/exports
/tmp *(rw,no_root_squash)
service nfs restart
客户端:
mkdir /temp
mount -t nfs 192.168.6.202:/tmp /temp
cd /temp
touch test
ls -l test
2)试验2
2.1)将/share做为NFS服务共享
2.2)允许192.168.7.0网段进行读
2.3)允许192.168.6.217主机进行读写
2.4)允许192.168.7.0/192.168.6.217以ROOT用户身份访问,挂载后即有root权限
2.5)重新加载nfs
2.6)在客户端测试服务器是否已提供nfs各目录服务
2.7)在192.168.6.217中将服务端的share目录挂到本地的/nfsmount下面
2.8)在192.168.7.179中将服务端的share目录挂到本地的/nfsmount下面
2.9)测试两个客户端的读写情况
参考答案:
服务端:
vi /etc/exports
/share 192.168.7.0/24(ro,no_root_squash)
/share 192.168.6.217(rw,no_root_squash)
exportfs -arv
客户端(192.168.6.217):
showmount -e 192.168.7.180
mount -t nfs 192.168.7.180:/share /nfsmount
touch /nfsmount/test
客户端(192.168.7.179):
showmount -e 192.168.7.180
mount -t nfs 192.168.7.179:/share /nfsmount
touch /nfsmount/test
3)试验3
3.1)启用NFS一致性服务
3.2)查看RPC服务的注册状态
3.3)观察message/etab
3.4)卸掉所有客户端的连接
3.5)卸掉服务端的NFS
3.6)重新挂载NFS
3.7)客户端用以下nfs挂载参数挂载192.168.6.180:share到/nfsmount上
3.7.1)加入nosuid,noexec,nodev
3.7.2)加入rw
3.7.3)加入bg,rsize=32768,wsize=32768
3.7.4)加入soft,intr解决NFS挂死的问题
参考答案:
service nfslock start
rpcinfo -p 127.0.0.1
tail -f /var/log/messages
tail -f /var/lib/nfs/etab
客户端:
umount /nfsmount
服务端:
exportfs -auv
客户端:
showmount -e 192.168.6.180
服务端:
exportfs -arv
mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,intr,rsize=32768,wsize=32768 192.168.7.180:/share/ /nfsmount/
1)查看内核是否支持ext3文件系统
参考答案:
cat /boot/config-2.4.21-40.EL |grep -i ext3
2.1)用dd命令读取/dev/zero输出到/opt/testptn,大小为128MB
2.2)用losetup指定/opt/testptn为循环设备/dev/loop0
2.3)格式化/dev/loop0,指定ext3分区
2.4)挂载/dev/loop0到/mnt/acltest
参考答案:
dd if=/dev/zero ōf=/opt/testptn bs=2048 count=65535
losetup /dev/loop0 /opt/testptn
mkfs -t ext3 /dev/loop0
mount -t ext3 -o rw,acl /dev/loop0 /mnt/acltest/
3)新建test1,test2,test3三个用户
参考答案:
useradd test1;useradd test2;useradd test3
passwd test1;passwd test2;passwd test3
4)设定/mnt/acltest/目录的粘滞位,参照/tmp/目录
参考答案:
chmod 1777 /mnt/acltest/
5.1)切换到test1用户,将test1字符串输出到文件/mnt/acltest/test1.txt
5.2)切换到test2用户,将test2字符串输出到文件/mnt/acltest/test1.txt,测试是否可写
5.3)切换到test1用户,设定/mnt/acltest/test1.txt的ACL为test2用户可读写,查看此文件的ACL
5.4)切换到test2用户,将test2字符串输出到文件/mnt/acltest/test1.txt,测试是否可写
参考答案:
su – test1
echo “test1” > /mnt/acltest/test1.txt
su – test2
echo “test2” >>/mnt/acltest/test1.txt
su – test1
setfacl -m u:test2:rw,g:test2:r /mnt/acltest/test1.txt
ls -l /mnt/acltest/test1.txt
getfacl /mnt/acltest/test1.txt
su – test2
cat /mnt/acltest/test1.txt
echo test2>>/mnt/acltest/test1.txt
6.1)去掉/mnt/acltest/test1.txt文件的test2组ACL权限,并查看此文件的ACL权限
6.2)去掉/mnt/acltest/test1.txt文件的ACL所有权限,并查看此文件的ACL权限
6.3)覆盖/mnt/acltest/test1.txt文件的ACL权限,重至为本用户可读写,组用户可读,test2用户可以读写,其余权限均关闭
6.4)最后查看此文件的ACL权限
参考答案:
setfacl -x g:test2 /mnt/acltest/test1.txt
getfacl /mnt/acltest/test1.txt
setfacl -b /mnt/acltest/test1.txt
getfacl /mnt/acltest/test1.txt
setfacl –set u::rw,u:test2:rw,g::r,o::- /mnt/acltest/test1.txt
getfacl /mnt/acltest/test1.txt
7.1)新建/mnt/acltest/testdir目录
7.2)重至/mnt/acltest/testdir目录的权限,使其在此目录新建的文件具有g:test2:rwx的ACL权限
7.3)新建/mnt/acltest/testdir/testfile文件,查看其ACL权限是否继承
参考答案:
mkdir /mnt/acltest/testdir
setfacl -d –set g:test2:rwx /mnt/acltest/testdir
touch /mnt/acltest/testdir/testfile
getfacl /mnt/acltest/testdir/testfile
8.1)导出/mnt/acltest/testdir的ACL权限到/tmp/dir1.acl文件
8.2)查看/tmp/dir1.acl的文件内容
8.3)去掉/mnt/acltest/testdir目录的ACL权限,并查看/mnt/acltest/testdir目录的权限
8.4)回到根目录,恢复/mnt/acltest/testdir目录在dir.acl中的ACL权限
参考答案:
getfacl -R /mnt/acltest/testdir/ > /tmp/dir1.acl
cat /tmp/dir1.acl
setfacl -R -b /mnt/acltest/testdir
getfacl -R /mnt/acltest/testdir/
cd /
setfacl –restore /tmp/dir1.acl
getfacl -R /mnt/acltest/testdir/
9.1)卸载/mnt/acltest目录
9.2)卸载/dev/loop0设备
参考答案:
umount /mnt/acltest/
losetup -d /dev/loop0
1)配置snmp,编辑/etc/snmp/snmpd.conf
1.1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是notConfigUser。Public相当于用户notConfigUser的密码
1.2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigUser这个用户加到这个组中。
1.3)定义一个可操作的范围(view)名, 这里是all,范围是 .1
1.4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了notConfigUser组的成员可对.1这个范围做只读操作。
1.5)重启snmpd服务
1.6)列出snmpd开放端口
参考答案:
vi /etc/snmp/snmpd.conf
做如下修改:
# sec.name source community
com2sec notConfigUser default public
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
# name incl/excl subtree mask(optional)
view all included .1
# group context sec.model sec.level prefix read write notif
access notConfigGroup “” any noauth exact all none none
保存退出
service snmpd restart
netstat -anp|grep snmp
2.1)查看阅读mib-2所管理的信息类别的MIB文件
参考答案:
more /usr/share/snmp/mibs/RFC1213-MIB.txt
3)用snmpbulkwalk命令连接snmp服务器(192.168.6.53),获取snmp服务器的mib-2各种资讯
3.1)snmpbulkwalk用于通过SNMPv2 的SNMP GET BULK请求命令与其它网络实体通信,只能用于snmpv2,速度快于snmpwalk
3.2)指定共同体为public,协议为snmp2c
3.3)获取mib-2的system的数据,即.1.3.6.1.2.1.1(iso->identified organization->dod->internet->mgmt2->mib-2->system)
3.4)获取mib-2的interface的数据,即.1.3.6.1.2.1.2(iso->identified organization->dod->internet->mgmt2->mib-2->interface)
3.5)获取mib-2的address translation的数据,即.1.3.6.1.2.1.3(iso->identified organization->dod->internet->mgmt2->mib-2->address translation)
3.6)获取mib-2库的ip的数据,即.1.3.6.1.2.1.4(iso->identified organization->dod->internet->mgmt2->mib-2->ip)
3.7)获取mib-2库的icmp的数据,即.1.3.6.1.2.1.5(iso->identified organization->dod->internet->mgmt2->mib-2->icmp)
3.8)获取mib-2库的tcp的数据,即.1.3.6.1.2.1.6(iso->identified organization->dod->internet->mgmt2->mib-2->tcp)
3.9)获取mib-2库的udp的数据,即.1.3.6.1.2.1.7(iso->identified organization->dod->internet->mgmt2->mib-2->udp)
3.10)获取mib-2库的snmp的数据,即.1.3.6.1.2.1.11(iso->identified organization->dod->internet->mgmt2->mib-2->snmp)
参考答案:
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.1
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.2
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.3
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.4
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.5
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.6
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.7
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.11
4)查看阅读HOST-RESOURCES的MIB文件
参考答案:
more /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
5)查用snmpwalk命令连接snmp服务器(192.168.6.53),获取snmp服务器的HOST-RESOURCES的各种资讯
5.1)指定共同体为public,协议为snmpv1
5.2)获取HOST-RESOURCES的host(所有资源)
5.3)获取HOST-RESOURCES的hrSystem(系统日期/时间,初始化设备,内核引导参数,系统当前的登录用户数,当前的进程数,支持的最大进程数)
5.4)获取HOST-RESOURCES的hrStorage(内存大小,磁盘大小,使用情况等)
5.5)获取HOST-RESOURCES的hrDevice(设备ID,设备类型,对设备的描述,引导盘,挂载分区等)
5.6)获取HOST-RESOURCES的hrSWRun(线上系统的进程ID,进程名,涉及的参数,运行状态等)
5.7)获取HOST-RESOURCES的hrSWRunPerf(线上系统进程占用CPU的时间,占用内存的大小)
5.8)获取HOST-RESOURCES的hrSWInstalledName(已安装的软件包名)和hrSWInstalledDate(已安装的软件包时间)
参考答案:
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::host
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSystem
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrStorage
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrDevice
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWRun
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWRunPerf
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWInstalledName
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWInstalledDate
6)查看阅读IF-MIB的MIB文件
参考答案:
more /usr/share/snmp/mibs/IF-MIB.txt
7)用snmpdelta命令连接snmp服务器(192.168.6.53),监控网卡流量等信息
7.1)指定共同体为public,协议为snmpv1,以表格的方式输出结果,显示时间戳
7.2)监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),格式为<object>.<instance>,如监控本地的第二块网卡instance为2
7.3)监控ifInDiscards(已经丢弃的收到的数据包的总数),格式同上
参考答案:
snmpdelta -c public -v 1 -Cs -CT 192.168.6.53 IF-MIB::ifInUcastPkts.2 IF-MIB::ifOutUcastPkts.2
snmpdelta -c public -v 1 -Cs -CT 192.168.6.53 ifInDiscards.2
8)用snmpnetstat命令连接snmp服务器(192.168.6.53),查看snmp服务器的端口连接信息
8.1)指定共同体为public,协议为snmp2c
8.2)获取192.168.6.53的所有开放端口状态
8.3)获取192.168.6.53的网络接口状态
8.4)获取192.168.6.53的TCP协议的开放端口状态
参考答案:
snmpnetstat -v 2c -c public -a 192.168.6.53
snmpnetstat -v 2c -c public -i 192.168.6.53
snmpnetstat -v 2c -c public -P tcp 192.168.6.53
9)用snmptranslate 命令在 MIB OID 在数字和文字名称之间进行转换
9.1)用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为 numberic 格式的oid,用-On(输出数字格式的oid),使用 -IR(允许“随机”访问 MIB)
9.2)用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为symbol 格式的 oid,用-Onf(输出符号格式的oid)
9.3)用snmptranslate输出该对象(iso.org.dod.internet.mgmt.mib-2)的详细定义,用-Td(包括文字名称、所属 MIB、类型、状态、读写权限、描述信息,数字格式的 OID)
9.4)用snmptranslate打印从指定OID(.1.3.6.1.2.1)开始一直到该OID(.1.3.6.1.2.1)所属的 MIB 子树末端的树型结构信息
9.5)用snmptranslate导出所有已经加载的 MIB 的数据,每个对象一行
9.6)用snmptranslate导出所有已经加载的 MIB 的对象,并且输出完整的 oid 路径
9.7)用snmptranslate导出已经加载的所有 MIB 的数字格式的 oid ,不含值和类型,仅仅有 oid 而已
9.8)用snmptranslate只输出文字格式的 OID 名称而已
参考答案:
snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem
snmptranslate -Onf -IR HOST-RESOURCES-MIB::hrSystem
snmptranslate -Td iso.org.dod.internet.mgmt.mib-2
snmptranslate -Tp iso.org.dod.internet.mgmt.mib-2
snmptranslate -Ta
snmptranslate -Tl
snmptranslate -To
snmptranslate -Ts
10.1)用snmptranslate查询MID OID的数字为1.3.6.1.4.1.2021的详细信息
10.2)用snmptranslate列出1.3.6.1.4.1.2021树型结构
10.3)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出proc的信息
10.4)用ps -e找过三个进程,写入到/etc/snmp/snmpd.conf配置文件中,如:keventd,nfsd,bdflush
10.5)重启snmpd服务
10.6)再用snmpwalk连接192.168.6.53的snmp,列出proc的信息
参考答案:
snmptranslate -Td 1.3.6.1.4.1.2021
snmptranslate -Tp 1.3.6.1.4.1.2021
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.2
打开snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到# Process checks
加入:
proc keventd
proc nfsd
proc bdflush
service snmpd restart
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.2
11.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出shell脚本的输出信息
11.2)编辑/etc/snmp/snmpd.conf文件,加入:exec echotest /bin/echo hello world和exec shelltest /bin/sh /tmp/shtest
11.3)编写脚本shtest,输出hello world
11.4)重启服务
11.5)用snmpwalk连接192.168.6.53的snmp,列出shell脚本的输出信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.8
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到:# Executables/scrīpts
在后面加入:
exec echotest /bin/echo hello world
exec shelltest /bin/sh /tmp/shtest
保存退出
cd /tmp/
cat > shtest
#!/bin/sh
echo hello world
echo hi there
exit 35
service snmpd restart
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.8
12.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出磁盘信息
12.2)编辑/etc/snmp/snmpd.conf文件,加入根分区和/boot分区
12.3)用kill的方式重新读取配置
12.4)用snmpwalk连接192.168.6.53的snmp,列出磁盘信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.9
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到:disk checks
加入:
disk / 10000
disk /boot 10000
保存退出
kill -HUP `ps -e|grep snmpd|awk ‘{print $1}’`
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.9
13.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出所有的系统进程
13.2)编辑/etc/snmp/snmpd.conf文件,加入:exec .1.3.6.1.4.1.2021.51 ps /bin/ps
13.3)用kill的方式重新读取配置
13.4)用snmpwalk连接192.168.6.53的snmp,列出系统信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.50
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
加入:
exec .1.3.6.1.4.1.2021.51 ps /bin/ps
保存退出
kill -HUP `ps -e|grep snmpd|awk ‘{print $1}’`
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.50
1)新建用户alice及bob,同时建两用户的主目录
参考答案:
useradd -m alice;useradd -m bob
passwd alice
passwd bob
2.1)切换到alice
2.2)执行gpg建立初始化的用户文件
2.3)生成密钥对,指定加密算法为DSA and ElGamal
2.4)密钥位数为2048,密钥永久有效,指定用户名为chenkuo
参考答案:
su – alice
gpg
gpg –gen-key
输入用户名为chenkuo
3.1)切换到bob
3.2)执行gpg建立初始化的用户文件
3.3)生成密钥对,指定加密算法为DSA and ElGamal
3.4)密钥位数为2048,密钥永久有效,指定用户名为qiuming
参考答案:
su – bob
gpg
gpg –gen-key
输入用户名为qiuming
4.1)向alice用户的gpg.conf文件追加no-secmem-warning,关掉警告信息
4.2)查看alice用户的公钥及私钥信息
参考答案:
su – alice
echo no-secmem-warning >> .gnupg/gpg.conf
gpg –list-keys
gpg –list-secret-key
5.1)向bob用户的gpg.conf文件追加no-secmem-warning,关掉警告信息
5.2)查看bob用户的公钥及私钥信息
参考答案:
su – bob
echo no-secmem-warning >> .gnupg/gpg.conf
gpg –list-keys
gpg –list-secret-key
6.1)导出bob用户的公钥
6.2)查看/tmp/bob.key文件
参考答案:
gpg –export –armor qiuming >/tmp/bob.key
cat /tmp/bob.key
7.1)切换到alice用户
7.2)导入刚才bob用户导出的公钥
7.3)查看是否成功导入公钥
7.4)将/etc/passwd拷到用户目录中,用bob用户的公钥给passwd文件加密
7.5)查看加密后的passwd文件并拷贝到/tmp目录下
参考答案:
su – alice
gpg –import /tmp/bob.key
gpg –list-keys
cp /etc/passwd .
gpg –encrypt –armor –recipient qiuming passwd
cat passwd.asc
cp passwd.asc /tmp
8)切换到bob用户,拷贝passwd.asc文件到用户目录,解密此文件,最后查看解密后的passwd文件
参考答案:
su – bob
cp /tmp/passwd.asc
gpg passwd.asc
输入bob用户的私钥密码
cat passwd
1)查看本系统是否支持mdstat
参考答案:
cat /proc/mdstat
或lsmod | grep md
2)在/dev/md0上创建raid1,指定每个条带单元的大小为32,设备为sdb1和sdb2
参考答案:
mdadm -C /dev/md0 -l 0 -c 32 -n 2 /dev/sdb1 /dev/sdb2
3)查看创建的结果
参考答案:
cat /proc/mdstat
4)格式化md0,在根目录建立raiddata目录,并将md0挂载到raiddata目录下
参考答案:
mkfs -t ext3 /dev/md0
mkdir -p /raiddata/
mount /dev/md0 /raiddata/
df -h
5)查看md0的详细资讯
参考答案:
mdadm -D /dev/md0
6)查看sdb1和sdb2的详细资讯
参考答案:
mdadm -E /dev/sdb1
mdadm -E /dev/sdb2
7.1)停止md0
7.2)查看/proc/mdstat
7.3)再次启动md0,并查看/proc/mdstat
7.4)卸载/raiddata目录,并停止md0
参考答案:
mdadm -S /dev/md0
cat /proc/mdstat
mdadm -A /dev/md0 /dev/sdb1 /dev/sdb2
cat /proc/mdstat
umount /dev/md0
mdadm -S /dev/md0
8.1)用fdisk增加一个磁盘分区
8.2)在md0上将sdb1,sdb2做成raid1,用sdb3做hotspace盘,指定每个条带单元的大小为128
8.3)重新格式化md0,并将其挂载到/raiddata目录上,用df查看空间及设备
参考答案:
fdisk /dev/sdb
mdadm -C /dev/md0 -l1 -c 128 -n2 -x1 /dev/sdb1 /dev/sdb2 /dev/sdb3
mkfs -t ext3 /dev/md0
mount /dev/md0 /raiddata
9.1)将md0中的sdb1重置成fail
9.2)将md0中的sdb1移除
9.3)在md0中的添加一块磁盘分区sdb1
9.4)卸载/raiddata目录,并停止md0
参考答案:
mdadm /dev/md0 -f /dev/sdb1
cat /proc/mdstat
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -a /dev/sdb1
umount /dev/md0
mdadm -S /dev/md0
10.1)增加一个磁盘分区
10.2)同步分区表
10.3)在md0上创建由三个磁盘和一个hotspace组成的raid5,
10.4)格式化md0,并挂载md0到/raiddata目录
参考答案:
fdisk /dev/sdb
partprobe
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
mkfs -t ext3 /dev/md0
mount /dev/md0 /raiddata
df -h
umount /dev/md0
mdadm -S /dev/md0
11.1)在md0上用sdb1和sdb2做raid1
11.2)在md1上用sdb3和sdb5做raid1
11.3)在md2上用md0和md1做raid0
11.4)格式化md2,并挂载md2到/raiddata目录,最后查看分区空间
mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdb2
mdadm -C /dev/md1 -l1 -n2 /dev/sdb3 /dev/sdb5
mdadm -C /dev/md2 -l0 -n2 /dev/md0 /dev/md1
mkfs -t ext3 /dev/md2
mount /dev/md2 /raiddate
1.1)查询是否安装DNS软体
1.2)安装bind_chroot
1.3)编辑/etc/sysconfig/named,查看chroot的路径
1.4)注释掉/etc/resolv.conf中其它DNS的解析
参考答案:
rpm -qa|grep bind
rpm -ivh bind-chroot-9.2.4-21.el3.i386.rpm
vi /etc/sysconfig/named
ROOTDIR=/var/named/chroot
vi /etc/resolv.conf
保存退出
2)设定具有Forwarding 的 cache-only DNS
2.1)设定zonefile的directory绝对系统路径为:/var/named
2.2)设定DNS的cache绝对系统路径为/var/named/data/cache_dump.db
2.3)设定DNS的统计文件绝对系统路径为/var/named/data/named_stats.txt
2.4)只允許 forward
2.5)指定forward寻找合法的DNS为210.22.70.3和202.96.209.5
2.6)指定PID文件到绝对系统路径为:/var/run/named/named.pid
2.7)重启DNS服务,观察53端口
2.8)观察DNS日志信息
2.9)登入客户端,更改/etc/resolv.conf的nameserver为192.168.6.217
2.10)用host连接www.avnads.cn测试能否解析正确的IP地址
2.11)用ping命令测试www.avnads.cn域名,测试是否能返回正确的IP地址
参考答案:
vi /etc/named.conf
options {
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
pid-file “/var/run/named/named.pid”;
forward only;
forwarders {
210.22.70.3;
202.96.209.5;
};
};
include “/etc/rndc.key”;
service named restart
netstat -utln|grep 53
tail -n 15 /var/log/messages | grep named
测试:
vi /etc/resolv.conf
nameserver 192.168.6.217
host www.avnads.cn
ping www.avnads.cn
3)配置DNS服务器,域名为britepic.org,包括反解析,本机的localhost 和最上层的root
3.1)设定/etc/named.conf,全局配置,要求如下:
3.2)设定zonefile的directory绝对系统路径为:/var/named/
3.3)设定DNS的cache绝对系统路径为/var/named/data/cache_dump.db
3.4)设定DNS的统计文件绝对系统路径为/var/named/data/named_stats.txt
3.5)指定forward寻找合法的DNS为210.22.70.3和202.96.209.5
3.6)指定PID文件到绝对系统路径为:/var/run/named/named.pid
3.7)设定最上层的DNS(root),文件名为named.root
3.8)设定本机localhost的正反解,正解的文件名为named.localhost,反解的文件名为named.127.0.0
3.9)设定域名britepic.org的正反解,正解的文件名为named.britepic.org,反解的文件名为named.192.168.6
参考答案:
options {
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
pid-file “/var/run/named/named.pid”;
forwarders {
210.22.70.3;
202.96.209.5;
};
allow-query { any; };
allow-transfer { none; };
};
include “/etc/rndc.key”;
zone “.” {
type hint;
file “named.root”;
};
zone “localhost” {
type master;
file “named.localhost”;
};
zone “0.0.127.in-addr.arpa” {
type master;
file “named.127.0.0”;
};
zone “britepic.org” {
type master;
file “named.britepic.org”;
};
zone “6.168.192.in-addr.arpa” {
type master;
file “named.192.168.6”;
};
4设定DNS(root),配置named.root,要求如下:
4.1)设定TTL值为3600000,名称服务器为A.ROOT-SERVERS.NET
4.2)设定名称服务器的IP为198.41.0.4
参考答案:
vi /var/named/chroot/var/named/named.root
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
保存退出
5设定DNS(localhost)的正解析,配置文件named.localhost,要求如下:
5.1)设定TTL值为600
5.2)Serial的序号为2008030101
5.3)Refresh slave 服务器的更新时间为28800
5.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
5.5)Expire重复retry多久后就不再更新,设定值为720000
5.6)最小的TTL值为86400
5.7)本域的名称服务器为localhost,IP为127.0.0.1
参考答案:
vi /var/named/chroot/var/named/named.localhost
$TTL 600
@ IN SOA localhost. root.localhost. (
2008030101
28800
14400
720000
86400 )
@ IN NS localhost.
localhost. IN A 127.0.0.1
保存退出
6设定DNS(localhost)的反解析,配置文件named.127.0.0,要求如下:
6.1)设定TTL值为600
6.2)Serial的序号为2008030101
6.3)Refresh slave 服务器的更新时间,设定值为28800
6.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
6.5)Expire重复retry多久后就不再更新,设定值为720000
6.6)最小的TTL值为86400
6.7)配置本域反解析,名称服务器为localhost,IP为127.0.0.1
参考答案:
$TTL 600
vi /var/named/chroot/var/named/named.127.0.0
@ IN SOA localhost. root.localhost. (
2008030101
28800
14400
720000
86400 )
@ IN NS localhost.
1 IN PTR localhost.
7)设定DNS(britepic.org)的正解析,配置文件为named.britepic.org,要求如下:
7.1)设定TTL值为600
7.2)Serial的序号为2008030101
7.3)Refresh slave 服务器的更新时间,设定值为28800
7.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
7.5)Expire重复retry多久后就不再更新,设定值为720000
7.6)最小的TTL值为86400
7.7)配置britepic.org的正解析,名称服务器为t1.britepic.org(t1为本机名),IP地址为:192.168.6.217
7.8)配置MX地址指向本机名
7.9)配置t1.britepic.org的别名为www.britepic.org
7.10)配置t1.britepic.org的别名为ftp.britepic.org
参考答案:
vi /var/named/chroot/var/named/named.britepic.org
$TTL 600
@ IN SOA t1.britepic.org. root.t1 (
2008030101
28800
14400
720000
86400 )
@ IN NS t1.britepic.org.
t1 IN A 192.168.6.217
@ IN MX 10 t1
www IN CNAME t1
ftp IN CNAME t1
8)设定DNS(192.168.6.217)的反解析,配置文件为named.192.168.6,要求如下:
8.1)设定TTL值为600
8.2)Serial的序号为2008030101
8.3)Refresh slave 服务器的更新时间,设定值为28800
8.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
8.5)Expire重复retry多久后就不再更新,设定值为720000
8.6)最小的TTL值为86400
8.7)配置192.168.6.217的反解主机名为t1.britepic.org
8.8)对/var/named/chroot/var/named下所有文件的owner授权为named用户
8.9)对重启dns服务,并观察日志信息
参考答案:
$TTL 600
@ IN SOA localhost. root.localhost. (
2008030101
28800
14400
720000
86400 )
@ IN NS t1.britepic.org.
217 IN PTR t1.britepic.org.
chown -R named:named /var/named/chroot/var/named
service named restart
tail -n 20 /var/log/messages | grep named
9.1)用host命令测试t1.britepic.org
9.2)用host命令测试www.britepic.org
9.3)用host命令并指定192.168.6.217为解析DNS来测试ftp.britepic.org
9.4)用host命令测试192.168.6.217的反向解析
参考答案:
host t1.britepic.org
host www.britepic.org 192.168.6.217
host ftp.britepic.org 192.168.6.217
host 192.168.6.217
10.1)用nslookup直接搜寻t1.britepic.org的IP
10.2)用nslookup直接搜寻t1.britepic.org的IP,但要指定DNS解析服务器为192.168.6.217
10.3)进入到nslookup的操作介面,搜寻正解的www.britepic.org,搜寻反解的192.168.6.217
10.4)进入到nslookup的操作介面,搜寻t1.britepic.org的全部信息
参考答案:
nslookup t1.britepic.org
nslookup t1.britepic.org 192.168.6.217
nslookup
www.britepic.org
192.168.6.217
set type=any
t1.britepic.org
11.1)用dig查询t1.britepic.org
11.2)用dig查询t1.britepic.org,但要指定DNS解析服务器为192.168.6.217
11.3)用dig查询t1.britepic.org的MX记录
11.4)用dig查询RedHat.com,并且用grep去掉多余的信息
参考答案:
dig t1.britepic.org
dig @192.168.6.217 t1.britepic.org
dig t1.britepic.org mx
dig redhat.com mx|grep ^[^\;]
12.1)用whois查询redhat.com的详细资料
参考答案:
whois redhat.com
13)检测DNS配置的语法错误
13.1)检测DNS配置文件/var/named/chroot/etc/named.conf的语法错误
13.2)检测DNS配置文件/var/named/chroot/var/named/named.britepic.org 的语法错误,指定zonename为britepic.org
参考答案:
named-checkconf
named-checkzone britepic.org /var/named/chroot/var/named/named.britepic.org
1)关闭sendmail服务,安装postfix,启动postfix
参考答案:
service sendmail stop
rpm -ivh postfix-2.0.11-4.i386.rpm
service postfix restart
2.1)配置/etc/postfix/main.cf,设定主机名称为t1.britepic.org
2.2)发信时显示出”发信源主机”项目,即邮件上面的mail from的那个位址
2.3)监控postfix的所有网卡
2.4)设定能收信的主机名称,为t1.britepic.org,localhost
2.5)规定信任的用户端为127.0.0.0/8,192.168.6.0/24
2.6)规范relay的下一部MTA主机位址,指定为$mydestination
2.7)设定邮件别名(alias_maps,alias_database),指定别名文件为/etc/postfix/aliases
2.8)重启服务
2.9)测试邮件收发
参考答案:
vi /etc/postfix/main.cf
myhostname = t1.britepic.org
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname,localhost
mynetworks = 127.0.0.0/8, 192.168.6.0/24
relay_domains = $mydestination
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
保存退出
service postfix restart
发送邮件给root
echo “testing…”|mail -s “from britepic” root
检查邮件
3)检查 postfix 的设定
参考答案:
postconf -n
4)检查 postfix 相关的档案、权限等是否正确
参考答案:
postfix check
5)强制将目前正在邮件队列的邮件发出
参考答案:
postfix flush
6)重新读入设定档,/etc/postfix/main.cf
参考答案:
postfix reload
7)查看队列
参考答案:
postqueue -p
8.1)设定邮件主机使用权限与过滤机制/etc/postfix/access,允许192.168.6.0/24发送relay
8.2)拒绝192.168.7.0/24发送relay
8.3)重建资料库
8.4)在main.cf中的mynetworks中加入access的设定
8.5)重新读入main.cf配置,并测试邮件发送
参考答案:
vi /etc/postfix/access
192.168.6 ACCEPT
192.168.7 REJECT
postmap hash:/etc/postfix/access
vi /etc/postfix/main.cf
mynetworks = 127.0.0.0/8, 192.168.6.0/24, hash:/etc/postfix/access
postfix reload
echo “testing…”|mail -s “from second” root
9.1)新建用户test
9.2)设定邮件别名,使发给root的邮件也发给用户test一份
9.3)重建aliases资料库
9.4)发送邮件给root,查看test用户是否收到邮件
参考答案:
vi /etc/postfix/aliases
root: root,postfix,test
保存退出
postalias hash:/etc/postfix/aliases
echo “testing…”|mail -s “from thired” root
10.1)邮件转发 ~/.forward,转发给kchen@ceno.cnt和root@t1.britepic.org
10.2)设定forward为644权限
10.3)查看kchen@ceno.cn和root@t1.britepic.org的邮箱
参考答案:
cd
vi .forward
kchen@ceno.cn
保存退出
chmod 644 .forward
echo “testing…”|mail -s “from fourth” root@t1.britepic.org
11)查看postfix的邮件队列
参考答案:
postqueue -p
mailq
12.1)关闭postfix服务
12.2)给root用户发一封测试邮件,
12.3)查看队列
12.4)到/var/spool/postfix/maildrop目录下,查看队列文件
参考答案:
service postfix stop
echo “test” |mail -s “testing queue” root
postqueue -p
cd /var/spool/postfix/maildrop
cat 418E91A2A86
13.1)重启postfix服务
13.2)强制将队列中的邮件发出
参考答案:
service postfix restart
postfix flush
14.1)安装mysql-devel包,安装dovecot服务
14.2)编辑dovecot.conf文档,加入pop3协议,并所有IP地址的监听
14.3)重启dovecot服务,观察110端口
参考答案:
rpm -ivh mysql-devel-3.23.58-16.RHEL3.1.i386.rpm
wget ftp://194.199.20.114/linux/dag/redhat/el3/en/i386/dag/RPMS/dovecot-0.99.13-1.1.el3.rf.i386.rpm
rpm -ivh dovecot-0.99.13-1.1.el3.rf.i386.rpm
vi /etc/dovecot.conf
protocols = pop3
pop3_listen = *
service dovecot start
netstat -anp|grep 110
15.1)测试邮件收发,发给root一封邮件
15.2)查看是否收到测试邮件
15.3)查看~/mbox的邮件
15.4)用uuencode发送以/etc/passwd文件的附件给root用户
15.5)查看root用户邮件,下载passwd文件,并解码
参考答案:
mail root@t1.britepic.org
mail -f ~/mbox
uuencode /etc/passwd passwd|mail -s “passwd” root@t1.britepic.org
s 2 encode
uudecode encode -o passwd
1)查看seLinux是否启用
参考答案:
sestatus
2)启用seLinux
参考答案:
vi /etc/sysconfig/seLinux
SELinux=enforcing
存盘退出
reboot
sestatus
3)启动httpd测试SELinux是否保护了httpd
参考答案:
service httpd restart
4.1)将seLinux的当前模式置为permissive
4.2)查看seLinux的当前模式
4.3)重启httpd
参考答案:
setenforce 0
sestatus
service httpd restart
5)将seLinux的当前模式置为enforcing
参考答案:
setenforce 1
6)查看httpd_disable_trans的设定
参考答案:
getsebool httpd_disable_trans
7.1)将httpd_disable_trans设定为永久不受seLinux保护
7.2)查看httpd_disable_trans的设定
7.3)重启httpd服务
参考答案:
setsebool -P httpd_disable_trans=1
getsebool httpd_disable_trans
service httpd restart
8)查看seLinux的booleans值
参考答案:
cat /etc/seLinux/targeted/booleans
9)显示当前系统进程的contexts
参考答案:
ps -Z
10)显示当前系统的/etc/目录下的所有文件的contexts
参考答案:
ls -Z
11.1)在/tmp/目录下新建一个名为user的文件
11.2)查看user文件的contexts
11.3)改变user文件的contexts为user_home_t
11.4)查看user文件的contexts
参考答案:
touch /tmp/user
ls -Z /tmp/user
chcon -t user_home_t user
ls -Z /tmp/user
12)查看目前使用者身份的contexts屬性
参考答案:
id -Z
13)用httpd_t的contexts查看是否有权限访问/etc/passwd
参考答案:
runcon -t httpd_t cat /etc/passwd
1)查看是否安装了ntp包
参考答案:
rpm -qa|grep ntp
2.1)配置ntp.conf
2.2)开放本地地址的ntp访问权限
2.3)开放192.168.6.0网段和192.168.7.0网段的访问权限,用户端不能更改 NTP 服务器的时间参数
2.4)设定上层的ntp服务器202.112.26.38,202.112.26.37,并且开放这两台服务器的权限
参考答案:
vi /etc/ntp.conf
restrict 127.0.0.1
restrict 202.112.26.38 mask 255.255.255.255 nomodify notrap noquery
restrict 202.112.26.37 mask 255.255.255.255 nomodify notrap noquery
restrict 192.168.6.0 mask 255.255.255.0 nomodify
restrict 192.168.7.0 mask 255.255.255.0 nomodify
server 202.112.26.38 version 3
server 202.112.26.37 version 3
server 127.127.1.0 version 3
fudge 127.127.1.0 stratum 10
3)将sync_hwclock即同步BIOS的时间设为YES,并重启ntp服务
参考答案:
vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
service ntpd restart
4)查看ntp是否开放了123端口
参考答案:
netstat -tlunp|grep 123
5)列出我们的 NTP 服务器有跟上层连接
参考答案:
ntpstat
6)NTP 服务器与上层 NTP 服务器彼此之间的关系
参考答案:
ntptrace -n 127.0.0.1
7)列出目前我们的 NTP 与相关的上层 NTP 的状态
参考答案:
ntpq -p
8)修改本地时区为中国上海
参考答案:
rm /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vi /etc/sysconfig/clock
ZONE=”Asia/Shanghai”
9)更改客户端时间,为2007-05-02,20:40
参考答案:
date -s 20070502
date -s 20:40
10.1)查看BIOS时间
10.2)将当前时间写入到BIOS
参考答案:
clock -r
clock -w
11)在客户端与上面的ntp服务器连接时间同步,并查看时间
参考答案:
ntpdate 192.168.6.217
date
date
1.1)基础的SAMBA设定
1.2)配置工作群组(workgroup)为:ckgroup
1.3)Linux 主机的 NetBIOS 名称为:ckhitler
1.4)使用者登入层级设定为:share
1.5)共享 /tmp 目录,取名为:temp
1.6)指定Linux 主机的编码格式为简体中文,显示为简体中文
参考答案:
cd /etc/samba
cp smb.conf smb.conf.raw
编辑smb.conf
vi smb.conf
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = ckgroup
netbios name = ckhitler
# server string is the equivalent of the NT Descrīption field
server string = A test of Samba Server
unix charset = gb2312
display charset = gb2312
dos charset = cp950
security = share
[temp]
comment = Temporary file space
path = /tmp
read ōnly = no
public = yes
保存退出
service smb restart
2.1)用 testparm 查看 smb.conf 的语法的正确性
2.2)查看开放的端口号
2.3)用smbclient对本机进行连接测试
参考答案:
testparm
netstat -tlunp
smbclient -L //127.0.0.1
3.1)安全等级为使用者的工作组设定,前一個免密码时的 smb.conf 设定继续保留
3.2)针对 NetBIOS name 的解析方式依序由 lmhosts, broadcast 及 host 来进行解析
3.3)安全等级提升为 user 等级
3.4)每个可使用 samba 的使用者拥有自己的家目录之外, users 这个群组的使用者可以进入 /home/public 目录中, 且在该目录下 users,这个群组的所有人可具有写入的权限
3.5)新建/home/public目录,授权为774
3.6)新建test用户,对test用户设定samba密码
3.7)禁止test用户在samba上的应用
3.8)激活test用户在samba上的应用
3.9)用testparm测试smb.conf正确性
参考答案:
编辑smb.conf
vi smb.conf
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
name resolve ōrder = lmhosts bcast host
[homes]
comment = Home directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
[public]
comment = the user groups work directory
path = /home/public
public = yes
writable = yes
valid users = @users
保存退出
mkdir /home/public
chmod 774 -R /home/public
useradd test;passwd test
smbpasswd -a test
cat /etc/samba/smbpasswd
smbpasswd -d test
cat /etc/samba/smbpasswd
smbpasswd -e test
testparm
service smb restart
4.1)用smbclient列出127.0.0.1的共享
4.2)在test用户上用smbclient列出127.0.0.1能够访问的共享
4.3)在test用户上用smbclient查询127.0.0.1的test目录下的文件
参考答案:
smbclient -L //127.0.0.1
smbclient -L //127.0.0.1 -U test
smbclient ‘//127.0.0.1/test’ -U test
5)用smbmount挂载192.168.1.101的temp目录到/mnt/samba目录,用户指定为administrator密码为111111,字符编码为cp950
参考答案:
smbmount //192.168.1.101/temp /mnt/samba/ -o username=administrator,password=111111,codepage=cp950
6)用smbstatus查询挂载
参考答案:
smbstatus
7)用nmblookup查询刚才用smbstatus得到的netbios名
参考答案:
nmblookup -S z22bt2l01wu7nik
8)将//192.168.1.101/temp目录挂载到/mnt/samba的事项加入到/etc/fstab中
参考答案:
vi /etc/fstab
加入以下内容:
//192.168.1.101/temp /mnt/samba smbfs defaults,username=administrator%111111 0 0
1)查看是否安装有vsftpd软体
参考答案:
rpm -qa|grep vsftpd
2.1)手工安装vsftpd,下载vsftpd的SRPM包
2.2)安装SRPM包
2.3)用rpmbuild重建rpm包
2.4)安装vsftpd
参考答案:
wget ftp://194.199.20.114/Linux/redhat/enterprise/4/en/os/i386/SRPMS/vsftpd-2.0.1-5.src.rpm
rpm -ivh vsftpd-2.0.1-5.src.rpm
cd /usr/src/RedHat/SPECS
rpmbuild -ba vsftpd.spec
cd /usr/src/redhat/RPMS/i386
rpm -ivh vsftpd-2.0.1-5.i386.rpm
3.1)简易设定vsftpd,取消匿名用户登陆本系统
3.2)使用者登入时显示一些欢迎讯息的资讯
3.3)系统帐号不可登入主机
3.4)一般用户可以进行上传、下载、建立目录及修改档案等动作
3.5)使用者新增的档案、目录的 umask 設定为 002;
3.6)其他主机设定值保留预设值即可
3.7)重启vsftpd服务
参考答案:
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
anonymous_enable=no
local_umask=002
banner_file=/etc/vsftpd/welcome.txt
保存退出
cat > /etc/vsftpd/welcome.txt
i love you qiu ming!
service vsftpd restart
4.1)增加chroot功能
4.2)用chroot限制用户test1
4.3)重启vsftpd服务
参考答案:
cat >/etc/vsftpd.chroot_list
test1
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
保存退出
service vsftpd restart
5.1)所有使用者预设为 chroot ,但某些使用者可不受限制的
参考答案:
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
chroot_local_user=YES
保存退出
service vsftpd restart
6.1)限制所有使用者的传输频宽最大为 100KBytes/秒
6.2)多只有 10 个人同时使用你的 FTP 的话,并且每个 IP 来源最多只能建立一条 FTP 的连线
参考答案:
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
local_max_rate=100000
max_clients=10
max_per_ip=1
保存退出
service vsftpd restart
7)只让某些人可以使用 FTP 而已,即是新增的使用者预期不可使用 FTP
参考答案:
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
userlist_deny=NO
保存退出
service vsftpd restart
cat >> /etc/vsftpd.user_list
test1
8)开放 root 使用 FTP 传输档案
参考答案:
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
#userlist_deny=no
保存退出
service vsftpd restart
vi /etc/vsftpd.user_list
去掉root
vi /etc/vsftpd.ftpusers
去掉root
9.1)匿名登入的相关设定,新建/var/ftp/Linux目录和/var/ftp/gnu目录
9.2)目录的权限为可读可写可执行
9.3)开放匿名访问,密码为空
9.4)禁止本地用户登录
9.5)资料连接的过程,只要超过 60 秒沒有回应,就强制 Client 继线
9.6)只要 anonymous 超过十分钟沒有动作,就予以继线;
9.7)最大同時上线人数限制为 50 人,且同一 IP 来源最大连线数量为 5 人
9.8)文件传输的速限为 30 Kbytes/second
参考答案:
mkdir /var/ftp/Linux
mkdir /var/ftp/gnu
chmod -R 777 /var/ftp/*
vi /etc/vsftpd/vsftpd.conf
更改如下的配置:
anonymous_enable=yes
no_anon_password=YES
local_enable=no
data_connection_timeout=60
idle_session_timeout=600
max_clients=50
max_per_ip=5
anon_max_rate=30000
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
保存退出
service vsftpd restart
1)查看本系统是否安装DHCP服务软体
参考答案:
rpm -qa |grep dhcp
2.1)手工安装dhcp,下载SRPMS包
2.2)进行SOURCES目录,解开tar包
2.3)编译安装dhcp服务端
参考答案:
wget ftp://195.220.108.108/Linux/Fedora/updates/7/SRPMS/dhcp-3.0.5-42.fc7.src.rpm
cd /usr/src/RedHat/SOURCES
tar xvzf dhcp-3.0.5.tar.gz
cd dhcp-3.0.5
./configure;make;make install
3.1)在SOURCES目录下拷贝dhcpd.conf.sample到/etc,并更名为dhcpd.conf
3.2)在SOURCES目录下拷贝dhcpd.init到/etc/init.d,并更名为dhcpd
3.3)向/etc/sysconfig/dhcpd文件中写入DHCPDARGS=”eth0″
3.4)新建/var/state/dhcp/dhcpd.leases文件
参考答案:
cp ../dhcpd.conf.sample /etc/dhcpd.conf
cp ../dhcpd.init /etc/init.d/dhcpd
cat > /etc/sysconfig/dhcpd
DHCPDARGS=”eth0″
touch /var/state/dhcp/dhcpd.leases
4.1)打开/etc/dhcpd.conf文件
4.2)內部网段设定为 192.168.2.0/24 这一段
4.3)router 为 192.168.2.1
4.4)DNS主机的 IP 为黑龙江网通的202.97.224.68
4.5)DNS的search为ckhitler.org
4.6)动态分配给客户端的IP地址为192.168.2.128到192.168.2.254
4.7)默认的租约为3天,最大为6天
参考答案:
vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0 netmask 255.255.255.0 {
# — default gateway
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option nis-domain “ckhitler.org”;
option domain-name “ckhitler.org”;
option domain-name-servers 202.97.224.68;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# — Selects point-to-point node (default is hybrid). Don’t change this unless
# — you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.2.128 192.168.2.254;
default-lease-time 259200;
max-lease-time 518400;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
5.1)启动dhcpd服务
5.2)查看/var/log/messages文件
5.3)查看监听的端口
参考答案:
service dhcpd restart
tail -n 30 /var/log/messages
netstat -tlunp
6.1)在客户端配置eth0为动态获取IP地址
6.2)重启网络
6.3)查看resolv.conf文件
6.4)查看路由
6.5)查看端口连接
6.6)查看dhclient-eth0.leases文件
6.7)查看服务端的dhcpd.leases文件
参考答案:
vi /etc/sysconfig/network-scrīpts/ifcfg-eth0
BOOTPROTO=dhcp
service network restart
cat /etc/resolv.conf
route -n
netstat -tlunp
cat /var/lib/dhcp/dhclient-eth0.leases
cat /var/lib/dhcp/dhcpd.leases
1)安装snmp,apache,mrtg
rpm -qa|grep snmp
rpm -qa|grep httpd
rpm -qa|grep mrtg
rpm -ivh mrtg-2.9.29-4.ent.i386.rpm
2.1)编辑snmpd.conf,加入mib的支持,以配合mrtg
2.2)重启snmpd服务
参考答案:
vi /etc/snmp/snmpd.conf
把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
把下面的语句
access notConfigGroup “” any noauth exact systemview none none
改成:
access notConfigGroup “” any noauth exact mib2 none none
service snmpd restart
3)新建/var/www/mrtg/net目录,并在其目录下生成mrtg.cfg,指定监控的IP为192.168.6.53(本地IP)
参考答案:
mkdir /var/www/mrtg/net/
cfgmaker –output=/var/www/mrtg/net/mrtg.cfg public@192.168.6.53
4.1)编辑mrtg.cfg文件,更改WorkDir为/var/www/mrtg/net
4.2)加入中文支持
参考答案:
WorkDir: /var/www/mrtg/net
Language:Chinese
5.1)
Alias /mrtg “/var/www/mrtg/net/”
<Directory “/var/www/mrtg/net/”>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
找到这行:
AddDefaultCharset ISO-8859-1
更改为:
AddDefaultCharset GB2312
6.1)查找mrtg命令的路径,并跟据路径进入此目录
6.2)执行env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg,执行三遍
参考答案:
which mrtg
cd /usr/bin/
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg
7)用indexmaker 制作index.html首页,存放路径为/var/www/mrtg/net/,title为ckhitler
参考答案:
indexmaker –output=/var/www/mrtg/net/index.html –title=ckhitler /var/www/mrtg/net/mrtg.cfg
8)去除掉mrtg在安装时给apache做的默认配置,此配置会自动加载到apache中,导致除本地外,其它机器都不能访问
参考答案:
cd /etc/httpd/conf.d
mv mrtg.conf /tmp
9)重启httpd和snmp服务
参考答案:
service httpd restart
service smpd restart
10)在crontab中加入在网卡流量的监控,每5分钟执行一次
参考答案:
vi /etc/crontab
*/5 * * * * root env LANG=C /usr/bin/mrtg /var/www/mrtg/net/mrtg.cfg
11.1)在mrtg中加入对cpu的监控设定,加入:Target[cpu],即mrtg执行时运行/var/www/mrtg/mrtg.cpu脚本
11.2)加入:MaxBytes[cpu],即图表纵向数值的最大上限为100
11.3)加入:Options[cpu]: gauge, nopercent, growright,即图表向右延展
11.4)加入:YLegend[cpu],即图表纵向显示的标题为CPU loading(%)
11.5)加入:ShortLegend[cpu],即在图标中数值后面所跟的单位
11.6)加入:LegendI[cpu]和LegendO[cpu],即从脚本读取的第一个值和第二个值,第一个值统计CPU SYSTEM,第二个值统计CPU USER
11.7)加入:Title[cpu]:即网页的标题,设定为CPU
11.8)加入:PageTop[cpu]:即网页显示的名称,设定为CPU loading
11.9)在网页名称下面显示系统的版本号
参考答案:
Target[cpu]: `/var/www/mrtg/mrtg.cpu`
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercent, growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]: %
LegendO[cpu]: CPU SYSTEM;
LegendI[cpu]: CPU USER;
Title[cpu]: CPU
PageTop[cpu]: <H1>CPU loading</H1>
<TABLE>
<TR><TD>System:</TD> <TD>Red Hat Enterprise Linux ES release 3 (Taroon Up
date 7)</TD></TR>
</TABLE>
12.1)编写统计CPU的脚本,要求第一组输出数据(LegendI)为系统占CPU百分比
12.2)第二组数据输出数据(LegendO)为用户占CPU百分比
12.3)第三组数据为系统运行天数及时间,例如: 1day,5:05,
12.4)第四组数据为主机名
参考答案:
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $3}’`
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $5}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname
13.1)在mrtg中加入对磁盘空间的监控,加入:Target[disk],即mrtg执行时运行/var/www/mrtg/df.sh脚本
13.2)加入:MaxBytes[disk],即图表纵向数值的最大上限为465247550
13.3)加入:Options[disk]: gauge, nopercent, growright,即图表向右延展
13.4)加入:YLegend[disk],即图表纵向显示的标题为Megabytes
13.5)加入:ShortLegend[disk],即在图标中数值后面所跟的单位
13.6)加入:LegendI[disk]和LegendO[disk],即从脚本读取的第一个值和第二个值,第一个值统计磁盘总空间,第二个值统计已用空间
13.7)加入:Title[disk]:即网页的标题,设定为Disk Space
13.8)加入:PageTop[disk]:即网页显示的名称,设定为Disk Space
13.9)加入:Unscaled[disk]:不让 MRTG 自动调制 Y 轴,为每个Target生成4个图片,分别是天,周,月,年
13.10)加入:kmg[disk]:KB,MB,GB
13.11)加入:kilo[disk]:即以1000=1KB来计算
参考答案:
Target[disk]: `/var/www/mrtg/df.sh`
Title[disk]: Disk Space
Unscaled[disk]: dwym
MaxBytes[disk]: 465247550
kmg[disk]: KB,MB,GB
kilo[disk]: 1000
LegendI[disk]: Total Disk Space
LegendO[disk]: Used Disk Space
YLegend[disk]: Megabytes
ShortLegend[disk]:
Options[disk]: growright,gauge,nopercent
PageTop[disk]: <H1>Disk Space </H1>
14.1)编写df.sh脚本,要求第一组输出数据(LegendI)为系统总空间以(KB)为单位
14.2)第二组数据输出数据(LegendO)为以使用空间以(KB)为单位
14.3)第三组数据为系统运行天数及时间,例如: 1day,5:05,
14.4)第四组数据为主机名
参考答案:
declare -i disknum
declare -i initnum
declare -i sizenum
declare -i disktotal
declare -i usednum
declare -i diskused
declare -i diskavai
disknum=`df -kl|grep -v “Filesystem”|wc -l|awk ‘{print $1}’`
for ((initnum=1;initnum<disknum;initnum++))
do
sizenum=`df -kl|grep -v “Filesystem”|awk ‘{print $2}’|sed -n “$initnum”p`
usednum=`df -kl|grep -v “Filesystem”|awk ‘{print $3}’|sed -n “$initnum”p`
avainum=`df -kl|grep -v “Filesystem”|awk ‘{print $4}’|sed -n “$initnum”p`
disktotal=sizenum+disktotal
diskused=usednum+diskused
diskavai=avainum+diskavai
done
echo $disktotal
echo $diskused
echo $diskavai
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $UPtime
hostname
15.1)生成mrtg.cfg
15.2)用indexmaker 制作index.html首页
参考答案:
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg
indexmaker –output=/var/www/mrtg/net/index.html –title=ckhitler /var/www/mrtg/net/mrtg.cfg
1)查看本系统是否安装有服务端所需的nis包,即ypbind,yp-tools和ypserv,如没有预安装,则要安装上
参考答案:
rpm -qa | grep ‘^yp’
wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/ypserv-2.13-6.i386.rpm
2)新建/nishome目录,在服务端建立测试用户,指定UID为5001,指定家目录为/nishome/test
参考答案:
mkdir /nishome
useradd -u 5001 -d /nishome/test test
passwd test
3)在服务端设定nis的域名为ckhitler,并加入到/etc/sysconfig/network档案中
参考答案:
nisdomainname ckhitler
nisdomainname
vi /etc/sysconfig/network
NISDOMAIN=ckhitler
4)设定服务端的/etc/hosts文件,增加服务端/客户端的IP与主机名,例如服务端为master.nis,客户端为client.nis
参考答案:
vi /etc/hosts
192.168.1.103 master.nis
192.168.1.102 client.nis
5)设定服务端的当前的主机名为master.nis
参考答案:
hostname master.nis
6)在服务端新建/etc/netgroup空文件
参考答案:
touch /etc/netgroup
7)在服务端启动portmap/ypserv,yppasswdd服务
参考答案:
service portmap start
service ypserv start
service yppasswdd start
8)查看服务端的RPC端口和ypserv的端口
参考答案:
rpcinfo -p localhost
rpcinfo -u localhost ypserv
9)在服务端建立nis的资料库,编辑Makefile文件,并指定UID为5001之后的用户
参考答案:
vi /var/yp/Makefile
更改MINUID和MINGID为5001
如下:
MINUID=5001
MINGID=5001
/usr/lib/yp/ypinit -m
10)在客户端设定NIS域名为ckhitler
参考答案:
nisdomainname ckhitler
vi /etc/sysconfig/network
NISDOMAIN=ckhitler
11)在客户端设定主机名与服务端一致
参考答案:
vi /etc/hosts
192.168.1.103 master.nis
192.168.1.102 client.nis
12)在客户端用authconfig启动ypbind 连接 NIS server,选择NIS,添加NIS的域名和服务器主机名
参考答案:
authconfig
13)在客户端启用NIS连接服务及RPC服务
参考答案:
service portmap start
service ypbind start
14)在客户端测试资料库是否正确
参考答案:
yptest
15)在客户端测试资料库数量
参考答案:
ypwhich -x
16)读取资料库passwd.byname的内容
参考答案:
ypcat passwd.byname
17)在客户端测试用户的登录
参考答案:
su – test
18)在服务端查看nis 的资料库目录
参考答案:
cd /var/yp
ls
19)在客户端更新test用户的密码,并与服务端同步,并测试登录
参考答案:
yppasswd test
su – tset
su – test
20)在服务端查看test用户是否更改
参考答案:
su – test
su – test
1)打开HTTPD的持续性连接,即KeepAlive,该指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,该次连接能够传输的最大传输数量为500
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
修改如下内容:
KeepAlive On
MaxKeepAliveRequests 500
保存退出
service httpd restart
2)查看当前apache的应用模式
参考答案:
httpd -l
3)调整httpd最大的同時连接数量为10000个
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
修改如下内容:
ServerLimit 10000
MaxClients 10000
保存退出
service httpd restart
4)启动httpd进程的用户为apache
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
修改如下内容:
User apache
Group apache
保存退出
service httpd restart
5)用中文 GB2312 编码
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
修改如下内容:
AddDefaultCharset GB2312
保存退出
service httpd restart
6.1)首頁权限相关设定,更改默认的WEB目录为/web
6.2)增加default.html为默认的索引文件
6.3)在default.html网页中增加”I love China”
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
修改如下内容:
DocumentRoot “/web”
<Directory “/web”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DirectoryIndex default.html index.html index.html.var
保存退出
mkdir /web
cat > default.html
I love China!
service httpd restart
7.1)启动用户的个人网站,用户为test
7.2)用户目录为/home/test/html
7.3)在用户目录下新建index.html文件
7.4)设定目录别名,即访问http://ip/test,即可浏览页面
参考答案:
mkdir /home/test/html
chmod 755 /home/test/ -R
echo “Test your home”>>/home/test/html/index.html
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
#UserDir disable
UserDir public_html
</IfModule>
Alias /test/ “/home/test/html/”
<Directory “/home/test/html”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
保存退出
service httpd restart
8)只让 192.168.1.0/24 这个网段可以浏览
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
<Directory “/home/test/html”>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
allow from 192.168.1.0/24
</Directory>
保存退出
service httpd restart
9)主机状态说明网页,只让 192.168.1.0/24和127.0.0.1可以浏览
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
Allow from 127.0.0.1
</Location>
保存退出
service httpd restart
http://192.168.1.103/server-status
10.1).htaccess 与认证网页设定,认证目录为/web
10.2)认证的用户名test密码qiuming
参考答案:
修改以下的文件:
vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride AuthConfig
</Directory>
<Directory “/web”>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
保存退出
修改以下的文件:
vi /web/.htaccess
AuthName “Protect test by .htaccess”
Authtype Basic
AuthUserFile /var/www/apache.passwd
require user test
保存退出
htpasswd -c /var/www/apache.passwd test
service httpd restart
11)建立 SSL (https) 网站,ssl访问的目录为/var/www/html
参考答案:
cd /etc/httpd/conf/ssl.key
mv server.key server.key.raw
openssl genrsa -out server.key 1024
cd /etc/httpd/conf/ssl.crt
mv server.crt server.crt.raw
openssl req -new -x509 -key ../ssl.key/server.key -out server.crt
修改以下的文件:
vi /etc/httpd/conf.d/ssl.conf
DocumentRoot “/var/www/html”
ServerName *:443
保存退出
service httpd restart
1)配置服务器的NFS挂载目录
1.1)新建/pub/Linux和/pub/solaris目录
1.2)配置nfs,使客户端可以挂载以上两个目录,开放写权限
参考答案:
mkdir -p /pub/Linux
mkdir -p /pub/solaris
vi /etc/exports
/pub/Linux *(rw,no_root_squash)
/pub/solaris *(rw,no_root_squash)
serivce portmap restart
service nfs restart
showmount -e 127.0.0.1
2.1)配置客户端的auto.master,指定挂载点为misc,指定misc的map文件为/etc/auto.misc
2.2)配置/etc/auto.misc文件,要求进入/misc/Linux目录,即挂载NFS的192.168.6.220:/pub/Linux
2.3)挂载后为只读,加入soft(当client的请求得不到回应,重试后返回错误),加入intr(当正在进行 NFS 请求时,允许用键盘中断)
2.4)配置/etc/auto.misc文件,要求进入/misc/solaris目录,即挂载NFS的192.168.6.220:/pub/solaris
2.5)挂载后为可读可写,加入soft和intr
2.6)重启autofs服务
参考答案:
vi /etc/auto.master
加入:
/misc /etc/auto.misc –timeout=60
vi /etc/auto.misc
加入:
Linux -ro,soft,intr 192.168.6.220:/pub/Linux
solaris -rw,soft,intr 192.168.6.220:/pub/solaris
service autofs restart
3.1)测试,进入/misc/Linux,用mount查看挂载情况
3.2)进入/misc/solaris,用mount查看挂载情况
3.3)在NFS服务端,将/etc/hosts 拷到/pub/Linux目录,在客户端的/misc/Linux目录下查看文件
3.4)在客户端的/misc/solaris目录,新建一个目录test
3.5)在服务端查看/pub/solaris
参考答案:
客户端:
cd /misc/Linux
mount
cd /misc/solaris
mount
服务端:
cd /pub/Linux
cp /etc/hosts .
客户端:
cd /misc/Linux
cat hosts
cd /misc/solaris
mkdir test
服务端:
ls -l /pub/solaris
1.1)查看是否安装squid
1.2)安装squid-2.5,软体在es3的光盘第三张
1.3)查看安装后的squid
参考答案:
rpm -qa|grep squid
rpm -ivh squid-2.5.STABLE3-6.3E.16.i386.rpm
rpm -qa|grep squid
2)修改squid.conf配置文档
2.1)设定标准的代理端口为3128,查询封包的端口为3130
2.2)定义squid的cache目录为/var/spool/squid,而大小为1G,这个目录下可以有16个目录,而每個目录中又有256个目录
2.3)定义squid的cache_access_log为/var/log/squid/access.log
2.4)定义squid的cache_log为/var/log/squid/cache.log
2.5)定义squid的cache_store_log为/var/log/squid/store.log
2.6)定义squid的pid_filename为 /var/run/squid.pid
2.7)将 http_access deny all改为 http_access allow all
2.8)定义visible_hostname为citiz,并保存退出
参考答案:
vi /etc/squid/squid.conf
http_port 3128
icp_port 3130
cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
http_access allow all
visible_hostname citiz
3)建立 cache_dir
参考答案:
squid -z
4)启动squid服务
参考答案:
service squid start
5)查看3128端口号
参考答案:
netstat -tln | grep 3128
6.1)设定cache_mem为64M
6.2)设定cache_swap_low为90%,设定cache_swap_high 95
6.3)保持与内存资料有关(maximum_object_size_in_memory)的设定为8KB
6.4)重启squid服务
参考答案:
cache_mem 64 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 8 KB
service squid restart
7.1)配置客户端的WEB浏览器,指定PROXY的IP地址和端口号(3128)
7.2)观察cache_access_log日志
参考答案:
FIREFOX—-编辑—-首选项—-高级—-网络—-设置—-手动配置代理—-HTTP代理—IP地址:X.X.X.X,端口为3128
tail -f /var/log/squid/access.log
8.1)更改access权限,注释掉acl all src 0.0.0.0/0.0.0.0
8.2)增加192.168.6.0网段的定义
8.3)配置192.168.6.0网段可以通过proxy访问web服务
8.4)重启squid服务
8.5)测试是否还可以用WEB浏览器访问web服务,修改IP为非192.168.6.0的网段,再测试是否能访问WEB服务
参考答案:
vi /etc/squid/squid.conf
注释掉:
#acl all src 0.0.0.0/0.0.0.0
增加:
acl all src 192.168.6.0/24
查看或修改:
http_access allow all
保存退出
service squid restart
1).安装mysql
参考答案:
rpm -ivh MySQL-client-community-5.0.45-0.rhel3.i386.rpm
rpm -ivh MySQL-server-community-5.0.45-0.rhel3.i386.rpm
2.1).停止mysql数据库
2.2).启动mysql
参考答案:
mysqladmin shutdown
mysqld_safe &
3.1).显示出所有的数据库
3.2).显示数据库test里表的信息
3.3).新建数据库menagerie
3.4).新建menagerie数据库,新建表(pet表),字段为”名字、主人、种类,性别、出生和死亡日期”
3.5).显示menagerie数据库表的信息,并查看pet表的表结构
参考答案:
show databases;
use test;
show tables;
create database menagerie;
use menagerie;
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
show tables;
describe pet;
4.1).将以下的信息导入到pet表中,注意各记录之间用回车符分隔,各字段值用空格键分隔
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1998-08-30 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird m 1997-12-09
Slim Benny snake m 1996-04-29
参考答案:
load data local infile “/tmp/pet.txt” into table pet fields terminated by ‘ ‘;
5.1).查看mysql的环境变量,及最大连接数
5.2).编辑/usr/bin/safe_mysqld,找到mysqld启动的那两行,在后面加上参数 :-O max_connections=1500
5.3).重启mysql服务
参考答案:
mysqladmin variables
vi /usr/bin/safe_mysqld
修改为以下的内容:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults –basedir=$MY_BASEDIR_VERSION
–datadir=$DATADIR $USER_OPTION
–pid-file=$pid_file
–skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
“$NOHUP_NICENESS $ledir/$MYSQLD
$defaults –basedir=$MY_BASEDIR_VERSION
–datadir=$DATADIR $USER_OPTION
–pid-file=$pid_file
–skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1″
mysqladmin shutdown
mysqld_safe &
mysqladmin variables|grep 1500
6.1).修改MYSQL的客户端/服务端的字符编码为utf8
6.2).拷贝/usr/share/mysql/my-large.cnf到/etc/,改名为my.cnf
6.3).在client和mysald段中加入default-character-set = utf8
6.4).重启mysqld服务
6.5).登入mysql,查看环境变量中的字符编码
6.6).创建数据库study,指定utf8字符编码
6.7).进入study数据库,查询数据库编码
参考答案:
cp /usr/share/mysql/my-large.cnf /etc/my.cnf
编辑my.cnf,加入utf8编码
vi /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
mysqladmin shutdown
mysqld_safe &
mysql
show variables like ‘character_set_%’;
show variables like ‘collation_%’;
create database study character set utf8;
use study
status
7.1).查看MYSQL系统的用户
7.2).新建一个用户pmg51,密码为pmg51,有所有数据库操作权限 ,所有IP登录的权限,并且有grant的权限
7.3).执行一个FLUSH PRIVILEGES语句告诉服务器再装载授权表
7.4).再查看MYSQL系统的用户
7.5).用pmg51登录系统,指定登入的数据库为menagerie
7.6).显示当前pmg51用户连接的数据库
参考答案:
mysql -u root mysql -p
select host,user,password from user;
GRANT ALL PRIVILEGES ON *.* TO ‘pmg51’@’localhost’ IDENTIFIED BY ‘imeg’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO ‘pmg51’@’%’ IDENTIFIED BY ‘pmg51’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
select host,user,password from user;
mysql -u pmg51 menagerie -p
select database();
8.1).备份menagerie数据库到/tmp/menagerie.sql文件,指定utf8编码
8.2).备份menagerie数据库的pet表到/tmp/pet.sql文件,指定utf8编码
8.3).备份menagerie数据库中的pet表sex字段为f的数据到/tmp/sex.sql文件,同样指定utf8编码
8.4).在mysql命令指示下用outfile的方式导出pet表,限定birth字段的内容为大于1995-01-01的宠物
8.5).导出menagerie数据库的pet表结构到/tmp/struct.txt文件
参考答案:
mysqldump -u pmg51 -p –default-character-set=utf8 menagerie>/tmp/menagerie.sql
mysqldump -u pmg51 -p –default-character-set=utf8 menagerie pet >/tmp/pet.sql
mysqldump -u pmg51 -p –where “sex=’f'” menagerie pet –default-character-set=utf8>/tmp/sex.sql
select * into outfile ‘/tmp/outfile.txt’ FIELDS TERMINATED BY ‘,’ from pet where birth>=’1995-01-01′;
mysqldump -u pmg51 -p -d –add-drop-table menagerie >/tmp/struct.sql
9.1).删除pet表
9.2).导入/tmp/pet.sql数据到pet表
参考答案:
drop table pet;
source /tmp/pet.sql
10.1).在MYSQL环境下清除屏幕
10.2).显示/tmp/目录下的所有文件,及详细内容
参考答案:
system clear
system ls /tmp/ -l
11.1).查询MYSQL的物理数据文件路径
参考答案:
mysqladmin variables|grep datadir
12.1).显示mysql下数字为:126 127 132 134 135 136 141 144 145的错误代码
12.2).进入/var/lib/mysql/menagerie目录,组合pet表的碎片记录并且消除由于删除或更新记录而浪费的空间
参考答案:
perror 126 127 132 134 135 136 141 144 145
cd /var/lib/mysql/menagerie
myisamchk -r pet
13.1).获得关于pet表的描述或统计
13.2).继续前面的操作,加上-v告诉它以冗长模式运行
13.3).继续前面的操作,显示表的最重要的信息
13.4).继续前面的操作,显示表现在的操作信息
参考答案:
cd /var/lib/mysql/menagerie
myisamchk -d pet
myisamchk -d -v pet
myisamchk -eis pet
myisamchk -eiv pet
14).用mysqladmin的ping选项检测mysqld的状态
参考答案:
mysqladmin ping