第十一节课

  • 第九章链接,前往

    ssh

  • ssh 安全的远程连接协议

  • sshd 服务程序让用户实现ssh远程连接
  • 主配置文件(最重要的参数)和普通配置文件。
    • vim /etc/ssh/sshd_config
    • 17 行,修改ssh连接的 端口号
      • 记得修改selinux setenforce 0 或者修改 /etc/sysconfig/selinux
    • PermitRootLogin no 不允许root用户ssh连接服务器。 这里有一道考题
    • iptables -F 清空防火墙
  • 通过秘钥登录服务器
    • ssh-keygen 不需要设置,直接生成, cat .ssh/id_rsa
    • ssh-copy-id 192.168.10.10 公钥文件(客户端)传送给远程的服务端
      • -p 修改过的ssh端口
    • PasswordAuthentication yes 更改成no, 在服务端配置,禁止使用密码进行ssh连接
    • 再次在客户端远程, ssh 192.168.10.10 就可以直接登录
  • scp 文件传输

    • scp haha.txt 192.168.10.20:/root/ 在服务端传输文件到客户端
    • scp 192.168.10.10:/root/hoho.txt /root/ 将服务端的文件下载到本地 /root/ 目录下

      第十二节课

  • 配置yum仓库

  • mkdir -p /media/cdrom 挂载系统光盘

    • mount /dev/cdrom /media/cdrom/
    • 编辑 /etc/fstab 文件, /dev/cdrom /media/cdrom iso9660 defaults 0 0
    • df -h vim /etc/yum.repos.d/xiaoxu.repo 编辑yum仓库的配置文件

      1. [rhel] #唯一标识
      2. name=rhel
      3. baseurl=file:///media/cdrom #本地的文件提供yum源
      4. enabled=1 #0不开启,1开启
      5. gpgcheck=0 # 0不启用校验
    • 通过yum 升级内核, 或是配置yum仓库

      • yum install -y tree
    • yum -y install screen 在服务端安装软件,以防ssh连接中断时影响作业
      • screen -S new1 然后客户端ssh 连接到服务器,创建新的会话
      • 客户端断掉后, screen -ls 查看之前遗留的会话信息
      • screen -r 31036 可以恢复到上次的某个会话
      • screen vim haha.txt 就默认使用screen了,不必提前开启一个screen会话
    • 窗口会话共享 screen -ls 查看到会话的ID(或者会话的名称),
      • screen -x 3004 就可以连接到别人的会话上

        第10章,使用apache服务部署静态网站

  • 链接,前往

  • RHCE主要考的是网站部署
  • yum -y install httpd 浏览器用IP访问下界面, 注意防火墙

    • Red Hat Enterprise Linux Test Page 看到这个界面,说明网站内没有资源;或是权限不足
    • cd /var/www/html/ echo "this is a test page" > index.html 写入到index文件
    • 主配置文件: vim /etc/httpd/conf/httpd.conf
      • 修改网站的根目录路径DocumentRoot "/home/wwwroot"
        • 125行,也要改 <Directory "/home/wwwroot">
        • /www\/html vim下搜索
    • setenforce 0 临时关闭SElinux,浏览器再次访问可以了
      • 注意restart 和 enable httpd
    • 查看SElinux 安全上下文 ls -ldZ /home/wwwroot
      • semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
      • semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
      • restorecon -Rv /home/wwwroot 使修改后的目录的SElinux 的值立即生效。浏览器再次访问
      • 如果不对,一定是哪里顺序有点问题。
    • 开启个人主页,这里考试的时候,注意一定加参数 vim /etc/httpd/conf.d/userdir.conf
      • # UserDir disabled 注释掉,表示允许开启
      • UserDir public_html 开启此行,表示用户保存自己网站的路径 public_html
      • getsebool -a |grep httpd setsebool -P httpd_enable_homedirs=on
      • 重启服务后,访问 http://192.168.50.26/~yonghuming
    • 限制需要使用用户名/密码,才能登录

      • htpasswd -c /etc/httpd/passwd xiaobai 创建用户名为xiaobai 的登录密码
      • file /etc/httpd/passwd 编辑文件 vim /etc/httpd/conf.d/userdir.conf 添加内容

        1. <Directory "/home/*/public_html">
        2. authuserfile "/etc/httpd/passwd"
        3. allowoverride none
        4. authname "这是一个私人站点" #网站登录时的提示信息
        5. authtype basic
        6. require user xiaobai
        7. </Directory>
      • systemctl restart httpd systemctl enable httpd

  • SElinux域 服务功能的限制

    • SElinux安全上下文 限制文件能够被哪些服务所访问
    • 注意,考试的时候不能关闭,必须是 enforcing

      第十三节课

      服务器配置多个网站

  • 编辑网卡文件 vim /etc/sysconfig/network-scripts/ifcfg-eno16777728

    1. IPADDR0=192.168.50.26
    2. IPADDR1=192.168.50.27
    3. IPADDR2=192.168.50.28
    • 注意提前把防火墙规则清空 iptables -F
    • vim /etc/httpd/conf/httpd.conf 编辑配置文件 8yy, p 复制多个即可

      1. <virtualhost 192.168.50.28>
      2. documentroot /home/wwwroot/28
      3. servername www.ceshi.com
      4. <directory /home/wwwroot/28>
      5. allowoverride none
      6. require all granted
      7. </directory>
      8. </virtualhost>
    • 重启httpd服务,浏览器访问IP,就可以访问到各virtualhost 对应的目录下的index文件内容。

  • 第二种方法,将IP-域名的对应解析写入hosts

    • vim /etc/hosts 192.168.50.26 www.ceshi.com bbs.ceshi.com tech.ceshi.com
    • 在对应目录中创建index.html
      • echo "wwwwwwwww" > www/index.html
      • echo "wwwwwwwwwbbsbbsbbsbbssbbs" > bbs/index.html
      • echo "wwwwwwwwwbbsbbsbbsbbssbbstechtechtechtechtechtech" > tech/index.html
    • 编辑httpd配置文件, vim /etc/httpd/conf/httpd.conf

      1. <virtualhost 192.168.50.26>
      2. documentroot /home/wwwroot/www
      3. servername www.ceshi.com
      4. <directory /home/wwwroot/www>
      5. allowoverride none
      6. require all granted
      7. </directory>
      8. </virtualhost>
      • 其余的注意,域名和目录对应就可以。重启服务进行测试。
  • 第三种方法,用端口号进行多个网站的配置
    • vim /etc/httpd/conf/httpd.conf 编辑配置文件, ```bash Listen 6111 Listen 6222

documentroot /home/wwwroot/6222 servername www.ceshi.com

allowoverride none require all granted

  1. - ` semanage port -l |grep http ` 注意查看http服务用到的端口号
  2. - ` semanage port -a -t http_port_t -p tcp 6111 ` 添加端口61116222 再次查看添加上了
  3. - 注意,Forbidden的话,就是SElinux 安全上下文的问题。
  4. - 限制某种浏览器访问
  5. - ` echo "hahahahahahahahaha" > /var/www/html/server/index.html `
  6. - ` vim /etc/httpd/conf/httpd.conf `
  7. ```bash
  8. <directory /var/www/html/server>
  9. setenvif User-Agent "Firefox" ff=1
  10. order allow,deny
  11. allow from env=ff
  12. </directory>
  • 重启httpd 服务,火狐和chrome浏览器访问 IP/server 进行测试

    第11章,用Vsft pd服务传输文件

  • 链接,前往
  • iptables -F service iptables save yum -y install vsftpd
    • grep -v "#" vsftpd.conf_bak > vsftpd.conf 将文件中不包含# 的内容重定向到新配置文件中,注意格式。 ```bash anonymous_enable=YES #允许匿名用户登录和访问 anon_upload_enable=YES anon_umask=022 #umask的值限制上传文件(644)或目录(755)的权限 anon_mkdir_write_enable=YES #允许新建文件/目录 anon_other_write_enable=YES #允许对已有文件的新建、删除、重名

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

