iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >盘点 | 22个基本的Linux安全命令
  • 854
分享到

盘点 | 22个基本的Linux安全命令

2023-06-04 18:06:12 854人浏览 薄情痞子
摘要

如果您正在关注linux系统的安全性,那么这些命令是您必须知道的。Linux系统的安全性有很多问题——从设置帐户到确保合法用户的权限没有超出工作所需。本文将介绍用于Linux系统日常工作的一些最基本的安全命令。sudo使用sudo运行特权命

盘点 | 22个基本的Linux安全命令

如果您正在关注linux系统的安全性,那么这些命令是您必须知道的。

Linux系统的安全性有很多问题——从设置帐户到确保合法用户的权限没有超出工作所需。本文将介绍用于Linux系统日常工作的一些最基本的安全命令。

sudo

使用sudo运行特权命令——而不是将用户切换到根用户,是一种必不可少的良好实践,因为它有助于确保只在需要时使用根特权,并限制错误的影响。您对sudo命令的访问取决于/etc/sudoers和/etc/group文件中的设置。

$ sudo adduser sharkAdding user `shark' ...Adding new group `shark' (1007) ...Adding new user `shark' (1007) with group `shark' ...Creating home directory `/home/shark' ...Copying files from `/etc/skel' ...Enter new UNIX passWord:Retype new UNIX password:passwd: password updated successfullyChanging the user infORMation for sharkEnter the new value, or press ENTER for the default        Full Name []: shark        Room Number []:        Work Phone []:        Home Phone []:        Other []:Is the information correct? [Y/n] Y

例如,如果您运行sudo并询问您是谁,您将得到以root身份运行该命令的确认。

$ sudo whoamiroot

如果要为用户管理sudo设置,还需要熟悉visudo命令。

visudo

visudo命令允许您在文本编辑器中打开文件并检查语法更改,从而更改/etc/sudoers文件。使用“sudo visudo”运行命令,并确保理解语法。特权可以由用户或组分配。在大多数Linux系统上,/etc/sudoers文件已经配置了如下所示的组,这些组允许将特权分配给在/etc/group文件中设置的组。在这些情况下,您根本不需要使用visudo命令—只需熟悉以这种方式授予根特权的组,并更新/etc/group文件。

%admin ALL=(ALL) ALL%sudo ALL=(ALL:ALL) ALL%wheel ALL=(ALL:ALL) ALL

注意组名前面有%符号。

您可以像这样在/etc/group文件中显示提供sudo访问的组,因为它可能是这些文件之一:

$ egrep "admin|sudo|wheel" /etc/groupsudo:x:27:shs,jdoe

给某人sudo特权最简单的方法是将他们添加到/etc/group.中的授权组中但是,这意味着它们可以作为根用户运行任何命令。如果你想让一些用户对有限的命令集拥有根权限(例如,添加和删除帐户),你可以定义你想让他们能够通过命令别名运行的命令:

Cmnd_Alias ACCT_CMDS = /usr/sbin/adduser, /usr/sbin/deluser

然后让用户或组能够运行这些命令使用sudo命令与这些命令之一:

nemo ALL=(ALL) ACCT_CMDS%techs  ALL=(ALL:ALL) ACCT_CMDS

第一行允许用户“nemo”使用sudo运行twp (adduser和deluser)命令,而第二行将相同的特权分配给/etc/group文件中“tech”组中的任何人。

who和w

who和w命令将向您显示谁已经登录到系统中,但是w将显示更多信息,例如登录位置、登录时间和空闲时间。

$ w 18:03:35 up 9 days, 22:48,  2 users,  load average: 0.00, 0.00, 0.00USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATjoe      tty2     /dev/tty2        27Apr18  9days  7:34   0.09s /usr/lib/x86_64-linuxshs      pts/1    192.168.0.15     09:50    7.00s  0.28s  0.00s w

