Linux网络协议分析工具tcpdump和tshark用法

Linux网络协议分析工具tcpdump和tshark用法 Tcpdump是网络协议分析的基本工具。tshark是大名鼎鼎的开源网络协议分析工具wireshark (原名叫ethereal) 的命令行版本,wireshark可对多达千余种网络协议进行解码分析。Wireshark 和 tcpdump 均使用libpcap 库 (参见 libpcap 编程教程) 进行网络截包。 TCPDUMP 详细manpage参见tcpdump网站。 基本用法 Tcpdump的参数基本分为两块:选项 (options) 和过滤器表达式 (filter_expression) 。 # tcpdump [options] [filter_expression] 例如 # tcpdump -c 100 -i eth0 -w log tcp dst port 50000 其中 options部分参数: -c 100 指定截取的包的数量 -i eth0 指定监听哪个网络端口 -w log 输出到名为log的文件中 (libpcap格式) filter_expression参数为 tcp dst port 50000,即只监听目标端口为50000的tcp包。 更多的例子: /* 监视目标地址为除内网地址(192.168.3.1-192.168.3.254)之外的流量 */ tcpdump dst net not 192.168.3.0/24 /* 监视除HTTP浏览 (端口80/8080) 、SSH(22)、 POP3 (110)之外的流量,注意在括号(之前添加转义符, -n和-nn的解释见随后 */ ...

2012-06-25 · 3 min · 566 words · -

FTP的主动模式和被动模式

FTP的主动模式和被动模式 http://space.itpub.net/14075938/viewspace-495630 FTP两种工作模式: 主动****模式(ActiveFTP) 和被动模式(PassiveFTP) 在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口 (通常是20) 来连接客户端指定的端口N+1,进行数据传输。 在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。 总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。 被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。 win 下面设置ftp模式 一、什么是PASV和PORT方式 (1) PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是"主动模式。 (2) PASV也就是Passive的简写。中文就是"被动模式。 二、两者不同 不同之处是由于PORT (主动) 这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。而PASV模式拥有PORT模式的优点,并去掉一些PORT的缺点。PASV运行方式就是当服务器接收到客户端连接请求时,就会自动从端口1024到5000中随机选择一个和客户端建立连接传递数据。由于被动且自动建立连接,容易受到攻击,所以安全性差。 三、常见的FTP客户端软件PORT方式与PASV方式的切换方法 大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。 在大部分FTP客户端的设置里,常见到的字眼都是"PASV"或"被动模式",极少见到"PORT"或"主动模式"等字眼。因为FTP的登录方式只有两种: PORT和PASV,取消PASV方式,就意味着使用PORT方式。 (1) IE: 工具 -> Internet选项 -> 高级 -> “使用被动FTP” (需要IE6.0以上才支持) 。 (2) CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode” 。 (3) FlashGet: 工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”。 ...

2012-05-26 · 2 min · 255 words · -

iptables防火墙与vsftpd的被动传输模式

iptables防火墙与vsftpd的被动传输模式 Linux服务器上开启了防火墙,并配置vsftpd,就出现了一些问题 可以连接,列出目录,但是无法下载/上传,经过检查,是受FTP传输模式影响导致。 iptables的配置策略往往就限制入站的目的端口,ftp服务器使用标准的21端口作为控制端口,但是数据的传输端口取决于传输模式 主动模式: 服务器以源端口20或随机端口向客户端的协商的随机端口发起链接,也就是说,这时两边防火墙的策略应该是: 服务器端应该允许目标端口为20的入站连接,允许所有随机端口的出站连接 当然,服务器是否以20为源端口连接,取决于/etc/vsftpd.conf是否设置 connect_from_port_20=YES 客户端应该允许所有源端口为20的入站连接,允许所有随机端口的出站连接 被动模式: 客户端以随机连接服务器的某个随机端口 (通过21端口协商得到) 如此, 如果客户端使用了NAT或是有防火墙,问题就变得复杂多了。 在主动模式下,服务器连接客户端 (即客户端NAT主机的公网IP) 随机端口,肯定会失败的,所以客户端使用NAT时,不能使用主动模式,同理,如果客户端使用防火墙,只允许指定的入站端口连接,那么也会失败。 如果使用被动模式呢?也有问题,因为客户端是连接服务器的随机端口(服务器只允许指定入站端口连接),也会出问题,那么对于vsftpd, 解决办法就是: 1.vsftpd 使用被动模式,并设定被动模式监听的端口范围 2.服务器防火墙允许到此范围端口的入站连接 对vsftpd的配置: pasv_enable=YES //使用被动模式,等待客户端连接 pasv_min_port=50000 //被动模式时监听的端口范围下限 pasv_max_port=50100//被动模式时监听的端口范围上限 对iptables的配置 -A RH-Firewall-1-INPUT -p tcp -m tcp -dport 50000:50100 -j ACCEPT 当然,客户端需要设置为被动方式连接 http://zhangxugg-163-com.iteye.com/blog/867422

