samba中实现共享中所有创建的文件都属于指定用户的功能

方法很简单,但很实用。
在需要指定的共享中加入。

force user = 要指定的用户

例如,要求老师得能在“孙锡源”这个学生的共享文件夹中创建文件,但老师创建的文件所有者是老师本人,孙锡源没权限修改及删除文件。那么就可以加一行“force user = sxy”,让老师创建的文件的所有者也是孙锡源本人,这样孙锡源就可以操作文件了。

记录一个Linux下使用usermod修改用户家目录后产生的奇怪问题

问题描述:
学校机房的samba服务器中本来所有用户都是存放在/home目录下的,但是我在为用户统一修改权限时发现这样极不方便。因为老师和学生的权限肯定是不同的,但他们又都在同一个目录下,修改起来很麻烦。
我的解决办法是:在/home目录下新建一个teacher目录用来存放教师的用户家目录,再新建一个student用来存放学生的用户家目录,这样下次修改权限时就可以直接用通配符来分别为教师和学生修改了。
既然有了想法,就开始实施吧。
我选择使用usermod命令一个一个的辛苦的为每个用户修改家目录,而不是简单粗暴地修改/etc/passwd文件。
以下以“sxy”这个用户来做演示,注:此时我的工作目录在/home下,且/home/teacher与/home/student目录已创建。

usermod -md student/sxy sxy

修改后,查看/home下已经没有sxy这目录了,此目录已被迁移至/home/student下。
然而, 重点来了!!!!
虽然成功的迁移了目录,但是我用windows登陆samba服务器的时候点sxy这个共享目录竟然提示我“找不到路径”???注:此处的sxy共享是使用[homes]配置的。
排错过程:
我的第一步:怀疑,是不是因为samba的用户数据库中记录的还是旧的文件路径,要将用户重新加入数据库才能解决问题?
结果:用户重新加入samba数据库后问题依旧。
第二步:怀疑,是不是samba的[homes]字段必须使用默认的家目录路径,也是就是存放在/home下,不能自定义家目录?
结果:新建了一个系统用户“test”,创建用户时指定其家目录为/home/student/test并将其加入samba用户数据库中后,发现其家目录的共享可正常访问。
第三步:陷入沉思~~~随后怀疑,是不是因为usermod命令修改用户家目录改的不够彻底(比如说,某些系统配置文件中的用户家目录的路径还是以前的)。
结果:删除一个samba家目录共享无法访问的用户“lzl”,并在重新建立时使用相同的用户名,且指定家目录为/home/student/lzl同时加入到samba用户数据库中后samba的家目录共享又可以正常访问了。
第四步:感觉上,第三步中貌似找到了问题的原因。就在我准备一个个删除并重建用户时突然一个想法冒出来,我是不是可以切换到一个之前修改过家目录的“问题用户”上,来看看其家目录到底变没变。
结果:使用su – sxy命令尝试切换到“sxy”这个用户上时抛出错误:

第五步:我注意到,第四步的报错中的路径是相对路径而不是绝对路径,马上查看/etc/passwd文件,发现,所有的“问题用户”的家目录都是相对路径而正常用户都是绝对路径。
问题用户:

正常用户:

至此,问题的原因彻底搞清楚了,那就是因为我在使用usermod修改家目录时使用的是相对路径。
解决办法:使用usermod命令重新修改为绝对路径,或直接改/etc/passwd文件。

samba配置文件中的常用变量

先简单解释下什么是samba配置文件中的变量。

上图中,所有以“%”开头的字母都是变量(已用红色箭头指出)。各个变量代表的值已在下方标注。

%S = 当前服务名(如果有的话)  
%P = 当前服务的根目录(如果有的话)  
%u = 当前服务的用户名(如果有的话)  
%g = 当前用户说在的主工作组  
%U = 当前对话的用户名  
%G = 当前对话的用户的主工作组  
%H = 当前服务的用户的Home目录  
%v = Samba服务的版本号。  
%h = 运行Samba服务机器的主机名  
%m = 客户机的NETBIOS名称  
%L = 服务器的NETBIOS名称  
%M = 客户机的主机名  
%N = NIS服务器名  
%p = NIS服务的Home目录  
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)  
%d = 当前服务进程的ID  
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)  
%I = 客户机的IP  
%T = 当前日期和时间

以上内容摘录自:http://blog.csdn.net/xkq_lyx/article/details/12905863
 

Linux下为普通用户开启sudo命令