pam_service_name=vsftpd userlist_enable=YES #死亡笔记 tcp_wrappers=YES #是否会受到tcpwrapper防火墙的限制

  1. - ` yum -y install ftp ` 之后, ` ftp IP ` anonymous登录进ftp,默认的目录是 /var/ftp/pub/
  2. - ` chmod -Rf 777 /var/ftp/pub/` 注意是pub 目录
  3. - ` getsebool -a |grep ftp ` ` setsebool -P ftpd_full_access=on `
  4. - 继续,登录ftppub目录下新建文件夹,然后ls -ld 可以看到目录是属于ftp
  5. - ` /etc/vsftpd/ftpusers` user_list ,记录的是禁止登录ftp的用户,root也存在所以登录不上去
  6. - ` mkdir haha ` ` rmdir haha` 创建和删除都OK 默认的目录是对应用户的家目录
  7. - ` vim /etc/vsftpd/newuser.list` 创建虚拟用户,默认的目录是映射用户的家目录
  8. - PAM 可插拔式认证模块,/etc/vsftpd/ 目录下创建文件,内容如下:
  9. ```bash
  10. zhangsan #单数行是账户名
  11. zhangsan #偶数行是密码
  12. lisi
  13. lisi
  • 使用hash 加密成一个新文件, db_load -T -t hash -f newuser.list newuser.db
    • file newuser.db 查看文件属性
    • rm -rf newuser.list chmod 600 newuser.db 保证不被窃取数据
  • 映射目录的家目录, /var/ftproot/
    • useradd -d /var/ftproot -s /sbin/nologin newvirtual 保证用户不能登录到服务器
    • chmod -Rf 755 /var/ftproot/
  • vim /etc/pam.d/newvsftpd.vu 编辑pam 模块配置

    1. auth required pam_userdb.so db=/etc/vsftpd/newuser
    2. account required pam_userdb.so db=/etc/vsftpd/newuser
  • vim /etc/vsftpd/vsftpd.conf 编辑vsftpd配置文件中的pam模块的配置

    • 注意文件内容格式,空格不能多 ```bash anonymous_enable=NO local_enable=YES