2012-05-26 · 1 min · 42 words · -

debian VSFTPD

debian VSFTPD install vsftpd sudo apt-get install vsftpd 1. 匿名服务器的连接 (独立的服务器) 在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项: Anonymous_enable=yes (允许匿名登陆) Dirmessage_enable=yes (切换目录时,显示目录下.message的内容) Local_umask=022 (FTP上本地的文件权限,默认是077) connect_from_port_20=YES 启用FTP数据端口的数据连接,http://www.wiloon.com/?p=3234 Xferlog_enable=yes (激活上传和下传的日志) Xferlog_std_format=yes (使用标准的日志格式) Ftpd_banner=XXXXX (欢迎信息) Pam_service_name=vsftpd (验证方式) * Listen=yes 这将告诉vsftpd工作于standalone模式。不要从inetd中运行该设定下的vsftpd,否则将不会工作,你将得到错误信息: could not bind listening socket. 功能: 只能连接FTP服务器,不能上传和下传 注: 其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项 2. 开启匿名FTP服务器上传权限 在配置文件中添加以下的信息即可: Anon_upload_enable=yes (开放上传权限) Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件) Write_enable=yes (开放本地用户写的权限) Anon_other_write_enable=yes (匿名帐号可以有删除的权限) 3. 开启匿名服务器下传的权限 在配置文件中添加如下信息即可: Anon_world_readable_only=no 注: 要注意文件夹的属性,匿名帐户是其它 (other) 用户要开启它的读写执行的权限 (R) 读–下传 (W) 写–上传 (X) 执行–如果不开FTP的目录都进不去 4.普通用户FTP服务器的连接 (独立服务器) 在配置文件中添加如下信息即可: Local_enble=yes (本地帐户能够登陆) Write_enable=no (本地帐户登陆后无权删除和修改文件) ...

2012-05-26 · 3 min · 460 words · -

debian 修改无线网卡的信道

debian 修改无线网卡的信道 查看无线网卡支持的信道 sudo iwlist channel #这个是我的thinkpad x60s, !!!不支持channel 12,13,14, #最后面有列出当前信道Current Frequency=xxx lo no frequency information. eth0 no frequency information. wlan0 24 channels in total; available frequencies : Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz Channel 07 : 2.442 GHz Channel 08 : 2.447 GHz Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.462 GHz Channel 36 : 5.18 GHz Channel 40 : 5.2 GHz Channel 44 : 5.22 GHz Channel 48 : 5.24 GHz Channel 52 : 5.26 GHz Channel 56 : 5.28 GHz Channel 60 : 5.3 GHz Channel 64 : 5.32 GHz Channel 149 : 5.745 GHz Channel 153 : 5.765 GHz Channel 157 : 5.785 GHz Channel 161 : 5.805 GHz Channel 165 : 5.825 GHz Current Frequency=2.462 GHz (Channel 11) tap0 no frequency information. 修改当前信道 ...

2012-05-19 · 1 min · 167 words · -

无线WI-FI路由器的信道选择