介绍 :
Linux下,root用户的权限非常大,root的密码自然不能轻易的告诉别人,但如果又必须使用root权限,那要怎么办呢?这里就要使用“sudo”这个命令了。这个命令是系统管理员允许普通用户以root权限执行几个或全部命令的工具。
为普通用户开启sudo命令的方法:
默认情况下,普通用户是无权使用sudo命令的,需要管理员为其开启使用命令的权限。
下图中,红箭头所指的就是普通用户使用sudo来执行命令后抛出的错误。

为普通用户启用sudo命令:
编辑sudo的配置文件。

vim /etc/sudoers

在第105和108行左右的位置可以看到如下图中红框框起来的内容,这两处就是为某用户开启sudo命令的配置模板。二处的区别在于,使用105行的配置模板配置后用户使用sudo命令需要输入用户本身的密码,而108行处的模板则不需要输入密码,二者可以同时配置。

例如,下图中,为user1、user2、user3、user4这四个系统用户开启了sudo命令,其中user1和user2在使用sudo命令时需要输入密码,而user3和user4则不需要。

此时再分别使用user1、user2、user3、user4这四个用户的身份测试sudo命令的执行情况即可。

CentOS 6下搭建TFTP服务器

介绍:
TFTP是非常“简陋”的文件传输协议,基于UDP协议传输,日常生活中很少会用到,但做嵌入式开发及网络设备运维时经常会用到这种简易的文件传输方式。
软件安装:
服务器端:

[root@localhost ~]# yum install tftp-server

配置文件介绍

[root@localhost ~]# /etc/xinetd.d/tftp                      //TFTP服务主配置文件

服务配置:
tftp这种“简陋”的服务,配置起来也是相当的容易。
编辑主配置文件。

[root@localhost ~]# vim /etc/xinetd.d/tftp

下图红框中,“server_args”选项是配置TFTP根目录及操作权限的,“disable”选项用以配置是否启用TFTP服务。通常情况下只需要配置这两个选项即可。

这里,我指定TFTP的根目录为/tmp/tftp,且具有可写入的权限,并启用TFTP服务。

注意,上图中“server_args”选项的参数后面多了个“-c”,这个“-c”代表可写入,默认是只读。
保存配置文件后记得要创建TFTP的根目录。

[root@localhost ~]# mkdir /tmp/tftp

还要给TFTP根目录777的权限,这里不用去想权限给大了会不会不安全,没意义,TFTP这种“简陋”的协议本身就是不安全的(基于UDP,不支持加密,任何人都可以连接)。

[root@localhost ~]# chmod 777 /tmp/tftp

最后,在保证selinux及防火墙均已关闭的情况下重启TFTP服务器。

[root@localhost ~]# service xinetd restart

服务测试:
这里客户端使用CentOS 6.5系统做测试,当然你也可以使用Windows系统做测试。
先在服务器端的TFTP根目录中新建一个文件,用以测试下载。

[root@localhost ~]# touch /tmp/tftp/testget

在客户端机器安装TFTP客户端软件。

[root@localhost ~]# yum install -y tftp

创建一个文件用以测试上传。

[root@localhost ~]# touch testput

连接TFTP服务器,本例中服务器IP地址为192.168.1.20。

[root@localhost ~]# tftp 192.168.1.20

会弹出“tftp>”提示符,在其后输入TFTP命令。
主要的TFTP命令其实就三个:

get 接文件名              //将当前目录下的文件上传至TFTP服务器
put 接文件名              //从TFTP服务器下载文件到当前目录
q                        //退出TFTP客户端工具

这里,我连接上TFTP服务器后,先将客户机家目录下的testput上传到了服务器上,又将服务器上的testget下载到客户机,最后退出了TFTP客户端工具。

查看客户机家目录是否有testget文件。

查看服务器的TFTP根目录上是否有testput文件。

如都有,则配置成功,否则就需要回过头检查下是不是哪一步出了岔子。

CentOS 6下配置NIS服务

介绍:
Linux下的NIS服务器类似于Windows下的域控制器,用于Linux下的用户信息集中管理。
软件安装:
服务器端:

[root@localhost ~]# yum install -y ypserv

客户端:

[root@localhost ~]# yum install -y ypbind

配置文件介绍:
服务器端:

/etc/ypserv.conf                  //服务器端主配置文件

客户端:

/etc/yp.conf                      //客户端主配置文

务器端配置:
NIS通过域名来分辨不同的账号密码数据,因此需先指定NIS域名。
方法很简单,如下。

