首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux安全问答(3)

1、如何启用linux下的***检测系统LIDS?    首先, 要想使LIDS设置的ACLS发挥作用,应在系统引导时把LIDS封装进内核中。这样每次系统启动到最后阶段,此设置会根据你的系统上的/etc/lids/lids.cap文件中的内容来设置全局功能,此文件中保存的是你设置ACLS。设置封装内核,在你的/etc/rc.d/rc.local文件的未尾加入如下内容:  /sbin/lidsadm –I lidsadm -S -- +RELOAD_CONF 特别要注意的是,在对LIDS做了任何修改后,都应使用上述命令重新更新LIDS的配置文件,它将重新加载下列配置文件: /etc/lids/lids.conf #ACLS配置文件 /etc/lids/lids.cap #LIDS capabilities(功能)配置文件 /etc/lids/lids.pw #LIDS密码文件 /etc/lids/lids.net # LIDS邮件警告配置文件 然后重新启动系统服务使应用改变生效。 使用如下命令打开一个LIDS终端会话: # lidsadm -S -- -LIDS 在完成对文件或数据的修改后,你应通过如下命令重新启用LIDS: # lidsadm -S -- +LIDS 2、保护文件为只读。 # lidsconf -A -o /some/file -j READONLY 此命令保证一旦LIDS启用,任何人都不能修改或删除此文件。如果你在lids自由会话终端方式下,你就可以修改/some/file指定的文件,只要此分区不是挂载为只读方式。应用时用实际的文件路径代替/some/file。 3、保护一个目录为只读。 # lidsconf -A -o /some/directory -j READONLY 此命令用保证一旦LIDS启用,任何人都不能列出或删除此目录及其中的内容。如果你在自由会话终端方式下,你就可以修改/some/directory目录,只要分区不是挂载为只读方式。例如,你可以设置保护/etc/目录为只读方式: lidsconf -A -o /etc -j READONLY 这里要告别注意的是:当你设定/etc目录为只读后,当你想挂载文件系统时,你应该删除/etc/mtab文件,然后使用它的一个符号连接/proc/mounts。同时,你必须修改你的初始化脚本,使用“-n”选项来设置任何mount和umount命令。这个选项告诉mount和umount不更新/etc/mtab文件。例如,你发现在你的初始化脚本中有一行:mount -av -t nonfs,nproc,应把它改为:mount -av -n -t nonfs,nproc。 4、隐藏任何人都看不到的文件或目录。 # lidsconf -A -o /some/file_or_directory -j DENY 此设置将使用任何人甚至root用户都不能访问它,如果是一个目录,那么此目录下的文件、目录都将隐藏,文件系统也一样。 5、指定某些特定的程序以只读方式访问一些非常敏感的文件。 比如在系统登录时要访问/etc/shadow文件,我可以指定某些程序能在系统认证时使用它,如login、ssh、su和vlock。例如,你可以只允许login以只读方式访问/etc/shadow文件: # lidsconf -A -s /bin/login -o /etc/shadow -j READONLY 6、以根用户身份启动一个服务在指定的端口上运行。 服务运行在指定的端口(1024以下)上需要CAP_NET_BIND_SERVICE功能。如果你禁止了此功能在/etc/lids/lids.cap文件中,你就不能以根用户身份启动任何一个服务运行在指定的端口上。你可以授与某个程序有此功能: # lidsconf -A -s /usr/local/bin/apache -o CAP_NET_BIND_SERVICE 80 -J GRANT 或者在LIDS_GLOBAL被禁止时启用此服务。 7、在LIDS启用时,保证X Windows系统能工作。 X server必须使用CAP_SYS_RAWIO功能才能在LIDS启用时工作。  # lidsconf -A -s /path/to /your/x-server -o CAP_SYS_RAWIO -j GRANT 8、启用ssh和scp。 缺省状态下,ssh和scp通过指定的端口创建远程连接,它需要CAP_NET_BIND_SERVICE功能,因此你可以授与CAP_NET_BIN_SERVICE功能给ssh:  # lidsconf -A -s /usr/bin/ssh -o CAP_NET_BIN_SERVICE 22 -J GRANT 9、设置限制访问时间