无线WI-FI路由器的信道选择 http://blog.solrex.org/articles/wifi-channel-choosing.html 很多人从来没有注意过路由器的 wifi 频道,以为只要笔记本电脑能连上,无线路由就没问题。但有个问题是很多移动设备不能支持全频道,其中即有功耗考虑,也有销售目标国家考虑。因此有条件时最好检测一下信噪比,选择一个最适合自己的频道,而不是让路由器启动时自己去选择。 但接着又有朋友说: "求普及..."。参考 Avinash Kaushik 在他的网站统计博客"Occam's Razor"成立 5 周年时的感慨 (这篇文章很值得一读,very inspiring) ,我想即使我不是专家,分享一下自己知道的这点儿事也不错。 切入正题,现在很多家庭都有了自己的无线 Wi-Fi 路由器,也有了各种接入互联网的移动设备: 笔记本、上网本、手机、平板电脑、电纸书、MID (已没落) 。很多移动设备联网时都会出现诡异问题,这篇文章仅仅关注其中一种诡异问题: 错误的信道 (Channel,也译为频道、频段) 配置导致无法联网或者信号较差。 精确的技术知识我就不解释了,感兴趣的同学可以去读 Wikipedia Wi-Fi 或者 IEEE 802.11 等词条。下面主要说明为什么需要配置无线信道以及如何选择无线信道。 为什么需要配置无线信道? 相信大家都使用过收音机。使用收音机时,都有一个选台的问题,无论你是用旋钮、按键或者触摸,你总要选定某个台,才能收听该台的节目。无线路由也一样。你家里的无线路由器会广播一个 SSID (就是你看到的无线连接名) ,点击该连接,就会使你的电脑调制到该连接所在信道进行通信。 但是使用收音机时,可能会有这样的问题: 1. 有些台根本收不到,比如你的收音机不是全波段的;2. 有些台杂音太大听不清,比如某些唢呐电台。同理到你的无线环境上,问题 1 转化为"笔记本电脑 (全波段收音机) 能连接无线路由器,但平板电脑 (非全波段收音机) 却无法连接";问题 2 转化为"能连接到无线路由器,但干扰太多,达不到最大的网速 (这个网速指 Wi-Fi 连接速度,与 ADSL 网速无关) "。 如果没有手动配置过,无线路由器会自动选择一个默认或者随机的信道进行广播和连接建立。在设备没有联网问题和周围没有别人使用时,这是 OK 的。 但如果你周围的人家都有无线设备,且大家用的都是同一款运营商赠送的无线路由器 (或无线猫) 时,那么极有可能所有人都选择了同一个信道进行通信。这就会造成很大的信号干扰,这一般影响不到网速——除非你家用的 ADSL 大于 4M,但会造成家里两台设备之间数据传输速度极慢,例如用豌豆荚往手机上无线发送视频文件时。 如果不巧的是你家无线路由器会随机选择信道,那么它极有可能选择到一个你设备不支持的信道。我就曾经遇到过爱国者某型号 MID 只支持信道 1-9 但无线路由器自己选择了信道 11 的情况,那是死活也连不上啊!移动设备出于降低功耗或其它考虑,不支持某些信道是很正常的;再加上不同国家对无线信道管制情况不同 (参见 List of WLAN Channels) ,其它国家的水货设备到了国内可能也会水土不服。 幸运的是,你不能控制广播电台的波段,却可以控制自家无线路由器的无线信道。修改无线信道的方法请参考各路由器厂商的帮助文档,或者在网上寻求帮助。不过在修改之前,你还面临着,我该改到哪个信道呢? 如何选择无线信道? 首先,要选择自己通信设备都支持的信道。不过在此之前,首先确认所有设备都支持同一协议,比如你移动终端不支持 IEEE 802.11n,你非得在路由器上用 802.11n 协议,这就是找不自在了。这些知识要参考设备的手册,或者自己尝试。在 Linux 系统中,可以用 iwlist channel 列出移动终端支持的所有信道,比如 Kindle 支持的信道就是 (看到这里我基本可以肯定那哥们 Kindle 问题不是因为信道了,除非他用的是日本产路由器) : [root@kindle root]# iwlist channel lo no frequency information. ...

2012-05-19 · 2 min · 245 words · -

ARP攻击