[root@localhost ~]# vim /etc/sysconfig/network

添加一行

NISDOMAIN=nis.ibadboy.net

最终效果如下。

这里啰嗦一下:看到网上很多文章都说要设置主机名,还要给主机名添加到/etc/hosts文件中,做主机名和IP的对应。
不过,我使用CentOS 6.5版本亲测,不另外设置主机名,不编辑/etc/hosts文件,NIS服务器也一样能正常工作。但前提是,在/etc/ypserv.conf这个文件中是以IP地址来限制客户机而不是使用主机名,如果使用主机名则必须添加DNS解析或编辑/etc/hosts文件,关于ypserv.conf文件的配置下面马上会介绍到。
另外,为了方便配置防火墙规则,我们也可以指定让NIS服务器每次都启动在固定端口,否则NIS会动态使用端口。

[root@localhost ~]# vim /etc/sysconfig/network

添加一行。

YPSERV_ARGS="-p 1011"              //使NIS服务器每次启动都使用1011端口

添加后文件内容如下:

编辑NIS服务器端主配置文件。

[root@localhost ~]# vim /etc/ypserv.conf

先来简单看下配置文件的内容再来说通常情况下如何配置。
转到14行和17行可以看到如下两个被红框框起来的选项(因软件版本号差异,行号可能不一样,可在VIM中搜索关键字来查找),其中“dns”选项是定义是否使用DNS,一般情况下保持默认即可(我搞不懂为啥会有这个选项,感觉很白痴)。“files”选项是定义载入到内存中的数据库个数(我不清楚这里的数据库是指的什么,这一段摘录自《鸟哥的Linux私房菜》),如果账号多,可以调大。

转到第25行左右,这里定义是否将Master/Slave的同步更新的数据库对比放置于小于1024的端口中,通常情况下保持默认即可。

接下来到重点了:配置允许访问NIS服务器的主机及主机的权限,这也是通常情况下服务器端主配置文件中唯一需要修改的部分。
参照如下格式配置:

[主机名/IP]:[NIS域名]:[可用数据库名称]:[安全策略]          //可使用通配符
[主机名/IP] :直接填入允许访问的主机名或使用网络地址/掩码的形式,如 192.168.1.0/255.255.255.0。 
[NIS域名] :例如本案例中的“nis.ibadboy.net”。
[可用数据库名称]:就是由 NIS 制作出来的数据库名称。
[安全限制] :有三种,没有限制(none)、仅能使用小于1024的端口(port)及拒绝(deny)。

例如:

192.168.1.0/255.255.255.0     :     nis.ibadboy.net      :     *      :       none

通常情况下,NIS服务器都是应用在局域网,限制可以不用这么严格,使用如下格式也可以。当然,你也可以按照自己的需求来设置。

*      :     *     :     *     :    none

转到第38行左右,可以看到默认已经配置好了两条规则,我们可以在这个基础上稍作修改。

本例改成如下形式:

保存退出后,在保证防火墙和selinux均关闭的情况下启动ypserv(NIS主服务)及yppasswdd(用于支持客户端修改NIS服务器上的用户密码)服务。

[root@localhost ~]# service ypserv start
[root@localhost ~]# service yppasswddd start

再在服务器端添加几个用户信息,一会好在客户端测试。

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2

最后,编译生成各种数据库文件来供客户机查询。

[root@localhost ~]# /usr/lib64/yp/ypinit -m

到这一步,按下“Ctrl + D”


这一步输入y或者直接回车。

看到打印出如下字样即是成功。

客户端配置:
设置NIS域名,这里注意,一定要和服务器端是同样的NIS域名,否则客户端将无法绑定服务器端。

[root@localhost ~]# vim /etc/sysconfig/network

本例中,添加“NISDOMAIN=nis.ibadboy.net”

编辑客户端主配置文件。

[root@localhost ~]# vim /etc/yp.conf

在其中添加服务器端信息,格式如下。
domain [NIS域名] server [NIS服务器IP地址]
例如,本例中为:

domain nis.ibadboy.net server 192.168.1.20

添加后,效果如下。

保存并重启NIS客户端。

[root@localhost ~]# service ypbind restart

如下,是成功了。

如果是这种呢,一眼就能看出是失败了,那就要仔细检查下是不是哪一步做错了。

通常情况下,错误一般都是NIS域名不一致导致的,虽然客户端和服务器端的/etc/sysconfig/network中设置的NIS域名是一致的,但要注意的是,这里的NIS域名并非实时生效,因此还需要使用“nisdomainname”命令来分别检查服务器端和客户端当前的NIS域名,若发现有不符合的则使用“nisdomainname 接新NIS域名”来实时修改。
例如:

到这里,虽然客户端绑定服务器端成功了,但我们依然不能在客户端使用NIS服务器中的用户信息,原因是还没修改系统查询用户信息服务的方式。
编辑/etc/nsswitch.conf(服务搜索顺序配置文件)
在几个主要的配置文件的搜索顺序中都加入“nis”。注意,这里把“nis”加到“files”后,是先搜索本地配置文件而后才搜索nis服务器。这就导致,如果本地和nis服务器上存在相同的用户,客户端并不会使用nis服务器上的用户数据。可以通过将“nis”写在“files”前来解决这个问题。
注意最后一行,hosts文件的搜索顺序中加入了nis,这就是为什么我们不写hosts文件,不做dns一样可以正常使用nis服务器的原因。

这样,NIS客户端就算配置完了。
执行yptest命令看是否能列出NIS服务器端的账号信息。
在“Test 9: yp_all”这个测试结果中能看到NIS服务器端的用户信息即算成功。
例如:

客户端的配置,看似貌似很完美,但其实还是有点问题的,那就是需要PAM等认证的服务依然不会查询NIS服务器上的信息,这些配置文件我们手动修改实在是太麻烦了,可以使用“setup”工具来快速设置。
当然,如果没有特殊需求,仅仅需要系统用户身份认证信息使用NIS服务器上的数据那么按照之前那样简单配置以下就可以满足需求了。
若需要vsftpd虚拟用户这种使用PAM做身份认证的服务也使用NIS服务器,则就要使用“setup”工具来设置了,系统中没有安装“setup”工具可以参考此篇文章安装。

CentOS 6安装setup工具包


按照如下步骤走一遍即可,十分简单。之后setup会帮你把所有需要修改的配置文件全部修改一遍,换而言之,如果你使用setup工具来设置客户端,那除了安装ypbind软件包之外,不需再手工编辑任何文件。
注意,这里特殊说明一下,我的setup工具是中文语言的,其中图一的“验证配置”对应的英文版是“authentication configuration”,不要选错了哦。

Linux下使用quota工具为用户配置磁盘配额

介绍:

Linux是多用户多任务的操作系统,这就难免出现多个用户共享磁盘的情况,如何使多个用户公平的使用磁盘,就是磁盘配置要解决的问题。当然也可以在每创建一个用户的时候,将它的主目录建在一个单独的逻辑分区上,但是这样太麻烦了,也不灵活。
本文以针对用户的磁盘配额配置为例,演示磁盘配额的配置流程。

操作步骤:

1、安装quota软件包

[root@localhost ~]# yum install -y quota

2、给指定分区开启磁盘配额功能

编辑/etc/fstab(此文件负责记录文件系统信息)

[root@localhost ~]# vim /etc/fstab

如下图(看第一个分区),给想要开启磁盘配额的分区的挂载方式后面加上,usrquota,grpquota,其中usrquota是开启用户磁盘限额,grpquota是开启组磁盘限额。

保存并退出此文件后配置并未生效,还需要重新挂载磁盘。

[root@localhost ~]# mount -o remount /

3、扫描所有支持磁盘配额的分区并在其根目录生成相应的配置文件

[root@localhost ~]# quotacheck -avugm

上面的命令中,参数a 扫描/etc/fstab中所有支持磁盘配额的分区,v 显示指令执行过程,u 生成用户磁盘配额配置文件,g 生成组用户配置文件,m 强制扫描(有的时候不加m会报错,最好加上)。

记得把selinux关上再执行此命令。

执行完可以查看下分区挂载的目录中出没出现aquota.group(组磁盘配额配置文件)、aquota.user(用户磁盘配额配置文件)这两个配置文件,有就代表成功了。

当然这两个文件不一定都有,因为你有可能在执行命令的时候指定只生成用户磁盘配额配置文件,那就看不到组磁盘配额配置文件了。

4、为用户/组设置磁盘配额大小

[root@localhost ~]# edquota -u 接用户名                       //为用户配置磁盘配额
[root@localhost ~]# edquota -g 接组名                        //为组配置磁盘配额

命令执行后会自动使用vi/vim文本编辑器打开对应配置文件,下面是对此配置文件中各个区域的解释(顺序,从左到右)。

