零基础学习云计算及大数据DBA集群架构师【Linux系统\网络服务及安全配置2015年1月8日周五】
考试考一天,得分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日周五】的更多相关文章
- 零基础学习云计算及大数据DBA集群架构师【Linux系统环境及权限管理12.21-12.25】
从这周开始Linux的学习,老师是一位女老师,这到给了更多的信心,老师讲得很快,如果说只谈记命令的话是不多,但是要真正去理解,其实内容还是挺多的,我都是以老师讲的内容为主线,然后自己再看鸟哥的书做加深 ...
- 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】
/Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...
- 零基础学习云计算及大数据DBA集群架构师【企业级运维技术及实践项目2015年1月29日周五】
LNMP/LEMP项目搭建 { 项目框架 # Linux_____WEB_____PHP_____DB # rhel7_____apache__-(libphp5.so)-__php__-(php-m ...
- 零基础学习云计算及大数据DBA集群架构师【Linux Bash Shell编程及系统自动化2015年1月21日周四】
lvy老师教项目课程,以及代课了shell部分课程,大家都觉得这位老师不行,上课时做的操作很多都是错误的,觉得她基础不好.而且,她不能解释原因,学生问为什么,她不知道.崩溃啊.向xx培训机构反应后,说 ...
- 零基础学习云计算及大数据DBA集群架构师【预科2015年12月14日周一】
1.第一天比较轻松,上午填表格,录指纹,拍照片,做自我介绍. 2.下午老师简单介绍了一下PC\交换机\路由器\塔式服务器\机架式服务器(1U\2U)\刀片服务器\磁带机 3.班主任陈老师朱老师,预科秦 ...
- 大数据Hadoop-Spark集群部署知识总结(一)
大数据Hadoop-Spark集群部署知识总结 一.启动/关闭 hadoop myhadoop.sh start/stop 分步启动: 第一步:在hadoop102主机上 sbin/start-dfs ...
- 入门大数据---Redis集群分布式学习
Redis是什么? 官方介绍: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列( ...
- 大数据——Hadoop集群坏境CentOS安装
前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...
- 一台虚拟机,基于docker搭建大数据HDP集群
前言 好多人问我,这种基于大数据平台的xxxx的毕业设计要怎么做.这个可以参考之前写得关于我大数据毕业设计的文章.这篇文章是将对之前的毕设进行优化. 个人觉得可以分为两个部分.第一个部分就是基础的平台 ...
随机推荐
- solr单机版的搭建
一.solr单机版的搭建 1.运行环境 solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(ja),本教va写的Servlet容器程 ...
- PHP 开发工具【2】
关于PHP的开发工具其实网站上可以搜索到非常多,对于初学者来说,太多的选择反而不知道怎么去选. 本文是基于window平台上,针对PHP初学者定制了一套非常好用的开发工具. PHP开发工具其实包括以下 ...
- memmove 的实现
baidu的笔试题目 用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n).该函数的功能是拷贝src所指的内存内容前n个字节 ...
- Netty 5 传送大文件的方法
Netty 5 提供了 一个ChunkedWriterHandler 来传送大文件,发送端如下: 添加chunedwriterhandler: ChannelPipeline p = ...; p.a ...
- 阿里云CENTOS服务器挂载数据盘
阿里云Linux云服务器数据盘默认是未做分区和格式化的,使用前需要先挂载数据盘.步骤如下: 1.查看数据盘 在没有分区之前,使用 1 df -h 2.命令,是无法查看到数据盘的,可以使用 1 ...
- php加密解密实用类
一个加解密类.如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具 用户注册的密码一般不会明文保存,总得加个密先.最简单的当然是在数据库sql语句中调用md5函数加密用户密码.这里 ...
- Python自动化运维之4、格式化输出、文件对象
Python格式化输出: Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[P ...
- 使用 Nuget打包类库
使用 Nuget打包类库 NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget ...
- Jasper_filter data_pass field data from main to sub to filter some data
main report: 1 add variable <variable name="Variable_rule" class="java.lang.String ...
- 【iOS问题】字典转模型,属性个数不匹配问题
一.字典转模型的键值对与模型属性不匹配问题 1. 字典的键个数 < 模型的属性个数 (key 能与模型的属性匹配) 1> .KVO 方式: - setValuesForKeysWithDi ...