如果不喜欢运行visudo命令时调用的默认编辑器,请使用“sudo update-alternatives - config editor”命令。它将提供许多编辑器作为选项并更改您的设置。

last

last命令显示了用户最近的登录信息,当您试图跟踪更改或其他活动时,它通常非常有用。

$ last nemonemo  pts/1   192.168.0.15   Wed May  2 07:01 - 08:29  (01:27)wtmp begins Tue May  1 10:21:35 2018

尼莫有一段时间没有登录了。他可能在度假(也许是钓鱼?)或者刚刚离开公司。这类信息可以帮助您决定是否需要对此进行后续工作。

find

find命令用于许多类型的搜索。当涉及到安全性时,您可能会发现自己在寻找没有所有者(没有对应的帐户)或既可写又可执行的文件。Find命令很容易组合,但是需要熟悉它的许多选项,以便定义您要查找的内容。这两个命令中的第一个将找到当前没有定义所有者的文件。第二种方法是找到任何人都可以运行和修改的文件。

$ sudo find /home -nouser$ sudo find / -perm -o=wx

请记住,第二个命令中的-o指的是“其他”组——不是所有者,也不是与文件关联的组。

file

file命令查看一个文件,并根据其内容(而不是名称)确定文件的类型。许多文件(如jpeg文件)在标识它们的文件的开头附近包含标识符。下面示例中的“.jpg”文件显然不是真正的jpeg文件,而是可执行文件——尽管它的名称不同。

jdoe@stinkbug:~$ ls -ltotal 24-rw-r--r-- 1 root root     0 Apr 13 09:59 empty-rwxr-xr-x 1 jdoe jdoe 18840 May 10 17:39 myphoto.jpg-rwx------ 1 jdoe jdoe    24 May  2 07:06 trythisjdoe@stinkbug:~$ file myphoto.jpgmyphoto.jpg: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=5d19f7a492405ea9b022a9aa8151f6fb4143633D, stripped

which

which命令标识将在键入其名称时运行的可执行文件。这并不总是你想的那样。如果一个木马病毒已经被插入到文件系统的一个位置,显示在你的搜索路径之前,合法的,它将运行。这是一个很好的理由,以确保您的搜索路径包括目录,如/usr/bin之前,它添加较少的标准位置,特别是之前”。(当前目录)。

$ which date/usr/local/bin/date <=== probably not what we wanted

你可以检查用户的搜索路径,切换到用户和呼应:

shs@stinkbug:~$ sudo su - nemonemo@stinkbug:~$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin

即使用户的搜索路径是在/etc/profile或/etc/bash这样的系统文件中设置的bashrc,它们可能已经被本地设置更改。

$ which date/usr/local/bin/date<=== probably not what we wanted

你可以检查用户的搜索路径,切换到用户和呼应:

shs@stinkbug:~$ sudo su - nemonemo@stinkbug:~$ echo $PATH/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin

即使用户的搜索路径是在/etc/profile或/etc/bash这样的系统文件中设置的bashrc,它们可能已经被本地设置更改。

ss

ss命令是研究套接字的工具,允许您执行诸如显示监听端口和活动连接之类的操作。在不添加一些约束的情况下,ss将显示比您希望看到的更多的信息。毕竟,操作系统的许多部分都是通过套接字进行通信的。如果您希望生成已建立连接或监听端口的列表(即这样的命令将被证明非常有用)。

建立连接:

$ ss -tState   Recv-Q Send-Q Local Address:Port     Peer Address:Port   ESTAB   0      224    192.168.0.20:ssh      192.168.0.15:56647$ ss | grep ESTAB | grep tcptcp    ESTAB   0    64   192.168.0.20:ssh   192.168.0.15:64885

监听端口:

$ ss -ltnState   Recv-Q Send-Q Local Address:Port     Peer Address:Port     LISTEN  0      128          *:22             *:*LISTEN  0      5      127.0.0.1:631          *:*                 LISTEN  0      50           *:445            *:*LISTEN  0      50           *:139            *:*LISTEN  0      128          *:5355           *:*LISTEN  0      128         :::22             :::*LISTEN  0      5          ::1:631            :::*LISTEN  0      50         :::445             :::*LISTEN  0      128        :::5355            :::*LISTEN  0      50         :::139             :::*