guest_enable=YES guest_username=newvirtual #刚刚有设置过,保持一致 allow_writeable_chroot=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

user_config_dir=/etc/vsftpd/vusers_dir pam_service_name=newvsftpd.vu userlist_enable=YES tcp_wrappers=YES

  1. - /etc/vsftpd/vusers_dir/ 创建目录,创建两个文件zhangsan lisi
  2. - ` vim zhangsan` 设置匿名登录的权限为允许
  3. ```bash
  4. anon_upload_enable=YES #允许上传文件
  5. anon_mkdir_write_enable=YES #允许创建、写入文件
  6. anon_other_write_enable=YES #允许其他写入权限
  • 设置SElinux域允许策略,开启selinux 的条目 setsebool -P ftpd_full_access=on
  • systemctl restart vsftpd systemctl enable vsftpd
  • 以zhangsan 身份登录ftp ,并创建、删除新文件。lisi 身份登录后不能创建、删除,OK
    • tftp 简单文件传输
  • 默认家目录 /var/lib/tftpboot/ ,

    第十四节课

    第13章,使用Bind提供域名解析服务

  • 链接,前往

    DNS 域名解析服务

  • 正向解析: 域名 转成 IP

  • 反向解析: IP 转成 域名
  • 安装插件,yum -y install bind-chroot
  • vim /etc/named.conf 编辑内容在第11行,

    1. listen-on port 53 { any; };
    2. allow-query { any; };
  • vim /etc/named.rfc1912.zones

    1. zone "ceshi.com" IN {
    2. type master; #类型是主服务器
    3. file "ceshi.com.zone";
    4. allow-update {none;}; #默认没有从属服务器来同步
    5. };
    6. zone "50.168.192.in-addr.arpa" IN { #把网段反写
    7. type master;
    8. file "192.168.50.arpa";
    9. allow-update {none;}; #不允许任何来同步数据
    10. };
  • cd /var/named/ 路径下的两个文件模板,named.localhost正向解析模板,named.loopback

    • cp -a named.localhost ceshi.com.zone cp -a named.loopback 192.168.50.arpa
      1. vim ceshi.com.zone
      2. $TTL 1D
      3. @ IN SOA ceshi.com. root.ceshi.com. (
      4. 0 ; serial
      5. 1D ; refresh
      6. 1H ; retry
      7. 1W ; expire
      8. 3H ) ; minimum
      9. NS ns.ceshi.com.
      10. ns IN A 192.168.50.26
      11. www IN A 192.168.50.26
  1. vim 192.168.50.arpa
  2. $TTL 1D
  3. @ IN SOA ceshi.com. root.ceshi.com. ( #指的是会向root@ceshi.com邮箱发送信息
  4. 0 ; serial
  5. 1D ; refresh
  6. 1H ; retry
  7. 1W ; expire
  8. 3H ) ; minimum
  9. NS ns.ceshi.com.
  10. ns IN A 192.168.50.26
  11. 26 PTR www.ceshi.com. #192.168.50.26
  • 重启服务, systemctl restart named systemctl enable named
  • 测试下, ping www.ceshi.com nslookup www.ceshi.com nslookup 192.168.50.26
  • 第二种方法,nmtui 编辑网卡, 设置DNS servers 改成本机的IP
  • restart, enable 进行测试
  • 在配置文件中,将”allow-update” 的参数none 改成从服务器的IP,然后重启服务
    • 在从服务器上安装软件, yum -y install bind-chroot
    • vim /etc/named.conf 改成any any (同上)
    • vim /etc/named.rfc1912.zones
  1. zone "ceshi.com" IN {
  2. type slave;
  3. masters {192.168.50.20;}; #只需定义下主服务器IP
  4. file "slaves/ceshi.com.zone"; #会自动同步下载到本地的
  5. };
  6. zone "50.168.192.in-addr.arpa" IN {
  7. type slave;
  8. masters {192.168.50.20;};
  9. file "slaves/192.168.50.arpa";
  10. };
  • 重启服务,named
  • 编辑网卡信息,”DNS server” 改成本机IP
  • cd /var/named/slaves 能看到同步过来了正向解析文件。 再多重启服务几次,就能看到反向文件了
  • nslookup 进行dns的测试

    TSIG, 安全的加密传输

  • 了解下。

  • dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave 创建一个强度128的秘钥,文件为Kmaster-slave.+157+24483.key Kmaster-slave.+157+24483.private
    • 记下 private 文件中的参数 Key: /op9Bg0YrleFZh0KqLLX4Q==
  • vim /var/named/chroot/etc/transfer.key

    1. key "master-slave" {
    2. algorithm hmac-md5;
    3. secret "/op9Bg0YrleFZh0KqLLX4Q==";
    4. };
  • 设置其他人对此文件的权限

    • chown root:named transfer.key chmod 640 transfer.key ln transfer.key /etc ```bash vim /etc/named.conf include “/etc/transfer.key”;