ARP攻击 ARP攻击是针对以太网地址解析协议 (ARP) 的一种攻击技术。此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。最早探讨ARP攻击的文章是由Yuri Volobue所写的《ARP与ICMP转向游戏》。 ARP (Address Resolution Protocol,地址解析协议) 是一个位于TCP/IP协议栈中的底层协议,对应于数据链路层,负责将某个IP地址解析成对应的MAC地址。 基本功能 ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。 ARP (AddressResolutionProtocol) 是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式: 表格方式和非表格方式。ARP具体说来就是将网络层 (IP层,也就是相当于OSI的第三层) 地址解析为数据连接层 (MAC层,也就是相当于OSI的第二层) 的MAC地址 ARP (Address Resolution Protocol) 地址解析协议用于将计算机的网络IP地址转化为物理MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如果系统ARP缓存表被修改不停的通知路由器一系列错误的内网IP或者干脆伪造一个假的网关进行欺骗的话,网络就肯定会出现大面积的掉线问题。ARP攻击在现今的网络中频频出现,有效的防范ARP形式的网络攻击已成为确保网络畅通必要条件。 ARP攻击的局限性 ARP攻击仅能在以太网 (局域网如: 机房、内网、公司网络等) 进行。 无法对外网 (互联网、非本区域内的局域网) 进行攻击。ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。 ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过"ARP欺骗"手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。 某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文 (携带主机A的IP地址Ia——物理地址Pa) ,请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据 (由网卡附加MAC地址) 。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。1) 什么是ARP欺骗? 在局域网中,黑客经过收到的ARP Request广播包,能够偷听到其它节点的 (IP, MAC) 地址, 黑客就伪装为A,告诉B (受害者) 一个假地址,使得B在发送给A 的数据包都被黑客截取,而A, B 浑然不知。, 为什么黑客能够进行ARP欺骗? ARP 是个早期的网络协议,RFC826在 1980就出版了。早期的互联网采取的是信任模式,在科研、大学内部使用,追求功能、速度,没考虑网络安全。尤其以太网的泛洪特点,能够很方便的用来查询。但这也为日后的黑客开了方便之门。黑客只要在局域网内阅读送上门来的ARP Request就能偷听到网内所有的 (IP, MAC)地址。而节点收到ARP Reply时,也不会质疑。黑客很容易冒充他人, 能够防止欺骗吗? 不能。但这种伤害的伤害已经很小。因为局域网的工作环境有了改变, 服务器通常不会和终端主机在同一个局域网。 初期: 这种有目的的发布错误ARP广播包的行为,被称为ARP欺骗。ARP欺骗,最初为黑客所用,成为黑客窃取网络数据的主要手段。黑客通过发布错误的ARP广播包,阻断正常通信,并将自己所用的电脑伪装成别人的电脑,这样原本发往其他电脑的数据,就发到了黑客的电脑上,达到窃取数据的目的。 中期: ARP恶意攻击 后来,有人利用这一原理,制作了一些所谓的"管理软件",例如网络剪刀手、执法官、终结者等,这样就导致了ARP恶意攻击的泛滥。往往使用这种软件的人,以恶意破坏为目的,多是为了让别人断线,逞一时之快。 特别是在网吧中,或者因为商业竞争的目的、或者因为个人无聊泄愤,造成恶意ARP攻击泛滥。 随着网吧经营者摸索出禁用这些特定软件的方法,这股风潮也就渐渐平息下去了。 现在: 综合的ARP攻击 ...

2012-04-08 · 2 min · 216 words · -

Golang 命名规范

Golang 命名规范 变量命名 和结构体类似,变量名称一般遵循驼峰法,首字母根据访问控制原则大写或者小写,但遇到特有名词时,需要遵循以下规则: 如果变量为私有,且特有名词为首个单词,则使用小写,如 appService; 若变量类型为 bool 类型,则名称应以 Has, Is, Can 或 Allow 开头。 var isExist bool var hasConflict bool var canManage bool https://zhuanlan.zhihu.com/p/216001587 golang 文件名 命名规则 project name: - package: lowercase file name: _ https://stackoverflow.com/questions/25161774/what-are-conventions-for-filenames-in-go https://golang.org/doc/effective_go.html#package-names

2012-04-07 · 1 min · 38 words · -

广播地址

广播地址 概述 广播地址(Broadcast Address)是专门用于同时向网络中 (通常指同一子网) 所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID (简称主机 ID) 为全 1 的 IP 地址为广播地址,广播的分组传送给同一个子网的所有计算机。例如,对于10.1.1.0 (255.255.255.0 ) 网段,其广播地址为10.1.1.255 (255 即为 2 进制的 11111111 ) ,当发出一个目的地址为10.1.1.255 的数据包时,它将被分发给该网段上的所有计算机。广播地址应用于网络内的所有主机。 Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.255.255.0 ) 网段,其广播地址为10.1.1.255 (255 即为2 进制的11111111 ) ,当发出一个目的地址为10.1.1.255 的分组 (封包) 时,它将被分发给该网段上的所有计算机。 广播地址主要有两类 广播地址应用于网络内的所有主机 1)受限广播 它不被路由但会被送到相同物理网络段上的所有主机 IP地址的网络字段和主机字段全为1就是地址255.255.255.255 2)直接广播 网络广播会被路由,并会发送到专门网络上的每台主机 IP地址的网络字段定义这个网络,主机字段通常全为1,如 192.168.10.255 四种I P广播地址 受限的广播地址 受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。 指向网络的广播 指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。 指向子网的广播 指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。 指向所有子网的广播 指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。 广播和广播地址 TCP/IP协议栈中, 传输层只有UDP可以广播. 只能对同一子网内部广播, 广播数据包不经过路由器. UDP的广播地址为255.255.255.255 ...

2012-04-07 · 1 min · 180 words · -

tunctl

tunctl tunctl is used to set up and maintain persistent TUN/TAP network interfaces, enabling user applications to simulate network traffic. Such interfaces is useful for VPN software, virtualization, emulation, simulation, and a number of other applications. -t _interface _Specifies the desired interface name. **-b **Brief output, prints just the interface name -d _interfacename _Delete the specified interfacename (set it to non-persistent) -t _interface _Specifies the desired interface name. -u _user _Specifies the owner of the interface. This user is allowed to attach to the “network/wire” side. ...

2012-03-25 · 1 min · 96 words · -

TLS, HTTPS

TLS, HTTPS 创建自签名TLS/SSL证书和私钥 https://www.ssldragon.com/zh/how-to/openssl/create-self-signed-certificate-openssl/ # 生成私钥 openssl genpkey -algorithm RSA -out private.key 自签名证书里的域名不能用 .dev 结尾, .dev 是 Google 持有的顶级域名, 不能用在自签名证书里 https://stackoverflow.com/questions/49503337/self-signed-dev-cert-untrusted-using-firefox-59-on-ubuntu https://blog.ideawand.com/2017/11/22/build-certificate-that-support-Subject-Alternative-Name-SAN/ https://www.mikesay.com/2018/12/30/create-self-signed-ssl/ 创建 CA 证书用的配置文件 ca.cnf https://www.mikesay.com/2018/12/30/create-self-signed-ssl/ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfsigned-key.key -out selfsigned-certificate.crt openssl: 基本命令行工具,用来创建和管理OpenSSL证书,私钥和其它文件。 req: 子命令,主要是用来创建和处理PKCS#10格式的证书请求。它也能创建被用作根证书的自签名证书。 -x509: 这个选项告诉openssl创建一个自签名证书而不是一个证书请求。 -nodes: 这个选项告诉openssl不要加密私钥,否则当使用在Nginx上时,每次Nginx启动都要提示输入密码。 -days 365: 设置证书的有效期为1年(365天)。 -newkey rsa:2048: 这个选项告诉 openss l在生成证书的同时生成私钥。rsa:2048 说明创建一个 2048 比特长的 RSA 私钥。 -keyout: 告诉 openssl 生成的私钥的名字和路径。 -out: 告诉openssl生成的自签名证书和路径。 客户端安装自签名证书 # ubuntu # 将证书拷贝到目录 “/usr/local/share/ca-certificates” sudo cp selfsigned-certificate.crt /usr/local/share/ca-certificates # 更新CA存储 sudo update-ca-certificates # 删除sudo update-ca-certificates --fresh sudo rm /usr/local/share/ca-certificates/selfsigned-certificate.crt sudo update-ca-certificates --fresh SAN SAN, Subject Alternative Name(证书主体别名) 是 SSL 标准 x509 中定义的一个扩展。它允许一个证书支持多个不同的域名。通过使用 SAN 字段,可以在一个证书中指定多个 DNS 名称(域名)、 IP 地址或其他类型的标识符,这样证书就可以同时用于多个不同的服务或主机上。这种灵活性意味着企业不需要为每个域名单独购买和安装证书, 从而降低了成本和复杂性。 ...

2012-03-21 · 3 min · 517 words · -

wifi

