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

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

示例:

1>锁定:

2>解锁:

注意:若用passwd -l命令对某账号进行锁定,若用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>示例:

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

2、密码安全控制

(1)设置密码有效期

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

chage -M 天数 用户名

passwd -x 天数 用户名

2>示例:

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

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

·示例:

[[email protected] ~]# vi /etc/login.defs

将99999天改为60天

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

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

2>示例:

[[email protected] ~]# chage -d 0 user1

3、命令历史限制

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

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

2>方法二:export HISTSIZE=数值

2>示例:

·方法一:vi编辑/etc/profile文件,修改“HISTSIZE=100”

[[email protected] ~]# vi /etc/profile

[[email protected] ~]# source /etc/profile 使/etc/profile配置文件生效,此时全局生效

·方法二:export HISTSIZE=100

[[email protected] ~]# export HISTSIZE=100 仅当前用户环境下生效

(2)注销时自动清空历史命令

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

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

[[email protected] ~]# vi ~amber/.bash_logout

4、终端自动注销

(1)方法一:vi编辑/etc/profile文件,添加“TMOUT=数值”

(2)方法二:export TMOUT=数值

(3)示例:闲置600秒后自动注销

·方法一:vi编辑/etc/profile文件,添加“TMOUT=600”

[[email protected] ~]# vi /etc/profile

[[email protected] ~]# source /etc/profile 使/etc/profile配置文件生效,此时全局生效

·方法二:export TMOUT=600

[[email protected] ~]# export TMOUT=600 仅当前用户环境下生效

切换用户  su命令

1、作用:切换用户(Substitute User)

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

3、查看su操作记录

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

提升权限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(效果相同),添加配置内容

·格式:用户 主机名列表=命令程序列表,命令前加“!”表示“除了”此命令

示例:

2>方法二:批量授权

·wheel组

(将希望提权的用户加入wheel组,略)

·别名

·根据示例以及实际需求,设置别名。(建议先复制行,再粘贴修改)

·设置别名后,添加格式:

用户别名 主机别名=命令别名(所有别名均大写)

(4)查看sudo操作记录

·方法:

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

第二步:cat /var/log/sudo

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

[[email protected] ~]# visudo

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

示例:

、PAM安全认证

1、su命令的安全隐患

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,带来安全风险。为了增强su命令的使用控制,可以借助PAM认证模块,只允许极个别用户使用su命令进行切换。

2、可插拔认证模块PAM(Pluggable Authentication Modules)

(1)PAM简介

PAM是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式。

PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录(telent,rlogin,fsh,ftp),su等应用程序。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。

(2)PAM认证原理

PAM认证一般遵循的顺序:Service(服务)→PAM→pam_*.so

PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(32位系统位于/lib/security下,64位系统位于/lib64/security下)进行安全认证。下图为Linux x86_64位系统中PAM的配置文件:

用户访问服务器的时候,服务器的某一个服务进程把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。

如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看,如查看su是否支持PAM模块认证:ls /etc/pam.d|grep su

3、PAM认证的构成

·每一行都是一个独立的认证过程

·每一行可以区分为三个字段:认证类型、控制类型、PAM模块及其参数

示例:查看su的PAM配置文件

4、常见的四种认证类型

(1)auth  认证管理(authentication management)

·作用:接受用户名和密码,进而对该用户的密码进行认证

(2)account  账户管理(account management)

·作用:检查账户是否被允许登录系统,账号是否已过期,账号的登录是否有时间段的 限制等

(3)password  密码管理(password management)

·作用:主要是用来修改用户的密码

(4)session  会话管理(session management)

·作用:主要是提供对会话的管理和记账(accounting)


认证类型


意义


作用


auth


认证管理


接受用户名和密码,进而对该用户的密码进行认证


account


账户管理


检查账户是否被允许登录系统,账号是否已过期,账号的登录是否有时间段的限制等 权限


password


密码管理


主要是用来修改用户的密码


session


会话管理


主要是提供对会话管理记账

5、常见的五种控制类型

(1)required 验证失败时仍然继续,但返回Fail

(2)requisite 验证失败则立即结束整个验证过程,返回Fail

