虚拟帐号的配置独立


因为了区分vip用户和普通用户的功能,所有对每个用户进行独立设置。

 

 

man5 vsftpd.conf

/config

 

wKiom1g2XKuwqxrQAABbBx8dob4461.png



vim /etc/vsftpd/vsftpd.conf

#anon_upload_enable=YES     将此条注释,即为拒绝所有用户

 

user_config_dir=/etc/vsftpd/user-conf

 

mkdir -p /etc/vsftpd/user-conf

 

vim /etc/vsftpd/user-conf/westos1

anon_upload_enable=YES

 

westos1是VIP!!!!!可以上传文件


wKiom1g2XKyT7oBYAAB64DC17FY408.png


westos2,为普通用户


wKioL1g2XK2yX4OsAABlmK04r9Y015.png

 

 

注意~~

 

 

550 服务本身不能

553 本地文件系统

530 密码,没有重启服务,selinux

    黑名单(/etc/vsftpd/ftpusers/etc/vsftp/user_list)

 

 

复制是新建:在新目录下按照新目录的属性(安全上下文,权限等)

移动是重命名:保留原目录的属性

 

 

/ftpdir/westos1         家目录不能有写权限

 

chmod 775 /ftpdir/westos1/pub

chgrp ftp /ftpdir/westos1/pub

 

别忘了关selinux!!!

 

selinux

 

查看安全上下文

 

ls -Z

 

wKiom1g2XK-wH9vLAABS_FCRhU4875.png

 

?为没有加载,通常在selinux处于disable下,创建的文件,上下文会是这种情况。

 

 

wKioL1g2XLSCu8s2AAA8auhgduk739.png


 

 

 

不同目录有不同的安全上下文

 

wKiom1g2XLbgpKefAABVS9nqVA0614.png


ps axZ |grep vsftpd     查看vsftp进程的上下文信息:

touch /mnt/file

mv /mnt/file

lftp localhost

ls -Z /var/ftp/pub

 


若是强行移动/mnt 下的文件,到/var/ftp/pub下,使用lftp访问时,会因为上下文标签的不同而访问不到。

 

wKioL1g2XLfDTpPaAACDDqL3JbM693.png


刷新上下文标签

方法一:chcon -t public_content_t(只读)/var/ftp/pub -R(推荐)

方法二:restorecon /var/ftp/pub*

 

刷新文件的上下文


wKioL1g2XLqiTe0HAADG5ctxzyY330.png

 

刷新目录的上下文

 

将匿名用户lftp家目录改为/ftpdir

 

vim /etc/vsftpd/vsftpd.conf

anon_enable=YES

anon_root=/ftpdir

 

wKiom1g2XLvBWoRLAAAd-8k9sS4155.png


chcon   -t  public_content_t    /ftpdir/    -R


wKioL1g2XMKDfJR7AADunLsKmUc967.png


用chcon刷新的上下文标签,在重启selinux之后会失效。

 

要想永久改变上下文标签,用semanage!!

 

semanage fcontext -a -t public_content_t'/ftpdir(./*)?'

semanage fcontext -l | grep ftpdir

 

 

wKiom1g2XMOwE4NmAAEsviaoQZk772.png

 


将要修改的信息,加入semanage fcontext   列表后,重启selinux即可生效,但还要去/etc/sysconfig/selinux 中,先修改为disable   ,再修改为enforce,很麻烦~

 

所以我们用      restorecon-RvvF /ftpdir        重载列表的读取!

 

-R递归

vv显示目录和子目录配置详细信息

F flush

 

wKioL1g2XMWyZMXEAAG9KQ9-Y9M982.png

 

 

semanage fcontext -d -t public_content_t'/ftpdir(./*)?'    删除


wKioL1g2XMaQWGlFAACBFbJ6Z14828.png

 

 

通常情况下selinux会屏蔽服务本身功能(危险),和对文件执行(读写)。

 

 

下面这张截图,说明匿名用户不能上传文件,是selinux在作怪~~~


wKiom1g2XMeAWPRbAADyFt1Tiiw611.png

 

当设置 setenforce 0时,selinux处于警告状态

只需要开启/etc/vsftpd/vsftpd.conf 中的anon_upload_enable=yes

就可以上传文件

 

当设置 setenforce 1时,selinux处于强制管理状态,就不能上传文件。

 

getseboot -a | grep ftp 查看selinux 对ftp的全部管理

 