wifi Wi-Fi是一种允许电子设备连接到一个无线局域网 (WLAN)的技术,通常使用2.4G UHF或5G SHF ISM 射频频段。 802.11a 5 GHz 1999 年发布。 各种调制类型的数据传输率:6、9、12、18、24、36、48 和 54 Mbps。 带 52 个子载波频道的正交频分复用 (OFDM)技术。 不需要许可证的国家信息基础设施 (UNII)频道内的 12 个 5 GHz 互不重叠频带。 802.11b 2.4 GHz 传送速度为11Mbit/s IEEE802.11b的后继标准是IEEE802.11g; 在2.4-GHz-ISM频段共有14个频宽为22MHz的频道可供使用。 1999 年发布。 各种调制类型的数据传输率:1、2、5.5 和 11 Mbps 高速直接序列展频 (HR-DSSS)。 工业、科技和医疗 (ISM)领域内的三个 2.4 GHz 互不重叠频带。 802.11g 2.4GHz OFDM 原始传送速度为54Mbit/s,净传输速度约为24.7Mbit/s (跟802.11a相同)。 2003 年发布。 各种调制类型的数据传输率:6、9、12、18、24、36、48 和 54 Mbps;可以使用 DSSS 和 CCK 转换为 1、2、5.5 和 11 Mbps。 带 52 个子载波频道的正交频分复用 (OFDM)技术;使用 DSSS 和 CCK 向下兼容 802.11b。 工业、科技和医疗 (ISM)领域内的三个 2.4 GHz 互不重叠频带。 ...

2012-03-20 · 1 min · 186 words · -

PuTTY, SecureCRT

PuTTY SecureCRT 在命令行启动 SecureCRT 的时候指定配置文件目录 # SecureCRT /F folder SecureCRT /F C:\workspace\conf\securecrt 命令行直接连接某一个 ssh 服务 SecureCRT.exe /SSH2 /L wiloon /P 22 /PASSWORD password0 192.168.50.80 端口转发 File> Connection> 选择一个连接> Properties Name: foo Local Manually select IP address on which to allow connections (checked) IP address: 127.0.0.1 Port: 32178 Remote Destination host is different from the SSH server(checked) Hostname: 192.168.1.111 Port: 32178 从 windows 访问 linux,除了 samba 之外,日常操作用得最多的大概就是 PuTTY 和 SecureCRT Putty是免费的,SecureCRT是收费的 Putty缺省配置就很好看很好用,SecureCRT的缺省配置不是为linux准备的而且很难看。 ...

2012-03-14 · 1 min · 80 words · -

RedHat Enterprise Linux 网络配置

RedHat Enterprise Linux 网络配置 一、$/sbin/ifconfig //显示ifconfig命令查看网络接口的信息 #ifconfig eth0 //显示指定接口的信息 #ifconfig -a //显示所有接口的信息 (无论是否活跃) #ifconfig eth0 192.168.0.2 netmask 255.255.255.0 //临时修改接口IP地址 (无需重启接口) 二、$/sbin/route //显示当前Linux主机中的路由表信息 #route del default gw 192.168.0.1 //临时删除默认网关192.168.0.1 #route add default gw 192.168.0.1 //临时添加默认网关192.168.0.1 #route add -net 192.168.1.0/24 gw 192.168.0.254 //临时添加一条静态路由 /*本文中提及临时操作的地方,即主机重启后该操作将失效,如果希望每次系统重启后自动添加静态路由条目,则可以将该语句写入/etc/rc.d/rc.local中。*/ 三、#ping //测试与其他主机的网络连接 #ping -c 4 192.168.0.1 //指定发出ICMP包个数 四、#traceroute //测试当前主机到目的著急的网络连接 五、#hostname //查看当前主机的主机名 #hostname linsrv //临时修改当前主机名 六、#nslookup //测试DNS域名解析 server //显示当前DNS服务器 server 192.168.0.1 //临时指定DNS服务器地址 七、#dhclient //为当前主机申请网络配置信息 八、#netconfig //通过向导在字符界面下修改网络配置信息 九、#/etc/init.d/network restart //重启网络服务 ...

2012-03-13 · 1 min · 168 words · -

Disable Network Manager In Ubuntu

Disable Network Manager In Ubuntu This brief tutorial will show you how to quickly disable Network Manager in Ubuntu Lucid and configure a static or DHCP setting manually. This method will not remove or uninstall Network Manager, but makes it inactive every time you login to your computer. If Network Manager is misbehaving, this is also another way to disable it. sudo apt-get purge network-manager network-manager-gnome gedit /etc/network/interfaces auto lo ...

2012-03-13 · 1 min · 118 words · -

CDN 加速

