Linux 系统安全及应用(账号安全和引导登录控制)(4)

简介: 1 账号安全基本措施1.1 系统账号清理1.1.1 将非登录用户的Shell设为/sbin/nologin在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。查看/etc/passwd 文件,可以看到多个程序用户。


3.2 终端登录安全控制

3.2.1 限制root只在安全终端登录

安全终端配置:/etc/securetty

示例:

将终端tty5、tty6注释掉,禁止root用户从这两个终端登录。

[root@localhost ~]# vi /etc/securetty   //编辑配置文件,将终端tty5、tty6注释掉
 ----------------------
 #tty5
 #tty6
复制代码


网络异常,图片无法展示
|


3.2.2 禁止普通用户登录

  • 建立/etc/nologin文件
  • 删除nologin文件或者重启后即恢复正常
[root@localhost ~]# touch /etc/nologin     //禁止普通用户登录
 [root@localhost ~]# rm -rf /etc/nologin    //取消普通用户登录限制
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


4 网络端口扫描——nmap工具


4.1 nmap工具

网络异常,图片无法展示
|


网络端口扫描:

控制位 描述
SYN 建立链接
ACK 确认
FIN 结束断开
PSH 传送 0 数据缓存,上层应用协议
RST 重置
URG 紧急


服务和端口号:

服务 端口号
HTTP 80
HTTPS 443
Telnet 23
FTP 21
SSH(安全登录)、SCP(文件传输)、端口重定向 22
SMTP 25
POP3 110
WebLogic 7001
TOMCAT 8080
WIN2003远程登录 3389
Oracle数据库 1521
MS SQL* SEVER数据库sever 1433
MySQL 数据库sever 3306


安装nmap:

[root@localhost ~]# rpm -qa|grep nmap      //查看nmap
 [root@localhost ~]# yum install -y nmap    //安装nmap
复制代码


nmap命令常用格式

nmap [扫描类型]  [选项]  <扫描目标>
复制代码


常用选项和扫描类型

