Security-Enhanced Linux (SELinux)

Linux Security Mode Linux系统先做DAC检查.如果没有通过DAC权限检查,则操作直接失败.通过DAC检查之后,再做MAC权限检查. DAC SELinux出现之前,Linux上的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制. 核心思想: 进程理论上所拥有的权限与执行它的用户的权限相同.比如,以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情. MAC SELinux在DAC之外,设计了一个新的安全模型,叫MAC(Mandatory Access Control),翻译为强制访问控制. 核心思想: 任何进程想在SELinux系统中干任何事情,都必须先在安全策略配置文件中赋予权限.凡是没有出现在安全策略配置文件中的权限,进程就没有该权限. Security-Enhanced Linux (SELinux) SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对Linux的安全加强系统. 所有DAC机制都有一个共同的弱点,就是它们不能识别自然人与计算机程序之间最基本的区别. 简单点说就是,如果一个用户被授权允许访问,意味着程序也被授权访问,如果程序被授权访问,那么恶意程序也将有同样的访问权. SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制.由以下两部分组成: 1. Kernel SELinux模块(/kernel/security/selinux) 2. 用户态工具

Published
Categorized as linux

交换机在网络中到的作用

来自知乎的答案整理 报文 数据经IP协议封装后称为报文,经MAC层封装后叫做以太网帧。通常不做严格区分,都叫报文。 主机通信 主机A向主机B发报文,知道B的IP地址,但不知道B的MAC地址。 主机A首先会发ARP报文, ARP报文最终在MAC层被封装成以太网帧,其源MAC地址是主机A自己,目的MAC地址是广播地址,就是向外广播询问,请求主机B回答。 交换机接收到主机A的包含ARP广播报文的Frame,会解析该Frame,发现目的MAC地址是广播地址,就是向自己的所有端口广播该Frame, 源MAC地址依然是主机A,目的MAC地址依然是广播地址。 同时如果源MAC地址,交换机之前没有学习过,就会添加到自己的MAC地址表中,也就是交换机学习到主机A的MAC地址。 经交换机广播后,ARP报文被主机B接收到, 主机B发现被请求的IP是自己,就会发一个回应报文,同样在MAC层被封装成以太网帧,源MAC地址是主机B,目的MAC地址是主机A, 告诉主机A你请求的IP就是我,这是一个单播报文。 交换机接收到主机B发送的回应报文后,解析到源MAC地址是主机B,从而添加到自己的MAC地址表中,学习到主机B。 目的地址是主机A,之前学习到了,就直接将报文转发到主机A对应的端口,源和目的MAC地址不变。 主机A接收到主机B的回应后,就知道主机B的MAC,添加到自己的ARP表中,下次再和B通信就不需要再发ARP报文了。 整个过程可以看出, 一是没有出现交换机的MAC地址, 二是报文的源MAC地址和目的MAC地址都不变。 交换机的网络端口对应一个MAC,但通常不需要MAC地址,因为转发不需要。 如果交换机有管理功能,通常有一个管理MAC地址,对应交换机的管理单元,例如CPU。 交换机解析到某个端口接收的报文的目的地址是自己,就会把报文发给自己的CPU或管理模块。 交换机解析到主机A发送的报文的目的MAC地址,是单播地址,但是自己的MAC地址表中没有,那交换机不知道向那个端口转发,就会向自己所有的端口转发该报文,源MAC地址和目的MAC地址都不变。这样交换机所有端口下的的设备都会收到该报文,设备是交换机会继续转发,这样可能引起广播风暴,引起网络崩溃,现在交换机都有广播风暴抑制功能。如果是主机,发现目的MAC不是自己,就会丢弃该报文。 最后,如果有主机发现目的MAC地址是自己,就会按报文要求处理,只要最后发报文到交换机,交换机就会学习到它的MAC地址。 如果最终,没有主机是目的MAC地址,那就是网络不通。

Published
Categorized as linux

创建intellij idea启动图标

centos上创建intellij idea启动图标 Pycharm # cat /usr/share/applications/pycharm.desktop [Desktop Entry] Name=Pycharm GenericName=Pycharm Comment=Pycharm2019:The Python IDE Exec=sh /wjhdata/pycharm-community-2019.1.3/bin/pycharm.sh Icon=/wjhdata/pycharm-community-2019.1.3/bin/pycharm.png Terminal=false Type=Application Categories=Utility;Application IntelliJ IDEA # cat /usr/share/applications/intellij.desktop [Desktop Entry] Name=IntelliJ IDEA Comment=IntelliJ IDEA Exec=sh /wjhdata/idea-IC-191.7479.19/bin/idea.sh Icon=/wjhdata/idea-IC-191.7479.19/bin/idea.png Terminal=false Type=Application Categories=Utility;Application

Published
Categorized as linux, tool

running vncserver on centos7

install yum install tigervnc-server xorg-x11-fonts-Type1 init 使vncserver运行在5905端口. /etc/systemd/system/vncserver@:5.service [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking #相应用户user的uid. XDG_RUNTIME_DIR=”/run/user/1002″ # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ ExecStart=/usr/sbin/runuser -l <user> -c “/usr/bin/vncserver %i” PIDFile=/home/<user>/.vnc/%H%i.pid ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’ [Install]… Continue reading running vncserver on centos7

Published
Categorized as linux

How to Reboot WSL

# RUN CMD AS Administrator net stop LxssManager net start LxssManager How to Reboot WSL (Windows subsystem Linux) in Windows 10

Published
Categorized as linux