39.搭建Linux基础服务dhcp、samba、ftp、dns
LInux搭建各种服务器教程!
DHCP服务器:
设置永久网络配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth0
设置网卡显示配置文件路径:/etc/udev/rules.d/70-persistent-net.rules
防火墙配置文件路径:/etc/sysconfig/selinux
DHCP服务的进程名:dhcpd
搭建步骤:
设置好网络,关闭防火墙功能以及防火墙服务。
安装dhcpd软件包。
复制模版文件/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample到/etc/dhcp/dhcpd.conf。
配置dhcpd.conf文件作用域参数,然后保存。
重新载入服务service dhcpd reload。
注意:
作用域参数必须有属于服务器网段的作用域,不然服务无法正常启动。
无法获取到地址检查网络连通性,主机地址配置参数必须完整。
服务无法正常启动检查配置文件的完整性,一个空格一个符号不对都会出现问题,出现无法结局问题我们只能重新复制模版文件的参数。
Samba服务器:共享文件服务器
Samba服务的进程名:samd,nmbd。
Samba服务配置文件路径:/etc/samba/smb.conf。
Samba共享用户的账户数据库文件路径:/var/lib/samba/private/passdb.tdb。
Samba共享帐号的映射文件位于/etc/samba/smbusers
搭建步骤:
设置好网络,关闭防火墙功能以及防火墙服务。
安装Samba软件包。它有三个包一个公共包,一个服务端包,一个客户端包。
配置文件smb.conf参数。
重新载入服务service dhcpd reload。
创建共享用户:该服务拥有独立的用户数据库,但是创建共享用户的前提是必须有相同账户的系统用户。命令:pdbedit -a -u ren 意思:将系统用户ren加入到共享用户中。
共享帐号映射创建步骤:
编辑帐号映射文件smabusers
主配置文件smb.conf添加全局参数username map = /etc/samba/smbusers
重新载入服务service dhcpd reload。
使用客户端访问共享文件夹:smbclient -U ren //192.168.1.1/pub
为了长期访问此共享文件夹可以将此网络路径挂载在一个指定的目录:
编辑/etc/fstab文件设置对应参数,这里使用的系统文件类型是:smbfs
mount -o username=ren,passwoed=123 //192.168.1.1/pub /mnt
smb.conf文件常见的参数
配置項 | 说明 |
workgroup | 设置服务器所在的工作组名称,一般保持默认就好 |
Server string | 设置服务器的说明文字,用于描述文件服务器 |
Security | 设置成user代表使用共享用户名和密码登录,设置成share可以匿名访问,设置成server代表验证用户名和密码的工作交给另外一台服务器,设置成domain代表验证用户名和密码的工作由域控完成 |
Log life | 设置服务器的日志文件,默认在/var/log/samba/log.%m文件中 |
Passwd backend | 设置共享账户的类型,默认使用TDB数据库文件,保持默认就好 |
Conmment | 设置对应共享目录的注释参数 |
Path | 设置共享目录的路径 |
Browseable | 设置该共享目录在网上邻居中是否可见,no为隐藏共享目录 |
Guest ok | 设置该共享目录是否可以被所有人访问,跟public参数用法相同 |
Writable | 设置该共享目录是否可写 |
Valid users | 设置只允许该用户访问此目录 |
Writable list | 设置只允许该用户可写 |
Read only | 设置该共享目录可读 |
注意:搭建匿名访问和用户访问同时使用,在全局参数中加入map to guest = bad user参数, Security参数设置为user,那么使用用户访问的只需添加参数Valid users指定谁访问。匿名访问没有此指定即可。
FTP文件传输服务
FTP服务的进程名:vsftpd
FTP服务的配置文件路径:/etc/vsftpd/vsftpd.conf
FTP服务的用户列表文件路径:/etc/vsftpd/ftpusers, /etc/vsftpd/user_list。
FTP服务默认的PAM认证文件路径:/etc/pam.d/vsftpd。
搭建步骤:
设置好网络,关闭防火墙功能以及防火墙服务。
安装FTP软件包。vaftpd为服务端包,ftp为客户端包。
配置文件vsftpd.conf参数。
重新载入服务service dhcpd reload。
帐号映射创建步骤:
创建文本格式的用户名,密码列表:vim /etc/vsftpd/ren.list(文件规则:奇数行为用户名,偶数行为密码)。
将列表转换成DB数据库文件:db_load -T -t hash -f ren.list ren.db。
创建需要映射的系统帐号:useradd -d /var/ftproot -s /sbin/nologin ren。
更改家目录权限可读可执行:chmod 755 /var/ftproot。
建立PAM认证文件:vim /etc/pam.d/ren.vu。
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/ren
account required pam_userdb.so db=/etc/vsftpd/ren
修改vsftpd.conf参数,添加虚拟用户支持:
Local_enable=YES | 需映射本地用户,所以启用此项 |
Write_enable=YES | 启用上传写入支持 |
Anon_umask=022 | 指定上传权限掩码 |
Guest_enable=YES | 启用用户映射功能 |
Guest_username=virtual | 指定映射的系统用户名称 |
Pam_service_name=ren.vu | 指定新的PAM认证文件 |
为不同的虚拟用户建立独立的配置文件:
编辑vsftpd.conf文件:vim /etc/vsftpd/vsftpd.conf。
添加参数:user_config_dir=/etc/vsftpd/ren_dir。
创建配置文件目录:mkdir /etc/vsftpd/ren_dir。
进入此目录为用户建立独立的配置文件:
vim ren
anon_upload_enable=YES
anon_mkdir_write_enable=YES
重新加载配置:service dhcpd reload。
vsftpd.conf常见配置参数
作用范围 | 配置参数 | 意思 |
匿名用户 | Anonymous_enables=YES | 是否允许匿名访问 |
Anon_umask=022 | 匿名用户上传文件的掩码值(这里是反掩码) | |
Anon_root=/var/ftp | 设置匿名用户的FTP根目录 | |
Anon_upload_enable=YES | 设置匿名用户是否可以上传文件 | |
Anon_mkdir_write_enable=YES | 设置匿名用户有创建目录的写入权限 | |
Anon_other_write_enable=YES | 是否允许匿名用户有其他的写入权限 | |
Anon_max_rate=0 | 限制匿名用户的最大传输速率,0表示不限制 | |
本地用户 | Local_enable=YES | 是否允许本地用户访问 |
Local_umask=022 | 设置本地用户上传文件的掩码值(这里是反掩码) | |
Local_root=/var/ftp | 设置本地用户的FTP根目录 | |
Chroot_local_user=YES | 是否将FTP用户禁锢在宿主目录中 | |
Local_max_rate=0 | 设置本地用户的最大传输速率,0表示不限制 | |
全局配置 | Listen=YES | 是否以独立运行的方式监听服务 |
Listen_address=0.0.0.0 | 设置FTP服务的IP地址 | |
Listen_port=21 | 设置坚挺FTP服务的端口号 | |
Write_enable=YES | 启用任何形式的写入权限 | |
Download_enable=YES | 是否允许下载文件 | |
Dirmessage_enable=YES | 用户切换进入目录时显示.message文件 | |
Xferlog_enable=YES | 启用Xferlog日志,默认记录在/var/ftp/xferlog | |
Xferlog_std_format=YES | 启动标准的Xferlog日志格式 | |
Connet_form_port_20=YES | 允许服务器主动模式(从20号端口建立数据连接) | |
全局配置 | Pasv_enable=YES | 允许被动模式连接 |
Pasv_max_port=24600 | 设置用于被动模式的服务器最大端口号 | |
Pasv_min_port=24500 | 设置用于被动模式的服务器最小端口号 | |
Pam_service_name=vsftpd | 设置用于用户认证的PAM文件位置 | |
Userlist_enable=YES | 是否启用user_list用户列表文件 | |
Userlist_deny=YES | 是否禁用user_list用户列表中的用户帐号 | |
Max_client=0 | 最多允许多少客户端同时连接,0表示不限制 | |
Max_per_ip=0 | 对来自同一个IP地址的客户端,最多允许多少个并发连接,0表示不限制 | |
Tcp_wrappers=YES | 是否启动Tcp_wrappers主机访问控制 |
注意:
2 FTP根目录不能给写的权限,这个是固定的。
2 用户列表文件设置ftpusers文件,此文件中列出的用户将禁止登录vsftpd服务器,连输密码的机会都没有。
2 用户列表文件设置user_list文件,此文件可以包含的用户可能被禁止登录,也可能被允许登录,具体取决于vsftpd.conf文件中的参数配置,可以输密码但是登录不成功。
2 上传反掩码计算:文件权限=777-111-022,目录权限=777-022。
2 在以上步骤中如果遇到需要创建目录和文件的步骤注意文件权限给好,不然可能导致后面的操作出现问题。
2 服务器主动模式:服务器20号端口主动连接客户端的20号端口,相同端口传输数据,传输速率高。
2 服务器被动模式:服务端20号端口被动连接客户端的非20号端口,不同端口传输数据,较安全,但是要经过端口计算传输速率低。
2 映射用户的权限默认使用的是匿名用户的权限,所以你要对映射用户进行操作,只需要操作有关匿名用户的参数。(编辑vsftpd.conf有关anon参数)
DNS域名解析服务:使用BIND软件
BIND服务进程名:named
BIND服务的配置文件路径:/etc/named.conf
BIND服务的区域数据库文件路径:/etc/named/
BIND服务的根数据文件保存路径:/var/named/named.ca
搭建步骤:
设置好网络,关闭防火墙功能以及防火墙服务。
安装BIND软件包:bind包主程序包,bind-utils提供对服务的测试工具程序包,bind-libs提供bind需要使用的库函数,bind-chroot为BIND服务提供一个伪装目录(/var/named/chroot),以提高安全性。
设置named.conf文件参数:vim /etc/named.conf。
创建区域数据配置文件:cp /var/named/named.empty /var/named/ren.zone
编辑该区域数据配置文件添加解析记录:vim /var/named/ren.zone
给该文件可读可写权限:chmod 777 ren.zone
启动named服务以及重新加载配置:service named start service named reload
构建缓存域名服务器:
编辑主配置文件:vim /etc/named.conf添加参数:
option {
forwarders { 202.96.134.133; 114.114.114.114; };
};
启动named服务:service named start。
构建主域名服务器:
编辑主配置文件:vim /etc/named.conf添加参数:
zone "benet.com" IN { 正向解析
type master; 设置为主域名服务器
file "benet.zone" 设置区域数据文件路径
allow-transfer { 192.168.1.2 ; }; 允许从服务器下载正向数据
};
zone "192.168.1.in-addr.arpa" IN { 反向解析
type master; 设置为主域名服务器
file "192.168.1.2.arpa"; 设置区域数据文件路径
allow-transfer { 192.168.1.2 ; }; 允许从服务器下载反向数据
};
配置区域数据文件:vim /var/named/ren.zone。
启动named服务:service named start。
构建缓存服务器:
编辑主配置文件:vim /etc/named.conf添加参数:
zone "benet.com" IN { 正向解析
type slave; 设置为主域名服务器
file "slaves/benet.zone" 设置区域数据文件路径
masters { 192.168.1.1 ; }; 从主域名服务器下载正向数据
};
zone "192.168.1.in-addr.arpa" IN { 反向解析
type slave; 设置为主域名服务器
file "slaves/192.168.1.2.arpa"; 设置区域数据文件路径
masters { 192.168.1.1 ; }; 从主域名服务器下载反向数据
};
启动named服务以及重新加载配置:service named start service named reload
查看数据是否从主域名服务器上复制相同的区域数据文件:cd /etc/named/slaves | ls
注意:
2 每个配置文件中必须存在"."根域的参数,这个参数建议不要随意更改。
2 我们可以借助nslookup工具来测试DNS服务的解析情况:nslookup
server 192.168.1.1 指定DNS服务器
set type=ns,mx,a,cname,ptr 指定测试的解析记录类型
www.benet.com 测试这个域名的解析情况
解析记录:
2 MX邮件解析记录:把一个公司的二级域名解析出这个公司内的一台三级域名的邮件服务器。
2 NS解析记录:把一个公司的二级域名解析出这个公司内的一台三级域名的服务器。
2 A主机解析记录:将一个域名解析成一个IP地址。
2 PTR指针解析记录:将一个IP地址解析成一个域名。
2 CNAME别名解析记录:将一个域名解析成另外一个别名,来提高服务器的安全性。
服务器搭建大概思路:配置正确网络参数,关闭防火墙。安装服务对应软件包,编辑对应配置文件。开启服务,重新加载配置文件。配置文件修改时注意各类标注符号,出现问题冷静思考错误提示,认真检查配置文件。
Samba服务参数记忆:global为全局参数项,homes为家目录参数项,printers为打印机共享参数项。
FTP服务参数记忆规律:看到anon为匿名访问参数,local为用户访问参数,其他为全局。
BIND服务主域类型为master,从域类型为slave,区域地址数据配置注意解析记录方向。