Filesystem 文件系统
blocks 已经使用的块数(块的单位为1K)
soft 块数软限制,0表示禁用
hard 块数硬限制,0表示禁用
inodes 已经创建的文件个数,如果后面有*表示已经超出软限制
soft 创建的文件个数的软限制,0表示禁用
hard 创建的文件个数的硬限制,0表示禁用

其中软限制的额度在达到后会弹出警告,如果用户在宽限期(默认7天)内还未删除超出部分的文件,软限制就会转为硬限制,阻止用户继续写入数据。

可以通过如下命令修改宽限期。

[root@localhost ~]# edquota -t

如上图可以看到,Block grace period(块的宽限期)对应值是7days(七天),Inode grace period(文件数量的宽限期)对应值也是7days(7天),这里直接修改对应值即可。上图中因为我的设备名称比较长,所以文字排版乱了,导致值和选项没有对应起来,但不影响其生效。

修改后保存并退出。

此外,所涉及到容量的配置部分的计算单位都是KB,比如上图中容量的hard值我设置成了20480,这个数值的单位就是KB,可以换算成20MB。

修改后,保存并退出。

如果有多个账户需要设定相同的磁盘配额则可以使用edquota搭配-p参数实现,例如:

[root@localhost ~]# edquota -p user1 user2                    将user1的磁盘配额配置复制给user2。

5、开启磁盘配额功能

quotaon 接需要开启磁盘配额功能的分区所挂载的目录,例如本实验中分区挂载到了根目录,则执行如下命令开启该分区的磁盘配额。

[root@localhost ~]# quotaon /

关闭磁盘配额:

[root@localhost ~]# quotaoff /

6、测试

切换为被设置了磁盘配额的用户身份,本实验中是user1。

[root@localhost ~]# su - user1

进入用户邮箱目录(本实验中/var/mail目录存在于根目录所挂载的磁盘上,所以根目录的磁盘限额对其有效)。

[root@localhost ~]# cd /var/mail

写1G的数据到user1的邮箱中。

[root@localhost mail]# dd if=/dev/zero of=user1 bs=1M count=1000

可以看到,弹出提示说超出磁盘限额了。

查看下user1用户的邮箱现在的大小,正好是20MB。

[root@localhost mail]# ll -h user1

最后记得清空邮箱中的数据哦。

[root@localhost mail]# echo '' > user1

CentOS 6下使用postfix搭建简单邮件服务器

介绍:
postfix是linux/unix下比较常用的开源免费邮件传输代理程序(MTA)。
下图是postfix的logo,略显猥琐。。。

服务安装:
通常情况下,CentOS默认都会安装postfix。
如果你不确定你的系统中有没有postfix可以使用如下命令查看。

yum -qa | grep postfix

若没有安装则使用如下命令安装。

yum install -y postfix

DNS配置:
邮件发送是需要DNS解析支持的,DNS服务器的配置方法参考此篇文章:

CentOS 6下使用BIND配置简单DNS服务器


最后要求DNS正向解析配置成类似如下形式,反向解析区域可不配置。“192.168.1.20”是我的邮件服务器的IP地址,请按照实际情况来做更改。

主要配置文件介绍:
postfix的配置文件存放路径为/etc/postfix,其中的主要的配置文件有两个,一个是main.cf另一个是master.cf。关于两个配置文件的说明,如下。

main.cf              //此配置文件为postfix主配置文件,决定了postfix的工作方式。
master.cf            //此配置文件用以配置postfix中各个程序的工作参数,一般在做邮件系统优化时才会用到。

postfix配置:
在配置前,我们需要先关掉系统中sendmail(sendmail也是linux/unix下常用的邮件传输代理程序)的所有服务,避免二者产生冲突。
查看是否安装了sendmail。
rpm -qa | grep sendmail
如安装了sendmail,则关闭sendmail服务,否则跳过这一步。

service sendmail stop
chkconfig sendmail off

编辑主配置文件。

vim /etc/postfix/main.cf

查找“myhostname”关键字,一般在第75行左右的位置,因软件版本差异行号可能不同。

去掉其中一个前面的注释,这里是配置postfix服务器的主机名,这个主机名必须是FQDN(完全合格域名,例如:mail.ibadboy.net)。

在第83行左右找到“mydomain”关键字。

去掉其前面的注释,并将参数修改为邮件域。
什么是邮件域?举例说明:admin@ibadboy.net这个邮箱地址中@后面的ibadboy.net就是邮件域。