注意,端口631 (CUPS)只监听环回接口(127.0.0.1)。

ufw

如果您在Linux系统上运行防火墙——这是控制对系统访问的重要步骤,用于启动/停止、启用/禁用、修改和显示状态或活动规则的命令非常关键。下面是ufw的一些示例命令——你会在许多ubuntu系统上找到的“简单防火墙”:

$ sudo ufw status verboseStatus: activeLogging: on (low)Default: deny (incoming), allow (outGoing), disabled (routed)New profiles: skipTo                         Action      From--                         ------      ----22                         ALLOW IN    192.168.0.0/24

该防火墙是活动的,只允许从本地网络连接到ssh。

以下命令将1)设置上述规则,2)禁用防火墙。

$ sudo ufw allow from 192.168.0.0/24 to any port 22$ sudo ufw disable

iptables

了解如何为iptables列出防火墙规则也很重要。这些命令将为您提供一个完整的netfilter规则列表:

sudo iptables -vL -t filtersudo iptables -vL -t natsudo iptables -vL -t manglesudo iptables -vL -t rawsudo iptables -vL -t security

ip

ip命令允许您在网络接口上显示信息。在下面的例子中,我们看到了环回和公共接口。

$ ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff    inet 192.168.0.20/24 brd 192.168.0.255 scope global dynamic enp0s25       valid_lft 59794sec preferred_lft 59794sec    inet6 fe80::f233:4f72:4556:14c2/64 scope link       valid_lft forever preferred_lft forever

ip route

ip路由命令将显示您的路由表:

$ ip routedefault via 192.168.0.1 dev enp0s25 proto static metric 100169.254.0.0/16 dev enp0s25 scope link metric 1000192.168.0.0/24 dev enp0s25 proto kernel scope link src 192.168.0.20 metric 100

kill, pkill & killall

正如您在“杀死Unix进程的方法不止一种”中所看到的那样,Unix和Linux系统提供了一种方便的命令选择,用于终止进程,而不管您为什么希望它们死亡。您可以通过进程ID或名称终止。你可以一次杀死一个人或一群人。在任何情况下,您都可以使用各种kill命令,并且应该准备在需要时使用它们。例子包括:

$ kill 1234$ pkill bad$ killall badproc

passwd

当涉及到系统安全性时,passwd命令可能是一个明显的命令,但它也不应该从任何安全性要点列表中被忽略。对于密码更改,特别是当用户来来往往或更改角色时,有一个合理的策略是很重要的。

然而,passwd命令不仅仅用于更改密码。您还可以使用它与sudo特权来更改其他用户的密码、定/解锁或过期帐户、检查帐户状态并更改决定密码何时过期或时间密码警告的设置。

查看手册页(man passwd)了解详细信息,并使用以下命令:

$ sudo passwd nemo<== change nemo's password$ sudo passwd -e dory   <== expire dory's password (forces her to reset it)$ sudo passwd -i shark  <== disable shark's account

pwck

pwck命令对/etc/passwd和/etc/shadow文件进行一些完整性检查——确保出现了必需的字段、文件和目录等等。

$ sudo pwckuser 'squash': directory '/home/squash' does not existuser 'squash': program '/bin/bsh' does not exist

setfacl & getfacl

不要让rwxr-x- type权限的简单显示诱使您认为这就是在Linux系统上文件权限的全部。使用setfacl和getfacl命令,您可以让不属于文件所有者、不属于相关组成员(您不希望他们成为)的人访问文件。假设您希望nemo能够读取概述ufw设置说明文件的文件,但仅此而已。使用如下命令修改文件的访问控制列表(ACL):

$ setfacl -m u:nemo:r ufw-setup

