Category Archives: Open Source Technology

Nginx应用实践入门之安装部署篇

CentOS release 6.9 (Final) -x64 Bit
Kernel Version:2.6.32-696.3.2
1、安装所需库,如gcc编译器(GNU编译器套件,编译必选)、C++编译器(用来编译Nginx的http模块)、pcre库(perl兼容正则表达式,使Nginx支持具备URL地址重写功能的rewrite模块,企业应用必须)、zlib库(对HTTP包内容做gzip压缩)、openssl开发库(若服务器要支持在SSL协议上传输http需要用到)

Continue reading »

安装网络流量监控工具vnstat

工具简介:
    vnstat是一个基于控制器的网络流量监控工具,针对Linux和BSD设计,它可以保留某个或多个所选择的网络接口的网络流量日志并可生成PNG图形,支持多个输出选项可按小时、天、月、周来排序数据,它并非基于网络包嗅探(所以占用系统资源较少),而是通过分析系统文件/proc得出数据。

Continue reading »

OpenVPN密钥、用户配置文件生成脚本(shell)

OpenVPN.sh内容(密钥生成脚本):

#!/bin/bash
##1、client.conf.mod为配置文件模板,其中的ip段是需要手动修改的,暂无法实现自动获取(考虑到服务器不止一张网卡且一般配置>=2个ip)。
##2、脚本在上传服务器后请赋予执行权限,与client.conf.mod位于相同目录内;
##3、调用pkitool生成密钥,./openvpn.sh后会提示输入密钥名称,操作完成后回车,脚本运行成功后将在当前目录看到.tar格式的压缩包,里面含有我们所需的全部文件;
##4、生成的证书、配置文件以CLIENTNAME命令。

##设置变量#######
export CUD=`pwd`;#当前路径
export SERVERCONFDIR=/etc/openvpn; #openvpn配置文件存放目录
export OPENVPNCADIR=/etc/openvpn/; #证书文件存放目录
export CAVARSFILE=vars; #生成证书所需的环境变量脚本
export SERVERNAME=vpnserver; #证书 server common name
if test ! -d $OPENVPNCADIR; then
echo “Please copy the \”easy-rsa\” to $OPENVPNCADIR ” && exit 0
fi
read -p “Please input the client common name : ” -t 60 CLIENTNAME #客户端证书的Client common name,如gongdeyang
test -z $CLIENTNAME && echo “You MUST input the client common name . ” && exit 0
export CLIENTNAME
######生成客户端证书文件###########
cd $OPENVPNCADIR/easy-rsa
. ./$CAVARSFILE;
if test ! -e keys/$CLIENTNAME.crt; then
. ./$CAVARSFILE;
./pkitool $CLIENTNAME;
fi

##############生成吊销证书文件################
if test ! -e keys/crlclient.crt; then
./pkitool crlclient
./revoke-full crlclient
cp -rf –reply=yes $OPENVPNCADIR/easy-rsa/keys/crl.pem $SERVERCONFDIR/;
fi

#####为每个客户端证书文件 生成配置文件并打包各个证书#####
cd $CUD;
cp -rf client.conf.mod $CLIENTNAME.ovpn;
echo “cert $CLIENTNAME.crt” >>$CLIENTNAME.ovpn;
echo “key $CLIENTNAME.key” >>$CLIENTNAME.ovpn;
cp -rf $CLIENTNAME.ovpn $SERVERCONFDIR/;
cp -rf $OPENVPNCADIR/easy-rsa/keys/$CLIENTNAME.crt $SERVERCONFDIR/;
cp -rf $OPENVPNCADIR/easy-rsa/keys/$CLIENTNAME.key $SERVERCONFDIR/;
cd $SERVERCONFDIR;
tar -cf $CLIENTNAME.tar $CLIENTNAME.ovpn ca.crt $CLIENTNAME.crt $CLIENTNAME.key;
if test ! -e $CUD/$CLIENTNAME.tar ; then
mv $CLIENTNAME.tar $CUD
fi
rm -rf $CLIENTNAME.*
cd $CUD
rm -rf $CLIENTNAME.ovpn

 

client.conf.mod内容(用户配置文件模板):

client
proto tcp
dev tun
remote 192.168.1.10 1194
#resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
ca ca.crt
;tls-auth ta.key 1
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
mute 20

 

通过Zabbix监控IIS性能

脚本文件地址:git@github.com:gongdeyang195/zabbix_template_iis.git

描述: 关于IIS性能监控方面的Zabbix模板

测试适用环境: 基于Zabbix 3.0.X

1、将LLD_Web_Service.bat批处理文件放到Windows Server服务器的C盘根目录;

2、打开Zabbix客户端配置文件zabbix_agentd.win.conf,在末尾追加内容:

UserParameter=iis.site.discovery,C:\LLD_Web_Service.bat

3、将Template IIS Web Site for Zabbix-3.0.xml模板文件导入Zabbix后台;

4、重启zabbix客户端服务,在Zabbix后台将需监控对象指定该模板,数分钟内查看数据图形,如附图所见:

Daemontools for Storm

简介:

    在Linux系统上运行服务(或daemons)的典型方法是使用initscripts,它是壳脚本的优化版,能够开始和停止服务。虽然这种方法对大部分来说都是适用的,但是高效的有效性却正在丢失。如果服务自己停止了,它就会无效了。

另外一种运行服务的方法是使用D.J.Bernstein的Daemontools软件包。它运行一个叫做监督的Daemon,它能够监督它能启动的所有服务。如果一个服务停止了,监督将会在五秒钟之内重新启动它,所以它的服务总是有效的。

使用daemontools是相当简单的。它使用/service目录等级跟一个根据下层服务命名的子目录。子目录包括一个叫做运行的文件,跟initscript非常地相似。

运行的脚本启动服务。如果服务曾经有过停止,监督将会重新执行脚本来启动它。

如下为官方说明,个人翻译:
Daemontools是用于管理UNIX服务的工具集合。
用来监视服务的时候,假如这项服务挂掉它将自动开启或重新启动该服务。
对于它来说设置一项新服务非常简便,所有的监督需求都是一个运行该服务的可执行脚本的目录。
multilog将错误消息保存到一个或多个日志文件。 它可选对每行加时间戳,并且对于每个日志,包括或排除与指定模式匹配的行。 它会自动轮询和分割日志以限制所使用的磁盘配额。 如果磁盘填满,它会暂停并再次尝试,而不会丢失任何数据。

Continue reading »

OpenVPN部署方案

1、前言(背景)

考虑到数据传输的安全性,我们需要利用开源技术对数据包进行加密并对数据流通进行身份验证,在参考第三方案例的基础上,经过初步评估,OpenVPN能充分满足我们的基本需求。

 

2、原理剖析

内容简介:了解OpenVPN工作原理并在实际环境中部署OpenVPN Community 2.4.14(多用户)版

网络:

LAN网段:192.168.0.0/23

VPN网段:10.8.0.0/24

系统环境:CentOS6.9-x86_64

OpenVPN的工作原理简图

Continue reading »