RHCE中ftp,samba,dns,nfs,dhcp的配置
DHCP
dhcp: 动态主机配置协议。
daemon: dhcpd 配置文件: /etc/dhcp/dhcpd.conf
安装:
默认情况下dhcp配置文件里的内容是空的:
为了方便我们的配置,我们可以使用一个模板:
然后用模板里的内容替代当前配置文件里面的内容,以后直接修改就可以了:
配置文件开头的这些都是全局性配置,比如分配给客户端的域名是什么,分配给客户端的dns服务器是哪个的。
记住:配置dhcp的那台机器的网卡必须要静态的IP。
我们要是想定义一个作用域的话,就subnet来定义,如上图,语法为:
subnet 网段 netmask 子网掩码 {
xxxxx
yyyyy
}
里面的每行都要用;来结束。
重启服务 :
现在dhcp就可以正常的工作了。注:如果服务启动不起来的话,那么你要查看ip地址是不是静态配置,如果还不行就检查一下语法:
从上图我们可以看到dhcp已经能够分配地址了。
做mac地址绑定:
上图是做mac地址绑定的语法:
host 名字 {
hardware ethernet xxx:xxx:xxx:xxx:xxx:xx
fixed-address ip地址
}
例子:
为mac地址是
分配一个ip地址: 192.168.204.107.
如果我们有多个作用域的话,每个作用域都有不同的网段:
shared-network xxxx {
subnet xx1 {
}
subnet xx2 {
}
.......
}
如果我们的服务器上有多张网卡的话,但是我们不希望dhcp在所有的网卡上工作,也就是说我只允许dhcp可以通过eth0来自动分配ip,而不能通过eth1来分配ip:
要编辑/etc/sysconfig/dhcpd,原内容如下:
可以改成:
此时dhcp只会通过eth0对外提供服务。
DNS概览
。 使用 dig 验证 DNS 服务器的功能
查看dns的查询过程可以通过如下命令:
dig +trace www.baidu.com
daemon: named
配置文件: /etc/named.conf,如果我们做了chroot的话,dns会把/var/named/chroot当做根。所以从我们这边看的话,配置文件就是/var/named/chroot/etc/named.conf
安装:
因为我们安装了chroot,所以所有的文件都应该放在/var/named/chroot里面。
我们在拷贝的时候,最好用-p选项把属性同时拷贝过去。
现在看来dns的配置文件是:/var/named/chroot/etc/named.conf,我们现在来修改:
是否启用递归查询。
还可以加上一句:
(默认是没有的,可以在man里查找到)用来设置哪些主机(或者网段)可以递归查询。
比如
这仅允许192.168.0.0这个网段才可以递归查询,其他是不可以的。
全局选项到此结束。
这个是日志。
用zone来定义一个区,一个区是用来定义不同的域的。
比如dns可以解析example.com这个域,那么我们就要用一个区来定义example.com这个域。
定义的语法:
zone 域名 类型 {
type master|hint|slave ;;hint只能定义根域的时候使用
file { 文件名; }; ;; 文件名没有路径,在named.conf里定义过了。
};
比如:
我现在用一个区定义了一个域example.com。类型是master(即主服务器)
在读取named.conf的时候,系统会把的内容加到named.conf里。
刚才定义的example.com域的配置文件时example.com.zone,路径在/var/named/chroot/var/named里面。
此时是没有example.com.zone这个文件的,我们可以手工的写一个,也可以拷贝一个模板来修改。
然后编辑:
重启服务:
我们需要修改/etc/resolv.conf把dns服务器地址设为自身:
这时,我们的dns服务器可以正常工作了。
我们还可以做反向解析:
首先要定义一个域:
然后生成并编辑example.com.arpa,我们也是拷贝模板得到:
重启服务:
仅缓存 DNS 服务器
。 安装本地缓存名称服务器/
在named.conf里面的options(也就是全局选项配置里面)加上一句话
。 将 DNS 请求发送至 instructor.example.com
回去自己研究一下,dns主辅区传送、子域授权、viewer、acl、事务签名(TSIG)。
第十六章 通过 NFS 共享文件
NFS主要实现的是类unix之间的共享。
nfs默认已经安装了,配置文件是 /etc/exports,daemon: nfs
nfs是基于rpc这个服务的。
我们首先要把一些端口的端口号固定下来,编辑/etc/sysconfig/nfs
再重启一下nfs,那么我们会发现,所有的端口都固定下来了:
其次我们要在防火墙中打开这些端口:
记住,在写防火墙的时候最好是插入,不然的话还是一样被拒绝的:
保存防火墙:
下面我们开始配置nfs,主要是编辑/etc/exports
语法:
目录名 范围(权限1,权限2,权限3,....)
比如我要把/xx这个目录共享出去,而且仅仅192.168.204.0这个网段可以写,192.168.100.0网段只能读:
现在说明已经挂载成功了,而且服务器给192.168.204.0这个网段的主机都有写权限,下面我们来测试写,我只要往/opt这个目录里面写,就相当于往服务器里写了:
我们突然发现,不能写?原因是在nfs服务器的配置文件里面有一个默认选项是root_squash,作用是,如果从其他机器用root访问的时候,在服务器这边会把root的身份转变成nfsnobody,在客户端感觉是用root往里写的,但是在服务器端来看,是nfsnobody这个用户在写,其他是不能写的,所以在客户端上用root往里写是不行的。
两种解决方案:
2. 然后修改/etc/exports如下:意思是当在客户端上用root访问的时候,root的身份是不变的,在服务器上来看也是root访问的。测试如下:
nfs只识别uid,而不识别用户名,比如在服务器上tom用户的uid为500,在客户端上bob的uid是500,当在客户端上bob创建一个文件的时候,客户端显示文件的所有者是bob,而在服务器端看到文件所有者却是tom。
我们可以通过nfs把ldap的用户的家目录共享出去,这样就可以实现了win下面的漫游用户这样的东西。
记住:我们讲的是nfsv3版本,只能根绝网段或者主机来限制,而不能根据用户名来限制,如果要想根据用户名限制的话,必须使用nfsv4+kerberos。
如果把/etc/export内容改成如下:
那么192.168.204.0这个网段的主机是不能再访问nfs服务器了:
第十七章 通过 CIFS 共享文件
samba是用来实现windows和类unix之间的共享的,当然也可以实现类unix之间的共享。
samba的daemon有两个,smb、nmb 配置文件: /etc/samba/smb.conf
使用的端口包含: UDP: 137、138 TCP:139、445,大家在做的时候一定要在防火墙上把这四个端口打开。
安装:
启动并设置开机自动启动:
下面我们开始来配置samba,修改配置文件。
首先在smb.conf里前一段告诉我们如何设置selinux:
大家可以认真的看一下,记住,如果我们要把某个目录共享出去的话,我们要把这个目录的上下文设置为samba_share_t。
首先是global全局配置,在这里面配置的任何东西都会影响这个samba服务。
workgroup是windows的概念,而samba是用来和windows共享数据的,所以workgroup我们要设置和windows下的一样,一般是WORKGROUP:
下面的server sting 设置的samba的注释信息 %v是个变量,是版本的意思。
interface是用来设置samba监听哪个端口的,hosts allow 设置的是允许哪些主机可以访问samba服务,如果在hosts allow里面 出现了except的话,那么排除的就是明确拒绝的,比如:
允许任何主机都可以访问samba,但是就不允许 192.168.204.1,他出现在hosts allow里的except,就是明确被拒绝的意思。
security决定了samba的验证方式,有一下几种:
share : 当别人访问samba的时候,是不需要任何用户名和密码的,相当于windows的everyone。
user : 当别人访问samba共享目录的时候,必须要输入用户和密码。这个用户名和密码是samba的用户和密码,记住:这个用户必须是系统中存在的用户,但密码可以和系统密码不一样。我们可以使用smbpasswd这个命令把系统用户加入到samba用户中,比如:
这样就把tom加入到了samba用户中了,此时的密码可以和tom登录系统所用的密码不一样。常见的几个命令 smbpasswd -d tom 禁用tom, smbpasswd -e tom 启用这个用户, smbpasswd -x tom 删除这个用户。
下面我们直接看如何共享一个目录,我们共享/xx这个目录:
首先要改变他的上下文:
然后我们修改配置文件,直接到smb.conf的最后一行添加:
(;和#都是注释)
下面我们到windows下来访问:
当我们要创建一个文件的时候,发现创建不了,我们应该从三个方面来检查,首先查看配置文件中是否具有写权限,如果没有加上:
还是不行,下面我就来检查一下文件系统的权限问题:
当我们写的时候,使用tom身份,但实际上是往/xx里面写 ,但xx对其他人来说是没有写权限的,所以写不成功,chmod o+w /xx,然后再试:
现在创建成功了。
现在是所有的用户都可以写,如果我希望tom可以写,其他用户不 可以写:
首先要关闭写功能,writable=no,凡是在write list 里面出现的用户都是可以写的。
先清空缓存,用bob登录,看是否能写:
bob现在是不能写的,如果想让bob写,应该:
现在就可以写了。
如果想让tom组中所有用户都可以写:
现在bob已经不可以写了,但我们把bob加入到tom组里面去:
browseable是设置隐藏共享的,默认是允许浏览的,如果改成no就可不可浏览了。
现在就没有xxx这个共享目录了。
如果我们想让tom可以浏览,但bob不可以浏览的话:
我们要smb.conf的全局位置写上一句话:
后面的%U是变量代表用户名,即,当tom访问samba共享的时候,他使用的配置 文件就不是smb.conf了,而是smb.conf.tom,下面我们生成一个smb.conf.tom
此时tom在登录的时候,使用的就是smb.conf.tom这个文件,也就是可以browseable了。
bob还是浏览不到,但是tom呢
当才所讲的一切都是有用户登录的情况,也就是security=user的情况,如果我们改成share的话,就不需要密码了。
登录整个服务的时候没有问题,但是登录到具体的目录的时候就不行了。
如果允许登录到xxx的话,那么我们也要修改配置文件:
就可以了。
第十八章 通过 FTP 共享文件
vsftp : 非常安全ftp,应用非常广泛。
daemon: vsftpd 配置文件: /etc/vsftpd/vsftpd.conf
安装vsftpd:
启动服务:
ftp使用两个端口号:20和21,其中20是用来传输数据的,21是用来传输信令的。
首先在防火墙里打开两个端口:
虽然这样可以让别人登录到我们的ftp服务器上,但是当别人执行ftp命令的时候会出现问题:
大家会看到登录时正常的(我们使用ftp登录,密码是空),但是在里面执行ls的时候,会提示我们找不到路由,解决这个问题我们要修改防火墙/etc/sysconfig/iptables-config
重启防火墙,然后重新查看:
现在就是正常的了。
下面我们开始查看vsftpd的配置文件:/etc/vsftpd/vsftpd.conf
这是因为selinux的布尔值在作怪,修改如下:
再测试:
现在就可以成功登录了。
设置本地用户可写,写的文件默认的权限是什么。
是否允许匿名用户可上传文件和是否可以创建目录,默认是不允许的。现在启用:
我们来查看匿名用户是否真的可写:
记住:在上传文件的时候有两种模式,bin和acsii,根据你上传的文件类型然后选择不同的模式,如果模式没有选择的话,那么你上传的文件会出现乱码。
当我们配置了一个服务,然后往里面写的时候,如果写不进去的话 ,我们应该从以下三个方面来检查:
1. 首先查看配置文件里面是否开启了写权限,如果开启了还不能写的话
2. 我们要查看文件系统是否具有写权限,特别是o位,如果文件系统具有写权限的话还不能写
3. 检查selinux。
比如上面的例子,配置文件已经具有写权限了,但是还是不能写,那么我们就要查看一下文件系统。当匿名用户登录的时候,默认登录到了/var/ftp这个目录里的:
这个目录对其他人来说是不能写的,所以ftp写不进去,记住:不能改变/var/ftp所有者,否则会报错,我们在/var/ftp里面创建一个目录xx,然后把所有者改成ftp:
现在再来测试:
现在还是不行,那么我们就要查看第三个方面,selinux:
继续来测试:
传输成功。
这个选项如果启用的话,那么当你登录ftp后 ,从一个目录切换到另外的一个目录的话,会把目的目录下面的隐藏文件.message(如果有的话)里面的内容显示出来。
这两个选项的意思是:当某个用户上传文件之后,是否要改变这个文件的所有者,改变为谁。默认是没有启用的,在没有启用的情况下,ftp这个用户上传 一个文件后,所上传的这个文件所有者是ftp。
这个选项是设置登录的欢迎词的:
当本地用户登录ftp的时候,默认是登录到自己的家目录里的,他所看到的路径是一个完整的路径,他可以任意切换目录,这样对我们的系统不是很安全:
为了系统的安全性,我们需要做chroot,即当普通用户登录的时候,也是进入家目录里面,但是这个用户却感觉是在/里面的。
分别是启用文件来管理chroot。
配置文件修改如下:
凡是没有出现在/etc/vsftpd/chroot_list里面的用户,都做chroot。
记住:凡是出现在/etc/vsftpd/ftpuser和/etc/vsftpd/user_list里面的用户,都是被拒绝登录ftp的。
还有很多其他选项,大家自己去看一下man,比如再举个例子,我们来设置不让上传任何exe程序:
在没有设置之前exe也是可以正常上传的,但如果我们设置了如下选项后:
重启服务,然后测试如下:
如上图,就看到了,被拒绝了!
上述只是举man里面的一个例子,其他大家自己根据自己的实际需要去设置。