然后getfacl命令将显示所做的更改:

$ getfacl ufw-setup# file: ufw-setup# owner: shs# group: shsuser::rwxuser:nemo:r--        <===group::rw-                      #effective:r--mask::r--other::---

sestatus & apparmor

sestatus和apparmor命令可以显示SELinux和apparmor工具的状态,这些工具使用强制访问控制在应用程序之间提供隔离。如果您正在使用这些工具之一,您应该知道如何显示它们的状态。

sestatus

$ sudo sestatusSELinux status:                 enabledSELinuxfs mount:                /sys/fs/selinuxSELinux root directory:         /etc/selinuxLoaded policy name:             targetedCurrent mode:                   enforcingMode from config file:          enforcingPolicy MLS status:              enabledPolicy deny_unknown status:     allowedMax kernel policy version:      28
apparmor
$ sudo apparmor_statusapparmor module is loaded.18 profiles are loaded.18 profiles are in enforce mode.   /sbin/dhclient   /usr/bin/evince   /usr/bin/evince-previewer   /usr/bin/evince-previewer//sanitized_helper   /usr/bin/evince-thumbnailer   /usr/bin/evince-thumbnailer//sanitized_helper   /usr/bin/evince//sanitized_helper   /usr/lib/NetworkManager/nm-dhcp-client.action   /usr/lib/NetworkManager/nm-dhcp-helper   /usr/lib/connman/scripts/dhclient-script   /usr/lib/cups/backend/cups-pdf   /usr/lib/snapd/snap-confine   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper   /usr/sbin/cups-browsed   /usr/sbin/cupsd   /usr/sbin/cupsd//third_party   /usr/sbin/ippusbxd   /usr/sbin/tcpdump0 profiles are in complain mode.3 processes have profiles defined.3 processes are in enforce mode.   /sbin/dhclient (705)   /usr/sbin/cups-browsed (30173)   /usr/sbin/cupsd (26828)0 processes are in complain mode.0 processes are unconfined but have a profile defined.

你还应该知道如何启动和停止这些工具。

$ sudo /etc/init.d/apparmor start$ sudo /etc/init.d/apparmor stop$ sudo /etc/init.d/apparmor restart

对于SELinux,不同的模式代表什么:

enforcing -- SELinux security policy is enforcedpermissive -- SELinux prints warnings instead of enforcingdisabled -- SELinux is fully disabled

Linux系统上的许多命令可以帮助您管理安全性。上面的描述是为了介绍这些命令,而不是解释关于它们如何工作或如何使用的所有内容。

--结束END--

本文标题: 盘点 | 22个基本的Linux安全命令

