考试考一天,得分94,最后一题防火墙当时还没搞明白

考题如下:

注意事项:
.确保在重启主机后所有配置仍然生效。
.selinux 必须为Enforing 模式,防火墙必须开始。默认策略必须清空。
.设置主机名为stuXXX.com(“X”为你的foundation 机器ip 地址最后一位。例如:你的ip 地址为172.25.254.30,则你的主机名为stu30.com)
.不允许ssh 登录到其他主机,已经发现按0 分计算考试得分。
.考试满分为100 分制, 分为及格,所有考题需要按照要求完成。
.使用find 查找/etc 目录下文件名以.conf 结尾的文件,并将其复制到/tmp/etc 目录下。( 分)
.配置autofs,当执行cd /opt/server 时,系统自动将172.:/content 挂载到此目录。( 分)
.创建test1 test2 test3 用户,uid=gid 分别为801  ,将他们加入到test 组(本机无test 用户),
组test 为这些用户的附加组。创建/tmp/test 目录,该目录只有test1 test2 test3 用户可读写,(root
不受限制)。该目录下所创建文件group 将自动改变为test 组,该目录下文件只有owner 可删除。( 分)
 分)
.制作两个lv,/dev/vg_web/lv_test 和/dev/vg_web/lv_stu。每个逻辑卷200M。分别作为以/www/ 分)
.配置页面身份认证,使www.stuXXX.com 必须通过用户名jack,密码uplooking 验证才能访问。( 分)
 分)
 分)
.搭建test.com 的邮件服务器,要求:( 分)
)邮件服务器的主机名为postfix.test.com,并做好相应的DNS 解析。
)能收发所有来自test.com 的邮件(如:发给username@test.com 的邮件,该邮件服务器能收到。其中username 为任意用户名)
)这个域用户的邮件发件人地址为:XXX@test.com
)发送给student 用户的邮件,除student 用户自己能收到以外user1 和root 也能收到。
.iptables( 分)
)清空iptables filter 表的默认策略( 分)
)只允许172. 和你使用自己的ftp( 分)
) 禁止ping 包( 分)
)仅允许172./ 网段和你自己的网段用户访问你的邮件服务器( 分)
)保存iptables 配置( 分)