在第98行左右找到“myorigin”关键字,去掉第二个“myorigin”前方注释。
这里是用于定义由本台邮件服务器寄出的每封邮件的邮件头中mail from(发信源主机)的地址。如果不设置,默认会以$myhostname也就是本地主机名这个选项的参数为值,最后是这种形式:“from  ‘user1’ <user1@mail.ibadboy.net>”,看起来是不是怪怪的?为了方便阅读,一般以$mydomain作为其参数,这样就变成了“:“from  ‘user1’ <user1@ibadboy.net>”。
需要特殊说明的是:main.cf配置文件中所有以$开头的字符串都是一个变量,变量的值就是变量名对应的选项的参数,例如$mydomin这个变量对应的值就是83行mydomin这个选项的参数。

修改后:

转到第113行,找“inet_interfaces”这个关键字,这里是定义postfix监听的接口,默认只监听本地回环接口(127.0.0.1),通常的做法是让其监听所有的接口(值为all),或者也可以使用主机名为值,要求其只监听主机名对应IP的接口。

修改后:

转到164行,找“mydestination”关键字,这里定义postfix可收信的主机名或域名。这里其实很好理解,一封邮件的目的地址是我这台服务器我就收下,否则我当然不收了。

默认的选项是不包括域名的,通常情况下需要接收主机名或域名为本机的邮件,也就是修改为选项二,如下图。

至此,一个简单的postfix邮件服务器就配置好了,我们一共对配置文件做了如下几个更改:1、指定了主机名,2、指定了邮件域,3、指定了发信源主机,4、使postfix监听所有网卡,5、设置了允许收信的主机名及域名。
保存配置后,在保证selinux和防火墙均关闭的情况下启动postfix服务。

service postfix start

服务测试:
推荐搭建完postfix后配合dovecot(MRA,邮件接收代理)一起在邮件客户端进行测试。
dovecot配置教程参考此篇文章:

CentOS 6下邮件接收代理程序——dovecot配置教程


 

CentOS 6下使用BIND配置简单DNS服务器

介绍:
BIND是linux/unix下的开源免费DNS服务器,也是全世界应用最广泛的DNS服务器软件。
软件安装:

yum install -y bind

主要配置文件介绍:

/etc/named.conf                 //BIND主配置文件
/etc/named.rfc1912.zones        //DNS解析区域配置文件
/etc/named.localhost            //正向解析模板文件
/etc/named.loopback             //反向解析模板文件

BIND配置:
编辑主配置文件

vim /etc/named.conf

将如下如红色箭头所指的两处的值均改为“any”,第一处定义bind服务监听的本地网卡地址,默认仅监听回环地址,改为any后监听所有网卡。第二处定义的是允许查询DNS的主机,默认只有本地可以查询,改为any后允许所有主机进行DNS查询。

修改后如下图。

主配置文件的配置至此结束,接下来编辑DNS解析区域配置文件。

vim /etc/named.rfc1912.zones

此部分为正向解析区域配置模板,这里稍微啰嗦一下什么是正向解析什么是反向解析:正向解析就是通过域名解析出IP地址,反向解析就是通过IP地址来解析出域名。

此部分为IPv6反向解析区域配置模板。

此部分为反向解析区域配置模板

这里,我们添加一个正向解析区域和一个反向解析区域。
直接在模板基础上修改即可,如下图,第一个“it7e.com”是要解析的域名,第二个“it7e.com”是正向解析配置文件的文件名。
默认情况下,所有的解析配置文件都存放在/var/named/目录下。

再添加一个反向解析区域,其中”1.168.192″是要进行反向解析的网段”192.168.1″的倒写,而图中的“192.168.1”则是反向解析配置文件的文件名。

最后,分别编辑两个解析区域的解析配置文件向其中添加解析即可。
先根据正向解析配置文件模板”named.localhost”创建正向解析配置文件”it7e.com”。

cp -p /var/named/named.localhost /var/named/it7e.com

再根据反向解析配置文件模板“named.loopback”创建反向解析配置文件“192.168.1”。

cp -p /var/named/named.loopback /var/named/192.168.1

编辑正向解析配置文件“it7e.com”

vim /var/named/it7e.com

通常情况下,只需要编辑红框部分,向其中添加解析即可,其余地方不用更改。

例如:

上图中需要特殊说明的是MX记录后面的5是MX优先级。记录值中填的“@”代表本域,本实验中是“it7e.com”,注意如果这样写,那么就必须保证有“it7e.com”对应的解析记录,本实验中其对应的记录在第九行。在主机位上填的“@”代表“空”,也可以真的留空,什么都不写,就像第九行的那条解析记录一样。另外,记录值中的域名都以“.”结尾,IP则不用。
最后需要注意的是MX记录要写在其值的CNAME记录的前面,例如上图中,“@   MX 5 mail.it7e.com”记录写在了“mail CNAME it7e.com”记录的前面,否则会出现异常。
关于DNS解析记录类型的介绍参考此篇文章:

DNS解析记录类型详解

再来编辑反向解析文件。

vim /var/named/192.168.1

依然是没有特殊需求就只编辑红框内的内容即可。

例如:

上图中,“ A 127.0.0.1”这个记录不可删除,否则报错。因为NS记录值是“@”,也就是“it7e.com”,若删除了“ A 127.0.0.1”这条记录,则“it7e.com”没有对应的A记录,NS记录会抛出错误。
服务测试:
测试前需要将本机或客户机的DNS修改为DNS服务器的IP地址。
CentOS 6下DNS的修改方法参考此篇文章,Windows下不做介绍。

CentOS 6下正确配置DNS的方法

测试DNS解析使用nslookup命令,如果发现系统中没有nslookup这个命令是因为没有安装bind工具包,执行以下命令安装。

yum install -y bind-utils

启动nslookup。

nslookup

执行命令后在“>”符号后面输入要测试解析的域名即可。

例如下图,其中蓝色框内是DNS服务器信息,红框内是域名解析信息。

可以通过“set type=”来设置解析类型。
例如,测试MX解析记录: 
或者,测试TXT记录。

再来测试下反向解析。

最后,退出nslookup工具,只需要在“>”符号后面输入“exit”即可。

CentOS 6下正确配置DNS的方法

本来配置DNS是比较简单的东西,没想专门写一篇文章的。但后来我发现这里还是有一个大坑的,很有必要单独拿出来对其进行说明。
我看到网上很多教程都推荐大家通过编辑/etc/resolv.conf这个文件来修改系统的DNS。
但经过实测,用此方法修改DNS,在某些情况下会发生明明编辑了/etc/resolv.conf文件,但重启网络后文件又恢复到之前的状态的情况。
经过一翻搜索之后,发现。原来是因为CentOS 6使用NetworkManager来管理网络,当在/etc/resolv.conf中配置了DNS时,/etc/sysconfig/network-scripts/ifcfg-eth*文件中并没有DNS信息或还是之前的DNS信息,而NetworkManager会用/etc/sysconfig/network-scripts/ifcfg-eth*中的DNS信息来覆盖/etc/resolv.conf中的信息。
正确配置DNS的方法:

vim /etc/sysconfig/network-scripts/ifcfg-eth*(*是什么依据实际情况来定)

按照如下格式添加DNS。

DNS1=
DNS2=
DNS3=
……

例如下图,其中“114.114.114.114”是国内著名的DNS服务,“8.8.8.8”是谷歌的DNS服务,也可以根据自身需求更改为其他DNS地址。

最后重启网络即可。

service network restart

DNS解析记录类型详解

A记录:将域名指向一个IPv4地址(例如:10.10.10.10)。
CNAME记录:如果将域名指向一个域名,实现与被指向域名相同的访问效果。
MX记录:建立电子邮箱服务,将指向邮件服务器地址。
NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析。
TXT记录:可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用。
AAAA记录:将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1)。
SRV记录:记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。
显性URL:将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.tianidc.cn显性转发到www.ibadboy.net后,访问www.tianidc.cn时,地址栏显示的地址为:www.ibadboy.net)。
隐性URL:与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.tianidc.cn隐性转发到www.ibadboy.net后,访问www.tianidc.cn时,地址栏显示的地址仍然为:www.tianidc.cn)。

CentOS 6配置IPv6地址

编辑网络配置信息文件。

vim /etc/sysconfig/network

启用IPv6支持。

编辑网卡配置文件。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

这里需要注意的是,IPv4与IPv6可以同时绑定同一块网卡,因而在添加IPv6地址信息时可以不删除IPv4的地址信息。
以下是IPv6地址配置选项。

IPV6INIT                        //网卡初始化IPv6协议栈
IPV6ADDR                        //配置IPv6地址
IPV6_DEFAULTGW                  //配置IPv6网关

下图是一个IPv6地址配置的例子。

如果是在虚拟机下配置的IPv6需要测试配置是否成功,可以为两台计算机同时配置IPv6地址,互相ping。
下面提供4个同网段的IPv6地址来供大家测试用。