本文链接: https://www.lsjlt.com/news/239097.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 盘点 | 22个基本的Linux安全命令
    如果您正在关注Linux系统的安全性,那么这些命令是您必须知道的。Linux系统的安全性有很多问题——从设置帐户到确保合法用户的权限没有超出工作所需。本文将介绍用于Linux系统日常工作的一些最基本的安全命令。sudo使用sudo运行特权命...
    99+
    2023-06-04
  • Linux最常用的15个基本命令
    目录 Linux基本命令  命令1:ls (查看指定目录中有哪些内容) ls / 相当于查看根目录中的内容,相当于查看我的电脑  ls -l(小写l,或者使用ll)详细查看目录下所有内容 ls /usr/lib(ls+目录名称)  命令2:...
    99+
    2023-09-01
    linux 运维 服务器
  • linux的基本命令有哪些
    这篇文章将为大家详细讲解有关linux的基本命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一些常用的基本命令:uname -a查看内核版本ls -al显示所有文件的属性pwd 显示当前路径cd ...
    99+
    2023-06-17
  • Linux Container的基本命令是什么
    本篇内容主要讲解“Linux Container的基本命令是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux Container的基本命令是什么”吧!lxc能做什么:可以为容器绑定特...
    99+
    2023-06-12
  • Linux基本命令df和linux中du命令参数的用法
    这篇文章主要讲解了“Linux基本命令df和linux中du命令参数的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基本命令df和linux中du命令参数的用法”吧!以下是Li...
    99+
    2023-06-17
  • 【pm2】pm2的安装与基本命令:
    文章目录 一、安装:二、基本命令:【1】启动命令:pm2 start app.js【2】命令行参数:pm2 start app.js --watch -i max【3】 查看有哪些进程:pm2...
    99+
    2023-09-03
    服务器 linux 运维
  • linux必学的60个命令大全
    第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CP...
    99+
    2023-10-27
    linux 运维 服务器
  • Linux不安全的命令有哪些
    这篇文章主要介绍了Linux不安全的命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。文中列出的命令绝对不可以运行,即使你觉得很好奇也不行,除非你是在虚拟机上运行(出现...
    99+
    2023-06-16
  • linux的基本命令mkdir使用详解
    目录1、mkdir 命令介绍2、常用参数及案例2.1 常用参数2.2 案例举例2.2.1 在当前工作目录,创建目录文件2.2.2 创建带权限的目录2.2.3 创建多个目录2.2.4 ...
    99+
    2023-03-03
    Linux mkdir 命令 mkdir命令详解 linux mkdir函数
  • Linux中基本的文件操作命令
    本篇内容介绍了“Linux中基本的文件操作命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!cdcd 是打开某个路径的命令,也就是打开某个文...
    99+
    2023-06-12
  • linux的基本命令mkdir怎么使用
    这篇“linux的基本命令mkdir怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux的基本命令mkdir怎么...
    99+
    2023-07-05
  • linux安装git的命令是哪个
    这篇文章主要介绍“linux安装git的命令是哪个”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux安装git的命令是哪个”文章能帮助大家解决问题。在linux中,安装git的命令是“yum ...
    99+
    2023-07-02
  • 提高Linux服务器安全性的六个关键命令
    禁用root用户登录:使用命令sudo passwd -l root将root用户的密码锁定,防止直接使用root账户登录服务器。2...
    99+
    2023-10-18
    Linux
  • Linux服务器的安全基石:重要命令的使用与配置
    Linux 服务器的安全基石是使用和配置一些重要的命令来保护系统免受潜在的攻击和安全威胁。以下是一些重要的命令和配置,可以帮助提高 ...
    99+
    2023-10-18
    Linux
  • Linux系统维护的基本命令是什么
    这篇文章将为大家详细讲解有关Linux系统维护的基本命令是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于大多数Linux用户来说系统运维并不需要他们关系,系统有专门的人去维护,但是关...
    99+
    2023-06-28
  • Linux命令相关的基本知识有哪些
    这篇文章给大家分享的是有关Linux命令相关的基本知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文约定对于每一个命令,大致分为如下三个部分功能简单介绍该命令功能。举例给出该命令最常使用的例子。描述详细...
    99+
    2023-06-05
  • Golang三个编译基本命令的使用小结
    目录1、go build(编译)2、go run(编译并运行)3、go install(编译并安装)在运行Go语言程序之前,先要将其编译成二进制的可执行文件 我们通常在编辑器编写完源...
    99+
    2023-05-14
    Golang 编译命令 Golang 编译
  • Linux下Lsof命令的安装及基础操作
    这篇文章主要讲解了“Linux下Lsof命令的安装及基础操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下Lsof命令的安装及基础操作”吧!安装lsof 命令默认是没有安装的,而...
    99+
    2023-06-15
  • Linux中基本的文件和目录命令用法
    这篇文章主要介绍“Linux中基本的文件和目录命令用法”,在日常操作中,相信很多人在Linux中基本的文件和目录命令用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中基本的文件和目录命令用法”的疑...
    99+
    2023-06-12
  • Linux基本命令注销、关机、重启的使用
    本篇内容介绍了“Linux基本命令注销、关机、重启的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、注销,关机,重启      注销系...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作