(3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续

(4)optional 不用于验证,只是显示信息(通常用于session类型)

(5)include 不进行认证,转到后面PAM模块进行认证

6、使用PAM认证模块,限制某个命令或是服务的使用权限

(1)vi编辑该命令在/etc/pam.d/下对应的配置文件,启用pam_wheel模块

(2)添加授权用户到wheel组

(3)示例:设置仅允许用户amber和user1使用su命令进行切换

五、开关机安全控制

1、调整BOIS引导设置

(1)将第一引导设备设为当前系统所在硬盘

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

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

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

(1)目的:避免用户误操作

(2)方法:vi编辑/etc/init/control-alt-delete.conf,将最后两行改为注解

[[email protected] ~]# init q 不重启,即时生效配置文件

3、gurb菜单限制

(1)未经授权禁止修改启动参数(第一个“title”前加密码)

(2)未经授权禁止进入指定系统(每个“title”后加密码)

(3)密码设置方式

1>password 明文串

2>password --md5 加密密码串

·使用grub-md5-crpypt命令获取加密密码串

·将加密密码串复制进grub.conf文件

六、终端登录安全控制

1、减少开放终端个数

(1)方法:vi编辑/etc/init/start-ttus.conf以及/etc/sysconfig/init两个配置文件

(2)示例:设置所用用户仅可从tty1、tty2、tty3三个终端登录

重启后,所有用户仅可从tty1、tty2、tty3登录

2、限制root只在安全终端登录

(1)方法:vi编辑/etc/securetty配置文件,将禁止的终端注解掉

(2)示例:禁止root用户从tty2、tty3终端登录

此文件修改后立即生效

3、禁止普通用户登录

(1)方法:touch /etc/nologin,删除/etc/nologin这个空文件即可恢复。

(2)示例:

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

1、JR(Joth the Ripper)简介

·一款密码分析工具,支持字典式的暴力破解

·通过对shadow文件的口令分析,可以检测密码

·官方网站:http://crushlinux.openwall.com/john/

2、安装JR工具

(1)tar包解压

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

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

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

查看破解记 

清空破解记录

八、端检测  NMAP

1、NMAP简介

·一款强大的网络扫描、安全检测工具

·官方网站:http://nmap.org/

·可从光盘中安装nmap-5.51-3.el6.x86_64.rpm

2、NMAP的扫描语法

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

3、常用的扫描类型

-sS TCP SYN扫描(半开)

-sT TCP链接扫描(全开)

-sF TCP FIN扫描

-sU UDP扫描

-sP ICMP扫描

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

4、常用选项:

-n 禁止DNS反向解析

-p 指定端口号

 

安装nmap 

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

 

2、检测当前192.168.1.0/24网段有哪些主机提供FTP服务

  

3、检测192.168.1.0/24网段有哪些存活主机

 

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

  

【课外知识补充】(来自百度百科)

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

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

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

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

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

三次握手完成,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


用于万维网(crushlinux)服务的超文本传输协议(HTTP)


88


kerberos


Kerberos 网络验证系统


95


supdup


Telnet 协议扩展


101


hostname


SRI-NIC 机器上的主机名服务


102/tcp


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 使用的 NETBIOS 会话服务


143


imap


互联网消息存取协议(IMAP)


161


snmp


简单网络管理协议(SNMP)


162


snmptrap


SNMP 的陷阱


163


cmip-man


通用管理信息协议(CMIP)


164


cmip-agent


通用管理信息协议(CMIP)


174


mailq


MAILQ 电子邮件传输队列


177


xdmcp


X 显示管理器控制协议(XDMCP)


178


nextstep


NeXTStep 窗口服务器


179


bgp


边界网络协议


191


prospero


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 / 3-DNS iQuery 服务


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 用户ID列表


587


submission


邮件消息提交代理(MSA)


610


npmp-local


网络外设管理协议(NPMP)本地 / 分布式排队系统(DQS)


611


npmp-gui


网络外设管理协议(NPMP)GUI / 分布式排队系统(DQS)


612


hmmp-ind


HyperMedia 管理协议(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)

时间: 2024-10-04 17:17:22

Linux系统管理11——系统安全及应用的相关文章

linux系统管理命令--系统检测工具

1.tcpdump -n  使用IP地址表示主机,而不是主机名:使用数字表示端口号,而不是服务名称 -i    指定要监听的网卡接口, "-i any"表示抓取所有网卡接口上的数据包 -v   输出一个稍微详细的信息,例如,显示IP数据报中的TTL和TOS信息 -t    不打印时间戳 -e  显示以太网帧头部信息 -c 仅抓取指定数量的数据报 -x 以十六进制显示数据包的内容,但不显示包中以太网帧的头部信息 -X 和-x选项类似,不过还打印每个十六进制字节对应的ASCII字符 -XX

Linux0.11系统中堆栈的使用方法

Linux 0.11系统中共使用了四种堆栈 一.系统引导初始化临时使用的堆栈. 二.进入保护模式后提供内核程序始化使用的堆栈,该堆栈也是后来任务0使用的用户态堆栈. 三.每个任务通过系统调用,执行内核程序时使用的堆栈,称之为任务的内核态堆栈,每个任务都有自己独立的内核态堆栈. 四.任务在用户态执行的堆栈,位于任务(进程 )逻辑地址空间近末端处使用多个栈或在不同情况下使用不同栈的主要原因. 一.由于从实模式进入保护模式,使得CPU对内存寻址访问方式发生了变化,因此需要重新设置堆栈区域. 二.为了解

Linux系统管理常用命令

Linux系统管理常用命令 分类: Linux2011-01-10 18:26 1538人阅读 评论(0) 收藏 举报 linuxcommandservicenginxuserunix 目录(?)[+] 1. 时间date 1)显示当前时间: date .//Wed Jul 29 11:05:11 CST 2009  2)date修改时间:date -s  date 修改时间2007-08-29 14:41 date -s 14:36:30   //时间为14点36分30秒 date 08291