wKiom1g2XMfyikKiAAAmG0lSq3k632.png


 

其中 ,ftpd_full_access ,是对ftp的总管理

 

wKioL1g2XMjiupCXAABGblS7qo0931.png

 

还需要设置:

getsebool -P ftpd_anon_write on

-P permanent

才可以完成文件的上传。

 

wKioL1g2XMiAEzOGAAA5v-nPQLM841.png


 

wKiom1g2XMmBMLkNAAB8CaBSTHQ984.png





系统的恢复


本实验实验恢复环境为光盘模式,虚拟机和修复使用的光盘均为rhel7.0

 

wKioL1g2XMrDt56xAAB4luGGubQ257.png

 

修复模式启动时,状态如图

 


wKiom1g2XMugcf-FAAA2Ej2zsSY070.png


wKiom1g2XMuzkFftAABYC9r-RYk561.png

 


 

wKioL1g2XmTARS11AABqo8ITxms517.png


wKiom1g2XmXCRijFAAA90zWaOdY725.png


wKioL1g2XmXCKSHXAAAV8PMUkyg434.png






在使用时,需要先挂载光盘。然后进入Packages,就能得到你想要的东西啦~

 

wKiom1g2XmbjXkfjAAAZBKQpkfw699.png

 

1.系统启动流程

 

 

 

                            通电

                            ||

bios(主板上的只读存储中,basic input or outputsystem)

作用,硬件检测,激活硬件

                             ||

grup系统引导(grub引导分为两个阶段)

 

 

1)阶段1 mbr (主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节

*)dd if=/dev/zero of=/dev/vda bs=446count=1 可以清空mbr

*)进入挽救模式,执行chroot /mnt/sysp_w_picpath切换到真实环境,

并执行grub2-install /dev/vda

 

 

 

2)阶段2 grub文件引导阶段(/boot/grub2/grub.cfg)

找到/boot分区

读取/boot/grub2/grub.cfg

文件丢失,grub2-mkconfig > /boot/grub2/grub.cfg




wKioL1g2XmaRLkZXAAAdGRqmKJA506.png


wKiom1g2Xmjivy5FAAGfSxarMzI135.png



 

手动引导流程

 

wKioL1g2XmiT9Ky6AAB1dhg-HG0572.png

 

 

如果丢失的是windos的引导文件,则如下图手动引导


 

wKioL1g2Xmnz1MQRAAANrhYZoiQ595.png

 

        ||

启动内核,只读挂载/设备

检测设备

对设备驱动进行初始化

进入系统初始化阶段

内核丢失,重新安装内核安装包就能解决

rpm -ivh kernel-xxx.rpm –force

 

wKiom1g2XmrxVWr1AADuEGgHFFY212.png


 

现在缺少vmlinz-3.10.0.123.el7.x86_64

进入光盘的Packages

 

执行rpm2cpio kernel-3.10.0.123.el7.x86_64.rpm | cpio–id???????

 

 

 

wKioL1g2Xm3Rlkx9AAEPx_Za4QA780.png

 

得到一个boot目录。

执行 cp boot/vmlinz-3.10.0.123.el7.x86_64 /boot/vmlinz-3.10.0.123.el7.x86_64

修复完成~~~~


wKiom1g2Xm-DEfgSAACgW7JXjuw301.png

    ||

 

系统初始化阶段

系统初始化阶段加载initrd镜像

 

开启初始化进程systemd

开始selinux

加载内核参数

初始化系统时钟,键盘,主机名称

重新读写挂载/设备

激活raid,lvm

激活配额

启动multi-user.target.wangs中的所有服务

开启虚拟控制台

启动图形

 

 

 

如果initrd镜像不慎丢失

 


wKiom1g2XnDCTJmSAAAzyYbi4TY579.png


 

 

可以用mkinitrd 命令,让我们来man 一下他的用法!


 

wKioL1g2XnGjnCuJAABbsgrhD7I000.png

 

