Redis 未授权访问缺陷可轻易导致系统被黑

2015-11-15 杜世伟 Redis

        Redis 默认情况下,会绑定在 0.0.0.0:6379,并且没有开启auth认证,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。

        解决办法:

        a.配置bind选项, 限定可以连接Redis服务器的IP(如:bind 127.0.0.1), 并修改redis的默认端口6379(如:port 6300)
        b.配置AUTH, 设置密码开启密码验证, 密码会以明文方式保存在redis配置文件中.
        c.配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难度
        d.好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf

阅读全文>>

标签: redis linux

评论(0) 浏览(10102)

linux pip 安装使用详解

2015-11-2 杜世伟 Python

pip类似RedHat里面的yum,php中composer, 安装Python包非常方便。本节详细介绍pip的安装、以及使用方法。
1、pip下载安装
1.1 pip下载

# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

1.2 pip安装

# tar -xzvf pip-1.5.4.tar.gz
# cd pip-1.5.4
# python setup.py install

阅读全文>>

标签: linux install python pip

评论(0) 浏览(11895)

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL

2015-10-27 杜世伟 Mysql

今天使用Mysql中,通过create function创建function 的时候出现以下报错,特总结如下:
        ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
中文的大概意思是:
        此function函数在其声明中没有任何确定,NO SQL或READS SQL DATA,并且启用了二进制日志记录(您可能希望使用较不安全的log_bin_trust_ function_creators变量

阅读全文>>

标签: mysql function create

评论(0) 浏览(4348)

ansible 安装配置与使用

2015-10-20 杜世伟 ansible

ansible安装配置与简单使用
前言:

AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建。其Ansible平台是一个开源的配置及计算机管理平台。可实现多节点的软件部署,执行特定任务并进行配置管理。

Ansible 跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一个统一的界面来协调所有的IT自动化功能,因此 Ansible的系统更加易用,部署更快。受管理的节点无需安装额外的远程控制软件,由平台通过SSH(Secure SHell)对其进行管理,因此十分方便。其模块支持JSON等标准输出格式,可采用任何编程语言重写。

Ansible可以让用户避免编写脚本或代码来管理应用,同时还能搭建工作流实现IT任务的自动化执行。IT自动化可以降低技术门槛及对传统IT的依赖,从而加快项目的交付速度。

ansible有如下优点:       
1、轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可        
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行        
3、使用python编写的,维护更简单        
4、支持sudo

阅读全文>>

标签: linux shell python ansible

评论(0) 浏览(12969)

git 版本回退

2015-9-27 杜世伟 git

现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:

Git is a distributed version control system.
Git is free software distributed under the GPL.
然后尝试提交:

$ git add readme.txt
$ git commit -m "append GPL"
[master 3628164] append GPL
 1 file changed, 1 insertion(+), 1 deletion(-)
像这样,你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

现在,我们回顾一下readme.txt文件一共有几个版本被提交到Git仓库里了:

阅读全文>>

标签: linux git reset reflog log

评论(0) 浏览(11599)

python lambda 表达式

2015-9-9 杜世伟 Python

python lambda表达式

lambda表达式是一行函数。

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

它们在其他语言中也被称为匿名函数。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。

阅读全文>>

标签: python lambda map list zip

评论(0) 浏览(13522)

linux sed 文件中每行的开头添加引号末尾处添加引号逗号

2015-9-7 杜世伟 sed

linux sed 文件中每行的开头添加引号末尾处添加引号逗号

#cat > input.txt <<EOF 

> 1
> 2
> 3
> 4
> 5
> 6
> EOF

修改后文件内容变成:
"1",
"2",
"3",
"4",
"5",
"6",

阅读全文>>

标签: linux sed

评论(0) 浏览(11402)

Python 运算符"=="和"is"的差别分析

2015-9-6 杜世伟 Python

前言
在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、
python type()(数据类型)和value(值)。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
Python中比较两个对象是否相等,一共有两种方法,简单来说,它们的区别如下:
is是比较两个引用是否指向了同一个对象(引用比较)。
==是比较两个对象是否相等。

阅读全文>>

标签: python is print

评论(0) 浏览(12812)

Git 常用命令总结

2015-9-4 杜世伟 git

git init
     在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
 
git clone
     获取一个url对应的远程Git repo, 创建一个local copy.
     一般的格式是git clone [url].
     clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定.
 
git status
     查询repo的状态.
     git status -s: -s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言.
 
git log
     show commit history of a branch.
     git log --oneline --number: 每条log只显示一行,显示number条.
     git log --oneline --graph:可以图形化地表示出分支合并历史.
     git log branchname可以显示特定分支的log.
     git log --oneline branch1 ^branch2,可以查看在分支1,却不在分支2中的提交.^表示排除这个分支(Window下可能要给^branch2加上引号).
     git log --decorate会显示出tag信息.
     git log --author=[author name] 可以指定作者的提交历史.
     git log --since --before --until --after 根据提交时间筛选log.
     --no-merges可以将merge的commits排除在外.
     git log --grep 根据commit信息过滤log: git log --grep=keywords

阅读全文>>

标签: git pull reset log status init commit

评论(0) 浏览(13709)

Shell 脚本加密的方法

2015-8-27 杜世伟 shell

Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束)。

shc 安装 

yum -y install shc 

参数介绍:
#shc -h
shc Version 3.9.6, Generic Shell Script Compiler
shc GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-o outfile] [-rvDUCABh] -f script

阅读全文>>

标签: linux yum install shc

评论(0) 浏览(16720)

Powered by emlog 沪ICP备2023034538号-1