2400:A480:000F:0080:00C3:0000:0000:0074
2400:A480:000F:0080:00C3:0000:0000:0174
2400:A480:000F:0080:00C3:0000:0000:0274
2400:A480:000F:0080:00C3:0000:0000:0374
网关:
2400:A480:000F:0080:0000:0000:0000:0001
子网掩码长度:
64

配置完后,使用ping6命令进行测试,例如:

ping6 2400:A480:000F:0080:00C3:0000:0000:0074

CentOS 6破解grub引导菜单的密码

破解grub引导密码需要用到linux live cd,随便什么发行版都可以。当然,如果你没有专门的linux live
cd,用CentOS的安装光盘来破解也是可以的。
此篇文章我来介绍下如何使用CentOS 6的安装光盘来破解grub密码。
先修改系统BIOS引导来启动光盘/U盘上的系统,这里因为各个品牌的电脑修改BIOS引导顺序的方法不同,所以不做介绍,请自行百度适合自己的方法。
成功引导安装光盘后选择如下图红色箭头指向的“Rescue installed system(救援安装系统)”。

这里依次要求你选择系统语言、键盘布局,以及是否配置网络等等,下面我附上截图并一一进行说明。
下图,选择系统语言,保持默认(英语)。

下图,选择键盘布局,保持默认(美式键盘)。

弹出如下图这个提示是告诉你,系统与当前硬件不兼容,可以不予理会。直接“OK”,即可。

下图,询问是否配置网络,无特殊需求都选“No”。

下图,系统在尝试查找当前硬盘上的linux分区,并尝试将其挂载到/mnt/sysimage目录下。选择“continue”。

下图,告诉我们即将要把找到的linux分区挂载到/mnt/sysimage目录下,并进入到shell中,选“OK”。

下图,提示我们,已经将找到的linux分区挂载到了/mnt/sysimage目录下,选“OK”。我觉得有点磨叽了。。。

下图,选第一个“shell      Start shell(启动shell)”。

下图,久违的shell出来了。

切换到硬盘中的linux分区的挂载目录

cd /mnt/sysimage

使用VI文本编辑器编辑grub引导配置文件

vi etc/grub.conf

删除密码一行,即完成破解工作。

最后,重启即可。

reboot

CentOS 6安装setup工具包

CentOS 6最小化安装的情况下是没有setup工具的。
安装setup:

[root@localhost /]# yum install -y setuptool

启动setup:

[root@localhost /]# setup


发现只有一个“验证配置”,而我们熟悉的“网络配置”、“系统工具”等等的选项全都没了,这是怎么回事?其实这里是需要分别安装这几个工具组件的:

[root@localhost /]# yum install -y ntsysv                              //安装“系统服务”工具组件
[root@localhost /]# yum install -y system-config-network-tui           //安装“网络服务”工具组件
[root@localhost /]# yum install -y system-config-securitylevel-tui     //安装“防火墙配置”工具组件

当然,如果只是需要某一个工具组件也可以只安装那一个。上方列出的只是常用的工具组件,如果还需要其他的可以自行百度。
安装后再执行setup命令,会发现常用的工具都显示出来了。

[root@localhost /]# setup

CentOS 6给grub引导设置密码

默认情况下,在grub引导界面按任意键即可进入引导编辑界面,任何人都可以轻易地进入到单用户模式下,并破解掉root的密码。
root密码破解参考此篇文章:
https://www.ibadboy.net/archives/314
显然,这样十分不安全。那如何防止呢?给引导菜单加个密码呗,不输对密码就休想进到引导编辑模式。
grub引导菜单加密码的方法:
先生成密码字符串

grub-md5-crypt >> /etc/grub.conf

执行命令后,因为输出被重定向到了/etc/grub.conf文件(grub引导配置文件)中,所以屏幕上不会产生任何输出。但没关系,我们只要像配置linux系统用户密码一样,输入一次密码,回车,再重复输入一次密码再回车即可。
此时使用vim打开/etc/grub.conf文件,即可看到如下图红色箭头所指的加密字符串,我们在vim下剪切这个字符串,并删除蓝框框住的内容。

vim /etc/grub.conf

 

之后将加密字符串粘贴在hiddenmenu和title这两行之间,如下图。

最后再在加密字符串前,加上password –md5关键字并保存退出即可。

重启系统,尝试进入grub引导编辑界面就会发现,grub要求输入密码啦(必须先按p键键入密码,才可以按e键编辑引导)。