执行mkinitrd    /boot/initramfs-`username-r`.img   ``username -r`

 

修复完成~~~~


wKioL1g2XnKRwytjAABo2r9bnow943.png

 

 

 

删除整个boot分区,启动如图:


wKiom1g2XnOyX9O5AABQ6KKBciI201.png

 

 

恢复如图

1)内核丢失,重新安装内核安装包就能解决

rpm -ivh kernel-xxx.rpm –force

 

wKiom1g2XnTDGaZBAAD18-rzXm8067.png

 

安装完内核,/boot分区下出现了这么多文件,但还缺少/boot/grub2/grub.cfg!!!

 

wKioL1g2XnTi4iXJAABDvqO5f58819.png

 

恢复/boot/grub2/grub.cfg!!!!

grub2-mkconfig>/boot/grub2/grub.cfg

 

wKioL1g2XnWDODupAABU4-owEf8237.png

 

 

最后查看一下/boot分区里的东西和原来是不是都一样~~~

 

wKiom1g2XnbwE_k3AABH-YR-OK8456.png

 

wKiom1g2XneBudRgAADLNHlTZWY799.png

 

WOW,恢复大业完成!!!

 

 


开机服务自启是什么幺蛾子

系统初始化阶段加载initrd镜像开启初始化进程system

加载服务!!!

 

 

开机自启服务,以sshd服务为例

 

开机自启是因为存在链接文件,etc/systemd/system/multi-user.target.wants/sshd.service

 

 

执行systemctl enable sshd,实际上是执行

 

ln  -s  /usr/lib/systemd/system/sshd.service/etc/systemd/system/multi-user.target.wants/sshd.service

 

执行systemctl disable sshd,实际上是执行

rm -rf/etc/systemd/system/multi-user.target.wants/sshd.service

 

 

wKioL1g2XnjCppZfAAG-BXGNWak648.png

 



defablt.target  为开机系统启动级别


系统初始化阶段加载initrd镜像开启初始化进程systemd

加载开机系统启动级别!!!


 

默认情况下

/etc/systemd/system/default.target

链接/usr/lib/systemd/system/graphical.target(图形)

 

 

现在把它链接到reboot,系统就处于一直自启状态

 

ln -s  /usr/lib/systemd/system/reboot.target /etc/systemd/system/default.target


 

wKioL1g2Xnmx6_H8AABTcltzaVk406.png

 

修复方法:

 

在开机时,press e之后编辑如下

linux16   .....rw rd.break


 

wKiom1g2XnrBbFgmAABhQ2XDhec048.png

 

press Ctrl-x 进入一个shell,载chroot /sysroot 进入真实root分区

 

rm -rf /etc/systemd/system/default.target

ln  -s  /usr/lib/systemd/system/graphical.target

/etc/systemd/system/default.target

 

exit *2


wKiom1g2XnqCjiXjAAAzMwvZRug516.png




如果忘记了root密码怎么办?


系统初始化时,加载initrd镜像时,认证密码。


 

在开机时,press e之后编辑如下

linux16   .....rw rd.break

 

wKioL1g2Xn2xyHDcAABXdbkW_3M848.png



press Ctrl-x 进入一个shell,载chroot /sysroot 进入真实root分区

 

passwd

touch     /.autorelabel重新建立认证识别,更新新的密码

exit *2

 

wKiom1g2XoGBA8dvAABUQh4koy4177.png




 

DNS

客户端

vim /etc/resolv.conf

nameserver 172.25.254.130


wKioL1g2XoOwvqi4AAA-58-YuVM395.png

服务器

yum install bind -y

 

若是装完立即开启服务,则会出现服务开启缓慢

这是因为系统在捕捉加密字符

动动鼠标和键盘都会产生加密字符

 

cat /dev/random可以查看已产生的加密字符


wKiom1g2XoST1Zy8AABfLGtpbLg386.png

 

加密字符的key在/etc/rndc.key


wKioL1g2Xoay7p7VAACh25Wps94127.png

 

 

未配置服务时的端口情况:只有本地的53端口开着。

回环接口(127.0.0.1):本机服务之间的通信


wKioL1g2XofjxQYZAABvbXLGZM4978.png


netstat -antulpe       |grep named查看name所占的端口号

a all

n numeric????

t tcp

u udp

l listening

p progress 进程

e extend    拓展

 

 

开始配置服务器!!!!!

 

对防火墙的设置

 

firewall-cmd --permanent --add-service=dns

firewall-cmd –reload

 

wKiom1g2XomTJZp8AAAybU3uAqw032.png

 

 

vim /etc/named.conf

11  listen=onport 53 {any};    设定端口开放,表示所有interface都开

17  allow-query{any;};回答所有人的提问

18  forwarders{172.25.254.250;};   缓存谁的答案

32  dnssec-validationno;   网络上的网警。。。

 

wKiom1g2XoqxxDfJAACNEXHkc6U035.png

 

 

wKiom1g2ab2DVZxFAAAg_0svnpI082.png

 

 

检验


客户端:dig www.taobao.com

 

第一次访问很慢,但之后访问都特别快!!!!!!!

 

wKioL1g2acqg4jiWAAE6HQZhlKg497.png

 

@qq.com:域名

mail@qq.com:主机名

 

域名是DNS,A记录文件

 

正向解析 把域名变成ip

vim /etc/named.conf

 

11  listen=onport 53 {any};    设定端口开放,表示所有interface都开

17  allow-query{any;};回答所有人的提问

32  dnssec-validationno;   网络上的网警。。。


 

wKioL1g2acyiF_oJAACNKPsPb1w728.png


在/etc/named.conf的末尾指引我们去下一级文件: 


wKiom1g2ac3xhonxAAAQsUX7-3M441.png


 

vim /etc/named.rfc1912.zones


wKiom1g2adHT9IjgAAAnShjNXsA116.png

 


cp -p /var/named/named.localhost/var/named/westos.com.zone

-p  将权限也一起复制过来

 

vim /var/named/westos.com.zone  蓝色的文件为A记录


wKiom1g2adnDtKTxAABTqvh6PM8349.png

 

文件里不以.结尾,就以@结尾,@为westos.com

 


wKioL1g2aeLAl_4LAAC9m3iR2wo939.png

轮询机制

vim /var/named/westos.com.zone


wKiom1g2aeXSYGJRAAA7ADDaiVM786.png

 

效果为172.25.254.101和172.25.254.102交替出现。


wKiom1g2ahGBLPdcAADKO42SDfU534.png


wKioL1g2ahXhzKkNAADIOXTivrA007.png

 

 




MX 用于名称的邮件交换器(向何处发送电子邮件)

 

 

vim /var/named/westos.com.zone

westos.com.MX 1    172.25.254.100.

wKioL1g2ahfzWku7AABUz7AwCfs081.png

 


检验:

dig-t mxwestos.com


wKiom1g2ah3wbLgyAADAs27kFpY950.png

   

mail root@westos.com

crtl+d 结束输入

 

 

mailq  可以查看westos.com邮件交换器的IP!!!


wKioL1g2aiHzjnC7AACPWzWHg2s262.png

 

 





CHAME     名称至规范名称(包含A/AAAA记录的另一个名词)

 

vim /var/named/westos.com.zone


wKiom1g2aiWzEEUlAABWWo_eckY333.png


效果如图:


wKioL1g2ajygjlbPAAC4ZOwVX-s927.png

 

反向解析

vim /etc/named.conf

设置同正向解析。

vim /etc/named.rfc1912.zones


wKiom1g2aj3BwWtHAAArYab5Tzg782.png


cp -p /var/named/named.loopback/var/named/westos.comNaNr

 

vim /var/named/westos.comNaNr


wKioL1g2aj-zAiXCAAA5VAlL12k083.png

 

验证

wKiom1g2akKihxJbAADCeIRhfUs089.png

 

 

 



双向解析:不同ip访问同一个地址,得到不同的解析


本例为:desktop:172.25.254.10, dig www.westos.com得到的解析为172.25.254.102

其他用户 dig www.westos.com  得到的解析为172.25.0.102

 

 

man 5 named.conf

/view


wKiom1g2akTB7-f6AAAlapJPLwg450.png

 

 

 

vim /etc/named.conf


wKioL1g2ak2ASv3DAACIglDukRA672.png

 


cp –p /etc/named.rfc1912.zones     /etc/named.rfc1912.zones.inter

vim /etc/named.rfc1912.zones.inter

 

wKioL1g2alygtdkXAAAo6_8p308686.png

 

 

cp –p /var/named/westos.com.zone   /var/named/westos.com.zone.inter

vim /var/named/westos.com.zone.inter


wKioL1g2amzxTrHbAAB-dTvtirA868.png

 

 

验证


desktop:172.25.254.10, dig www.westos.com得到的解析为172.25.254.102/101




wKiom1g2am3C63b0AADH8DXnu5w754.png


 

其他用户 dig www.westos.com  得到的解析为172.25.0.102/101



wKiom1g2am7QDgmiAADEuuXpiOY654.png