老师写的脚本,用来看试卷

 #!/bin/bash
 ##### WARNING######
 #to use the grade script that you must set the dns records .XXX OR
 #you can modifiy the /etc/hosts file ;  for example 192.168.0.121 www.stu121.com stu121.com stu121
 ###ssh ###
 #num=$
 #rsa_file="/root/.ssh/id_rsa.$(date +%F)"
 #[ ! -f >&  && /usr/bin/ssh-copy-id -i $rsa_file.pub root@stu$num
 SCORE=
 if [  -z "$1" ] ; then
         echo " $0 NUM|all "
         exit
 fi

 function print_MSG {
         local msg=$
         echo -en "\033[1;34m$msg\033[0;39m "
 }

 function print_PASS {
   echo -e '\033[1;32mPASS\033[0;39m'
 }

 function print_FAIL {
   echo -en '\033[1;31mFAIL\033[0;39m '
   #echo -e "\033[1;31mSCORE-$1\033[0;39m"
   echo -e "\033[1;31m-$1\033[0;39m"
   SCORE=$(($SCORE - $))
 }
 function print_FAIL1 {
   echo -e '\033[1;31mFAIL\033[0;39m '
 }

 function print_SUCCESS {
   echo -e '\033[1;36mSUCCESS\033[0;39m'
 }

 function check_selinux {
     local num=$
     selinux=$(ssh root@stu$num "getenforce")
         echo -e "\tcheck your selinux: "
         echo -en "\tyour selinux staus is: $selinux "
         [ $selinux =  && echo -e "\tSO the grade script exit." && exit)

 }

 function check_Server_file {
     local num=$
     echo -en "\tCheck /tmp/etc/ directory file: "
     >& && print_SUCCESS || print_FAIL
 }

 function check_Server_autofs {
     local num=$
     echo -en "\tUmount /opt/server "
     >& && print_SUCCESS || print_FAIL1
     echo -en "\tMount the server nfs to /opt/server "
     >& && print_SUCCESS || print_FAIL
 }

 function check_user {
     local num=$
         echo -en "\tCheck user test1 "
     > /dev/>& && print_SUCCESS || print_FAIL
         echo -en "\tCheck user test2 "
     >/dev/>& && print_SUCCESS || print_FAIL
         echo -en "\tCheck user test3 "
     > /dev/>& && print_SUCCESS || print_FAIL 

         echo -en "\tCheck test1-3 users can read&write the directory "
     FILE_GROUP="$(ssh root@stu$num "ls -ld /tmp/test/" 2>/dev/null| awk {'print $4'} )"
     [ >& && print_SUCCESS || print_FAIL 

         echo -en "\tCheck new file will be created to inheritance test group "
     FILE_P="$(ssh root@stu$num "ls -ld /tmp/test/ " 2> /dev/null| awk {'print $1'} )"
     [ ${FILE_P::} = >& && print_SUCCESS || print_FAIL
      echo -en "\tCheck only can owner delete the file "
     [ ${FILE_P::} = :} = >& && print_SUCCESS || print_FAIL
 }
 function check_dns {
      local num=$
         echo -en "\tCheck DNS is running "
     #( && exit))
     ssh root@stu$num "ps -ef" | grep /usr/sbin/named  &>/dev/null ||   print_FAIL1
     ssh root@stu$num "ps -ef " | grep /usr/sbin/named  &> /dev/null && print_SUCCESS
         echo -en "\tCheck DNS is active after reboot "
     >& && print_SUCCESS ||  print_FAIL1
         echo -en "\tCheck DNS  www.test.com A record "
         #ssh root@stu$num "[ ! -f /etc/nsswitch.conf.bak ]  && cp /etc/nsswitch.conf{,.bak}"
         #ssh root@stu$num "sed 's/hosts:      files dns/hosts:      dns/g' /etc/nsswitch.conf -i"

         echo -en "\tCheck DNS  www.stu$num.com A record "

     #ssh root@stu$num "/bin/cp /etc/nsswitch.conf.bak /etc/nsswitch.conf" &> /dev/null

 }

 function check_lvm {
     local num=$
     echo -en "\tCheck vg_web-lv_test is exists "

     echo -en "\tCheck vg_web-lv_stu is exists "

     echo -en "\tmount vg_web-lv_stu to /www/stu$num.com "
      dirA=$(ssh root@stu$num "df  -h" | grep  /dev/mapper/vg_web-lv_stu  -A1 | awk '{if (NR==2) print $NF}')
     [
     echo -en "\tmount vg_web-lv_test to /www/test.com "
     dirB=$(ssh root@stu$num "df  -h" | grep  /dev/mapper/vg_web-lv_test -A1 | awk '{if (NR==2) print $NF}')
     #dirB="/var/www/test.com"
     [
 }

 function check_httpd {
     local num=$
         echo -en "\tCheck httpd is running "
     ssh root@stu$num "ps -ef" | grep /usr/sbin/httpd  &>/dev/null ||  print_FAIL1
     ssh root@stu$num "ps -ef " | grep /usr/sbin/httpd  &> /dev/null && print_SUCCESS
         echo -en "\tCheck httpd is active after reboot "
     >& && print_SUCCESS ||  print_FAIL1
     #echo -e "\tCheck httpd config file       "
     #>/dev/>& && print_SUCCESS ||  print_FAIL ;done
     echo -en "\tVisit www.test.com "
         ####

     echo -en "\tVisit www.stu$num.com "
     ####
     #curl  --url http://www.stu$num.com/index.html 2>/dev/null | grep "www.stu$num.com"  &>  /dev/null && print_SUCCESS || print_FAIL 3
         curl  -u jack:uplooking --url http://www.stu$num.com/index.html 2>/dev/null | grep "www.stu$num.com"  &>  /dev/null && print_SUCCESS || print_FAIL 3
         #
 }

 function check_samba {
 local num=$
         echo -en "\tCheck samba is running "
         ssh root@stu$num "ps -ef" | grep smbd  &>/dev/null ||  print_FAIL1
         ssh root@stu$num "ps -ef " | grep smbd  &> /dev/null && print_SUCCESS
         echo -en "\tCheck httpd is active after reboot "
         >& && print_SUCCESS ||  print_FAIL1
         echo -en "\tCheck SMB user user1 and password redhat "
         smbclient -L //stu$num -U user1%redhat >/dev/null 2>&1 && print_SUCCESS ||  print_FAIL 4
     echo -en "\tCheck SMB share directory home "
         smbclient -L //stu$num/homes -U user1%redhat  > /dev/null 2>&1  && print_SUCCESS || print_FAIL  5
     echo -en "\tCheck SMB share directory pub\n"
                 echo 'test' >.testsmb_user1
                 echo -en "\t - SMB user user1 can write this pub directory "
                 echo "put .testsmb_user1" | smbclient //stu$num/pub -U user1%redhat  2>&1 | grep "NT_STATUS_CONNECTION_REFUSED" >/dev/null   && print_FAIL 4 || print_SUCCESS
                 echo "rm .testsmb_user1"  | smbclient //s$fundation/pub -U user1%redhat  >/dev/null 2>&1
                 rm -f .testsmb_alice

 }

 function check_ftp {
     local num=$
     echo -en "\tCheck vsftpd is running "

         (
         ssh root@stu$num "ps -ef " | grep /usr/sbin/vsftpd   &> /dev/null && print_SUCCESS
         echo -en "\tCheck vsftpd is active after reboot "
         >& && print_SUCCESS ||  print_FAIL1
         echo -e "\tCheck vsftpd config file "
      echo -en "\t - chroot student "

         echo -en "\t - anon_upload "

         echo -en "\t - selinux ftp_home_dir "

         echo -en "\t - selinux ftp_anon_write "

     )
 #    echo 'test' >.testftp_user1
 #                echo -en "\t - FTP user student can upload file"
 #        ssh root@stu$num "echo student | passwd student --stdin"  &> /dev/null
 #        echo "put .testftp_user1" | lftp student@stu$num
 }

 function check_mail {

 local num=$
         echo -en "\tCheck postfix is running "

         ssh root@stu$num "ps -ef " | grep /usr/libexec/postfix/master   &> /dev/null && print_SUCCESS
         echo -en "\tCheck postfix is active after reboot "
         >& && print_SUCCESS ||  print_FAIL1
     echo -en "\tCheck DNS  postfix.test.com A record "

     echo -e "\tCheck postfix config file "
     echo -en "\t - myhostname "

     echo -en "\t - mydomain "

     echo -en "\t - myorigin "

     echo -en "\t - mydestination "

     echo -en "\t - inet_interfaces "

 }

 function check_iptables {
     local num=$
     echo -en "\tCheck /etc/sysconfig/iptables file: "
     >& && print_SUCCESS || print_FAIL 

 }

 function check_ule_main {
         local num=$
 #check selinux type must be enforcing ; otherwise the script will exit.
     check_selinux $num
     echo
         print_MSG "1.Tar check\n"
         check_Server_file $num

         print_MSG "2.Server Autofs Set\n"
         check_Server_autofs $num

         print_MSG "3.Check users & privileges\n"
         check_user $num

         print_MSG "4.check DNS(Bind)\n"
         check_dns $num

         print_MSG "5.Check LVM\n"
         check_lvm $num

     print_MSG "Check Web Service\n"
     #print_MSG ."Check Web Service\n"
         check_httpd $num

 #        print_MSG "6.Check web htaccess\n"
 #        check_htaccess $num

         print_MSG "7.Check CIFS(SAMBA)\n"
         check_samba $num

         print_MSG "8.Check Ftp Service\n"
         check_ftp $num

     print_MSG "9.Check Mail Service\n"
         check_mail $num

     print_MSG "10.Check iptables\n"
         check_iptables $num

 }
  in
         all)
                 #. /etc/rht
                 N_UM=$RHT_MAXSTATIONS
                  $N_UM) ; do
                         print_MSG "stu$N_um check exam\n"
                         check_ule_main $N_um
                         print_MSG "stu$N_um check end\n"
                 done
                 ;;
         [-]* )
                 NUM=$
                 print_MSG "stu$NUM check begin\n"
                 check_ule_main $NUM
         #check_Server_tar $NUM
         #check_Server_autofs $NUM
         #check_user $NUM
         #check_dns $NUM
         #check_lvm $NUM
         #check_httpd $NUM
         #check_samba $NUM
         #check_ftp $NUM
         #check_mail $NUM
         #check_iptables $NUM

                 print_MSG "stu$NUM check end\n"
                 ;;
         *)
                 print_MSG "error $1\n"
                 ;;
 esac
 #echo "Your SCORE is $SCORE"
 echo -e "\t\033[1;31mYOUR SCORE IS:\033[0;39m \033[1;36m$SCORE\033[0;39m "