CDN 加速 CDN 加速 CDN 的全称是 Content Delivery Network,即内容分发网络。其目的是通过在现有的 Internet 中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比 喻: CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。 为更好地理解CDN,让我们看一下CDN的工作流程。当用户访问已经加入CDN服务的网站时,首先通过DNS重定向技术确定最接近用户的最佳CDN节点,同时将用户的请求指向该节点。当用户的请求到达指定节点时,CDN的服务器 (节点上的高速缓存) 负责将用户请求的内容提供给用户。具体流程为: 用户在自己的浏览器中输入要访问的网站的域名,浏览器向本地DNS请求对该域名的解析,本地DNS将请求发到网站的主DNS,主DNS根据一系列的策略确定当时最适当的CDN节点,并将解析的结果 (IP地址) 发给用户,用户向给定的CDN节点请求相——应网站的内容。

2012-02-15 · 1 min · 19 words · -

tap0, ERROR while getting interface flags

’tap0, ERROR while getting interface flags' tap0: ERROR while getting interface flags: No such device install uml-utilities and restart the system sudo apt-get install uml-utilities sudo reboot

2012-02-09 · 1 min · 27 words · -

PF_RING

PF_RING https://www.jianshu.com/p/6d3f3cdc2411 PF_RING简介 PF_RING是Luca研究出来的基于Linux内核级的高效数据包捕获技术。简单来说PF_RING 是一个高速数据包捕获库,通过它可以实现将通用 PC 计算机变成一个有效且便宜的网络测量工具箱,进行数据包和现网流量的分析和操作。同时支持调用用户级别的API来创建更有效的应用程序。 屏幕快照 2016-12-15 下午5.15.29.png 2、PF_RING的优点 现在我们知道PF_RING是拥有一套完整开发接口的高速数据包捕捉库,与我们熟知的libpcap十分相似,但其性能要优于libpcap。关于libpcap的实现机制可以参考libpcap实现机制及接口函数 问题 在传统数据包捕获的过程中, CPU的多数时间都被用在把网卡接收到的数据包经过内核的数据结构队列发送到用户空间的过程中。也就是说是从网卡–>内核, 再从内核–>用户空间,这两个步骤,花去了大量CPU时间,从而导致没有其他时间用来进行数据包的进一步处理。 在传输过程中 sk_buff 结构的多次拷贝,以及涉及用户空间和内核空间的反复系统调用极大的限制了接收报文的效率,尤其是对小报文的接收影响更为明显。 解决方案 ** PF_RING提出的核心解决方案便是减少报文在传输过程中的拷贝次数**。由下图我们可以直观的看到不同技术下对数据拷贝的优化是不同的。接下来将围绕这张图的实现路径解释PF_RING和PF_RING ZC库的实现机制。 libpcap、PF_RING、PF_RING ZC方案对比 网卡接收报文的前面的流程就是libpcap实现机制及接口函数中讲解的NAPI,主要的不同体现在报文在内核空间与用户空间的传递。 PF_RING noZC 1、PF_RING socket 针对轮询机制的不足,在轮询机制的基础上提出一种新的包捕获套接字模型,基于环形缓冲区的新的套接字 PF_RING 2、每创建一个PF _RING套接字便分配一个环形缓冲区,当这个套接字结束时释放这个缓冲区 3、PF_RING套接字绑定到某一网卡上时,这个网卡在套接字结束之前处于制度状态,当数据包到达网卡时,将其放入到环形缓冲区。如果缓冲区已经满,则将其丢弃。 4、用户空间可以直接访问这个环形缓冲区中的数据 5、当有新的数据包到来的时候,可以直接覆盖掉已经被用户空间读取过的那个数据包的空间 环形缓冲区示意图 PF_RING ZC PF_RING ZC 实现了PF_RING™ DNA(Direct NIC Access 直接网卡访问)技术。是一种映射网卡内存和寄存器到用户态的方法。 因此除了由网卡的网络处理单元完成DMA传输之外,没有任何额外的数据包复制,进一步节省了一次数据拷贝操作 这将性能更好,因为CPU周期的仅用于操作数据包,而不是把数据包从网卡挪走。 其缺点是,只有一个应用可以在某个时间打开DMA ring(请注意,现在的网卡可以具有多个RX / TX队列,从而就可以在每个队列上同时一个应用程序),换而言之,用户态的多个应用需要彼此沟通才能分发数据包。 PE_RING ZC 用户空间创建PF_RING套接字时 fd = socket(PF_RING, SOCK_RAW, htons(ETH_P_ALL)); 和基于PF_PACKET套接字的libpcap不同的是,PF_RING机制更为灵活: 1.PF_RING采用mmap的方式将网络裸数据放在一个用户态可以直接access的地方,而不是通过socket read/write机制的内存拷贝; 2.PF_RING支持下面1到3三种方式将裸数据放到mmap到用户态的环形缓冲区以及4的DNA方式: 1.按照PACKET套接字的方式从netif_receive_skb函数中抓取数据包,这是一种和PACKET套接字兼容的方式,所不同的是数据包不再通过socket IO进入用户态,而是通过mmap;(transparent_mode 0) 2.直接在NAPI层次将数据包置入到所谓的环形缓冲区,同时NAPI Polling到skb对列,对于这两个路径中的第一个而言,这是一种比2.1介绍的方式更加有效的方式,因为减少了数据包在内核路径的处理长度,但是要求网卡支持NAPI以及PF_RING接口(一般而言,NAPI会将数据包Polling到一个skb队列)。(transparent_mode 1) 3.和2相同,只是不再执行NAPI Polling。这就意味着,数据包将不会进入内核,而是直接被mmap到了用户态,这特别适合于用户态的完全处理而不仅仅是网络审计,既然内核不需要处理网络数据了,那么CPU将被节省下来用于用户态的网络处理。这可能会将内核串行的网络处理变为用户态并行的处理。(transparent_mode 2) 4.这是一种更猛的方式,唤作DNA支持的模式,直接绕过内核协议栈的所有路径,也就是说直接在网卡的芯片中将数据包传输到(DMA的方式)所谓环形缓冲区,内核将看不到任何数据包,这种方式和Intel的万兆猛卡结合将是多么令人激动的事啊;(DNA技术) E33B49AA-8CBA-4146-9AB7-A38EB076B11B.png 以上便是我们在文档中见到的transparent_mode。对于transparent_mode为0的情况,内核会通过net_if_recv_skb回调packet_rcv函数实现数据接收,所以当向系统内核插入PF_RING模块时在内核注册了packet_rcv钩子函数,使用通用的网卡驱动便可以实现向PF_RING传递报文。而对于transparent_mode为1和2的模式,则是需要使用PF_RING特殊定制的网卡驱动,并在网卡驱动中直接调用注册的包处理函数,将报文传递给PF_RING。 屏幕快照 2016-12-16 下午4.02.38.png transparent_mode是对skb_ring_handler之前的包处理路径进行优化, quick_mode是对skb_ring_handler之后的包处理过程进行优化 ...

