Networks
OldJohn86
虚其心,可解天下之问;专其心,可治天下之学;静其心,可悟天下之理;恒其心,可成天下之业
Python 学习推荐:
https://tushare.pro/register?reg=252370 分享此链接
展开
-
linux之间文件传输
linux的scp命令linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;==================scp 命令==================scp 可以在 2个 linux 主机间复制文件;命令基本格式: scp [可选参数] file_source file_target======从 本地原创 2015-10-10 16:16:06 · 375 阅读 · 0 评论 -
(十三)洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
为netfilter/iptables增添新功能模块:ipp2p 一个防火墙功能模块包含两部分:内核空间的ko模块和用户空间的so模块。如下: 而且文件的命令都非常有讲究。例如我们有个模块名叫AAA,那么内核中该模块的文件名一般为ipt_AAA.c和ipt_AAA.h;对应的用户空间模块叫libipt_AAA.c。今天我通过简单的向防火墙添加ipp2p扩展功能模块的例子转载 2015-03-18 17:15:45 · 552 阅读 · 0 评论 -
(五)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【上】
如何理解Netfilter中的连接跟踪机制? 本篇我打算以一个问句开头,因为在知识探索的道路上只有多问然后充分调动起思考的机器才能让自己走得更远。连接跟踪定义很简单:用来记录和跟踪连接的状态。问:为什么又需要连接跟踪功能呢?答:因为它是状态防火墙和NAT的实现基础。OK,算是明白了。Neftiler为了实现基于数据连接状态侦测的状态防火墙功能和NAT地址转换功能才开发出了转载 2015-03-18 16:54:32 · 479 阅读 · 1 评论 -
(三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target
作为ipchains的后继者,iptables具有更加优越的特性,良好的可扩展功能、更高的安全性以及更加紧凑、工整、规范的代码风格。 在2.6的内核中默认维护了三张表(其实是四张,还有一个名为raw的表很少被用到,这里不对其进行分析介绍了):filter过滤表,nat地址转换表和mangle数据包修改表,每张表各司其职。我们对这三张表做一下简要说明: 1)、filt转载 2015-03-18 15:55:16 · 443 阅读 · 0 评论 -
(十六)洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(下)
从用户空间来操作内核中Netfilter框架里自定义的HOOK函数 本文承上一篇博客。主要是和大家探讨一下如何从用户空间操作我已经注册到Netfilter中的自定义hook函数。有些童鞋可能就纳闷,难道iptables不能操作到么?如果我们需要让iptables操作我们在Netfilter框架中做过的扩展,那么最有效最直接的办法就是开发一个match或者target。但我们转载 2015-03-18 17:22:16 · 473 阅读 · 0 评论 -
(八)洞悉linux下的Netfilter&iptables:状态防火墙
基于连接跟踪机制的状态防火墙的设计与实现连接跟踪本身并没有实现什么具体功能,它为状态防火墙和NAT提供了基础框架。前面几章节我们也看到:从连接跟踪的职责来看,它只是完成了数据包从“个性”到“共性”抽象的约定,即它的核心工作是如何针对不同协议报文而定义一个通用的“连接”的概念出来,具体的实现由不同协议自身根据其报文特殊性的实际情况来提供。那么连接跟踪的主要工作其实可以总结为:入口处,收到一个转载 2015-03-18 16:57:42 · 510 阅读 · 0 评论 -
(七)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【下】
连接跟踪系统的初始化流程分析 有了前面的知识,我们再分析连接跟踪系统的初始化ip_conntrack_standalone_init()函数就太容易不过了。还是先上ip_conntrack_standalone_init()函数的流程图:该函数的核心上图已经标出来了“初始化连接跟踪系统”和“注册连接跟踪的hook函数”。其他两块这里简单做个普及,不展开讲。至少让大家明白连接跟转载 2015-03-18 16:58:04 · 405 阅读 · 0 评论 -
(四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filter
今天我们讨论一下防火墙的数据包过滤模块iptable_filter的设计原理及其实现方式。 内核中将filter模块被组织成了一个独立的模块,每个这样独立的模块中都有个类似的init()初始化函数。编写完该函数后,用module_init()宏调用初始化函数;同样当模块被卸载时调用module_exit()宏将该模块卸载掉,该宏主要调用模块的“析构”函数。这当中就牵扯到内核ko模块的一些转载 2015-03-18 16:51:47 · 423 阅读 · 0 评论 -
(一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
http://blog.chinaunix.net/uid-23069658-id-3160506.html 本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了。趁有时间,好好把这方面的东西总结一番。一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共同学习,共同进步。 能在CU上混的人绝非等闲之辈。因此,小转载 2015-03-18 15:51:38 · 607 阅读 · 0 评论 -
揭开网络编程常见API的面纱【下】
Linux网络编程数据收发的API流程分析 只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个API函数到底有什么差别。数据接收 在接收数据的过程,主要分两转载 2015-03-18 15:30:40 · 380 阅读 · 0 评论 -
揭开网络编程常见API的面纱【上】
Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。 1、socket(family,type,protocol) 当我们在开发网络应用程序时,使用该系统调用来创建一个套接字。该API所做的工作如下所示: 该系转载 2015-03-18 15:30:39 · 384 阅读 · 0 评论 -
(十四)洞悉linux下的Netfilter&iptables:开发一个match模块【实战】
自己开发一个match模块 今天我们来写一个很简单的match来和大家分享如何为iptables开发扩展功能模块。这个模块是根据IP报文中有效载荷字段的长度来对其进行匹配,支持固定包大小,也支持一个区间范围的的数据包,在用户空间的用法是: iptables -A FORWARD -m pktsize --size XX[:YY] -j DROP转载 2015-03-18 17:16:43 · 571 阅读 · 0 评论 -
原始套接字收发MAC数据包完整历程--发送Codes & 接收Codes
//send.c#include #include //perror#include //strcpy,memset#include //socket#include //ioctl#include //ifreq#include //sockaddr_sll#include原创 2015-03-24 17:42:24 · 1163 阅读 · 0 评论 -
(十)洞悉linux下的Netfilter&iptables:网络地址转换原理之SNAT
源地址转换:SNAT SNAT主要应用于下列场景: 这种情况下,我们只有一个公网地址A,而又有三台主机需要同时上网,这时就需要SNAT了。它的主要作用是将那些由私网发来的数据包skb的源地址改成防火墙的公网地址A,这是因为目的主机在响应源地址为私网地址的数据包时,私网地址不能在网络上路由的缘故。 SNAT仅可以在LOCAL_OUT和POSTROUTING点转载 2015-03-18 17:01:05 · 491 阅读 · 0 评论 -
(十一)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】
预备知识:part1: 初见getopt_long() 在分析iptables源码时,作为命令解析的核心函数getopt_long()不得不提。随便百度或google搜索关于该函数的介绍有很多例子和解释,这里我只举一例,目的是让大家了解传递给iptables命令的每个参数是如何被正确识别并处理的。getopt_long(int argc,char * const argv[],转载 2015-03-18 17:03:12 · 2001 阅读 · 1 评论 -
Linux 技巧:让进程在后台可靠运行的几种方法
想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作?在 IBM Bluemix 云平台上开发并部署您的下一个应用。开始您的试用我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口原创 2015-10-10 15:30:47 · 322 阅读 · 0 评论 -
Linux 下查看局域网内所有主机IP和MAC
用nmap对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip对应的mac了。nmap比较强大也可以直接扫描mac地址和端口。执行扫描之后就可以cat/proc/net/arp查看arp缓存表了。进行ping扫描,打印出对扫描做出响应的主机: $ nmap -sP192.168.1.0/24 仅列出指定网络上的每台主机,不发送任何报文到目标主机:原创 2015-10-10 15:20:03 · 5173 阅读 · 0 评论 -
samba实现ubuntu跟windows文件共享
一. Samba 简介 Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的; 大家知道在Windows 网络中的每台机器即可以是文转载 2015-04-22 16:23:17 · 347 阅读 · 0 评论 -
ubuntu 网络服务配置
以DHCP方式配置网卡 编辑文件/etc/network/interfaces: sudo vi /etc/network/interfaces 并用下面的行来替换有关eth0的行: # The primary network interface - use DHCP to find our address aut转载 2014-11-24 16:13:41 · 526 阅读 · 0 评论 -
鸟哥的 Linux 私房菜
http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.phphttp://vbird.dic.ksu.edu.tw/linux_server/原创 2015-04-24 18:26:27 · 357 阅读 · 0 评论 -
Linux编程错误处理函数
1. perror函数原型如下:void perror(const char *s);perror函数是标准的错误输出函数,如果参数s不为空,首先打印输出字符串s,然后紧跟着输出由全局整型变量errno所对应的错误信息。其中errno变量定义在errno.h中。例如:[cpp] view plaincopy#include int main(void转载 2015-04-23 17:31:21 · 484 阅读 · 0 评论 -
socket()普通用户, Operation not permitted
我想做一个ping程序,其中socket的前两个参数是AP_INET,SOCK_RAW 第三个参数应该是什么啊。一个例子中写的是IPPROTO_ICMP,这是什么东西啊,对吗? int get_raw_socket() { int sd; int flag; if((sd=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP){ pe原创 2015-04-23 17:31:17 · 17785 阅读 · 2 评论 -
macPing实现Codes
/****************************************************************************//* XXXX API *//* Copyright 2015-20原创 2015-03-27 12:43:57 · 478 阅读 · 2 评论 -
(十五)洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(上)
向Netfilter中注册自己的hook函数 数据包在协议栈中传递时会经过不同的HOOK点,而每个HOOK点上又被Netfilter预先注册了一系列hook回调函数,当每个清纯的数据包到达这些点后会被这些可恶hook函数轮番调戏一番。有时候我们就在想,只让系统自带的这些恶棍来快活,我自己能不能也make一个hook出来和它们同流合污呢?答案是肯定的。 我们来回转载 2015-03-18 17:19:01 · 415 阅读 · 0 评论 -
(十二)洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
iptables用户空间和内核空间的交互iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,是Netfilter的一个编程接口,通常被用来显示、操作(查询、修改、添加和删除)netfilte转载 2015-03-18 17:09:07 · 799 阅读 · 3 评论 -
(六)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【中】
Netfilter连接跟踪的详细流程 上一篇我们了解了连接跟踪的基本框架和大概流程,本篇我们着重分析一下,数据包在连接跟踪系统里的旅程,以达到对连接跟踪运行原理深入理解的目的。 连接跟踪机制在Netfilter框架里所注册的hook函数一共就五个:ip_conntrack_defrag()、ip_conntrack_in()、ip_conntrack_local()、ip_转载 2015-03-18 16:57:01 · 467 阅读 · 0 评论 -
(九)洞悉linux下的Netfilter&iptables:网络地址转换原理之DNAT
网络地址转换:NAT Netfitler为NAT在内核中维护了一张名为nat的表,用来处理所有和地址映射相关的操作。诸如filter、nat、mangle抑或raw这些在用户空间所认为的“表”的概念,在内核中有的是以模块的形式存在,如filter;有的是以子系统方式存在的,如nat,但它们都具有“表”的性质。因此,内核在处理它们时有很大一部操作都是相同的,例如表的初始化数据、表的注转载 2015-03-18 17:00:14 · 698 阅读 · 0 评论 -
(二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑
Netfilter框架为内核模块参与IP层数据包处理提供了很大的方便,内核的防火墙模块(ip_tables)正是通过把自己所编写的一些钩子函数注册到Netfilter所监控的五个关键点(NF_IP_PRE_ROUTING,NF_IP_LOCAL_IN,NF_IP_FORWARD,NF_IP_LOCAL_OUT,NF_IP_POST_ROUTING)这种方式介入到对数据包的处理。这些钩子函数转载 2015-03-18 15:55:27 · 512 阅读 · 0 评论 -
Raw Socket(原始套接字)实现Sniffer(嗅探)
1 摘要 Raw Socket: 原始套接字 可以用它来发送和接收 IP 层以上的原始数据包, 如 ICMP, TCP, UDP...int sockRaw = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);这样我们就创建了一个 Raw SocketSniffer: 嗅探器 关于嗅探器的原理我想大多数人可能转载 2015-03-19 14:12:28 · 2942 阅读 · 0 评论 -
以原始套接字的方式截获流经本机网卡的IP数据包
从事网络安全的技术人员和相当一部分准黑客(指那些使用现成的黑客软件进行攻击而不是根据需要去自己编写代码的人)都一定不会对网络嗅探器(sniffer)感到陌生,网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。此分析结果可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息转载 2015-03-19 13:31:13 · 5528 阅读 · 1 评论 -
Linux网络编程--7. TCP/IP协议
Linux网络编程--7. TCP/IP协议http://linuxc.51.net 作者:hoyt (2001-05-08 11:22:40) 你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议. 7.1 网络传输分层 如果你考过计算机等级考试,那么转载 2015-03-19 15:56:11 · 399 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【上】
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I转载 2015-03-18 14:28:57 · 482 阅读 · 0 评论 -
Linux网络编程--5. 用户数据报发送
Linux网络编程--5. 用户数据报发送http://linuxc.51.net 作者:hoyt (2001-05-08 11:21:31) 我们前面已经学习网络程序的一个很大的部分,由这个部分的知识,我们实际上可以写出大部分的基于TCP协议的网络程序了.现在在Linux下的大部分程序都是用我们上面所学的知识来写的.我们可以去找一些源程序来参考一转载 2015-03-19 15:52:00 · 345 阅读 · 0 评论 -
Linux网络编程--4. 完整的读写函数
Linux网络编程--4. 完整的读写函数http://linuxc.51.net 作者:hoyt (2001-05-08 11:20:52)一旦我们建立了连接,我们的下一步就是进行通信了.在Linux下面把我们前面建立的通道 看成是文件描述符,这样服务器端和客户端进行通信时候,只要往文件描述符里面读写东西了. 就象我们往文件读写一样. 4转载 2015-03-19 15:49:29 · 414 阅读 · 0 评论 -
Linux网络编程--3. 服务器和客户机的信息函数
Linux网络编程--3. 服务器和客户机的信息函数http://linuxc.51.net 作者:hoyt (2001-05-08 11:20:14)这一章我们来学习转换和网络方面的信息函数. 3.1 字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,转载 2015-03-19 15:45:03 · 471 阅读 · 0 评论 -
Linux网络编程--2. 初等网络函数介绍(TCP)
Linux网络编程--2. 初等网络函数介绍(TCP)http://linuxc.51.net 作者:hoyt (2001-05-08 11:19:34) Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用,会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是lin转载 2015-03-19 15:39:39 · 366 阅读 · 0 评论 -
原始套接字透析之实现sniffer
大家知道,以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。但是,如果让网卡置于混杂模式(Promiscuous mode),则网卡不会鉴别帧的MAC地址,而是一律接收。 上图给出了以太网的转载 2015-03-19 14:00:31 · 1035 阅读 · 0 评论 -
Linux网络编程--8. 套接字选项
Linux网络编程--8. 套接字选项http://linuxc.51.net 作者:hoyt (2001-05-08 11:23:24)有时候我们要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要控制套接字的选项了. 8.1 getsockopt和setsockopt int getsockopt(int sockf转载 2015-03-19 16:01:22 · 415 阅读 · 0 评论 -
大虾发一篇原始套接字的文章吧,最好有应用ip选项的例程
Linux网络编程--10. 原始套接字 --11. 后记 http://linuxc.51.net 作者:hoyt (2001-05-08 11:26:09) 10. 原始套接字 我们在前面已经学习过了网络程序的两种套接字(SOCK_STREAM,SOCK_DRAGM).在这一章 里面我们一起来学习另外一种套接字--原始套接字(SOCK_RAW). 应用原始套接字,我们可以转载 2015-03-19 14:30:01 · 488 阅读 · 0 评论 -
Proxy源代码分析--谈谈如何学习linux网络编程
Proxy源代码分析--谈谈如何学习linux网络编程本文出自:http://www.china-pub.com 作者:李培源 (2001-08-10 12:00:00)Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这转载 2015-03-19 14:58:17 · 561 阅读 · 0 评论