月度归档: 2016 年 9 月

  • git 保存用户名与密码 图文教程

    git config --global credential.helper cache

    … which tells git to keep your password cached in memory for (by default) 15 minutes. You can?set a longer timeout?with:

    记住密码一个小时:

    git config --global credential.helper "cache --timeout=3600"

    Windows客户端保存密码:

    git config --global credential.helper winstore

    或者手动修改 .gitconfig文件:

    [credential]
        helper = winstore
    git config --global credential.helper store
  • Cloudflare 免费 CDN 开启使用 图文教程

    Cloudflare 免费 CDN 开启使用 图文教程

    前面我们写了CloudFlare 域名解析实例 图文教程,有些小伙伴还不知道如何使用Cloudflare的免费CDN。

    一般来讲,如果你的网站和博客的空间放在美国或者其他的国家的话,国内用户访问的速度会慢于那些空间放在国内的。当然这也不能够一概而论,也有人买了个垃圾国内空间,打开速度还不如国外空间的网站呢。

    网站博客放在国外的主机上,如果舍得花钱,购买好的主机、VPS,好的带宽和性能好的服务器,那么你的网站访问速度应该和国内的一般网站的打开速度没有太大的区别。但是让人纠结的是:钱不是问题,问题没有钱。

    Cloudflare?免费DNS的CDN节点主要分布于荷兰、美国、香港、法国、日本等国家和地区,但是cloudflare在亚太地区的CDN节点却大大可以加速你在美国或者欧洲的主机访问速度。CloudFlare已经将路由调整到了香港或者日本,并且不断增加在亚洲增加服务器分布,来优化调整针对亚洲客户的访问。

    Cloudflare 免费 CDN 开启方法非常简单,只需在解析的时候把,Status一栏点成黄色即可。

    20160927102500

    CloudFlare 使用 免费SSL证书 图文教程

  • Chevereto Nginx 伪静态Rewrite规则

    Chevereto 是目前最为强大的 PHP 图床系统,通过它可部署多用户公开或私有的图片存储服务,现在 Chevereto 出了免费的版本,小伙伴可以围观一下。

    https://github.com/Chevereto/Chevereto-Free

    Chevereto 默认提供基于 Apache 环境的伪静态规则,如果服务器是 Nginx 则需要设置以下Rewrite 伪静态规则:

    # Image not found replacement
    location ~* (jpe?g|png|gif) {
            log_not_found off;
            error_page 404 /content/images/system/default/404.gif;
    }
    # CORS header (avoids font rendering issues)
    location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
            add_header Access-Control-Allow-Origin "*";
    }
    # Pretty URLs
    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }
    location /admin {
        try_files $uri /admin/index.php?$args;
    }
  • Debian下安装locale并设置zh_CN.UTF-8

    今天在使用Ramnode Debian8 Minal 上安装amh安装面板时,中文部分出现了乱码。原因是可能是服务器上没有安装utf8编码导致的。下面我们说一下安装方法。

    在Debian中安装locales的方法如下:

    通过apt-get install locales命令安装locales包

    安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale。

    增加新的locale也很简单,用dpkp-reconfigure locales重新配置locale即可。

    我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen文件中,再运行locale-gen命令即可生成新的locale。再通过设置上面介绍的LC_*变量就可设置系统的locale了。下是一个locale.gen文件的样例。

    # This file lists locales that you wish to have built. You can find a list# of valid supported locales at /usr/share/i18n/SUPPORTED. Other# combinations are possible, but may not be well tested. If you change# this file, you need to rerun locale-gen.#zh_CN.GBK GBKzh_CN.UTF-8 UTF-8
    在安装了locale支持的系统中,在/usr/share/locale目录下保存locale的信息,在/usr/share/consolefonts目录下保存字体信息,在/usr/lib/gconv目录下保存字符转换模块的信息。总结:如果要在Linux下正确显示中文信息,需要做以下工作。

    系统本身要有国际化支持,Linux的国际化支持是很完善的。

    安装本地locale,如:zh_CN.GB2312、zh_CN.UTF-8等。

    安装中文字体,如:文泉驿和文鼎的中文字体等。

    设置中文的环境变量,如:LANG=zh_CN.GB2312、LANG=zh_CN.UTF-8等。有几个地方都可以设置locale环境变量。

    一个是在X Window的登录管理器中可以设置,如GDM、KDM。

    一个是在X Window Session初始化时设置,在/etc/X11/Xsession.d目录下的所有脚本在X Window Session初始化时都会自动运行,所以我们可把export LANG=”zh_CN.GB2312″这条设置命令放到任意的脚本中。建议放到中文输入法的启动脚本中。示例:(这是我手工创建的启动fcitx中文输入法的脚本91fcitx)

    debian:/etc/X11/Xsession.d# cat 91fcitxexport LANG=”zh_CN.UTF-8″export XMODIFIERS=”@im=fcitx”export XIM_PROGRAM=fcitxexport XIM=fcitxfcitx&
    在shell的启动脚本中设置,如在.bashrc、.bash_profile等文件中直接加入export LANG=”zh_CN.UTF-8″命令。

    还可以在shell中直接用export LANG=”zh_CN.UTF-8″命令设置。但如果使用该命令设置的环境变量只在当前shell中有效。

    在应用程序中配置使用中文显示。

    apt-get install locales
    dpkg-reconfigure locales

    按空格键选中要安装的语言支持:

    点击查看原图

    locale -a

    C
    POSIX
    zh_CN.utf8

    OK

  • WordPress后台插件更新模块任意目录遍历导致DOS漏洞补丁

    WordPress后台插件更新模块任意目录遍历导致DOS漏洞补丁

    刚刚,老季收到了阿里云主机发来的邮件,提示我的网站出现了一个漏洞,具体信息为:wordpress后台插件更新模块任意目录遍历导致DOS漏洞。

    漏洞描述:WordPress后台文件/wp-admin/includes/ajax-actions.php中,对代码插件路径的输入参数plugin未进行正确的规范化转义,导致黑客可传入特殊路径,造成拒绝服务。

    方法一:升级到最新版本

    WordPress 新版已解决这个问题,升级到最新版即可。

    方法二:使用下面方法进行手动修复。

    修复步骤:

    • 1.在文件ajax-actions.php的3068行附近:

    $plugin = urldecode( $_POST['plugin'] );

    在这段代码后面加上:

    $plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST['plugin'] ) ) );
    • 2.在文件ajax-action.php中大概30004行:

    if ( $plugin_update_data === true ) {
        wp_send_json_error( $status );
    }

    修改为:

    if ( $plugin_update_data === true ) {
    $status['error'] = __( 'Plugin update failed.' );
    wp_send_json_error( $status );
    }
    • 3.找到3025行:

    if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
      $status['error'] = $wp_filesystem->errors->get_error_message();
        }
    wp_send_json_error( $status );
     }
    }

    修改为:

    if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
         $status['error'] = $wp_filesystem->errors->get_error_message();
       }
    wp_send_json_error( $status );
    } else {
    // An unhandled error occured
    $status['error'] = __( 'Plugin update failed.' );
    wp_send_json_error( $status );
    }
    }

    好了,修改保存上传之后,wordpress后台插件更新模块任意目录遍历导致DOS漏洞就修复好了!

  • Linux ls以K、M、G为单位查看文件大小 图文教程

    Linux ls以K、M、G为单位查看文件大小 图文教程

    Linux中如何使用ls命令查看文件并以为大小KBMBGB单位查看文件大小

    man ls

    -h, –human-readable print sizes in human readable format (e.g., 1K 234M 2G)

    ls -l

    total 1649208
    -rw-r–r– 1 root root 12486773 May 31 11:14 Discuz_X3.2_SC_UTF8.zip
    -rw-r–r– 1 root root 436016467 Sep 21 15:30 jiloc.com.20160921.sql

    自动以MB兆,GB显示

    ls -lh

    total 1.6G
    -rw-r–r– 1 root root 12M May 31 11:14 Discuz_X3.2_SC_UTF8.zip
    -rw-r–r– 1 root root 419M Sep 21 15:31 jiloc.com.20160921.sql

  • CloudFlare 域名解析实例 图文教程

    前面我们介绍了easypanel 绑定域名 在线解压文件 建立索引 图文教程,但是一些小伙伴还是不知道如何解析域名。

    namesilo 注册域名 使用优惠码 免费WHOIS保护 图文教程

    我们这里就写个教程教大家如何解析域名,我们这里使用的是Cloudflare的DNS。

     

    Cloudflare DNS解析域名实例教程

    我们这里需要解析的域名是:laoji.org

    大家通常会有个误区,会认为laoji.org ?,www.laoji.org

    会是同一个域名,其实不然。它是2个不同的域名及地址,所以大家解析的时候要注意!!!

    • 添加A记录,laoji.org就是短域名,主机记录:@ , IP地址对应填入即可。

    20160921144849

    • 添加A记录,www.laoji.org,主机记录:www , IP地址对应填入即可。

    20160921145119

    保存完成。

    如果是新购买的域名,解析生效时间可能会比较长,48小时内生效。

    老域名一般可以即时生效,正常1-2小时。

     

    如何检查域名是否生效?

    开始–运行–cmd

    20160921145749

    ping laoji.org

    20160921145856

    如果IP与我们解析的地址相同即为域名解析已生效,否则请检查解析配置,或域名还未生效。

  • AMH面板中 mysqldump备份数据数据 指定.sock 实例

    安装完amh面板后发现里面的mysqldump命令出现了问题,后台查资料发现amh的mysql 使用的 socket 其实是:

    /tmp/mysql-generic-5.5.40.sock

    加一个-S参数指定sock即可。

    /usr/local/mysql-版本/bin/mysqldump -u db_username -p dbname -S /tmp/mysql-版本.sock > backupfile.sql

    /usr/local/mysql-generic-5.5.40/bin/mysqldump -ulaoji -p laoji > wp-content/uploads/laoji.sql
    Enter password:
    mysqldump: Got error: 2002: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) when trying to connect

    重新指定.sock即可:

    /usr/local/mysql-generic-5.5.40/bin/mysqldump -ulaoji -p laoji -S /tmp/mysql-generic-5.5.40.sock > wp-content/uploads/laoji.sql
    Enter password:

  • 手撕包菜SSBC DHT磁力搜索程序 PHP前端 安装使用 图文教程

    前面我们介绍了手撕包菜的的安装教程,但是群里有一些小伙伴想使用PHP的前端,但是不知道如何下手。

    下面我们就写一个教程给大家,我们这里PHP环境就直接yum安装。

    本教程仅供学习使用,PHP前端由群友提供,老季并不能保证没有木马等其他信息,请自行斟酌!!!

    手撕包菜SSBC(DHT磁力链源码) 2016.8月版 安装图文教程

    手撕包菜SSBC(DHT磁力链源码) 前端使用 Nginx反向代理 80端口 图文教程

    我们这里的安装环境为Vultr?CentOS 7 x64

    CPU:1 vCore ? ?Ram:768 MB ? ?Storage:15 GB SSD
    • 安装必备环境,准备工作

    yum update -y
    yum install screen wget unzip gcc gcc-c++ python-devel -y
    systemctl stop firewalld.service ;?systemctl disable firewalld.service
    • ?安装配置php、mysql环境

    Centos 7 Yum安装 Nginx 图文教程

    CentOS yum安装PHP5.6 图文教程

    CentOS 5, CentOS 6, CentOS 7, RHEL 5, RHEL 6, RHEL 7, and Fedora 21 yum 安装 MariaDB 图文教程

    创建网站环境及目录:

    mkdir /wwwroot/laoji.org -p
    echo '<?php phpinfo();' > /wwwroot/laoji.org/Info.php

    配置php-fpm环境:

    vi /etc/nginx/php-fpm.conf

    添加如下内容:

     location ~ \.php$ {
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #这里写错可能会导致404,403 fobidden错误
         include fastcgi_params;
     }

    修改nginx配置文件, /etc/nginx/nginx.conf:

    ?vi /etc/nginx/nginx.conf

    修改root目录:

    root /wwwroot/laoji.org;

    添加:

    include php-fpm.conf;

    20160919165555

    添加程序的rewrite规则:

    location / {
        if (!-e $request_filename){
            rewrite (.*) /index.php;
        }
    }
    location ^~ /protected {
        deny all;
    }
    nginx -t
    systemctl restart nginx.service

    通过IP访问确定PHP正常工作。

    20160919150831

    • 获取ssbc安装包并解压

    wget https://github.com/78/ssbc/archive/master.zip ; unzip master.zip ; cd ssbc-master/

    解压后你会发现在/root目录下有个文件夹ssbc-master

    • 安装python爬虫运行环境

    yum install -y MySQL-python python-pip mariadb mariadb-devel mariadb-server zlib-devel 
    pip install pygeoip 
    wget https://bootstrap.pypa.io/get-pip.py ; python get-pip.py;pip install -r requirements.txt
    • 安装Sphinx

    yum -y install unixODBC unixODBC-devel postgresql-libs php56-php-pecl-sphinx sphinx-php
    wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel7.x86_64.rpm
    rpm -ivh sphinx-2.2.9-1.rhel7.x86_64.rpm
    
    • 新建名为ssbc的数据库

     mysql -uroot -p &nbsp; &nbsp; &nbsp;#如mysql没有密码直接回车即可

    20160919155637

    • 建立文件夹,创建以下文件夹并赋予755权限

    mkdir -p /data/bt/index/db /data/bt/index/binlog /tem/downloads
    chmod 755 -R /data
    chmod 755 -R /tem
    • 生成索引

    cd /root/ssbc-master/
    indexer -c sphinx.conf --all //(all 前面是空格减号减号) 
    searchd --config ./sphinx.conf  //(config前是空格减号减号)
    • 配置Python爬虫,运行爬虫、索引

    cd /root/ssbc-master/workers/
    python manage.py makemigrations
    python manage.py migrate

    运行爬虫:

    screen -S simdht
    cd /root/ssbc-master/workers/
    python simdht_worker.py
    

    看到如下图所示的即为运行正常:
    20160919154914

    ctrl+a,d退出screen

    运行索引:

    screen -S index
    cd /root/ssbc-master/workers/
    python index_worker.py

    20160919155418

    ctrl+a,d退出screen

    运行后台:

    cd /root/ssbc-master/
    python manage.py createsuperuser           #创建后台管理员
    python manage.py runserver 0.0.0.0:8080 >/dev/zero &            #运行后台程序
    • 上传PHP文件至 /wwwroot/laoji.org

    从群里上传PHP前端文件到 ?/wwwroot/laoji.org

    20160919160322

    设定目录权限:

    chmod 777 /wwwroot/laoji.org/tmp/ -R

    浏览器打开即可访问:
    20160919160841

    20160919165258

    20160919165408

    教程先到这里,如果有什么疑问的话,大家可以在群里一起交流学习。

  • 小内存VPS Mysql优化配置 图文教程

    一般mysql大家都知道的特别占内存的 有些穷站长用64m的建站 mysql根本没有办法玩,今天写个优化方案给大家。

    vi?/etc/my.cnf

    也可以利用winscp之类的软件

    优化内容如下

    [mysqld]
    port = 3306
    socket = /var/run/mysqld/mysqld.sock
    skip-locking
    key_buffer = 16K
    query_cache_limit = 256K
    query_cache_size = 4M
    max_allowed_packet = 1M
    table_cache = 8
    max_connections = 16
    thread_concurrency = 2
    sort_buffer_size = 64K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K
    net_buffer_length = 2K
    thread_stack = 64K
    skip-bdb
    skip-innodb
    [mysqldump]
    quick
    max_allowed_packet = 16M
    [mysql]
    no-auto-rehash
    #safe-updates
    [isamchk]
    key_buffer = 8M
    sort_buffer_size = 8M
    [myisamchk]
    key_buffer = 8M
    sort_buffer_size = 8M
    [mysqlhotcopy]
    interactive-timeout

    ps::随着mysql的更新不清楚会增加什么 请不要 直接替换,可以修改对应参数

  • MySQL代码执行漏洞 可本地提权

    来自波兰的安全研究人员Dawid Golunski刚刚发现了两个MySQL的0-day漏洞,影响到所有版本分支、默认配置的MySQL服务器(5.7、5.6和5.5),包括最新版本。攻击者可以远程和本地利用漏洞。攻击者成功利用漏洞后,可以ROOT权限执行代码,完全控制MySQL数据库。攻击者仅需有FILE权限即可实现ROOT提权,进而控制服务器。

    409809386644.jpg

    漏洞编号:

    CVE-2016-6662与CVE-2016-6663

    漏洞影响:

    MySQL ?<= 5.7.15 ? ? ? 远程代码执行/ 提权 (0day)

    5.6.33

    5.5.52

    MySQL分支亦受影响,包括:

    MariaDB

    PerconaDB

    漏洞介绍:

    CVE-2016-6662漏洞可令来自远程或本地的攻击者,往MySQL设置文件(my.cnf)中注入自定义的数据库设置。该问题仅影响到默认设置下的MySQL服务器,从漏洞利用步骤来看,在数据库重启后即可触发。通常在系统更新、包更新等操作期间,数据库服务器都会重启。

    认证访问MySQL数据库(通过网络连接或者如phpMyAdmin一类web界面),以及SQL注入都可作为漏洞利用方式——尤其SQL注入增加了该漏洞的风险。攻击者成功利用漏洞后,就能以root权限执行任意代码,并达到完全控制MySQL服务器的目的。

    CVE-2016-6663漏洞尚未公开,实际上这是CVE-2016-6662的一个变体——同样是在root权限下进行远程代码执行(据说甚至不需要有FILE权限)。

    修复方案:

    MariaDB和PerconaDB已经发布补丁修复漏洞,Oracle方面则需要等到下一波推送的10月关键补丁更新,具体时间是10月18日。

    Golunski另外也提供了临时缓解漏洞危害的方法:

    “应该确保,MySQL配置文件不受mysql用户控制,并建立root权限、不使用的、伪装的my.cnf文件。”

    但这仅是变通方案,用户应在补丁发布后立即更新。

    POC链接http://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html

    有关为何Oracle要到10月修复漏洞的问题:

    Oracle应该算是家严格遵守安全更新计划的企业,他们发布安全更新的频率是每3个月1次——上一次Oracle关键补丁更新是在7月19日。Golunski表示,他向Oracle上报这两个漏洞的时间是7月29日,Oracle方面已经了解到该漏洞的存在性,预计将在10月18日发布关键补丁更新。

    Golunski表示:“PerconaDB和MariaDB都已经在8月30日修复这两个漏洞…自上报问题以来,已经超过40天时间,补丁也已经公开,所以我决定公开漏洞(带部分PoC),在Oracle发布下一波关键补丁更新之前,也能够起到警示用户有关其风险性的作用。”

    来自FreeBuf.COM

  • Linux查看当前系统版本 : cat /etc/issue

    一行很简单的命令,就可以让立刻知道,是centos还是ubuntu,还是debian。

    cat /etc/issue
WeChat