自主访问控制和强制访问控制

自主访问控制和强制访问控制是网络和计算机安全管理中的两个核心概念,每个概念都有自己的侧重点,并且在实际应用中经常一起使用。
首先,应该明确的是,互联网上的示例和解释有时会导致对这些技术含义的误解。
例如,主体和客体的概念可能在不同的场景中发挥不同的作用,而不仅仅是管理文件的读写。
在了解访问控制时,您不应该限制自己对文件或数据库的读写权限。
在实际应用中,访问控制涵盖了广泛的主题,包括用户之间的信息共享、资源的访问权限等。
强制访问控制和自主访问控制的主要区别在于权限管理的来源和方法。
强制访问控制(MAC)根据第三方规则限制用户的访问权限,通常由操作系统或安全管理系统实施。
这些规则以标签或通道的形式确保只有授权用户才能访问数据和资源。
MAC系统在保护敏感信息和防止不同安全级别的用户之间未经授权的数据传输方面发挥着重要作用。
例如,在UNIX和SELINUX系统中,通过内置的通道标记来实现数据的结构化保护和访问控制。
自主访问控制(DAC)根据用户自己的决定管理访问权限。
在IT系统中,用户通过构建安全策略和访问规则,自主决定可以访问哪些资源以及在什么条件下访问。
这种机制常见于C/S或B/S架构的用户管理中,允许用户根据需要建立安全的通信访问策略。
需要注意的是,实施强制访问控制必须考虑授权管理的逻辑,即谁有授权权限,如何保证访问和授权的一致性。
在大型计算机系统中,可以通过套接字管理来实现内部网络的强制访问控制,而系统管理员可以允许外部网络访问外部网络。
该机制为开放互连提供了安全基础。
在实际应用中,自主访问控制和强制访问控制并不是相互排斥的,而是相辅相成的。
自主访问控制提供用户级灵活性和便利性,而强制访问控制则确保系统级安全性和合规性。
在各种应用场景中,这两种机制可以协同工作,打造多级安全防护体系。
在实现上述访问控制机制时,ACL(AccessControlList)尽管这些技术在系统审计保护和安全标签保护中发挥着关键作用,但所需的访问控制技术之间在逻辑和实现上存在显着差异。
在可信计算架构中,安全标签和结构化通道标签依赖于用户或计算机的可信度,但UNIX/SELINUX系统内部网络中的通道标签和VLAN标签不需要基于可信计算。
简而言之,自主和强制访问控制是现代网络安全系统的关键组成部分。
它们以不同的方式保障数据和资源的访问安全,适应不同场景的需求。
正确理解并合理应用这些访问控制机制对于构建高效、安全的信息系统具有重要意义。

查看linux的ssh端口查看Linux的ssh

如何在Linux上配置SSH和SFTP使用不同的端口号?

1.两个守护进程

要分离ssh和sftp并分别监听不同的端口,您可以创建两个“/usr/sbin/sshd”守护进程,一个监听端口22(ssh),一个监听端口20022(SFTP)。
为了区分SSH和SFTP服务的后台程序,将SSH服务的后台程序维护为/usr/sbin/sshd,SFTP服务的后台程序更改为/usr/sbin/sftpd。
/usr/sbin/sftpd是/usr/sbin/sshd的链接,其内容完全相同(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)。

2.两个服务

SLES12使用systemd来管理系统服务。
SSH服务对应文件/usr/lib/systemd/system/sshd.service服务,/将usr/lib/systemd/system/sshd.service复制到/etc/systemd/system/sftpd.service,然后修改内容sftpd.service文件的。
(只需使用修改后的sftpd.service文件)

3.其他文件系统的SSH服务都是通过安装openssh来实现的。
您可以使用rpm-qlopenssh检查rpm包含哪些文件。
总结一下实现SSH和SFTP分离的相关文件:

ssh服务sftp服务

/usr/lib/systemd/system/sshd.service/etc/systemd/system/sftpd.service(通过更改/usr/lib/systemd/system/sshd.service文件)

/etc/pam.d/sshd/etc/pam.d/sftpd(复制/etc/pam.d/sshd文件获得)

/etc/ssh/sshd_config/etc/ssh/sftpd_config(通过复制文件获得/etc/ssh/sshd_config)

/usr/sbin/rcsshd/usr/sbin/rcsftpd(ln-sf/usr/sbin/service/usr/sbin/rcsftpd)

/usr/sbin/sshd/usr/sb在/sftpd(ln-sf/usr/sbin/sshd/usr/sbin/sftpd)

/etc/sysconfig/ssh/etc/sysconfig/sftp(通过修改/etc/sysconfig/文件获得ssh文件)

到目前为止我们已经实现了两个服务。

但是,SSH服务和SFTP服务之间并没有真正的分离。
目前已经可以通过22端口使用SSH服务和SFTP服务,新开放的20022端口也可以使用SSH服务(ssh-p20022username@serverip)和SFTP服务(sftp-oPort=20022Username@serverip)。

”添加到该组中。
可以添加“AllowGroups”)

5.关闭20022端口的SSH服务。
SFTP是依赖于SSH服务的子服务。
因此,基本上不能关闭SSH服务,只打开SFTP服务。
您可以使用以下方法来解决此问题:/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config包含子系统参数的配置(建议使用Subsystemsftpinternal-sftp-lINFO-fAUTH)/etc/ssh/sftpd_config包含“AllowGroups”参数(假设为“AllowGroupssftponly”),该参数仅对以下用户可用“AllowGroups”组限制对端口20022的访问。
将AllowGroups组用户的shell修改为/bin/false(usermod-s/bin/falseusername>),使AllowGroups组用户只能通过SFTP登录系统(如果用户同时需要SSH和SFTP,则其shell无法更改为/bin/false)

