Linux培训
达内IT学院
400-996-5531
今天小编要跟大家分享的文章是关于2020年Linux面试题汇总之安全篇。想要参加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培训官网。最后祝愿小伙伴们面试成功。
【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved