Linux 系统管理11-系统安全及应用

一、基本安全措施

1.系统账号清理

(1)将非登录用户的 shell 设为/sbin/nologin

  • 方法一:usermod -s
  • 方法二:chsh 命令,交互式修改
  • 方法三:chsh -s

示例:

除了上述三种方法,也可以直接 vi 编辑 /etc/passwd 文件进行修改

2.锁定那个长期不使用的账号

  • 方法一:passwd -l (将在密文前增加 2 个 “!”)解锁 passwd -u 查看 passwd -S
  • 方法二:usermod -L (将在密文前增加 1 个 “!”)解锁 usermod -U

示例:

解锁:

除了上述方法,也可以直接 vi 编辑 /etc/shadow 文件进行修改。

(3)删除无用的账号

userdel [-r] 用户名 (此处不过多解释,详见 Linux 系统管理03)

(4)锁定账号文件 /etc/passwd、/etc/shadow

1> 锁定:chattr +i /etc/passwd /etc/shadow

2> 解锁:chattr -i /etc/passwd /etc/shadow

3> 查看:lsattr /etc/passwd /etc/shadow

4> 示例:

注意:锁定后即使是超户,也不能修改该文件,即不能创建、删除、修改用户信息。

1.密码安全控制

(1)设置密码有效期

1> 修改某个已存在用户的密码有效期

chage -M 天数 用户名

passwd -x 天数 用户名

2> 示例:

3> 设置今后添加用户时的默认密码有效期:

方法:vi 编辑 /etc/login.defs 文件,修改 “PASS_MAX_DAY” 后面的数值

[root@huyouba1 ~]# vim /etc/login.defs

(2)要求用户下次登录时修改密码

1>方法:chage -d 0 用户名

2>示例:

[root@www ~]# chage -d 0 user1

3.命令历史限制

(1)减少历史的命令条数

1> 方法一:vi 编辑 /etc/profile 文件,修改 “HISTSIZE=” 后面的数值

2> 方法二:export HISTSIZE=数值

3> 示例:

  • 方法一:vi 编辑 /etc/profile 文件,修改 “HISTSIZE=100”
[root@huyouba1 ~]# vim /etc/profile

[root@huyouba1 ~]# source /etc/profile    //使 /etc/profile 配置文件生效,此时全局生效
  • 方法二:export HISTSIZE=100
[root@huyouba1 ~]# export HISTSIZE=100    //仅当前用户环境下生效,重启即失效

(2)注销时自动情况历史命令

1> 方法:vi 编辑宿主目录下的 “.bash_logou” 文件,添加 “history -c”

2> 示例:设置 user1 用户注销时自动清空历史命令

[root@huyouba1 ~]# vim ~user1/.bash_logout 

4.终端自动注销

(1)方法一:

vi 编辑 /etc/profile 文件,添加 “TMOUT=数值”

(2)方法二:

export TMOUT=数值

(3)示例:限制 600 秒后自动注销

  • 方法一:vi 编辑/etc/profile文件,添加 “TMOUT=600”
[root@huyouba1 ~]# vim /etc/profile

[root@huyouba1 ~]# source /etc/profile    //使 /etc/profile 配置文件生效,此时全局生效
  • 方法二:export TMOUT=600
[root@huyouba1 ~]# export TMOUT=600    //仅当前用户环境下生效

二、切换用户 su 命令

1.作用:

切换用户(Substiute User)

2.格式:

su [-] 目标用户 (有 “-” 初始化环境变量,无 “-” 环境变量不改变)

3.查看 su 操作记录

安全日志文件:/var/log/secure |less

[root@huyouba1 ~]# tac /var/log/secure |less 

三、提升权限 sudo 命令

1.su 命令的缺点:

在使用 su 命令时,不指定用户名默认切换至 root 用户,需要输入 root 密码,但实际生产中 root 密码是不可以被广泛告知的。如果需要执行 root 用户才有权限的命令,需要通过 sudo 命令或 wheel 组的设置来实现

2.sudo 命令

(1)作用:

以其他用户身份(默认root身份)执行授权的命令

(2)用法:

sudo 授权命令

默认设置为首次执行时,需输入当前用户的登录密码,5 分钟内再次执行 sudo 命令时则无需再输入密码。

(3)配置 sudo 授权

1> 方法一:添加单个用户的 sudo 授权

  • visudo 或者 vi /etc/sudoers(效果相同),添加配置内容
  • 格式:用户 主机名列表=命令程序列表,命令前加 “!” 表示 “除了” 此命令
[root@huyouba1 ~]# vim /etc/sudoers

(4)查看 sudo 操作记录

  • 方法: 第一步: visudo 或者 vi /etc/sudoers 添加 “Defaults logfile=/var/log/sudo”

第二步: cat /var/log/sudo

  • 示例:启用 Defaults logfile 配置,给 huyouba1 用户所有 /sbin/ 以及 /usr/sbin 下的命令执行权限,除了关机以及重启。

(5)查询授权操作 sudo -l

四、开关机安全控制

1.调整 BIOS 引导设置

(1)将第一引导设备设为当前系统所在硬盘(开机按F2,不同主板按键不一)

(2)禁止其他设备(光盘、U盘、网络)引导系统

BIOS 中可以设置,极个别电脑不支持此功能

(3)将安全级别设为 setup,并设置管理员密码

(4)重启验证进入 BIOS 需要输入密码

2.禁用重启热键 Ctrl+Alt+Del

(1)目的:

避免用户误操作

(2)方法:

删除 /usr/lib/systemd/system/ctrl-alt-del.target

恢复 Ctrl+Alt+Del按键重启功能

ln -s /usr/lib/systemd/system/reboot.target /usr/lib/systemd/system/ctrl-alt-del.target

init q 不重启,立即生效配置文件

3.gurb 菜单限制

(1)备份文件以防配置错误可以恢复

[root@huyouba1 ~]# cd /etc/grub.d/

[root@huyouba1 grub.d]# cp 01_users 01_users.bak

(2)以明文方式设置 grub 的密码

在 /etc/grub.d/01_users 文件中指定超级用户,其中 root 为超级用户的用户名,PassRoot + 123 为超级用户 root 的密码,清空该文件并添加以下几行。(用户名和密码按照实际情况设置)

[root@huyouba1 grub.d]# vim 01_users
添加以下内容
cat << EOF

set superusers="root"
password root 123

EOF

(3)重新编译生成 grub.cfg 文件

[root@huyouba1 grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg 

(4)设置密文密码

使用 grub2-mkpasswd-pbkdf2 命令创建密文

现在我们可以修改 /etc/grub.d/01_users

最后:重新编译生成 grub.cfg 文件

[root@huyouba1 grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg 

重启验证

五、弱口令检测 JR(Joth the Ripper)

1.JR(Joth the Ripper)简介

  • 一款密码分析工具,支持字典式的暴力破解
  • 通过对 shadow 文件的口令分析,可以检测密码
  • 官方网站 http://www.openwall.com/john

2.安装 JR 工具

(1) tar 包解压

[root@huyouba1 ~]# tar xvf john-1.9.0.tar.xz  

(2)进到解压后的 src 目录下,执行 make clean

[root@huyouba1 ~]# cd john-1.9.0/src/

[root@huyouba1 src]# make clean linux-x86-64

(3)进到解压后的 run 目录下,执行命令

[root@huyouba1 src]# cd ../run/

[root@huyouba1 run]# cp /etc/shadow ./shadow.txt

[root@huyouba1 run]# ./john shadow.txt 

字典式暴力破解,可添加内容至字典:

[root@huyouba1 run]# vim password.lst 

六、端口检测 NMAP

1.NMAP 简介

  • 一款强大的网络扫描、安全检测工具
  • 官方网站:http://nmap.org/
  • 可从光盘中安装 nmap-6.40-16.el7.x86_64

2.NMAP 的扫描语法

nmap [扫描类型] [选项] <扫描目标>

3.常用的扫描类型

-sS TCP SYN 扫描(半开)

-sT TCP 链接扫描(全开)

-sF TCP FIN 扫描

-sU UDP 扫描

-sP ICMP 扫描

-sO 跳过 ping 检测【较少使用】

4.常用选项:

-n 禁止 DNS 反向解析

-p 指定端口号

(1)扫描本机开放了哪些 TCP 端口、UDP 端口

(2)检测当前 192.168.100.0/24 网段有哪些主机提供 FTP 服务

(3)检测 192.168.100.0/24 网段有哪些存活主机

检测 192.168.100.1~254/24 有哪些主机开启了文件共享服务

【知识补充】

  • TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

  • TCP 三次握手的过程如下:

(1)客户端发送 SYN(SEQ=x)报文给服务器端,进入 SYN_SEND 状态。

(2)服务器端收到 SYN 报文,回应一个 SYN(SEQ=y)ACK(ACK=x+1)报文。进入 SYN_RECV 状态。

(3)客户端收到服务器端的 SYN 报文,回应一个 ACK(ACK=y+1)报文,进入 Established 状态。

(4)三次握手完成,TCP 客户端和服务器端成功地建立连接,可以开始传输数据了。

ACK 表示 Acknowledgment Number 字段有意义

PSH 表示 Push 功能,RST 表示复位 TCP 连接

SYN 表示 SYN 报文(在建立 TCP 连接的时候使用)

FIN 表示没有数据需要发送了(在关闭 TCP 连接的时候使用)

  • UDP(User Datagram Protocol)协议全称是用户数据报协议,在网络中它与 TCP 协议一样用于处理数据包,是一种无连接的协议。UDP 有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。
  • ICMP 是(Internet Control Message Protocol)Internet 控制报文协议。它是 TCP/IP 协议族的一个子协议,用于在 IP 主机、路由器之间传递控制信息。控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  • Linux 常用端口:
端口号码/层 名称 注释
1 tcpmux TCP 端口服务多路复用
5 rje 远程作业入口
7 echo Echo 服务
9 discard 用于连接测试的空服务
11 systat 用于列举连接了的端口的系统状态
13 daytime 给请求主机发送日期和时间
17 qotd 给连接了的主机发送每日格言
18 msp 消息发送协议
19 chargen 字符生成服务;发送无止境的字符流
20 ftp-data FTP 数据端口
21 ftp 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用
22 ssh 安全 Shell(SSH)服务
23 telnet Telnet 服务
25 smtp 简单邮件传输协议(SMTP)
37 time 时间协议
39 rlp 资源定位协议
42 nameserver 互联网名称服务
43 nicname WHOIS 目录服务
49 tacacs 用于基于 TCP/IP 验证和访问的终端访问控制器访问控制系统
50 re-mail-ck 远程邮件检查协议
53 domain 域名服务(如 BIND)
63 whois++ WHOIS++,被扩展了的 WHOIS 服务
67 bootps 引导协议(BOOTP)服务;还被动态主机配置协议(DHCP)服务使用
68 bootpc Bootstrap(BOOTP)客户;还被动态主机配置协议(DHCP)客户使用
69 tftp 小文件传输协议(TFTP)
70 gopher Gopher 互联网文档搜寻和检索
71 netrjs-1 远程作业服务
72 netrjs-2 远程作业服务
73 netrjs-3 远程作业服务
73 netrjs-4 远程作业服务
79 finger 用于用户联系信息的 Finger 服务
80 http 用于万维网(WWW)服务的超文本传输协议(HTTP)
88 kerberos Kerberos 网络验证系统
95 supdup Telnet 协议扩展
101 hostname SRI-NIC 机器上的主机名服务
102 iso-tsap ISO 开发环境(ISODE)网络应用
105 csnet-ns 邮箱名称服务器;也被 CSO 名称服务器使用
107 rtelnet 远程 Telnet
109 pop2 邮局协议版本2
110 pop3 邮局协议版本3
111 sunrpc 用于远程命令执行的远程过程调用(RPC)协议,被网络文件系统(NFS)使用
113 auth 验证和身份识别协议
115 sftp 安全文件传输协议(SFTP)服务
117 uucp-path Unix 到 Unix 复制协议(UUCP)路径服务
119 nntp 用于 USENET 讨论系统的网络新闻传输协议(NNTP)
123 ntp 网络时间协议(NTP)
137 netbios-ns 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 名称服务
138 netbios-dgm 在红帽企业 Linux 中被 Samba 使用的 NETBIOS 数据报服务
139 netbios-ssn 在红帽企业 Linux 中被 Samba 使用的NET BIOS 会话服务
143 imap 互联网消息存取协议(IMAP)
161 snmp 简单网络管理协议(SNMP)
162 snmptrap SNMP 的陷阱
163 cmip-man 通用管理信息协议(CMIP)
164 cmip-agent 通用管理信息协议(CMIP)
174 mailq MAILQ
177 xdmcp X 显示管理器控制协议
178 nextstep NeXTStep 窗口服务器
179 bgp 边界网络协
191 prospero Cliffod Neuman 的 Prospero 服务
194 irc 互联网中继聊天(IRC)
199 smux SNMP UNIX 多路复用
201 at-rtmp AppleTalk 选路
202 at-nbp AppleTalk 名称绑定
204 at-echo AppleTalk echo 服务
206 at-zis AppleTalk 区块信息
209 qmtp 快速邮件传输协议(QMTP)
210 z39.50 NISO Z39.50 数据库
213 ipx 互联网络分组交换协议(IPX),被 Novell Netware 环境常用的数据报协议
220 imap3 互联网消息存取协议版本3
245 link LINK
347 fatserv Fatmen 服务器
363 rsvp_tunnel RSVP 隧道
369 rpc2portmap Coda 文件系统端口映射器
370 codaauth2 Coda 文件系统验证服务
372 ulistproc UNIX Listserv
389 ldap 轻型目录存取协议(LDAP)
427 svrloc 服务位置协议(SLP)
434 mobileip-agent 可移互联网协议(IP)代理
435 mobilip-mn 可移互联网协议(IP)管理器
443 https 安全超文本传输协议(HTTP)
444 snpp 小型网络分页协议
445 microsoft-ds 通过 TCP/IP 的服务器消息块(SMB)
464 kpasswd Kerberos 口令和钥匙改换服务
468 photuris Photuris 会话钥匙管理协议
487 saft 简单不对称文件传输(SAFT)协议
488 gss-http 用于 HTTP 的通用安全服务(GSS)
496 pim-rp-disc 用于协议独立的多址传播(PIM)服务的会合点发现(RP-DISC)
500 isakmp 互联网安全关联和钥匙管理协议(ISAKMP)
535 iiop 互联网内部对象请求代理协议(IIOP)
538 gdomap GNUstep 分布式对象映射器(GDOMAP)
546 dhcpv6-client 动态主机配置协议(DHCP)版本6客户
547 dhcpv6-server 动态主机配置协议(DHCP)版本6服务
554 rtsp 实时流播协议(RTSP)
563 nntps 通过安全套接字层的网络新闻传输协议(NNTPS)
565 whoami whoami
587 submission 邮件消息提交代理(MSA)
610 npmp-local 网络外设管理协议(NPMP)本地 / 分布式排队系统(DQS)
611 npmp-gui 网络外设管理协议(NPMP)GUI / 分布式排队系统(DQS)
612 hmmp-ind HMMP 指示 / DQS
631 ipp 互联网打印协议(IPP)
636 ldaps 通过安全套接字层的轻型目录访问协议(LDAPS)
674 acap 应用程序配置存取协议(ACAP)
694 ha-cluster 用于带有高可用性的群集的心跳服务
749 kerberos-adm Kerberos 版本5(v5)的“kadmin”数据库管理
750 kerberos-iv Kerberos 版本4(v4)服务
765 webster 网络词典
767 phonebook 网络电话簿
873 rsync rsync 文件传输服务
992 telnets 通过安全套接字层的 Telnet(TelnetS)
993 imaps 通过安全套接字层的互联网消息存取协议(IMAPS)
994 ircs 通过安全套接字层的互联网中继聊天(IRCS)
995 pop3s 通过安全套接字层的邮局协议版本3(POPS3)

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