Linux培训
达内IT学院

400-996-5531

2020年Linux面试题汇总之安全篇


今天小编要跟大家分享的文章是关于2020年Linux面试题汇总之安全篇。想要参加Linux运维工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对小伙伴有所帮助,下面来和小编一起看一看吧!

2020年Linux面试题汇总之安全篇

1.一台Linux系统初始化环境后需要做一些什么安全工作?

1、添加普通用户登陆,禁止root用户登陆,更改SSH端口号。

修改SSH端口不一定绝对哈。当然,如果要暴露在外网,建议改下。l

2、服务器使用密钥登陆,禁止密码登陆。

3、开启防火墙,关闭SElinux,根据业务需求设置相应的防火墙规则。

4、装fail2ban这种防止SSH暴力破击的软件。

5、设置只允许公司办公网出口IP能登陆服务器(看公司实际需要)

也可以安装VPN等软件,只允许连接VPN到服务器上。

6、修改历史命令记录的条数为10条。

7、只允许有需要的服务器可以访问外网,其它全部禁止。

8、做好软件层面的防护。

8.1设置nginx_waf模块防止SQL注入。

8.2把Web服务使用www用户启动,更改网站目录的所有者和所属组为www。

2.什么叫CC攻击?什么叫DDOS攻击?

CC攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。

DDOS攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动DDOS攻击。

攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

怎么预防CC攻击和DDOS攻击?

防CC、DDOS攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。

流量清洗这一块,主要是买ISP服务商的防攻击的服务就可以,机房一般有空余流量,我们一般是买服务,毕竟攻击不会是持续长时间。

3.什么是网站数据库注入?

由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断。

应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL注入。

SQL注入,是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。

如何过滤与预防?

数据库网页端注入这种,可以考虑使用nginx_waf做过滤与预防。

Shell

1. Shell脚本是什么?

一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。

-什么是默认登录Shell?

在Linux操作系统,"/bin/bash"是默认登录Shell,是在创建用户时分配的。

使用chsh命令可以改变默认的Shell。示例如下所示:

## chsh <用户名> -s <新shell>

## chsh ThinkWon -s /bin/sh

-在Shell脚本中,如何写入注释?

注释可以用来描述一个脚本可以做什么和它是如何工作的。每一行注释以#开头。例子如下:

#!/bin/bash

## This is a command

echo“I am loggedinas$USER”

2.语法级

-可以在Shell脚本中使用哪些类型的变量?

在Shell脚本,我们可以使用两种类型的变量:

系统定义变量:系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过set命令查看。

用户定义变量:用户变量由系统用户来生成和定义,变量的值可以通过命令"echo $<变量名>"查看。

Shell脚本中$?标记的用途是什么?

在写一个Shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用$?可以来检查前一命令的结束状态。

· 如果结束状态是0,说明前一个命令执行成功。例如:

root@localhost:~## ls /usr/bin/shar

/usr/bin/shar

root@localhost:~## echo $?

0

· 如果结束状态不是0,说明命令执行失败。例如:

root@localhost:~## ls /usr/bin/share

ls:cannot access /usr/bin/share:No such fileordirectory root@localhost:~## echo $?

2

- Bourne Shell(bash)中有哪些特殊的变量?

下面的表列出了Bourne Shell为命令行设置的特殊变量。

内建变量 解释

$0 命令行中的脚本名字

$1 第一个命令行参数

$2 第二个命令行参数….. …….

$9 第九个命令行参数$## 命令行参数的数量

$* 所有命令行参数,以空格隔开

-如何取消变量或取消变量赋值?

unset命令用于取消变量或取消变量赋值。语法如下所示:

## unset <变量名>

Shell脚本中if语法如何嵌套?

if[条件]

then

命令1

命令2

…..

Else

if[条件]

then

命令1

命令2

….

Else

命令1

命令2

…..

Fi

fi

在Shell脚本中如何比较两个数字?