Linux系统管理与维护的基本命令

Linux系统管理与维护的基本命令 ls clear last pwd who dmesg cd w free passwd uname ps su uptime top 一.列出目录内容:ls ls 是list(列表,列出)的缩写,ls的基本语法: ls   [options]      [FILE]... 不带任何选项参数的ls命令,用于列出当前目录下所有的文件和子目录. ls 目录 :查看指定的目录 重要选项: -l :以列表形式显示目录内容详细信息 ls -l 第1列  第2列 第3列

Linux系统管理和维护常用命令

Linux系统管理和维护常用命令 Linux系统管理和维护常用命令 ls 命令 功能说明ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录.语法结构: ls [选项] [路径或文件] ls 选项及说明 -a  显示指定目录下的所有文件以及子目录,包含隐藏文件-d  只显示目录列表,不显示文件-l  除文件名称外,同时将文件或者子目录的权限,使用者和文件大小等详细信息列出-s  在每个文件名后输出该文件的大小-k  以k字节的形式表示文件的大小-u  以文件上次被访问的时间排序-

Linux系统管理14——磁盘配额(Quota)

Linux系统管理14--磁盘配额(Quota)(课外知识补充02) 一.磁盘配额(Quota)概述 在Linux系统中,由于是多人多任务环境,所以会有很多人共同使用一个硬盘空间的情况发生,如果其中少数几个使用者大量的占用硬盘空间的话,那势必会压缩其他用户的使用权力,因此,管理员应该适当的限制硬盘的容量给用户,以妥善分配系统资源. 1.Quota的规范设定项目 (1)容量限制(block) 此方法较为常见 (2)文件数量限制(inode) 2.柔性劝导与硬性规定(soft/hard) 不管是in

Linux系统管理之Python生态工具、文本处理和系统管理

一.Python生态工具 一.Python内置小工具 1.秒级启动一个下载服务器 Python 内置了一个下载服务器就能够显著提升效率了 . 例如, 你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目 录 , 然后执行下面的命令启动一个下载服务器 : Python2实现: python -m SimpleHTTPServer Python3实现: 在 Python 3 中,由于对系统库进行了重新整理,因此,使用方式会有不同: python -m http.server 执行上面的命令

Linux命令大全之一——Linux系统管理命令,非常全!

Linux命令是对Linux系统进行管理的命令. 对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,下面是关于49个Linux系统管理命令的详细讲解! adduser 功能说明:新增用户帐号.语 法:adduser补充说明:在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd指令建立新用户,如此可方便管理员建立用户帐号.在R

Linux 系统管理没有 netstat ,不惆怅! 拥抱 ss ,事半功倍

Linux 系统管理没有 netstat ,不惆怅! 拥抱 ss ,事半功倍 一 背景 在目前众多较新的 Linux 发行版中,已经移除了 net-tools 套件,ifconfig.route.netstat.arp 等一系列工具均无法使用.缺少这些工具,在对系统进行管理时,会不会变得举步维艰呢? 答案是:不会.官方既然删除了 net-tools 套件,就会有新的替代方案.比如:在 CentOS 7.6 中,官方就使用了 iproute-4.11.0-14.el7.x86_64 替代了 net