SAE nginx日志为非常规日志,因此直接使用Goaccess无法分析,下面给出自定义规则用于分析SAEAccess日志
%^ %h %b %^ [%d:%^] %^ %^ %^ "%r" %s %^ "%R" "%u" %^ %^
没有网络安全,就没有国家安全
SAE nginx日志为非常规日志,因此直接使用Goaccess无法分析,下面给出自定义规则用于分析SAEAccess日志
%^ %h %b %^ [%d:%^] %^ %^ %^ "%r" %s %^ "%R" "%u" %^ %^
Mac OS 安装Wine
其实不用非得自己下载并编译,走了弯路了。(自己下载并默认配置编译会有各种各样问题)
brew install wine
前一阵到wy上兑换了一个树莓派,拿到手了很开心,于是购买了一个sony C10的SD卡。
然后就是一顿搞。。
装上系统之后发现系统很卡,于是对其进行了一些系统参数配置。
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0 tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0 tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0 tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0
对一些读写较多的地方做了改进,使其不直接读写SD卡;
上面是配置方法,只要将内容加入到/etc/fstab重启即可。
安装chkconfig
sudo apt-get install chkconfig
开机IP上报功能
#!/bin/bash # check network availability while true do TIMEOUT=5 SITE_TO_CHECK="www.sinaapp.com" RET_CODE=`curl -I -s --connect-timeout $TIMEOUT $SITE_TO_CHECK -w %{http_code} | tail -n1` if [ "x$RET_CODE" = "x200" ]; then echo "Network OK, will POST ip..." break else echo "Network not ready, wait..." sleep 1s fi done # get the IP address of eth0, e.g. "192.168.16.5" ETH0_IP_ADDR=`ifconfig eth0 | sed -n "2,2p" | awk '{print substr($2,1)}'` # send the Email #echo "Current time: `date '+%F %T'`. Enjoy it" | mutt -s "IP Address of Raspberry Pi: $ETH0_IP_ADDR" xxx@gmail.com # POST ip while true do TIMEOUT=5 SITE_TO_POST="xxxx.sinaapp.com/ip.php" RET_CODE=`curl -s --connect-timeout $TIMEOUT "$SITE_TO_POST" -w %{http_code} -d "ip=$ETH0_IP_ADDR"| tail -n1` echo "-------------------------------------------"; echo $ETH0_IP_ADDR echo $RET_CODE date echo "-------------------------------------------"; if [ "$RET_CODE" = "200" ]; then echo "POST OK" break else echo "SOMETHING WRONG" sleep 1s fi done
服务端
<?php echo ""; if(!empty($_POST['ip'])&&empty($_GET['get'])){ $ip=serialize($_POST['ip']); $mmc=memcache_init(); if($mmc==false) echo "mc init failed\n"; else { memcache_set($mmc,"Rasp_ip",$ip); } }else if(!empty($_GET['get'])){ $mmc=memcache_init(); if($mmc==false) echo "mc init failed\n"; else{ $ip= memcache_get($mmc,"Rasp_ip"); //var_dump($ip); echo unserialize($ip); } }
ncat -l -vv -p 9999 模拟CCPROXY侦听端口 ssh user@60.100.100.110 -R 8080:127.0.0.1:9999 -P 5862 上面是要被访问的内网 下面是本地 ssh user@60.100.100.110 -P 5862 -L 8080:127.0.0.1:8080 ncat localhost 8080 模拟浏览器发送数据
网上有许多方法都是依赖于端口检测的,但是总感觉这种方法不太合适,不过其实用起来没有什么问题,但是最后我还是没有选择使用端口检测的方法来区分访客是否使用Https访问,因为服务器上可能服务ssl服务的端口不仅只有443.
经过打印PHP $_SERVER 变量发现,其中有一个变量是HTTPS,当访客使用https方式访问的时候会有该变量,否则没有。
查阅了apache mod_rewrite官方文档,是这样说的:
也就是说访客使用SSL/TLS访问的时候HTTPS这个变量会变成on,否则就是off或者没有这个变量。
所以可以使用这种方法进行检测,这样就可以写出一条很简洁的规则:
RewriteCond %{HTTPS} !^on$ RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301]
只要检测变量不为on,就进行强制外部调整[R],并最后结束[L]。
最后的规则就像下面这样子:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !^on$ [NC] RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
你当然可以把所有的规则写到一起,OK,这样wordpress以后就只能强制使用SSL访问了!