在if-then中使用测试命令(-gt等)来比较两个数字。例如:

#!/bin/bash

x=10

y=20

if[$x-gt$y]

then

echo“x is greater than y”

else

echo“y is greater than x”

fi

Shell脚本中case语句的语法?

基础语法如下:

case变量in

值1)

命令1

命令2

…..

最后命令

!!

值2)

命令1

命令2

……

最后命令

;;

esac

Shell脚本中for循环语法?

基础语法如下:-

for变量

in循环列表

do命令1命令2….最后命令done

Shell脚本中while循环语法?

· 如同for循环,while循环只要条件成立就重复它的命令块。

· 不同于for循环,while循环会不断迭代,直到它的条件不为真。

基础语法:

while[条件]

do

命令…

done

- do-while语句的基本格式?

do-while语句类似于while语句,但检查条件语句之前先执行命令(LCTT译注:意即至少执行一次。)。下面是用do-while语句的语法:

Do

{

命令

}

while(条件)

1

2

3

4

Shell脚本中break命令的作用?

break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。

- Shell脚本中continue命令的作用?

continue命令不同于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如错误发生,但我们依然希望继续执行大循环的时候。

-如何使脚本可执行?

使用chmod命令来使脚本可执行。例子如下:chmod a+x myscript.sh。

#!/bin/bash的作用?

#!/bin/bash是Shell脚本的第一行,称为释伴(shebang)行。

这里#符号叫做hash,而!叫做bang。

它的意思是命令通过/bin/bash来执行。

-如何调试Shell脚本?

使用-x'数(sh -x myscript.sh)可以调试Shell脚本。

另一个种方法是使用-nv参数(sh -nv myscript.sh)。

-如何将标准输出和错误输出同时重定向到同一位置?

方法一:2>&1 (如## ls /usr/share/doc > out.txt 2>&1 )。

方法二:&> (如## ls /usr/share/doc &> out.txt )。

-在Shell脚本中,如何测试文件?

test命令可以用来测试文件。基础用法如下表格:

Test 用法-d文件名 如果文件存在并且是目录,返回

true-e文件名 如果文件存在,返回

true-f文件名 如果文件存在并且是普通文件,返回

true-r文件名 如果文件存在并可读,返回

true-s文件名 如果文件存在并且不为空,返回

true-w文件名 如果文件存在并可写,返回

true-x文件名 如果文件存在并可执行,返回true

-在Shell脚本如何定义函数呢?

函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调用函数名字,该块就会被执行。示例如下所示:

$ diskusage () { df -h ; }

译注:下面是我给的shell函数语法,原文没有

[function]函数名[()]

{

命令;

[returnint;]

}

如何让Shell就脚本得到来自终端的输入?

read命令可以读取来自终端(使用键盘)的数据。read命令得到用户的输入并置于你给出的变量中。例子如下:

## vi /tmp/test.sh

#!/bin/bash

echo‘Please enter your name’

readname

echo“My Name is$name”

## ./test.sh

Please enter your name

ThinkWon

My Name is ThinkWon

-如何执行算术运算?

有两种方法来执行算术运算:

1、使用expr命令:## expr 5 + 2。

2、用一个美元符号和方括号($[表达式]):test=$[16 + 4] ; test=$[16 + 4]。

以上就是小编今天为大家分享的关于2020年Linux面试题汇总之安全篇的文章,希望本篇文章能够对正准备参加Linux运维工作的小伙伴们有所帮,想要了解更多Linux相关知识记得关注达内Linux培训官网。最后祝愿小伙伴们面试成功。

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:2020年Linux面试题汇总之磁盘、目录、文件相关面试题
下一篇:2020年Linux面试题汇总之编程题篇

Linux运维工程师面试题目及答案汇总

Linux常见面试题汇总,建议收藏

Linux面试题目及答案解析汇总

给Linux运维工程师的面试建议

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省