02
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL · 引擎特性 · MySQL内核对读写分离的支持

    读写分离的场景应用 随着业务增长,数据越来越大,用户对数据的读取需求也随之越来越多,比如各种AP操作,都需要把数据从数据库中读取出来,用户可以通过开通多个只读实例,将读请求业务直接连接到只读实例上。使用RDS云数据库的读写分离功能,用户只需要一个请求地址,业务不需要做任何修改,由RDS自带的读写分离中间件服务来完成读写请求的路由及根据不同的只读实例规格进行不同的负载均衡,同时当只读实例出现故障时能够主动摘除,减少对用户的影响。对用户达到一键开通,一个地址,快速使用。 MySQL内核为读写分离的实现提供了支持,包括通过系统variable设置目标节点,session或者是事务的只读属性,等待/检查指定的事务是否已经apply到只读节点上,以及事务状态的实时动态跟踪等的能力。本文会带领大家一起来看看这些特征。说明一下,本文的内容基于RDS MySQL 5.6与RDS MySQL 5.7。

    04

    docker实战入门(3)基本概念

    docker的镜像是一个层叠的只读文件系统,最底端是一个引导文件系统(bootfs),这很像典型的linux的引导文件系统,docker用户几乎永远不会和引导文件系统有交互,实际上当一个容器启动后将会被移动到内存中,而引导文件系统将会被卸载。而docker镜像的第二层是root文件系统(rootfs),root文件系统可以是一种或者多种操作系统,比如ubuntu或者centos,在传统的文件系统中,root文件系统会最先以只读的方式加载,当引导结束并完成完整性检查之后它才会被切换到读写模式。但是在docker中,rootfs永远是只读状态。 并且docker利用联合加载技术(union mount)又会在rootfs之上加载更多的只读文件系统。联合加载指的是一次同时加载多个文件系统,但是在外面看起来只能看到一个文件系统,联合加载会将各层文件系统叠加在一起,这样最终的文件系统会包含所有的底层文件和目录,docker将这样的文件系统称为镜像。

    010

    【深入浅出C#】章节 2:数据类型和变量:变量和常量的声明和初始化

    变量在程序中扮演着重要的角色。它们用于存储和操作数据,为程序提供了灵活性和可扩展性。通过变量,我们可以方便地存储和访问不同类型的数据,如整数、浮点数、字符串等。变量还允许数据在程序的不同部分之间进行传递和共享,实现数据的交流和共享。同时,变量也用于对数据进行各种操作和计算,如算术运算、逻辑判断等,实现对数据的处理和转换。此外,变量还可以用于跟踪程序的状态和条件,根据不同的条件执行不同的操作或决策,实现程序的流程控制和逻辑控制。变量的可变性和灵活性使得程序的行为可以随着变量的值的改变而调整,满足不同的需求和条件。合理地管理变量可以提高程序的内存利用率,避免内存泄漏和资源浪费。因此,了解变量在程序中的作用和重要性对于设计和编写高质量、高效率的程序至关重要。

    02

    C语言编程程序的内存如何布局

    C语言程序在内存中各个段的组成   C语言程序连接过程中的特性和常见错误   C语言程序的运行方式   一:C语言程序的存储区域   由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。   C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域:   1.代码段(Code或Text)   代码段由程序中执行的机器代码组成。在C语言中,程序语句进行编译后,形成机器代码。在执行程序的过程中,CPU的程序计数器指向代码段的每一条机器代码,并由处理器依次运行。   2.只读数据段(RO data)   只读数据段是程序使用的一些不会被更改的数据,使用这些数据的方式类似查表式的操作,由于这些变量不需要更改,因此只需要放置在只读存储器中即可。   3.已初始化读写数据段(RW data)   已初始化数据是在程序中声明,并且具有初值的变量,这些变量需要占用存储器的空间,在程序执行时它们需要位于可读写的内存区域内,并具有初值,以供程序运行时读写。   4.未初始化数据段(BSS)   未初始化数据是在程序中声明,但是没有初始化的变量,这些变量在程序运行之前不需要占用存储器的空间。   5.堆(heap)   堆内存只在程序运行时出现,一般由程序员分配和释放。在具有操作系统的情况下,如果程序没有释放,操作系统可能在程序(例如一个进程)结束后回收内存。   6.栈(stack)   栈内存只在程序运行时出现,在函数内部使用的变量、函数的参数以及返回值将使用栈空间,栈空间由编译器自动分配和释放。   C语言目标文件的内存布局   看一个例子:   int a = 0; //全局初始化区,。data段   static int b=20; //全局初始化区,。data段   char *p1; //全局未初始化区 .bss段   const int A = 10; //.rodata段   void main(void)   {   int b; //栈   char s[] = "abc"; //栈   char *p2; //栈   static int c = 0; //全局(静态)初始化区 .data段   char *p3 = "123456"; //123456\0在常量区,p3 在栈上。   p1 = (char*) malloc(10);//分配得来的10和20个字节的区域就在堆区   p2 = (char*) malloc(20);   strcpy(p1, "123456"); //123456\0 在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方   }    代码段、只读数据段、读写数据段、未初始化数据段属于静态区域,而堆和栈属于动态区域。代码段、只读数据段和读写数据段将在链接之后产生,未初始化数据 段将在程序初始化的时候开辟,而堆和栈将在程序的运行中分配和释放。C语言程序分为映像和运行时两种状态。在编译-连接后形成的映像中,将只包含代码段 (Text)、只读数据段(RO Data)和读写数据段(RW Data)。在程序运行之前,将动态生成未初始化数据段(BSS),在程序的运行时还将 动态形成堆(Heap)区域和栈(Stack)区域。一般来说,在静态的映像文件中,各个部分称之为节(Section),而在运行时的各个部分称之为段 (Segment)。如果不详细区分,可以统称为段。   知识点:   C语言在编译和连接后,将生成代码段(Text)、只读数据段(RO Data)和读写数据段(RW Data)。在运行时,除了以上三个区域外,还包括未初始化数据段(BSS)区域和堆(Heap)区域和栈(Stack)区域。   二:C语言程序的段   1.代码段(code或text)   代码段由各个函数产生,函数的每一个语句将最终经过编绎和汇编生成二进制机器代码(具体生生哪种体系结构的机器代码由编译器决定)。   2.只读数据段(RO Data)   只读数据段由程序中所使用的数据产生,该部分数据的特点是在运行中不需要改变,因此编译器会将该数据段放入只读的部分中。C语言中的只读全局变量,只读局部变量,程序中使用的常量等会在编译时被放入到只读数据区。    注意:定义全局变量const char a[100]={"ABCDEFG"};将生成大小为100个字节的只读数据区,并使用“ABCDEFG”初 始化。如果定义为:const char a[ ]={"ABCDEFG"};则根

    02
    领券