全球主机交流论坛
标题:
[原创]修改openssh源代码,添加流量统计并发送到远程功能
[打印本页]
作者:
meta168
时间:
2012-12-21 14:43
标题:
[原创]修改openssh源代码,添加流量统计并发送到远程功能
前言:
上次调查像PT联盟那样搞一个科学上网联盟,得到大家积极响应,原帖子地址:
http://www.loc.010206.xyz/forum.php ... p;extra=#pid2486863
有兴趣的朋友可以加群:280364461 ,提供建议意见,共同讨论。
正题:
修改openssh源代码,添加流量统计并发送到远程功能
版本号: openssh-6.1p1
1:打开channels.h,在channel结构中增加2个字段,如下图:
(, 下载次数: 2)
上传
点击文件名下载附件
2: 打开auth.h,找到Authctxt结构,在里面增加2个字段,如下图:
(, 下载次数: 2)
上传
点击文件名下载附件
3:打开channels.c,找到channel_handle_rfd函数,如下图:
(, 下载次数: 1)
上传
点击文件名下载附件
4:打开channels.c,找到channel_handle_wfd函数,如下图:
(, 下载次数: 2)
上传
点击文件名下载附件
5:打开serverloop.c ,找到server_loop2函数,如下图:
(, 下载次数: 1)
上传
点击文件名下载附件
第一部分实现:流量超过1KB时发送给远程
第二部分实现:当用户结束连接时把流量纪录发送给远程
6:打开serverloop.c找到server_request_session函数,如下图:
(, 下载次数: 1)
上传
点击文件名下载附件
openssh.6.jpg
7:打开serverloopc,加入把流量发送给远程的函数,如下:
/* zazaar */
static void
submit_traffic_record(char * user,int * in,int * out){
struct addrinfo *ailist,*aip;
struct addrinfo hint;
struct sockaddr_in addr_in;
int sockfd,ret = -1;
char buff;
int traffic_in = *(in);
int traffic_out = *(out);
if ((traffic_in == 0) && (traffic_out == 0)){
return;
}
*(in) -= traffic_in;
*(out) -= traffic_out;
char *getbuff;
asprintf (&getbuff,"GET /traffic_record.php?user=%s&in=%i&out=%i HTTP/1.1\x0D\x0AHost: www.zazaar.com\x0D\x0A\x0D\x0A\x00",user,traffic_in,traffic_out);
hint.ai_flags = 0;
hint.ai_family =0;
hint.ai_socktype = SOCK_STREAM;
hint.ai_protocol = 0;
hint.ai_addrlen = 0;
hint.ai_canonname = NULL;
hint.ai_addr = NULL;
hint.ai_next = NULL;
if (getaddrinfo("www.xxx.com","http",&hint,&ailist) != 0){
debug("getaddrinfo error");
return;
}
aip = ailist;
if ((sockfd = socket(aip->ai_family,SOCK_STREAM,0)) < 0){
debug("socket fail.");
return;
}
if (connect(sockfd,aip->ai_addr,aip->ai_addrlen) == 0){
if (send(sockfd,getbuff,strlen(getbuff),0)){
ret = recv(sockfd,&buff,1,0);
}
}
close(sockfd);
free (getbuff);
return;
}
复制代码
最后编译完成, 你会发现用户登录SSH后,流量(包括tunnel)被纪录,在用户退出或流量超过1KB时,自动发送纪录到远程,发送纪录以GET提交,例如: GET user=root&in=123&out=321
用户名为root,输入流量123byte,输出流量321byte
作者:
哈P哥
时间:
2012-12-21 14:45
不错啊,技术贴,支持
作者:
wdlth
时间:
2012-12-21 14:46
可以加入问候校长的功能
作者:
uuis
时间:
2012-12-21 14:48
不错。最好在出一个统计页面,与自动关闭帐号功能。
作者:
匿名用户
时间:
2012-12-21 14:49
支持。
作者:
lazyzhu
时间:
2012-12-21 15:10
http://blog.csdn.net/hannibal_why
作者:
yanqing001
时间:
2012-12-21 15:17
mark
作者:
lazyzhu
时间:
2012-12-21 15:21
最好再加个连接超过1小时时发送给远程,
作者:
全球主机交流
时间:
2012-12-21 15:21
LZ原创?
作者:
smyz
时间:
2012-12-21 15:22
支持一下
作者:
nbclare
时间:
2012-12-21 15:30
Mark....
作者:
yculer
时间:
2012-12-21 15:35
看明白的人加分吧。。。
作者:
paopao00
时间:
2012-12-21 15:47
高手啊
作者:
skycms
时间:
2012-12-21 16:11
期待。。。!
作者:
meta168
时间:
2012-12-21 16:36
lazyzhu 发表于 2012-12-21 15:10
http://blog.csdn.net/hannibal_why
蜘蛛爬的够快的
作者:
waf7225
时间:
2012-12-21 16:50
求patch。
作者:
YCYCC
时间:
2012-12-22 09:44
技术贴啊
作者:
onlybird
时间:
2012-12-22 09:49
不错支持技术帖。不过网上有个更靠谱的
作者:
cnx
时间:
2012-12-22 11:36
支持技术贴.
欢迎光临 全球主机交流论坛 (https://loc.010206.xyz/)
Powered by Discuz! X3.4