6.配置用户白名单后,需要SSH访问系统的用户必须添加到“sshonly”组,需要SFTP访问系统的用户必须添加到“sftponly”组我需要SSH和SFTP在同一时间。
然后需要添加“ssshonly”和“sftponly”组。

7.重新启动SSH服务和SFTP服务,并将其设置为开机启动。

servicesshdrestartservicesftpdrestart

Linux如何通过SSH访问另一台服务器?

例如:如果您使用root帐户连接IP地址为192.168.1.102的计算机,请键入“ssh192.168.1.102-lroot”,然后输入Enterroot帐户密码按输入然后按Enter确认。
如果服务器的SSH端口不是默认的22端口而是自定义端口如1234,可以在命令后添加-p参数,例如:“ssh192.168.1.102-lroot-p1234”

Linux系统上如何使用SSH实现端口映射?

从技术上从用户的角度分析在其主目录下进行工作

3只能使用SFTP进行操作,不能通过SSH连接到机器。

要提供SFTP服务,可以使用系统自带的内部SFTP或vsftpd。
这里没有太多要求,所以使用internal-sftp即可。

限制用户只能在自己的主目录中进行活动,目前支持chroot。
,足够的。

您可以输入:

#ssh-v

来检查openssh版本。
如果低于4.8p1则需要自己升级安装,这里就不详细介绍了。

假设有一个名为SFTP的组。
该组中的用户只能使用SFTP,不能使用SSH,并且登录后SFTP只能在自己的主目录下工作。

1.创建SFTP组

#groupaddsftp

2.创建名为mysftp的SFTP用户

#useradd-gsftp-s/bin/falsemysftp

#passwdmysftp

3.SFTP组“Thehome”中的用户。
该目录被分配到/dat,在a/sftp下,您可以通过用户名进行区分。
首先在这里创建一个mysftp目录,然后将mysftp的home指定为/data/sftp/mysftp

#mkdir-p/data/sftp/mysftp</。

#usermod-d/data/sftp/mysftpmysftp

4.配置sshd_config

编辑/etc/ssh/sshd_config

#vim+132/etc/ssh/sshd_config

找到以下行并将其注释掉

subsystemsftp/usr/libexec/openssh/sftp-server

添加以下行添加了

subsystemsftpinternal-sftp

matchgroupsftp

chrootdirectory/data/sftp/%u

forcecommandinternal-sftp

allowtcpforwardingno

x11forwardingno

解释一下添加的行的含义

subsystemsftpinternal-sftp

这行表示使用SFTP服务使用系统自动配合internal-sftp

matchgroupsftp

此行用于匹配SFTP组内的用户。
当然,如果要匹配多个组,则用逗号分隔。

这样也可以匹配用户

matchusermysftp

也可以匹配用户带逗号,但比较是按组进行的这里更加灵活方便

chrootdirectory/data/sftp/%u

使用chroot指定用户的根目录/data/sftp/%u,%u代表用户名,所以用户只能在/data/sftp/%u下工作。
chroot的含义可以在这里找到:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/

forcecommandinternal-sftp

回车如果您不想使用端口转发,请在这两行中输入SFTP命令

allowtcpforwardingno

x11forwardingno

如果是,则添加,否则删除。

5.设置chroot目录权限

#chownroot:sftp/data/sftp/mysftp

#chmod755/data/sftp/mysftp

不正确的目录权限设置导致“致命”:badownershipormodesforchrootdirectoryxxxxxx”出现在日志中。

其中有两点很重要目录权限设置:

1.通过chrootdirect从ory指定的目录开始,一直延伸到系统根目录,该目录的所有者只能是root

2.chrootdirectory指定的目录从头开始到系统根目录不能有组写权限。

所以遵循以上两个原则

1)我们设置/data的属主root上的/sftp/mysftp以及sftp上的所有组

2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写权限,但是所有组SFTP没有写权限

6.创建SFTP用户登录后可以写入的目录。

完成上述设置后,重启SSHD服务后mysftp用户已经可以登录使用chroot指定根目录后,root目录不应该是可写的。
因此,需要新建一个目录供mysftp上传文件。
该目录的所有者是mysftp,所有组都是sftp,所有者有写权限,但所有组都没有写权限

#mkdir/data/sftp/mysftp/upload

#chownmysftp:sftp/data/sftp/mysftp/upload

#chmod755/data/sftp/mysftp/upload

7.重启SSHD服务

#servicesshdrestart

这里,mysftp已经可以通过SFTP客户端登录,并上传文件到顶层目录了。

如果仍然无法上传文件到该目录,并提示没有权限,请检查Selinux是否被禁用。
您可以使用以下命令禁用Selinux。

将/etc/selinux/config文件中的Selinux更改为“”禁用,然后重新启动。
或者

#setenforce0

如何在Linux上关闭SSH服务?

chkconfig--level2345sshdon--level表示系统运行在2345级别时,正常开机为35。
要开启(turnon)SSHD服务,使用(off)来临时控制服务的启动和停止:/etc/rc.d/init.d/sshdstart|stop|restart

可以ssh只能登录Linux吗?

ssh只能登录Linux操作系统。
ssh是Unix操作系统用于远程登录的程序。

ssh的免费开源版本是openssh,它源自openBSD操作系统。
服务器端启用sshd后,就可以远程登录服务器了。
目前,所有类Unix操作系统都提供SSH服务。
因此,SSH可以登录所有类Unix操作系统。