零基础学习云计算及大数据DBA集群架构师【Linux系统\网络服务及安全配置2015年1月8日周五】的更多相关文章

  1. 零基础学习云计算及大数据DBA集群架构师【Linux系统环境及权限管理12.21-12.25】

    从这周开始Linux的学习,老师是一位女老师,这到给了更多的信心,老师讲得很快,如果说只谈记命令的话是不多,但是要真正去理解,其实内容还是挺多的,我都是以老师讲的内容为主线,然后自己再看鸟哥的书做加深 ...

  2. 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】

    /Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...

  3. 零基础学习云计算及大数据DBA集群架构师【企业级运维技术及实践项目2015年1月29日周五】

    LNMP/LEMP项目搭建 { 项目框架 # Linux_____WEB_____PHP_____DB # rhel7_____apache__-(libphp5.so)-__php__-(php-m ...

  4. 零基础学习云计算及大数据DBA集群架构师【Linux Bash Shell编程及系统自动化2015年1月21日周四】

    lvy老师教项目课程,以及代课了shell部分课程,大家都觉得这位老师不行,上课时做的操作很多都是错误的,觉得她基础不好.而且,她不能解释原因,学生问为什么,她不知道.崩溃啊.向xx培训机构反应后,说 ...

  5. 零基础学习云计算及大数据DBA集群架构师【预科2015年12月14日周一】

    1.第一天比较轻松,上午填表格,录指纹,拍照片,做自我介绍. 2.下午老师简单介绍了一下PC\交换机\路由器\塔式服务器\机架式服务器(1U\2U)\刀片服务器\磁带机 3.班主任陈老师朱老师,预科秦 ...

  6. 大数据Hadoop-Spark集群部署知识总结(一)

    大数据Hadoop-Spark集群部署知识总结 一.启动/关闭 hadoop myhadoop.sh start/stop 分步启动: 第一步:在hadoop102主机上 sbin/start-dfs ...

  7. 入门大数据---Redis集群分布式学习

    Redis是什么? 官方介绍: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列( ...

  8. 大数据——Hadoop集群坏境CentOS安装

    前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...

  9. 一台虚拟机,基于docker搭建大数据HDP集群

    前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分.第一个部分就是基础的平台 ...

随机推荐

  1. oracle中循环插入语句

    DECLARE i number:=30000;BEGIN for i in 1..100 loop insert into Maternal_Info(id,sjh,bbsr,cf) values( ...

  2. ASP.NET执行cmd命令

    批处理命令,是执行速度最快效益最高的命令.因为批处理命令,说白了,就是ms-dos环境下的命令,有很多的批处理命令,都是纯DOS下的命令. 然而,批处理命令尽管功能强大,却存在不足之处.批处理命令只能 ...

  3. PLSQL developer连接不上64位Oracle的解决方法

    PLSQL developer连接不上64位Oracle的解决方法 64位下装Oracle 11g 64位,PLSQL Developer使用出现问题. 问题描述: 登录对话框中,数据库下拉框为空: ...

  4. php判断是移动端还是pc

    //判断是否是手机 function is_mobile() { $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $is_pc = (strpos( ...

  5. Java泛型的基本应用

    一.泛型概述 jdk1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制. 好处: 1,将运行时期的问题ClassCastException转到了编译时期. 2,避免了强制转换的麻烦. 什么时 ...

  6. Windows10 删除已经保存的WIFI热点

    自己的笔记本很多时候都是连接WIFI上网,导致保存的WIFI越来越多,有些都过期不能用了,但还是在列表中存在着,致使列表很长很难看,如下: 删除无用热点的方法如下: win+r运行cmd,进入命令行界 ...

  7. IOS学习之十七:Grand Central Dispatch(GCD)编程基础

    IOS学习之十七:Grand Central Dispatch(GCD)编程基础   有过编程经验的人,基本都会接触到多线程这块. 在java中以及Android开发中,大量的后台运行,异步消息队列, ...

  8. node.js相关

    node node最大的特点是单线程,因此一个只能有一个任务运行,大量采用异步操作. 某一个任务的后续操作一般采用回调函数的形式 var callback = function (error, val ...

  9. 从汇编来看c语言之指针

    一.基础研究 将下面的程序编译连接,用debug加载: 首先执行第一条语句: 发现p=(unsigned char *)0x1000;在这里是把1000赋给一个偏移地址为01af.大小为两字节的内存空 ...

  10. 转 Jona Dany 一个20年架构师程序员的经验总结

    1.估算问题解决所需要的时间,为自己定一个时间限制,1小时,30分钟,15分钟.如果这期间不能解决问题,那就去寻求帮助.不要做超级堆码员. 2.编程语言是一种语言,只是一种语言.只要理解一种语言的原理 ...