Java岗大厂面试百日冲刺【Day46】— Linux2
本文已获得原作者 _陈哈哈 授权并经过重新整理规划后发布。
本栏目Java开发岗高频面试题主要出自以下各技术栈:Java基础知识、集合容器、并发编程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL数据库、Redis缓存、RabbitMQ消息队列、Linux操作技巧等。
面试题1:考察几个常用且特别容易问住你的命令(mark!)
1、查看8080端口占用情况
netstat -tln | grep 8080
2、查看端口属于哪个程序
lsof -i :8080
3、查看demo.txt文件头10行
head -n 10 demo.txt
4、查看demo.txt文件尾10行
tail -n 10 demo.txt
5、查看java进程
ps aux|grep java
6、如何查找一个文件大小超过5M的文件
find . -type f -size +5M
7、如果知道一个文件名称,怎么查这个文件在linux下的哪个目录,如:要查找demo.txt文件
find / -name demo.txt
8、如何查看隐藏文件
ls -al
9、在文件中查找字符串(不区分大小写)
grep -i "chenhaha" demo.txt
10、在多级目录中对文本进行递归搜索:
grep "text" /usr/local/ -r -n
11、打印 /etc/ssh/sshd_config 的第一百行?
sed -n '100p' /etc/ssh/sshd_config
12、ping 一个远程主机,只发 5 个数据包:
ping -c 5 192.168.101.9
13、查看文件系统磁盘空间使用情况
# -a 显示所有文件系统,-h 用人们可读的方式进行显示。
df -ah
面试题2:一台 Linux 系统初始化环境后需要做一些什么安全工作?
1、添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号。尤其是如果服务器暴露在外网,很必要。
2、配置服务器使用密钥登陆,禁止密码登陆。
3、开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则。
4、装 fail2ban 这种防止 SSH 暴力破击的软件。
5、设置只允许公司办公网出口 IP 能登陆服务器(看实际需要),也可以安装 VPN等软件,只允许连接 VPN 到服务器上。
6、修改历史命令记录的条数为 10 条。
7、只允许有需要的服务器可以访问外网,其它全部禁止。
8、做好软件层面的防护。
- 设置 nginx_waf 模块防止 SQL 注入。
- 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 。
追问1:什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击
主要是用来攻击页面的,CC攻击模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面).这一点用一个一般的性能测试软件就可以做到大量模拟用户并发。CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。
DDOS 攻击(分布式拒绝服务攻击)
中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,对一个或多个目标发动攻击,从而成倍地提高拒绝服务攻击的威力。ddos的攻击方式有很多种,最基本的dos攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。
在线游戏、互联网金融等领域是 DDoS 攻击的高发行业。
攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。
追问2:如何防御DDoS攻击和CC攻击?
1、做好网站程序和服务器自身维护
日常做好服务器漏洞防御,服务器权限设置,尽量把数据库和程序单独拿出根目录,更新使用的时候再放进去,尽可能把网站做成静态页面。
2、负载均衡
负载均衡建立在现有网络结构之上,为扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性提供一种廉价有效透明的方法,CC攻击会使服务器大量的网络传输而过载,所以对DDoS流量攻击和CC攻击都很见效,用户访问速度也会加快。
3、分布式集群防御
分布式集群防御的特点是在每个节点服务器配置多个IP地址,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
4、接入高防服务
日常网络安全防护对一些小流量DDOS攻击能够起到一定的防御效果,但如果遇到大流量洪水DDOS攻击,最直接的办法就是接入专业的DDOS高防服务,建议接入墨者盾,通过墨者盾高防隐藏源IP,对攻击流量进行清洗,保障企业服务器的正常运行。
面试题3:了解什么是RAID?RAID的作用是什么?
RAID 全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),简称磁盘阵列。基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。RAID 通常被用在服务器电脑上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统只会把它当做一个硬盘。
RAID 分为不同的等级,常见的级别有0 1 2 3 4 5 6 7 (及10、01、50等组合级别)。各个不同的等级均在数据可靠性及读写性能上做了不同的权衡。在实际应用中,可以依据自己的实际需求选择不同的 RAID 方案。
RAID的功能:
- 扩大了存储能力 可由多个硬盘组成容量巨大的存储空间。
- 降低了单位容量的成本 市场上最大容量的硬盘每兆容量的价格要大大高于普及型硬盘,因此采用多个普及型硬盘组成的阵列其单位价格要低得多。
- 提高了存储速度 单个硬盘速度的提高均受到各个时期的技术条件限制,要更进一步往往是很困难的,而使用RAID,则可以让多个硬盘同时分摊数据的读或写操作,因此整体速度有成倍地提高。
- 可靠性;RAID系统可以使用两组硬盘同步完成镜像存储,这种安全措施对于网络服务器来说是最重要不过的了。
- 容错性;RAID控制器的一个关键功能就是容错处理。容错阵列中如有单块硬盘出错,不会影响到整体的继续使用,高级RAID控制器还具有拯救数据功能。
- 对于IDE RAID来说,目前还有一个功能就是支持ATA/66/100。
评论区