2019-06-11-Linux服务配置02
目录
1. 使用vsftpd服务传输文件
工作模式(服务端默认端口: 21命令端口, 20数据传输端口)
主动模式(PORT): 客户端用本地随机端口(N>1024)连接至服务端21命令端口, 客户端开始监听端口N+1, 并发送命令PORT N+1给服务端, 服务端以数据端口20连接到客户端指定的的数据端口N+1
被动模式(PASV): 客户端用本地随机端口(N>1024)连接至服务端21命令端口, 客户端开始监听端口N+1, 并发送命令PASV给服务端, 服务端会开启任意端口(P>1024), 并发送PORT P给客户端, 客户端发起从本地端口N+1到服务端的端口P的连接用来传输数据
1 2 3 4 /etc/vsftpd/vsftpd.conf pasv_enable=YES pasv_min_port=30000 pasv_max_port=35000
传输模式
二进制(Binary): 不对数据进行处理,传输可执行文件、压缩文件、图片等
ASCII: 自适应目标系统的结束符
验证方式
匿名用户(ftp/anonymous)
本地用户
系统用户
虚拟用户
2. 服务端 1 2 3 4 5 6 [root@xy ~]# yum install vsftpd [root@xy ~]# iptables -F [root@xy ~]# service iptables save [root@xy ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak [root@xy ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf [root@xy ~]# cat /etc/vsftpd/vsftpd.conf
2.1 常用参数:
参数
说明
listen=[YES/NO]
是否以独立运行方式监听
listen_address=IP
设置要监听的IP
listen_port=21
设置FTP服务的监听端口
download _enable=[YES/NO]
是否允许下载
userlist_enable=[YES/NO]
设置用户列表为允许/禁止操作
userlist_deny=[YES/NO]
—
max_client=0
最大客户连接数 0不限制
max_per_ip=0
同一IP最大连接数
anonymous_enable=[YES/NO]
是否允许匿名用户访问
anon_upload_enable=[YES/NO]
是否允许匿名用户上传文件
anon_umask=022
匿名用户上传文件的umask值
anon_root=/var/ftp
匿名用户FTP根目录 ✔
anon_mkdir_write_enable=[YES/NO]
是否允许匿名用户创建目录
anon_other_write_enable=[YES/NO]
是否允许匿名用户其他写入权限 重命名 删除等
anon_max_rate=0
匿名用户最大传输速率
local_enable=[YES/NO]
是否允许本地用户登陆FTP
local_umask=022
本地用户上传文件的umask值
local_root=/var/ftp
本地用户FTP根目录 ✔
chroot_local_user=[YES/NO]
是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0
本地用户最大传输速率
2.2 匿名用户模式开发权限参数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 anonymous_enable=YES local_enable = YES write_enable = YES local_umask = 022 anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anno_root=/var/ftp anno_other_write_enable = YES dirmessage_enable = YES xferlog_enable = YES connect_from_port_20 = YES xferlog_std_format = YES listen_ipv6 = YES pam_service_name = vsftpd userlist_enable = YES tcp_wrappers = YES anno_max_rate=0
2.3 客户端: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [root@xy ~]# yum install ftp [root@xy ~]# ftp 192.168.37.10 Connected to 192.168.37.10 (192.168.37.10). 220 (vsFTPd 3.0.2) Name (192.168.37.10:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd pub 250 Directory successfully changed. ftp> mkdir files 550 Permission denied ftp> exit 221 Goodbye. [root@xy ~]# ls -ld /var/ftp/pub drwxr-xr-x. 2 root root 6 Mar 7 2014 /var/ftp/pub [root@xy ~]# chown -Rf ftp /var/ftp/pub [root@xy ~]# ls -ld /var/ftp/pub drwxr-xr-x. 2 ftp root 6 Mar 7 2014 /var/ftp/pub [root@xy ~]# ftp 192.168.37.10 ... 550 Create directory operation failed. [root@xy ~]# getsebool -a | grep ftp ftp_home_dir --> off ftpd_anon_write --> off ftpd_connect_all_unreserved --> off ftpd_connect_db --> off ftpd_full_access --> off [root@xy ~]# setsebool -P ftpd_full_access=on [root@xy ~]# ftp 192.168.37.10 Connected to 192.168.37.10 (192.168.37.10). 220 (vsFTPd 3.0.2) Name (192.168.37.10:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd pub 250 Directory successfully changed. ftp> mkdir files 257 "/pub/files" created ftp> rename files database 350 Ready for RNTO. 250 Rename successful. ftp> rmdir database 250 Remove directory operation successful. ftp> exit 221 Goodbye.
2.4 本地用户模式参数:cat /etc/vsftpd/vsftpd.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 anonymous_enable=NO local_enable=YES write_enable=YES local_umask = 022 dirmessage_enable = YES xferlog_enable = YES connect_from_port_20 = YES xferlog_std_format = YES listen = NO listen_ipv6 = YES local_root=/var/ftp chroot_local_user=YES local_max_rate=0 pam_service_name = vsftpd local_umask=022 userlist_enable=YES userlist_deny=YES tcp_wrappers = YES ftp_banner=Welcome to use FTP Service
2.4.1 客户端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [root@xy ~]# ftp 192.168.37.10 Connected to 192.168.37.10 (192.168.37.10). 220 (vsFTPd 3.0.2) Name (192.168.37.10:root): root 530 Permission denied. Login failed. ftp> exit 221 Goodbye. [root@xy ~]# cat /etc/vsftpd/user_list [root@xy ~]# cat /etc/vsftpd/ftpusers [root@xy ~]# ftp 192.168.37.10 Connected to 192.168.37.10 (192.168.37.10). 220 (vsFTPd 3.0.2) Name (192.168.37.10:root): xy 331 Please specify the password. Password:此处输入该用户密码 230 Login successfull. Reomte system type is UNIX. Using binary mode to transfer files. ftp> mkdir files 550 Create directory operation failed. [root@xy ~]# getsebool -a |grep ftp ftpd_full_access --> off [root@xy ~]# setsebool -P ftpd_full_access=on
2.6 虚拟用户模式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [root@xy ~]# yum install pam* libdb-utils libdb* --skip-broken -y [root@xy ~]# cd /etc/vsftpd/ [root@xy vsftpd]# vim vuser.list zhangsan 123456 lisi 123456 [root@xy vsftpd]# db_load -T -t hash -f vuser.list vuser.db [root@xy vsftpd]# file vuser.db vuser.db: Berkeley DB (Hash, version 9, native byte-order) [root@xy vsftpd]# chmod 600 vuser.db [root@xy vsftpd]# rm -f vuser.list [root@xy ~]# useradd -d /var/ftproot -s /sbin/nologin virtual [root@xy vsftpd]# ls -ld /var/ftproot/ drwx------. 3 virtual virtual 74 Jul 12 08:55 /var/ftproot/ [root@xy vsftpd]# chmod -Rf 755 /var/ftproot/ [root@xy vsftpd]# ls -ld /var/ftproot/ drwxr-xr-x. 3 virtual virtual 74 Jul 12 08:55 /var/ftproot/ [root@xy ~]# cp -a /etc/pam.d/vsftpd /etc/pam.d/vdftpd.pam [root@xy ~]# vim /etc/pam.d/vsftpd.pam auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser
2.5.1主配置文件 vsftpd.conf: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [root@xy ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable = YES local_umask = 022 dirmessage_enable = YES xferlog_enable = YES connect_from_port_20 = YES listen = NO listen_ipv6 = YES userlist_enable = YES tcp_wrappers = YES allow_writeable_chroot=YES pam_service_name=vsftpd.pam guest_enable=YES guest_username=virtual user_config_dir=/etc/vsftpd/vusers_dir virtual_use_local_privs = YES
2.5.2配置不同用户有不同权限: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@xy ~]# mkdir /etc/vsftpd/vusers_dir/ [root@xy ~]# cd /etc/vsftpd/vusers_dir [root@xy vusers_dir]# touch lisi [root@xy vusers_dir]# vim zhangsan local_root = /var/ftproot/zhangsan write_enable = YES anon_world_readable_only = YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES [root@xy ~]# mkdir -p /var/ftproot/{zhangsan,lisi} [root@xy~]# chown -R virtual:virtual /var/ftpuser [root@xy ~]# vim /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers_dir [root@xy ~]# getsebool -a | grep ftp ftpd_full_access --> off [root@xy ~]# setsebool -P ftpd_full_access=on [root@xy vusers_dir]# systemctl restart vsftpd.service [root@xy vusers_dir]# systemctl enable vsftpd
3. 简单文件传输协议(TFTP:Trivial File Transfer Protocol): TFTP 基于UDP(69)协议在(客户端与服务器)之间进行简单文件传输的协议
选项
说明
?
帮助 ✔
put
上传文件 ✔
get
下载文件 ✔
verbose
显示详细处理信息
status
显示当前状态信息
binary
使用二进制进行传输
ascii
使用ASCII码传输
timeout
设置重传超时时间
quit
退出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@xy ~]# yum install tftp-server tftp [root@xy ~]# vim /etc/xinetd.d/tftp [root@xy ~]# systemctl restart xinetd [root@xy ~]# netstat -a | grep tftp [root@xy ~]# systemctl enable xinetd [root@xy ~]# firewall-cmd --permanent --add-port=69/udp success [root@xy ~]# firewall-cmd --reload success [root@xy ~]# echo "I love An~~" > /var/lib/tftpboot/readme.txt [root@xy ~]# tftp 192.168.37.10 tftp> get readme.txt tftp> quit [root@xy ~]# ls anaconda-ks.cfg Downloads Pictures ShellExample Desktop initial-setup-ks.cfg Public Templates Documents Music readme.txt Videos [root@xy ~]# cat readme.txt
4. 使用Samba或NFS实现文件”共享”
基于SMB (Server Messages Block)协议,开发出SMBServer服务程序,实现Linux与Windows 之间的文件共享变得简单 ,TCP 139、445
1 2 3 4 5 6 7 8 9 10 11 12 [root@xy ~]# yum install samba [root@xy ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak [root@xy ~]# cat /etc/samba/smb.conf.bak |grep -v "#" |grep -v ";" |grep -v "^$" > /etc/samba/smb.conf [root@xy ~]# cat /etc/samba/smb.conf 1 [database] 2 comment = Do not arbitrarily modify the database 4 path = /home/database 5 public = no 6 browseable=no 7 writable = yes 8 guest ok = yes
4.3 pdbedit 命令管理SMB服务程序的账户信息数据库,配置Samba服务器:
要建立 Samba用户必须先建立名为 admin的 Samba用户
选项
说明
-a
建立Samba账户
-x
删除Samba账户
-L
列出Samba账户
-Lv
列出账户详尽信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [root@xy ~]# id xy uid=1000(xy) gid=1000(xy) groups =1000(xy) [root@xy ~]# pdbedit -a xy ✔ new password: retype new password: Unix username: xy ... Full Name: xy Home Directory: \\xy\xy HomeDir Drive: Logon Script: Profile Path: \\xy\xy\profile Domain: XY ... Password must change: never ... [root@xy ~]# mkdir /home/database [root@xy ~]# chown -Rf xy:xy /home/database/ [root@xy ~]# ls -ldZ /home/database/ drwxr-xr-x. 2 xy xy 6 Jul 12 11:10 /home/database/ [root@xy ~]# semanage fcontext -a -t samba_share_t /home/database [root@xy ~]# restorecon -Rv /home/database/ restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0 [root@xy ~]# getsebool -a | grep samba samba_create_home_dirs --> off samba_domain_controller --> off samba_enable_home_dirs --> off [root@xy ~]# setsebool -P samba_enable_home_dirs on [root@xy ~]# systemctl restart smb [root@xy ~]# systemctl enable smb ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service' [root@xy ~]# iptables -F [root@xy ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
4.4 Linux 访问文件共享服务(Samba客户端)
1 2 3 4 5 6 7 8 9 10 11 12 [root@xy ~]# yum install samba-client cifs-utils [root@xy ~]# vim auth.smb username=xy password=redhat domain=MYGROUP [root@xy ~]# chmod 600 auth.smb [root@xy ~]# mkdir /database [root@xy ~]# vim /etc/fstab //Samba服务器IP/共享目录 /客户端目录 cifs credentials=/root/auth.smb 0 0* [root@xy ~]# smbclient -U 用户名 -L //服务器IP [root@xy ~]# smbclient -U 用户名 //服务器IP/共享名
4.4 Window 登录方式 1 \\服务器IP\共享名 net use * /del
4.5 Samba Web界面管理 5. NFS基于TCP/IP协议,用于Linux系统之间上文件资源共享 C/S 5.1 服务端 192.168.37.10
参数
说明
ro
只读
rw
只写
root_squash
NFS客户端以root管理员访问,映射为NFS服务器的匿名用户
no_root_squash
NFS客户端以root管理员访问,映射为NFS服务器的root管理员
all_squash
无论NFS客户端以什么访问,均映射为NFS服务器的匿名用户
sync
同时将数据写入内存与硬盘中,保证不丢失数据
async
先将数据保存至内存,然后再写入硬盘,效率高,可能丢失数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@xy ~]# yum install -y nfs-utils [root@xy ~]# iptables -F [root@xy ~]# service iptables save [root@xy ~]# mkdir /nfsfile [root@xy ~]# chmod -Rf 777 /nfsfile iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@xy ~]# vim /etc/exports /nfsfile 192.168.37.10/24.*(rw,sync ,root_squash) [root@xy ~]# systemctl restart rpcbind [root@xy ~]# systemctl enable rpcbind [root@xy ~]# systemctl start nfs-server [root@xy ~]# systemctl enable nfs-server ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/ nfs.target.wants/nfs-server.service'
5.1 客户端配置
选项
说明
-e
显示NFS服务器的共享列表
-a
显示本机挂载文件资源的情况
-v
显示版本
1 2 3 4 5 6 7 [root@xy~]# showmount -e 192.168.37.10 Export list for 192.168.37.10: /nfsfile 192.168.37.10 [root@xy ~]# mkdir /nfsfile [root@xy ~]# mount -t nfs 192.168.37.10:/nfsfile /nfsfile [root@xy ~]# cat /nfsfile/readme 192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0
6. auto自动挂载服务 1 2 3 4 5 6 [root@xy ~]# yum install autofs [root@xy ~]# vim /etc/auto.master /media /etc/iso.misc [root@xy ~]# vim /etc/iso.misc iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 挂载目录 挂载文件类型及权限 :设备名称
7. 使用BIND提供域名解析服务(Berkeley Internet Name Domain)
DNS(Domain Name System):管理和解析(域名 与 IP)的对应关系,域名–>IP(正向解析) ,IP–>域名(反向解析)
DNS服务器:主服-masster、从服-slave、缓存服三种,DNS域名解析服务采用分布式数据结构,执行查询请求:
递归查询(必须向用户返回结果) / 迭代查询(一台接一台,直到返回结果)
配置Bind(Berkely Internet Name Domain)服务:
主配置文件 :/etc/named.conf–定义bind服务程序的运行
区域配置文件 :/etc/named.rfc1912.zones–保存域名与IP所在的具体位置
数据配置文件目录 :/var/named/xxx.zone–保存域名与IP真实对应关系数据
根节点服务器 :/var/named/named.ca
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [root@xy ~]# yum install bind-chroot [root@xy ~]# vim /etc/named.conf ... 7 // See /usr/share/doc/bind*/sample/ for example named configuration files. 10 options { 11 listen-on port 53 { any; }; 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named" ; 14 dump-file "/var/named/data/cache_dump.db" ; 15 statistics-file "/var/named/data/named_stats.txt" ; 16 memstatistics-file "/var/named/data/named_mem_stats.txt" ; 17 allow-query { any; }; 29 recursion yes ; 31 dnssec-enable yes ; 32 dnssec-validation yes ; 33 dnssec-lookaside auto; 35 /* Path to ISC DLV key */ 36 bindkeys-file "/etc/named.iscdlv.key" ; 38 managed-keys-directory "/var/named/dynamic" ; 40 pid-file "/run/named/named.pid" ; 41 session-keyfile "/run/named/session.key" ; 42 }; 44 logging { 45 channel default_debug { 46 file "data/named.run" ; 47 severity dynamic; 48 }; 49 }; 51 zone "." IN { 52 type hint; 53 file "named.ca" ; 54 }; 56 include "/etc/named.rfc1912.zones" ; 57 include "/etc/named.root.key" ;
7.1 正向解析 eg: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [root@xy ~]# vim /etc/named.rfc1912.zones zone "xy.com" IN { type master; file "xy.com.zone" ; allow-update { none; }; }; [root@xy named]# ls -al named.localhost -rw-r-----. 1 root named 152 Jun 21 2007 named.localhost [root@xy named]# cp -a named.localhost xy.com.zone [root@xy named]# vim xy.com.zone $TTL 1D @ IN SOA xy.com. root.xy.com. ( 0;serial 1D;refresh 1H;retry 1W;expire 3H;)minimum NS ns.xy.com. ns IN A 192.168.37.10 IN MX 10 mail.xy.com. mail IN A 192.168.37.10 www IN A 192.168.37.10 ftp IN CNAME www bbs IN A 192.168.37.20 测试: [root@xy ~]# systemd restart named [root@xy ~]# systemctl restart network [root@xy ~]# nslookup > www.xy.com Server: 192.168.37.10 Address: 192.168.37.10#53 > Name: www.xy.com Address: 192.168.37.10 > bbs.xy.com Server: 192.168.37.10 Address: 192.168.37.10#53 > Name: bbs.xy.com Address: 192.168.37.20
7.2 反向解析 eg: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [root@xy ~]# vim /etc/named.rfc1912.zones zone "xy.com" IN { type master; file "xy.com.zone" ; allow-update { none; }; }; zone "37.168.192.in-addr.arpa" IN { type master; file "192.168.10.arpa" ; }; [root@xy named]# ls -al named.loopback -rw-r-----. 1 root named 152 Jun 21 2007 named.loopback [root@xy named]# cp -a named.loopback 192.168.37.arpa [root@xy named]# vim 192.168.37.arpa $TTL 1D @ IN SOA xy.com. root.xy.com. ( 0;serial 1D;refresh 1H;retry 1W;expire 3H;)minimum NS ns.xy.com. ns A 192.168.37.10 10 PTR ns.xy.com 10 PTR mail.xy.com 10 PTR www.xy.com 20 PTR bbs.xy.com [root@xy ~]# systemd restart named [root@xy ~]# systemctl restart network [root@xy ~]# nslookup > 192.168.37.10 Server: 127.0.0.1 Address: 127.0.0.1#53 10.37.168.192.in-addr.arpa name = ns.xy.com. 10.37.168.192.in-addr.arpa name = www.xy.com. 10.37.168.192.in-addr.arpa name = mail.xy.com. > 192.168.37.10 Server: 127.0.0.1 Address: 127.0.0.1#53 20.37.168.192.in-addr.arpa name = bbs.xy.com.
8. 部署主从服务器 8.1 无加密的传输 8.1.1 主服务器的配置IP:192.168.37.10 1 2 3 4 5 6 7 8 9 10 11 12 [root@xy ~]# vim /etc/named.rfc1912.zones zone "xy.com" IN { type master; file "xy.com.zone" ; allow-update { 192.168.37.20; }; }; zone "37.168.192.in-addr.arpa" IN { type master; file "192.168.37.arpa" ; allow-update { 192.168.37.20; }; }; [root@xy ~]# systemd restart named
8.1.2 从服务器的配置IP:192.168.37.20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [root@xy ~]# vim /etc/named.rfc1912.zones zone "xy.com" IN { type slave; masters { "192.168.37.10" }; file "slaves/xy.com.zone" ; }; zone "37.168.192.in-addr.arpa" IN { type slave; masters { "192.168.37.10" }; file "slaves/192.168.37.arpa" ; }; [root@xy ~]# systemd restart named [root@xy ~]# cd /var/named/slaves [root@xy ~]# ls 192.168.37.arpa xy.com.zone [root@xy ~]# nslookup > www.xy.com Server: 192.168.37.20 Address: 192.168.37.20#53 Name: www.xy.com Address: 192.168.37.10 > 192.168.37.10 Server: 192.168.37.20 Address: 192.168.37.20#53 10.37.168.192.in-addr.arpa name = www.xy.com. 10.37.168.192.in-addr.arpa name = ns.xy.com. 10.37.168.192.in-addr.arpa name = mail.xy.com.
8.2 有加密的安全传输 8.2.1 主服务器下生成密钥 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [root@xy ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave Kmaster-slave.+157+39112 [root@xy ~]# ls -al Kmaster-slave.+157+39112. -rw-------. 1 root root 56 Jul 13 13:10 Kmaster-slave.+157+39112.key -rw-------. 1 root root 165 Jul 13 13:10 Kmaster-slave.+157+39112.private [root@xy ~]# cat Kmaster-slave.+157+39112.private Private-key-format: v1.3 Algorithm: 157 (HMAC_MD5) Key: pOuRN4eeVTzrZs/aaVpbkQ== ... Activate: 20180713051051 [root@xy ~]# cd /var/named/chroot/etc/ [root@xy etc]# vim transfer.key key "master-slave" { algorithm hmac-md5; secret "pOuRN4eeVTzrZs/aaVpbkQ==" ; }; [root@xy etc]# chown root:named transfer.key [root@xy etc]# chmod 640 transfer.key [root@xy etc]# ln transfer.key /etc/transfer.key [root@xy etc]# vim /etc/named.conf include "/etc/transfer.key" allow-transfer { key master-slave; }; [root@xy ~]# systemd restart named [root@xy ~]# rm -rf /var/named/slaves [root@xy ~]# systemd restart named
8.2.2. 配置从服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [root@xy ~]# cd /var/named/chroot/etc/ [root@xy etc]# vim transfer.key key "master-slave" { algorithm hmac-md5; secret "pOuRN4eeVTzrZs/aaVpbkQ==" ; }; [root@xy etc]# chown root:named transfer.key [root@xy etc]# chmod 640 transfer.key [root@xy etc]# ln transfer.key /etc/transfer.key [root@xy etc]# vim /etc/named.conf include "/etc/transfer.key" server 192.168.37.10 { key { master-slave; }; } [root@xy ~]# systemd restart named [root@xy ~]# ls /var/named/slaves [root@xy ~]# systemd restart named 192.168.37.arpa xy.com.zone
9. 使用DHCP动态管理主机地址(67)
DHCP(Dynamic Host Configuration Protocol):基于UDP协议 仅仅在局域网内部使用提高IP利用率,提高配置效率,降低管理维护成本
作用域:完整的IP段,DHCP协议根据作用域分配IP
超级作用域: 管理处于一个物理网络中多个逻辑子网段
排除范围: 把作用域的某些IP排除
地址池: 剩余的IP
租约: DHCP 客户端能够使用IP的时间
预约: 保证网络中特定设备总是获取到相同IP
9.1 dhcpd(dhcpd.conf)服务程序配置最常见参数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@xy ~]# yum install dhcp [root@xy ~]# /etc/dhcp/dhcpd.conf [root@xy ~]# cp -a /usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf ddns-update-style none; ignore client-updates; subnet 192.168.10.1 netmask 255.255.255.0 { range 192.168.10.50 192.168.10.150; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.10.1; option domain-name "xy.com" ; option routers 192.168.10.1; option broadcast-address 192.168.10.255; default-lease-time 21600; max-lease-time 43200; } [root@xy ~]# systemctl start dhcpd [root@xy ~]# systemctl enable dhcpd
9.3 分配固定IP:IP与MAC地址绑定 1 2 3 4 host xy { hardware ethernet 00:0c:29:11:26:05; fixed-address 192.168.37.55; }
10. 使用Postfix 与 Dovecot部署邮件系统
电子邮件协议:
SMTP简单邮件传输协议(Simple Mail Transfer Protocol,):用于发送和中转发出的电子邮件 ,占用服务器的25/TCP端口 ;
POP3邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机 ,占用服务器的110/TCP 端口;
IMAP Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件 ,占用服务器的143/TCP 端口;
MUA->SMTP->MTA->SMTP->MTA->POP3/IMAP4->MUA
10.1 配置DNS服务程序bind-chroot 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [root@xy ~]# iptables -F [root@xy ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@xy ~]# systemctl disable iptables [root@xy ~]# systemctl disable firewalld.service [root@xy ~]# vim /etc/hostname mail.xy.com [root@mail named]# vim /etc/named.conf listen-on port 53 { any; }; allow-query { any; }; [root@mail named]# vim /etc/named.rfc1912.zones zone "xy.com" IN { type master; file "xy.com.zone" ; allow-update { none; }; }; [root@mail named]# vim xy.com.zone $TTL 1D @ IN SOA xy.com. root.xy.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.xy.com. ns IN A 192.168.37.10 @ IN MX 10 mail.xy.com. mail IN A 192.168.37.10
10.2 配置基于SMTP协议的Postfix服务程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@xy ~]# yum install postfix [root@mail ~]# vim /etc/postfix/main.cf myhostname = mail.xy.com mydomain = xy.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname , $mydomain (relay_domains = $mydestination ) [root@mail named]# useradd boss [root@mail named]# echo "xy" | passwd --stdin boss Changing password for user boss. passwd: all authentication tokens updated successfully. [root@mail ~]# systemctl restart postfix [root@mail ~]# systemctl enable postfix
10.3 配置基于POP3与IMAP4协议的Dovecot服务程序 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@xy ~]# yum install dovecot [root@mail ~]# vim /etc/dovecot/dovecot.conf protocols = imap pop3 lmtp disable_plaintext_auth = no login_trusted_networks = 192.168.37.0/24 [root@mail ~]# vim /etc/dovecot/conf.d/10-mail.conf mail_location = mbox:~/mail:INBOX=/var/mail/%u [root@mail ~]# su - boss [boss@mail ~]$ mkdir -p mail/.imap/INBOX [boss@mail ~]$ exit [root@mail ~]# systemctl restart dovecot [root@mail ~]# systemctl enable dovecot ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
10.4测试 1 2 3 4 5 客户端: Windows Outlook2017 IP: 192.168.37.2/24 DNS: 192.168.37.10 username: boss password: 123465
返回目录