扫描类型和选项 作用
-p 指定扫描的端口。
-n 禁用反向DNS解析(以加快扫描速度)
-sS TCP的SYN扫描 (半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sT TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0 跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。


用于主机发现的一些用法

  • -sL:List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
  • -sn:Ping Scan 只进行主机发现,不进行端口扫描。
  • -Pn:将所有指定的主机视作开启的,跳过主机发现的过程。
  • -PS/PA/PU/PY[portlist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
  • -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
  • -PO[protocollist]:使用IP协议包探测对方主机是否开启。
  • -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。
  • --dns-servers <serv1[,serv2],...>:指定DNS服务器。
  • --system-dns:指定使用系统的DNS服务器。
  • --traceroute::追踪每个路由节点。


Nmap用于端口扫描的一些用法

  • -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
  • -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
  • -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
  • --scanflags < flags>: 定制TCP包的flags。
  • -sI < zombiehost[:probeport]>:指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
  • -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
  • -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
  • -b < FTP relay host>: 使用FTP bounce scan扫描方式。

示例:

# 分别查看本机开放的TCP端口、UDP端口
 [root@localhost ~]# nmap -sT 127.0.0.1
 [root@localhost ~]# nmap -sU 127.0.0.1
 # 检测192.168.80.0/24网段有哪些主机提供HTTP服务
 [root@localhost ~]# nmap -p 80 192.168.80.0/24
 [root@localhost ~]# nmap -p 80 192.168.91.100/24
 # 检测192.168.80.0/24网段有哪些存活主机
 [root@localhost ~]# nmap -n -sP 192.168.80.0/24 
复制代码


4.2 netstat命令

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

命令格式:

netstat  [选项]
复制代码


常用选项

选项 作用
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。
-t 查看TCP协议相关的信息。
-u 显示UDP协议相关的信息。
-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
-r 显示路由表信息。
-l 显示处于监听状态(Listen)的网络连接及端口信息。


常用搭配:

netstat -a       //列出所有端口
 netstat -at      //列出所有TCP端口
 netstat -au      //列出所有UDP端口
 netstat -ax      //列出所有unix端口
 netstat -lt      //列出处于监听状态的TCP端口
 netstat -tnlp    //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名
复制代码


示例:

1)netstat -lt,列出处于监听状态的TCP端口。

[root@localhost ~]# netstat -lt      //列出处于监听状态的TCP端口
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State      
 tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
 tcp        0      0 localhost.locald:domain 0.0.0.0:*               LISTEN     
 tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
 tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
 tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
 tcp        0      0 0.0.0.0:shell           0.0.0.0:*               LISTEN     
 tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
 tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
 tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
 tcp6       0      0 [::]:shell              [::]:*                  LISTEN
复制代码


网络异常,图片无法展示
|


2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。

[root@localhost ~]# netstat -tnlp
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
 tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
 tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1462/dnsmasq        
 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1113/sshd           
 tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1111/cupsd          
 tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1394/master         
 tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      798/rsyslogd        
 tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
 tcp6       0      0 :::22                   :::*                    LISTEN      1113/sshd           
 tcp6       0      0 ::1:631                 :::*                    LISTEN      1111/cupsd          
 tcp6       0      0 ::1:25                  :::*                    LISTEN      1394/master         
 tcp6       0      0 :::514                  :::*                    LISTEN      798/rsyslogd
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
13天前
|
监控 安全 Linux
【专栏】Linux SSH 的安全对于远程管理至关重要,这几个小妙招安排上!
【4月更文挑战第28天】在数字化时代,Linux SSH 的安全对于远程管理至关重要。增强 SSH 安全包括:使用强密码,调整 SSH 配置文件,尤其是端口号和认证方式;采用密钥认证代替密码;限制登录用户,禁止密码登录;使用防火墙限制访问;定期更新系统和软件。此外,通过日志监控、入侵检测系统及及时应对攻击来提升安全监控。保持对安全知识的学习和更新,结合最佳实践,是保障 SSH 安全的关键。记得安全是个持续过程,时刻保持警惕!
|
13天前
|
机器学习/深度学习 自然语言处理 Linux
【专栏】Linux 中的机器学习:Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔
【4月更文挑战第28天】本文探讨了在Linux环境下,先进自动语音识别系统Whisper的运用与实现高效ASR。Whisper基于PyTorch,支持多语言识别,具有高准确性和实时性。文中介绍了安装配置Whisper的步骤,包括安装依赖、下载代码、配置环境变量及编译安装。通过数据准备、模型训练和识别,可实现语音识别功能。Whisper适用于语音助手、翻译等领域,随着技术发展,其应用前景广阔。
|
2天前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
17 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
2天前
|
消息中间件 存储 Linux
linux实时应用如何printf输出不影响实时性?
本文探讨了Linux实时任务中为何不能直接使用`printf(3)`,并介绍了实现不影响实时性的解决方案。实时任务的执行时间必须确定且短,但`printf(3)`的延迟取决于多个因素,包括用户态glibc缓冲、内核态TTY驱动和硬件。为确保实时性,通常将非实时IO操作交给低优先级任务处理,通过实时进程间通信传递信息。然而,即使这样,`printf(3)`在glibc中的实现仍可能导致高优先级任务阻塞。Xenomai 3提供了一个实时的`printf()`实现,通过libcobalt库在应用编译链接时自动处理,预分配内存,使用共享内存和线程特有数据来提高效率和实时性。
12 0
linux实时应用如何printf输出不影响实时性?
|
5天前
|
安全 Linux Shell
Linux常用命令详解与实战应用
【5月更文挑战第7天】本文详述了Linux常用命令,包括文件与目录操作(ls, cd, pwd, cp, mv, rm)、文本处理(cat, grep, sed)及系统管理(top, df, du)命令。通过实例演示了如何使用这些命令,帮助读者理解和掌握Linux操作,提升系统管理效率。学习和熟练运用这些基础命令,是高效使用Linux的关键。
|
5天前
|
Linux
Linux MBR扇区故障 引导修复
Linux MBR扇区故障 引导修复
|
10天前
|
Linux Shell 调度
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
【Linux系列】fork( )函数原理与应用详解——了解【父子进程及其特性】(代码演示,画图帮助理解,思维导图,精简)(11)
|
12天前
|
存储 缓存 Linux
linux几种典型应用对系统资源使用的特点
【4月更文挑战第22天】几种典型应用对系统资源使用的特点
23 1
|
12天前
|
Linux Shell 应用服务中间件
LINUX的应用与实践
LINUX的应用与实践
18 0
|
13天前
|
安全 Linux 网络安全
【专栏】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患,教你一招找出所有开放的端口,然后直接干掉!
【4月更文挑战第28天】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患。要找出开放端口,可使用 `netstat -anp`、`lsof -i` 或 `nmap` 命令。关闭端口可通过停止相关服务、修改防火墙规则或禁用网络接口。注意不要随意关闭重要端口,操作前备份数据。保持端口安全对系统安全至关重要。