options { allow-transfer { key master-slave; }; ##要和刚刚的对应上 }

  1. - 重启下named 服务,restart enable
  2. - 在从属服务器, ` systemctl restart named`
  3. - ` cd /var/named/slaves` 这时候文件还不能同步过来,下面是同样的操作
  4. - ` vim /var/named/chroot/etc/transfer.key`
  5. ```bash
  6. key "master-slave" {
  7. algorithm hmac-md5;
  8. secret "/op9Bg0YrleFZh0KqLLX4Q==";
  9. };
  • chown root:named transfer.key chmod 640 transfer.key ln transfer.key /etc ```bash vim /etc/named.conf include “/etc/transfer.key”;

server 192.168.50.20 { keys { master-slave; }; };

  1. - 重启服务named 查看slaves文件夹下内容
  2. - 注意清空主服务器, iptables -F
  3. - nslookup进行测试。
  4. - 工作模式:主服务器, 管理DNSIP地址的对应关系
  5. - 从服务器, 同步数据给主服务器
  6. - 降低主服务器压力
  7. - 加快请求速度
  8. - 缓存服务器, 转发
  9. <a name="emGUM"></a>
  10. ### 部署缓存服务器
  11. - Caching DNS Server CDN技术,主要是做转发
  12. ```bash
  13. vim /etc/named.conf
  14. options {
  15. listen-on port 53 { any; };
  16. allow-query { any; };
  17. forwarders {144.144.144.144};
  18. }
  • 虚拟机-添加一块网卡-“设置”-换成桥接模式, nmtui 将IPV4的改成dhcp Automatic, 然后重启network, ping一下进行测试,通了才有效
  • 主机a 作为主机b的dns server, 主机a有两块网卡,一块指向外部,可以连通外网;另一块用于主机b进行连通。
  • vim /etc/named.conf

    1. options {
    2. listen-on port 53 { any; };
    3. allow-deny { any; };
    4. forwarders { 114.114.114.114; }; #DNS服务器的地址
    5. }
  • 清空下iptables, 重启服务

  • 在主机b上进行测试,nmtui 配置”dns server” 改成a 的IP,”Gateway” 也改成IP。

    • 重启服务
    • nslookup www.baidu.com 可以看到是由主机a解析出来的,将外部流量到内部主机做了转发。
    • 一般并不能成功。。

      分离解析技术

  • 比方同一个网站北方和南方、国内和国外访问的时候是不同的IP

  • yum -y install bind-chroot 修改以下内容
    1. options {
    2. listen-on port 53 { any; };
    3. allow-query { any; };
    4. }
    5. ##以下内容注释掉
    6. #zone "." IN {
    7. # type hint;
    8. # file "named.ca";
    9. #};
  1. vim /etc/named.rfc1912.zones
  2. acl "china" { 122.71.115.0/24;};
  3. acl "american" { 106.185.25.0/24;};
  4. view "china" {
  5. match-clients { "china"; };
  6. zone "ceshi.com" {
  7. type master;
  8. file "ceshi.com.china";
  9. };
  10. };
  11. view "american" {
  12. match-clients { "american"; };
  13. zone "ceshi.com" {
  14. type master;
  15. file "ceshi.com.american";
  16. };
  17. };
  • cp -a named.localhost ceshi.com.china cp -a named.localhost ceshi.com.american
    1. vim /var/named/ceshi.com.china
    2. $TTL 1D
    3. @ IN SOA ceshi.com. root.ceshi.com. (
    4. 0 ; serial
    5. 1D ; refresh
    6. 1H ; retry
    7. 1W ; expire
    8. 3H ) ; minimum
    9. NS ns.ceshi.com.
    10. ns IN A 122.71.115.10
    11. www IN A 122.71.115.10
  1. vim /var/named/ceshi.com.american
  2. $TTL 1D
  3. @ IN SOA ceshi.com. root.ceshi.com. (
  4. 0 ; serial
  5. 1D ; refresh
  6. 1H ; retry
  7. 1W ; expire
  8. 3H ) ; minimum
  9. NS ns.ceshi.com.
  10. ns IN A 106.185.25.10
  11. www IN A 106.185.25.10
  • nmtui 更改网络 “Addresses” 信息为上面两个IP地址(注意加/24),保存退出
  • 配置下网络,如下图所示

image.png

  • iptables -F 重启服务network named
  • 用另一台虚拟机,仅主机模式,配置好IP(注意/24),分别模拟在两个IP段内进行ping 测试

    第十五节课

    第12章,使用samba或nfs实现文件共享

  • 链接,前往

    samba 跨平台的文件共享服务程序

  • yum -y install samba cd /etc/samba/

  • grep -v "#" smb.conf_bak |grep -v ";" |grep -v "^$" >smb.conf ^$ 表示空行

    1. vim /etc/samba/smb.conf
    2. [global]
    3. workgroup = MYGROUP
    4. server string = Microsoft Windows 2003
    5. log file = /var/log/samba/log.%m
    6. max log size = 50
    7. security = user
    8. passdb backend = tdbsam
    9. #load printers = yes
    10. #cups options = rawi
    11. [linuxceshi]
    12. comment = BU YAO DONG LI MIAN DE ZI LIAO!~
    13. path = /database
    14. public = no
    15. writable = yes #可写下的,能成文的; writeable可写入的,能存放资料的
  • restart smb, enable smb

  • linuxprobe此用户必须已存在于系统,然后设置登录的密码 pdbedit -a -u linuxprobe
  • setrenforce 0 SElinux域的限制
    • getsebool -a |grep samba setsebool -P samba_export_all_rw=on
    • chmod -Rf 777 /database 就可以在远程目录内新建文件,测试创建新文件
  • 从windows 访问 \192.168.50.26, 使用用户名/密码登录
  • 在客户端(linux)安装、操作:

    • yum -y install cifs-utils
    • 在客户端编辑文件,

      1. vim ~/auth.smb
      2. username=linuxprobe
      3. password=redhat
      4. domain=MYGROUP
    • chmod 600 ~/auth.smb mkdir /database 新建目录用于挂载

      1. vim /etc/fstab
      2. //192.168.50.26/linuxceshi /database cifs credentials=/root/auth.smb 0 0
      3. ##本地的 /database 目录名称并没有要求
    • mount -a ls /database 客户端同样可以对文件进行编辑了

      NFS网络文件系统

  • 两台都是linux服务器,nfs文件共享更简单

  • iptables -F
  • mkdir /home/xiaoguo echo "hahahhaha" > /home/xiaoguo/haha.txt
    • chmod -Rf 777 /database/
  • 编辑NFS配置文件 vim /etc/exports 已默认安装和开启

    • yum install nfs-utils
      1. /home/xiaoguo 192.168.50.*(rw,sync,root_squash) #将root映射成虚拟的用户
  • 对rpcbind, nfs-server 进行 restart enable

  • 在客户端,查看NFS服务器的挂载情况 showmount -e 192.168.50.20
  • 创建挂载目录, vim /etc/fstab

mkdir -p /xiaoguo

  1. 192.168.50.20:/home/xiaoguo /xiaoguo nfs defaults 0 0
  • 挂载镜像, mount -a df -h
  • 进入本地目录,cd /xiaoguo 能查看到文件并且可以编辑

    autofs自动挂载

    第十六节课

    第十四章,使用DHCP动态管理主机地址

    链接,前往,(属于扩展内容)

  • 作用域、超级作用域、排除范围、地址池、租约、预约

    • 地址池,<=作用域的
    • 租约,defaults,相当于软限制
    • 预约,max(绑定) 硬限制
  • 配置好yum仓库,安装软件yum -y install dhcp
    ```bash vim /etc/dhcp/dhcpd.conf

ddns-update-style none; #动态dns更新协议,关闭 ignore client-updates; subnet 192.168.50.0 netmask 255.255.255.0 { #作用域 range 192.168.50.50 192.168.50.100; #地址池 option subnet-mask 255.255.255.0; #为用户分配的子网掩码 option routers 192.168.50.20; #为用户分配的网关地址 option domain-name-servers 192.168.50.20; default-lease-time 21600; #租约时间21600秒 max-lease-time 43200; }

  1. - restart enable 重启dhcpd
  2. - ` iptables -F` service iptables save
  3. - 使用一台win虚拟机,仅主机模式,设置网络状态为dhcp
  4. - 虚拟机-编辑-虚拟网络适配器-仅主机模式,将“使用本地DHCP服务将IP地址分配给虚拟机”不勾选
  5. - 重启网络后,查看分配到的IP信息
  6. ---
  7. - 给特定的主机分配固定的IP地址
  8. - 可以通过日志查看到主机的mac地址,` cat /var/log/messages`
  9. - 当然可以直接在win的网卡信息查看到
  10. ```bash
  11. vim /etc/dhcp/dhcpd.conf
  12. 添加以下内容
  13. host bossceshi {
  14. hardware ethernet 00:0c:29:69:46:20;
  15. fixed-address 192.168.50.88;
  16. }
  • 重启dhcpd, win上重启网络

    第十五章,使用postfix与dovecot部署邮件系统

  • 链接,前往

  • 配置主机名称 ```bash vim /etc/hostname

linuxdown.com

  1. - 清空防火墙, ` iptables -F` ` service iptables save`
  2. - 安装dns ` yum -y install bind-chroot`
  3. ```bash
  4. vim /etc/named.conf
  5. 更改参数,
  6. listen-on port 53 { any; };
  7. allow-query { any; };
  1. vim /etc/named.rfc1912.zones
  2. zone "linuxdown.com" IN {
  3. type master;
  4. file "linuxdown.com.zone";
  5. allow-update {none;};
  6. };
  • cd /var/named cp -a named.localhost linuxdown.com.zone
    ```bash vim linuxdown.com.zone

$TTL 1D @ IN SOA linuxdown.com. root.linuxdown.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.linuxdown.com. ns IN A 192.168.50.20 @ IN MX 10 mail.linuxdown.com. mail IN A 192.168.50.20

  1. - 重启named
  2. ```bash
  3. vim /etc/postfix/main.cf
  4. 更改变量的值
  5. myhostname = mail.linuxdown.com
  6. mydomain = linuxdown.com #发送出邮件的域名
  7. myorigin = $mydomain
  8. inet_interfaces = all #服务器的所有网卡都会为用户提供邮件服务
  9. mydestination = $myhostname, $mydomain, localhost, #可以收到由哪些用户发来的邮件
  • 创建用户设置密码,useradd xiaoguo passwd xiaoguo
  • yum -y install dovecot
    ```bash vim /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp #允许的协议名称 disable_plaintext_auth=no #加密验证功能 login_trusted_networks = 192.168.50.0/24 #只允许某个网段的人使用

  1. ```bash
  2. vim /etc/dovecot/conf.d/10-mail.conf
  3. 开启注释
  4. mail_location = mbox:~/mail:INBOX=/var/mail/%u
  • 切换到xiaoguo 用户,创建隐藏文件 mkdir -p mail/.imap/INBOX
  • 重启服务dovecot,清空防火墙
  • 在客户端(另一台win虚拟机),保证网络能ping 通,DNS配置成上面的
  • ping www.linuxdown.com 做测试应该用别的域名的
  • 打开outlook,xiaoguo@linuxdown.com
    • 收件人mail@linuxdown.com
  • 在redhat,查看邮件 mail
  • 尝试发送邮件, mail xiaoguo@linuxdown.com 填写标题内容 . 发送 ```bash vim /etc/aliases

xiaolang: root #所有发送给xiaolang的邮件都会转发到root,xiaolang这个用户在本地是没有的

  1. - ` newaliases` 生效
  2. - 重启服务 postfix dovecot
  3. - win下用outlook发送邮件,收件人 xiaolang@linuxdown.com
  4. - root mail 同样可以收到邮件
  5. <a name="4NrDy"></a>
  6. # 第十七节课
  7. <a name="QzstS"></a>
  8. ## 第十六章,使用squid部署代理缓存服务
  9. - ~~链接,~~[~~前往~~](https://www.linuxprobe.com/chapter-16.html)~~,(属于扩展内容)~~
  10. - ACL access conttrol list
  11. - ` yum -y install squid`
  12. ```bash
  13. vim /etc/squid/squid.conf
  14. 修改转发的参数
  15. http_port 3128 transparent
  16. cache_dir ufs /var/spool/squid 100 16 256 #可开可不开,缓存浏览器。生成16个子目录
  • iptables -F service iptables save
  • firewall-config 进行编辑卡片, “public”-“Masquerading” 打上勾就可以
    • 注意客户端配置IP信息时,要使用外部DNS 8.8.8.8, 就可以达到效果了。
  • 第二种,使用iptables方法来实现。
  • iptables -t nat -A POSTROUTING -p udp --dport 53 -o eno33554968 -j MASQUERADE

    • echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    • sysctl -p
    • iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
    • iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eno33554968 -j SNAT --to 您的桥接网卡IP地址
    • service iptables save

      1. vim /etc/squid/squid.conf
      2. cache_dir ufs /var/spool/squid 100 16 256 #可开可不开,缓存浏览器。生成16个子目录
    • systemctl restart squid systemctl stop squid squid -k parse

    • squid -z 生成子目录
    • systemctl restart squid 此时在客户端访问外网可以通了
  • 对访问网站的限制, ```bash vim /etc/squid/squid.conf

acl client src 192.168.50.50 http_access allow client http_access deny all #访问来自50这个主机的话就允许,其他的主机都禁止

  1. - `systemctl restart squid`
  2. - 只能对http协议的网站进行限制,https不适用
  3. ```bash
  4. vim /etc/squid/squid.conf
  5. acl deny_keyword url_regex -i linux
  6. #acl deny_keyword url_regex http://www.51cto.com #对单个网站进行访问的限制 51cto.com就是限制根域了
  7. http_access deny deny_keyword #对访问网站中带有 linux 关键字的都禁止
  • 重启服务
  • 禁止下载带有某些后缀的文件 ```bash vim /etc/squid/squid.conf

acl badfile urlpath_regex -i .mp3$ .rar$ #\进行转义, $是结尾的意思 http_access deny badfile

  1. - 重启服务
  2. <a name="M0NAI"></a>
  3. ### 反向代理
  4. - 正向反向不能同时配置,需要先把正向代理的配置注释掉
  5. ```bash
  6. vim /etc/squid/squid.conf
  7. Squid normally listens to port 3128
  8. 59 http_port 您的桥接网卡IP地址:80 vhost
  9. 60 cache_peer 183.131.146.19(网站源服务器IP) parent 80 0 originserver
  • 重启服务
  • 使用浏览器,访问本机IP,就会跳转到反向代理的网站上