2012-02-02 · 1 min · 97 words · -

squid cache_peer 参数详解

squid cache_peer 参数详解 通过squid.conf配置文件中的cache_peer选项来配置代理服务器阵列,通过其他的选项来控制选择代理伙伴的方法。Cache_peer的使用格式如下: cache_peer hostname type http_port icp_port 共有5个选项可以配置: hostname:指被请求的同级子代理服务器或父代理服务器。可以用主机名或ip地址表示; type: 指明hostname的类型,是同级子代理服务器还是父代理服务器,也即parent (父) 还是 sibling (子) ; http_port: hostname的监听端口; icp_port: hostname上的ICP监听端口,对于不支持ICP协议的可指定7; options: 可以包含一个或多个关键字。 Options可能的关键字有: 1. proxy-only: 指明从peer得到的数据在本地不进行缓存,缺省地,squid是要缓存这部分数据的; 2. weight=n: 用于你有多个peer的情况,这时如果多于一个以上的peer拥有你请求的数据时,squid通过计算每个peer的ICP响应时间来 决定其weight的值,然后squid向其中拥有最大weight的peer发出ICP请求。也即weight值越大,其优先级越高。当然你也可以手工 指定其weight值; 3. no-query: 不向该peer发送ICP请求。如果该peer不可用时,可以使用该选项; 4. Default: 有点象路由表中的缺省路由,该peer将被用作最后的尝试手段。当你只有一个父代理服务器并且其不支持ICP协议时,可以使用default和no-query选项让所有请求都发送到该父代理服务器; 5.login=user:password: 当你的父代理服务器要求用户认证时可以使用该选项来进行认证。

2012-01-18 · 1 min · 41 words · -

Squid

Squid Squid cache (简称为Squid) 是一个流行的自由软件 (GNU通用公共许可证) 的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。 Squid的发展历史相当悠久,功能也相当完善。除了HTTP外,对于FTP与HTTPS的支援也相当好,在3.0 测试版中也支援了IPv6。

2012-01-18 · 1 min · 9 words · -