2016/03/29

上週認証設備掛點
除了認証失效外
因為流量的計算也在該台上 所以quota的限制也就失效了
本來想直接撈LP的netflow資料來算
但因為會包含內部對內部的流量 所以會造成問題
因此打算用對外port mirror的資料轉成netflow來使用

fprobe
把port mirror的資料轉成netflow格式再吐出來

flow-tools
收集netflow並格式化成所需的資料

在ubuntu上直接apt-get install就好了
centos沒辦法直接yum

相關指令如下

/usr/sbin/fprobe -ieth1 -fip localhost:555
/usr/bin/flow-capture -V 5 -z 6 -n 572 -e 5000 -N -1 -w /tmp/flow 0/0/555

計算流量排名指令如下
取出超過10G下載或上傳量的ip

flow-cat /tmp/flow/`date +'%Y-%m-%d'`/ft*|flow-report -v TYPE=ip-destination-address|grep "192.168.\|10.10."|sort -rnk3 |awk '$3 > 5000000000 {print $1}'|grep -v -f /root/netflow_white_list > /tmp/netflow_quota_download

flow-cat /tmp/flow/`date +'%Y-%m-%d'`/ft*|flow-report -v TYPE=ip-source-address|grep "192.168.\|10.10."|sort -rnk3 |awk '$3 > 5000000000 {print $1}'|grep -v -f /root/netflow_white_list > /tmp/netflow_quota_upload

https://jal.tw/doku.php?id=netflow:fprobe

2016/03/22

為了預先解決centos 5到明天支援到期的問題
今天來把原先提供下載服務的机器升成centos 7
比較難處理的是原本提供kms認証的部分
几個跟原centos 5不同的地方記錄一下

原本apache用來ldap認証的模組換成 mod_ldap

寫法也有一些改變 範例如下 (novell 適用)

<Directory /var/www/html/test>
    AuthName ldap
    AuthType Basic
    AuthBasicProvider ldap
    AuthLDAPURL ldap://test.com.tw:389/o=users?cn?sub?(objectClass=*)
    AuthLDAPBindDN "cn=user01, ou=user, ou=people, o=users"
    AuthLDAPBindPassword password
    Require valid-user
</Directory>

ip forword的寫法也改了

在/etc/sysctl.conf 加上
net.ipv4.ip_forward = 1

重新載入
sysctl -p /etc/sysctl.conf


因為需要使用apche這個身分下iptables的指令
所以要編輯 /etc/sudoers
Defaults    requiretty 改為 Defaults:apache !requiretty apache不需要tty

再加上
User_Alias      APACHE = apache
Cmnd_Alias      FIREWALL = /sbin/iptables

APACHE  ALL = (ALL) NOPASSWD: FIREWALL

原來的firewalld要停掉 改用iptables

systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables

http://my.oschina.net/fsxchen/blog/134601
http://superuser.com/questions/803741/how-to-enable-ip-masquerading-forwarding-on-centos-7

2016/03/05

最近把從mysql撈資料的程式用python改寫 之前是用php

改完後發生的第一個問題就是中文全變成了???

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking ????????????(1368>????:700) to Deny this IP cannot access network

原因是從mysql撈出來時中文就亂了 所以不管之後怎麼轉碼 都沒有用了
所以必須在撈時就要指定編碼 加上下方紅色字部分

db = MySQLdb.connect(host="localhost", user="abc", passwd="pwd", db="test", charset='utf8')

但加完後網頁反而出不來了
再查了一下資料 說是要再指定sys的編碼 於是程式內必需再加入以下三行

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

加完後之後的結果變成

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking �訫�銝餅�����賊�蝬脰楝�輻�(1368>�𣂼��賊�:700) to Deny this IP cannot access network

看來中文有出來了 接下來是顯示的問題了 因為這個os比較久了 所以apache預設的編碼是設為big5 如果要去改會影響到其他東東 所以只能在程式加上指定編碼來處理了 比較新版本os的apache應該都預設為utf8了 應該不會碰到這個問題

print '<html>'
print '<head>'
print '<meta charset="UTF-8">'
print '</head>'
print '<body>'

print '</body>'
print '</html>'

網頁正常 搞定

192.168.105.61 || 2016-03-04 00:05:05 || 2016-03-07 00:05:05 || Flow Checking 違反主機連線數量網路政策(1368>限制數量:700) to Deny this IP cannot access network

完整程式碼如下

#!/usr/bin/python
# -*- coding: utf-8 -*-
print "Content-type: text/html"
print
# 引入 MySQL 模組
import MySQLdb
#引入 sys 並指定sys為utf-8編碼
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# 連接 MySQL
db = MySQLdb.connect(host="localhost", user="abc", passwd="pwd", db="test", charset='utf8')
cursor = db.cursor()
# 執行 SQL
cursor.execute("select ip from table;")
result = cursor.fetchall()
# 輸出結果
a=0
for record in result:
        if (a%2)==1:
                print "<FONT  COLOR=FF0000>"
        else:
                print "<FONT  COLOR=000000>"

        print record[0]
        print "<br>"
        print "<br>"
        a=a+1
db.close()

最近在ubuntu 32 位元 開啟chrome時都會出現不在支援此版本的作業系統
表示以後不再支援32位元的版本了
今天要update時出現

W: 無法取得 http://dl.google.com/linux/chrome/deb/dists/stable/Release,在 Release 檔案找不到要有的「main/binary-i386/Packages」項目 (sources.list 項目有問題或檔案格式不對)

可是連64位元的os都出現 XD
要修正一下 source list

sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/etc/apt/sources.list.d/google-chrome.list"

2016/03/04

因為python cgi的中文一直有問題出不來
找了好多資料
方法都不同
有的要轉碼
有的要用module
找到以下的方法
覺得是比較簡單的

#!/usr/bin/python
#encoding=utf-8  或  # -*- coding: utf8 -*-

print "Content-type: text/html"
print

print "Hi, Python."
print "中文"