技术奇客ITGeeker.net的博客

  • CentOS6.5 64bit如何安装DNS服务dnsmasq加速网站访问

    dnsmasq是个非常小巧的dns服务器,可以解决小范围的dns查询问题,建议内网终端不要超过50台主机为佳。刚刚调整了一下内容,重新发布此文章。
    Dnsmasq_icon.svg

    Dnsmasq是一个很实用的小工具,解决局域网的需求看来非常合适,特别是网关和防火墙上。ITGeeker建议可以使用它来:

    1. 优先使用本地自定义dns和host,可以针对不同的网站使用不同的DNS,以提高网页打开速度。
    2. 提供dhcp服务,方便内网主机和移动设备管理。

    1. YUM安装方法

    非常方便,但版本比较低,目前只能安装dnsmasq x86_64 2.48-13.el6,但官方最新版已到2.71

    yum install dnsmasq

    2. 编译安装dnsmasq

    cd /tmp && wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.71.tar.gz 
    tar -zxvf dnsmasq-2.71.tar.gz && cd dnsmasq-2.71
    make install
    #也很容易,安装完成
    
    cp dnsmasq.conf.example /etc/dnsmasq.conf
    mkdir -p /etc/dnsmasq.d   #这个目录备用

    3. dnsmasq配置

    主要有三个文件:

    /etc/dnsmasq.conf
    /etc/dnsmasq.d/resolv.dnsmasq.conf
    /etc/dnsmasq.d/dnsmasq.hosts

    第一个是系统默认必须的,后面两个可以自行建立,放置的路径也可以根据自己需要定义。

    vi /etc/dnsmasq.conf

    自带的配置文件有很多说明,可以直接在上部加入以下内容,保留之前的可以当帮助文件用,也可直接删除原先的内容。

    #ITGeeker每次开启都提示错误,目的是让dnsmasq读取目录内所有配置文件
    #conf-dir=/etc/dnsmasq.d
    
    #让dnsmasq读取你设定的resolv-file
    #no-resolv
    resolv-file=/etc/dnsmasq.d/resolv.dnsmasq.conf
    
    no-poll
    strict-order
    
    #不读取系统hosts,读取你设定的
    no-hosts
    addn-hosts=/etc/dnsmasq.d/dnsmasq.hosts
    
    #dnsmasq日志设置
    log-queries
    log-facility=/var/log/dnsmasq.log
    
    #dnsmasq缓存设置
    cache-size=1024
    
    #单设置127只为本机使用,加入本机IP为内部全网使用
    listen-address=127.0.0.1,192.168.188.199

    在/etc/dnsmasq.d目录下新建2个文件

    vi /etc/dnsmasq.d/resolv.dnsmasq.conf

    国内快的DNS也就这些了,谷歌的8.8.8.8这两天有点慢,甚至ping不同,可能和香港和越南的光纤断裂有关,所以暂时注销了。

    #nameserver 127.0.0.1   不应该添加
    nameserver 202.96.209.5
    nameserver 202.96.209.133
    nameserver 223.5.5.5
    nameserver 223.6.6.6
    nameserver 114.114.114.114
    nameserver 8.8.4.4
    #nameserver 8.8.8.8

    vi /etc/dnsmasq.d/dnsmasq.hosts

    给出以下样本,ITGeeker建议自己制作一个最新好用的。

    173.194.120.88   0.docs.google.com
    216.239.32.39    0.docs.google.com
    173.194.120.88   0.drive.google.com
    216.239.32.39    0.drive.google.com
    ......

    dnsmasq启动脚本

    编译安装比较麻烦的就是这件事了,当然也可直接手动操作:

    启动: /usr/local/sbin/dnsmasq
    验证:netstat -tunlp|grep 53
    关闭:killall -KILL dnsmasq
    重启: pkill -9 dnsmasp && /usr/local/sbin/dnsmasq -h

    还是编辑一个启动脚本吧

    vi /etc/init.d/dnsmasq

     

    #!/bin/sh
    #
    # Startup script for the DNS caching server
    #
    # chkconfig: - 49 50
    # description: This script starts your DNS caching server
    # processname: dnsmasq
    # pidfile: /var/run/dnsmasq
    
    # Source function library.
    . /etc/rc.d/init.d/functions
    
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ ${NETWORKING} = "no" ] && exit 0
    
    dnsmasq=/usr/local/sbin/dnsmasq
    [ -f $dnsmasq ] || exit 0
    RETVAL=0
    
    # See how we were called.
    case "$1" in
      start)
            if [ $UID -ne 0 ] ; then
                echo "User has insufficient privilege."
                exit 4
            fi
            echo -n "Starting dnsmasq: "
            daemon $dnsmasq $OPTIONS
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dnsmasq
            ;;
      stop)
            if test "x`pidof dnsmasq`" != x; then
                echo -n "Shutting down dnsmasq: "
                killproc dnsmasq
            fi
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dnsmasq /var/run/dnsmasq.pid
            ;;
      status)
            status dnsmasq
            RETVAL=$?
            ;;
      reload)
            echo -n "Reloading dnsmasq: "
            killproc dnsmasq -HUP
            RETVAL=$?
            echo
            ;;
      force-reload)
            # new configuration takes effect only after restart
            $0 stop
            $0 start
            RETVAL=$?
            ;;
      restart)
            $0 stop
            $0 start
            RETVAL=$?
            ;;
      condrestart)
                if test "x`/sbin/pidof dnsmasq`" != x; then
                    $0 stop
                    $0 start
                    RETVAL=$?
                fi
                ;;
      *)
            echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
            exit 2
    esac
    
    exit $RETVAL
    

    Tips:如果你是本地编辑上传的,提示找不到文件记得

    set ff=unix

    再赋予执行的权限

    chmod +x /etc/init.d/dnsmasq

    现在可以启动和设置自动启动了

    service dnsmasq restart
    chkconfig dnsmasq on

    验证是否正确启动

    netstat -tunlp|grep 53

    验证是否正确工作

    需要命令dig和nslookup,如果没有,安装一下

    yum install bind-utils

    记得在iptables防火墙开放53端口,tcp和udp都要开

    vi /etc/sysconfig/iptables

    -A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

    将其他机器的DNS换成dnsmasq所在服务器的IP,这是关键,否则没人使用你的DNS服务。

    利用dig或者nslookup参看DNS Server是否是

    127.0.0.1或者192.168.188.199

    大功告成!!!

    /etc/dnsmasq.conf中dns和address配置范例

    如果你想使用dnsmasq的泛解析功能,ITGeeker这里提供一些范例供你参考。

    设定某些网址使用国内的DNS服务器,这里选用了上海最快的上海电信服务器,你也可以选择适合你的最快DNS服务器地址。

    #Specify DNS server China
    server=/www.freegeeker.com.cn/202.96.209.5
    server=/itgeeker.net/202.96.209.5
    server=/geekerconsulting.com/202.96.209.5
    server=/baidu.com/202.96.209.5
    server=/cn/202.96.209.5
    server=/taobao.com/202.96.209.5
    server=/weibo.com/202.96.209.5
    server=/weibo.cn/202.96.209.5
    server=/xunlei.com/202.96.209.5
    
    #Specify DNS server out of china
    server=/google.com/8.8.4.4
    server=/twitter.com/8.8.4.4
    server=/facebook.com/8.8.4.4

    dnsmasq广受好评的泛解析,可以设定局域网内的特殊网址解析,禁止的ip解析等

    #local itgeeker
    address=/local.itgeeker.com/192.168.188.199
    
    #forbid ip list
    #1. video play website
    address=/.youku.com/192.168.188.199
    address=/.tudou.com/192.168.188.199
    address=/video.sina.com.cn/192.168.188.199
    address=/.ku6.com/192.168.188.199
    address=/.funshion.com/192.168.188.199
    address=/video.sina.com.cn/192.168.188.199
    address=/video.sina.com.cn/192.168.188.199
    address=/.youku.com/192.168.188.199
    address=/.tudou.com/192.168.188.199
    

  • ITGeeker正式被黑 截图纪念一下

    不知是何方大圣,可能是你用了WP4.7.1最近爆出的漏洞,黑进来之后似乎只更改了两篇文章。还留了图片,有点类似齐天大圣的“到此一游!”。

    也承蒙看的起小站,希望没有留其它后门,最近真的没时间搞网站。看来还是要及时更新补丁。

    截图共赏:

    ITGeeker被黑纪念[dt_fancy_image type=”” lightbox=”0″ align=”” margin_top=”0″ margin_bottom=”0″ margin_right=”0″ margin_left=”0″ width=”” height=”” animation=”none” media=”” image_alt=”” hd_image=”” image=””][/dt_fancy_image]


  • 如何将一个已存在的目录转换为一个 Git 项目并托管到 GitHub 仓库

    本文只讲一件事:将一个本地维护的项目,转换为一个 Git 项目,并托管到 GitHub。

    总共以下几个步骤:

    一、 打开命令行终端,进入项目所在的本地目录,将目录初始化为一个 Git 项目

    $ git init

    此时会在目录中创建一个 .git 隐藏文件夹

    二、 将所有文件放进新的本地 git 仓库

    $ git add .

    如果你本地已经有 .gitignore 文件,会按照已有规则过滤不需要添加的文件。如果不想要添加所有文件,可以把 . 符号换成具体的文件名

    三、 将添加的文件提交到仓库

    $ git commit -m "Initial commit"

    四、 访问 GitHub

    有些时候可能要翻墙

    五、 创建一个新仓库

    为了避免冲突,先不要勾选 README 和 LICENSE 选项

    六、 在生成的项目主页上,复制仓库地址

    类似于 https://github.com/superRaytin/alipay-app-ui.git

    七、 回到命令行终端界面,将本地仓库关联到远程仓库

    $ git remote add origin https://github.com/superRaytin/alipay-app-ui.git

    可运行以下命令查看结果:

    $ git remote -v

    八、 提交代码到 GitHub 仓库

    git pull
    git branch --set-upstream-to=origin/master
    git push origin master

  • WordPress WP_Image_Editor_Imagick 指令注入 ImageMagick漏洞

    ImageMagick于2016年5月4日突然曝出 CVE-2016-3714漏洞,简单的说就是黑客利用这个漏洞在你的网站上传图片即可给你植入木马,继而达到完全操控你的服务器的目的。 ImageMagick是一个使用非常广的组件,大量厂商都在处理图片的时候调用这个程序进行处理,而且很多开源应用也在核心代码中包含了ImageMagick选项。WordPress是著名的个人博客/CMS厂商,其核心源码中使用了PHP扩展ImageMagick。受到这个漏洞的影响,在攻击者拥有一定权限的情况下,可以在Wordpress中触发任意命令执行漏洞。

    解决方案:

    官方方案:通过配置策略文件暂时禁用ImageMagick,

    可在 “/etc/ImageMagick/policy.xml” 文件中添加如下代码: [crayon-5731823321052191436154/] 当然去官网下载最新版的ImageMagick也是一个坚决方案,官方最新版地址:https://www.imagemagick.org/script/binary-releases.php 最新版本:ImageMagick-7.0.1-2

    WordPress漏洞修复-未验证是否真正解决了问题

    在wordpress/wp-includes/media.php的_wp_image_editor_choose函数内部找到: [crayon-5731823321064537302611/] 修改为下面这行:(即调换最后数组的顺序) [crayon-573182332106b691782417/] 经过修改后,在阿里云VPS验证已经找不到该漏洞了,状态为漏洞文件被修改。ITGeeker总感觉这类似一个欺骗手法,但不管怎样,云服务器不会提醒你还有漏洞未修复了。

    吐槽

    国外的安全专家为此漏洞,新开了网站https://imagetragick.com,而且持续更新内容当中,大家也可以在上面找到一些相关的解决方案。 而相比国内的某云来说,他们会通过手机短信或者邮件通知你找到了高危漏洞,而且告诉你可以“一键修复”,让你点击去修复,然后就会告诉你,你还没付钱,不能给你修,真是有点趁火打劫啊! 如果你公布一下修复方法,对于没有技术能力的,可以付费修复也还好啊,这根本太赤裸了。


  • MacBookPro网络恢复折腾记 如何使用快速Apple DNS

    1. 五国界面,不断重启 – 事故的起因

    本人使用的是MacBookPro 2012年下半年的型号,因为想调试Python程序,想在Mac OS里部署PyCharm,于是用HomeBrew安装更新,要求重装Xcode才能安装一些依赖,于是乎从APP Store直接安装了最新版本的Xcode7,之前是Xcode6.x.

    就在这个时候,笔记本产生假死状况,等待许久后,任何按键还是没有任何反应。于是乎按住电源键5秒强行关机,也不是第一次这么干了,结果重启后,就是下面的5国语言,并不断循环的重启。

    macbookpro-5-country

    2. 尝试“急求” 修复未果

    osx_recovery_command

     

     

    按住电源按键5秒钟关机,然后再按一下启动,按住Commond + R键,直到出现苹果logo和loading进度条,放开,进入恢复系统界面。

    yosemite-restart-recovery_mode-reinstall_os_x

    然后选择“磁盘工具”, 选择系统盘,点击“急救”,过一会系统告诉你已经扫描了巴拉巴拉,修复了巴拉巴拉,然后我就重启电脑,结果不是5国语言了,变成一个带问号的文件夹图标了。

    mac-folder-questionmark-screen-icon

    重新进入恢复模式,结果找不到原先的系统盘了,于是计划重新安装系统,有两个选择:

    1. 制作USB安装盘进行安装
    2. 使用系统自带的网络恢复进行自动安装

    PS:其实这里走了岔路,原因就是过分相信苹果的质量了,查阅苹果官方资料 关于 Mac 启动时您看到的屏幕 里面说这个原因是找不到启动磁盘的原因,到最后我才知道当时我的MacBooKPro的硬盘线出现问题了。如果换了硬盘线都可以不用重装系统了。

    3. U盘制作安装盘,无果

    尝试了一下网络恢复,30M的光钎电信宽带,速度很慢,只好选择U盘安装,Google一番下载了一些OS X 10.14 EI Capitan DMG文件,按照网上的方法用了很多种方法,试了好几个USB,有3.0的有2.0的,都无法启动安装盘,甚至用了老版本的OS X 10.9 DMG也没成功,在搜索中偶有看到,有人说苹果10.7之后不支持USB安装了。

    网上大多教程都是在Mac OS系统里如何制作USB安装盘的,但往往情况是,我们的OS系统已经崩溃,所以只能在Windows底下制作Mac OS X安装盘,网上唯一的工具就是TransMac,网上搜一下就有下载的,每次制作都要花上好长时间。

    结果没有一次是成功的,苹果官方也没有关于制作安装U盘的指导文件。

    4.无奈选择网络恢复 折磨的开始

    不管是Option按键或者Commond+R,都能进入网络恢复,因为此时MacBookPro找不到启动盘,就会自动启动网络恢复功能,只要你选择无线WiFi,输入密码即可。如果是插入有线的网线,记得打开路由器的DHCP,否则容易1202F等类似错误,因为MacBook Pro没被分配IP就无法联网。

    乍一看,苹果还是很人性化,免去其他麻烦,直接一联网就解决安装问题了,可这恰恰就是苹果不重视中国用户的地方,在中国实用网络恢复的噩梦。因为速度很慢,Apple也不在中国加个CDN之类。网上一搜关于MacOS网络恢复的问题,都是关于抱怨速度太慢的问题,太多的人都在被苹果蹂躏,花了同样的价格,却享受不到同样的服务质量。(另外不重视中国用户的地方是银联绑定的问题,我们稍后再表。)

    1. 苹果的恢复模式是首先给你安装恢复程序,好了就是上面恢复模式的界面,我试了一下基本要1-3个小时可以下载装好,有时也失败。中间我有一次装好恢复程序后,换了个硬盘,重启后又要重新下载,为什么不能就装到硬盘呢?此处浪费了大把时间。
    2. 装好恢复程序后,就可以点击重新安装OS X了,链接网络,验证后就可以开始安装了。但不是给你安装新版本OS,是你最初笔记本自带的系统版本。这个体积很大,心理早有准备,但苹果服务器的龟速还是打败了我。

    试了好多次,Wi-Fi,有线都试了,通常过了很久,然后就告诉你失败,会有XXXXF等错误代码;要不就是告诉你还要100多个小时,实在太慢。后来只好开着电脑整夜的下载,结果到第二天还只有一半多一点点,还预估要50多个小时,崩溃!

    5.寻求加速方法 勉强安装成功(分享的重点)

    尝试了两种比较靠谱的方法:

    1. 使用Apple DNS host加速。作者github:https://github.com/gongjianhui/AppleDNS.git
    2. V2EX DNS加速,据说专门解决苹果速度慢的问题

    5.1 Apple DNS

    第一种方法,需要python环境,需要一点点技术背景,但是不管电信/联通/移动的网络都可获得最快的苹

    果IP地址,具体可参考作者github页面。ITGeeker发现增加这些后,对手机App Store加速明显,但网络恢复加速似乎没多大帮助。

    况且这种方法需要能修改路由器的IP地址,或者你的路由器能使用dnsmasq。我的Linksys路由器刷了openwrt,所以可以添加。以下是我的30M中国电信宽带上海获得的IP加速,时间20160502:

    # Build Date: 2016-05-02T09:38:55.136000 (UTC)
    # API-1-ChinaNetCenter [ChinaNet] (Avg RTT: 7.950ms)
    115.231.23.17   se.itunes.apple.com
    115.231.23.17   su.itunes.apple.com
    115.231.23.17   upp.itunes.apple.com
    115.231.23.17   play.itunes.apple.com
    115.231.23.17   client-api.itunes.apple.com
    # API-2-ChinaCache [ChinaNet] (Avg RTT: 3.700ms)
    180.153.126.252 itunes.apple.com
    180.153.126.252 init.itunes.apple.com
    # API-HK-Akamai-1 [HongKong0] (Avg RTT: 135.150ms)
    184.87.97.50    search.itunes.apple.com
    # API-HK-Akamai-2-AMRadio [HongKong1] (Avg RTT: 140.421ms)
    104.89.141.101  radio.itunes.apple.com
    104.89.141.101  radio-activity.itunes.apple.com
    104.89.141.101  radio-services.itunes.apple.com
    # Appple Music Streaming and iOS/OS X Apps [ChinaNet-ChinaNetCenter] (Avg RTT: 8.650ms)
    183.134.12.71   aod.itunes.apple.com
    183.134.12.71   mvod.itunes.apple.com
    183.134.12.71   streamingaudio.itunes.apple.com

     

    5.2 V2EX DNS

    官方介绍:如果你的 iPhone,iPad 或是 Mac 访问 App Store 时很慢,下载很慢,那么试试将 DNS 设置为 V2EX DNS 吧,可以大幅度提高你的设备从 App Store 下载数据的速度。

    178.79.131.110

    只需要把你的本机网络连接的DNS设为此IP地址就可以了。我当时加速心切,两种加速都添加了。

    5.3 如何让Mac OS恢复程序通过指定DNS来下载

    在电脑启动的时候按住Commond+R、进入系统恢复界面后、打开实用工具、终端、输入:

    networksetup setdnsservers wi-fi 178.79.131.110

    回车确认

    原理就是通过指令修改当前Wi-Fi的DNS.如果是用网线那就需要输入:

    networksetup -setdnsservers ethernet 178.79.131.110

    如果不知道自己连接网络设备的代号,就用命令查看一下吧:

    networksetup -listnetworkserviceorder

    现在终于可以比较“快速”的装完恢复程序,大概一个多小时,我试了好几次都差不多这个速度。重新安装OS X的速度也缩短到15个小时左右,终于再开了一个晚上的电脑,第二天一早发现已经安装成功了。也不知道是该开心呢,还是只是幸运而已。

    6. 后记 一点提示

    装完之后因为版本比较低10.7 Lion版本,那就赶紧APP Store免费升级,结果碰到错误提示:

    此版本的OS X 不支持银联。

    这时需要在App Store精选页的右上角选择账号进去才能选择 “无” 也就是不绑定信用卡,在其他地方或者apple.com登入账号都是无法去掉信用卡设置的。

    这其实是苹果的一个无限循环错误,不让升级,也不让绑定,真不知道这个逻辑谁想出来的。

    重新安装的时候,还是没有发现原先的SSD,于是我装到了另外一个分区,而且换了另外一个SSD也找不到,但用硬盘盒装上后插到电脑就能使用,确认硬盘肯定没问题。于是上淘宝买了一根硬盘线,54元,换上后,终于可以找到SSD,然后使用Carbon Copy Cloner 4.1.6 clone了HD硬盘的整个分区到SSD,启动电脑,按住Option,选择SSD的分区,顺利启动。

    这时你还会发现一个问题,那就是SSD硬盘速度很慢,原因是Apple对第三方SSD没有自动开启Trim功能,那就在终端输入以下命令吧:

    su trimforce enable

    如果看到su:sorry错误,那就先打开系统的Root登入权限吧,如何操作?google吧!

     


  • Zimbra禁止接收带有加密的文件邮件 提醒病毒(Heuristics.Encrypted.PDF)

    最近碰到一个国际性大客户,一定要发送经过加密的文件,因为是合约相关的文件,对方公司有这方面要求。但是Zimbra默认是禁止接收加密的文件 – ‘Block encrypted archives’,这样当客户发送邮件过来的时候,就会把邮件自动过滤/阻止掉,然后会收到管理员的邮件:

    VIRUS ALERT

    Our content checker found

    virus: Heuristics.Encrypted.Zip

    in an email to you from probably faked sender:

    如何解决Zimbra此类问题?

    reference:Emails are blocked with the notification VIRUS (Heuristics.Encrypted.PDF)

    第一步:登陆管理员后台,找到配置菜单

    找到Configure > Global Settings > AS/AV > Antivirus Settings and un-check ‘Block encrypted archives.’

    Block encrypted archives by ITGeeker

    记得保存配置。

    第二步:登陆shell,重启病毒防护进程

     

    su – zimbra  #记得切换到zimbra用户先
    
    zmclamdctl restart

     

    搞定,再发送带有加密附件的邮件看看,是否已经收到了?


奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4