Classification:Network

Classification (Network)'s result:

SSH配置免密码登录及注意点

原理 //图片来源于zhihu Ubuntu A sudo apt-get install openssh-server /etc/ssh/ssh_config RSAAuthentication yes PubkeyAuthenticationyes #AuthorizedKeysFile %h/.ssh/authorized_keys chmod 644 authorized_keys chmod 700 -R .ssh   Win7 B ssh-keygen   chmod 600 lsb_id_rsa   B复制id_rsa.pub为A的.ssh/authorized_keys 1.ssh-copy-id(方便不用手工控制权限,小心覆盖原来的authorized_keys文件)ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host> 2.scp 3.手动复制   注意点: 如果添加公钥后,还是无法访问,也可能是ServerB主机上面的一个文件known_hosts中已经存在ServerA的ip信息,删除重新访问即可。 Connection closed by $IP 可能是超过系统默认失败次数了,然后清理就ok了~【faillog -a;faillog -r】 在前面步骤都正确无误的情况下,每次远程登录还是提示让输入密码,这时候有可能是权限问题: chmod 644 authorized_keys再次登录就ok了~【如果是Red Hat 5.6的话,最好改成600,否则认为是不安全的~】 证书如果有passphrase则第一次key登录要输入这个密码 要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效 使用私钥生成公钥 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub   在远程登录的时候可能会发现,在输入完用户名后需要等很长一段时间才会提示输入密码。其实这是由于 sshd 需要反查客户端的 dns 信息导致的。可以通过禁用这个特性来大幅提高登录的速度。首先,打开 sshd_config 文件: sudo nano /etc/ssh/sshd_config 找到 GSSAPI options 这一节,将下面两行注释掉: #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no然后重新启动 ssh 服务即可。   参考资料 https://blog.csdn.net/u012031380/article/details/80569217 https://blog.csdn.net/netwalk/article/details/12952051    

linux/windows命令行设置代理

Windows set http_proxy=http://127.0.0.1:8888 set https_proxy=http://127.0.0.1:8888   set http_proxy_user=test set http_proxy_pass=123456   set http_proxy=socks5://127.0.0.1:1080 set https_proxy=socks5://127.0.0.1:1080   http_proxy=http://userName:password@proxyAddress:port =空就是取消   Linux $ export http_proxy=http://127.0.0.1:8888 $ export https_proxy=http://127.0.0.1:8888   $ export http_proxy=socks5://127.0.0.1:1080 $ export https_proxy=socks5://127.0.0.1:1080   $ export ALL_PROXY=socks5://127.0.0.1:1080   $ unset http_proxy $ unset https_proxy $ unset ALL_RPOXY   proxychain   GIT git config –global http.proxy http://127.0.0.1:8888 git config –global https.proxy http://127.0.0.1:8888   git config –global http.proxy socks5://127.0.0.1:1080 git config –global https.proxy socks5://127.0.0.1:1080   git config –global –unset http.proxy git config –global –unset https.proxy   参考资料 https://blog.fazero.me/2015/09/15/让终端走代理的几种方法/  

聊聊比特币(bitcoin)钱包

//浅析比特币运行原理 硬件钱包(冷) 硬件钱包是一个实体电子设备,仅仅是为了比特币安全而创建。 其核心创新是在消费比特币之前,必须要将比特币钱包连上你的电脑、电话或者平板设备。 使用硬件钱包来离线生成和存储私钥可以确保黑客无法偷走你的比特币。 黑客必须要偷走硬件钱包,即使如此,它也被个人识别码所保护。 不要担心你的硬件钱包会被偷、丢失、或者被损毁;只要你创建一个私钥备份,你就可以重新找回你的比特币。 —https://www.buybitcoinworldwide.com/zh-cn/bitcoin-wallets/   Ledger Nano S KeepKey Trezor   软件钱包(热) 热钱包也是一种比特币钱包,其运行在联网的设备上,比如电脑、移动电话或者平板设备。 私钥是一串加密代码。因为热钱包是在联网设备上生成私钥,所以这些私钥不能被认为是百分之百的安全。 —https://www.buybitcoinworldwide.com/zh-cn/bitcoin-wallets/ 建议:开源+平台不保存私钥+免费+不占空间内存+易用+多功能+多平台+双重验证+多重签名+HD 比特派(android/ios) imToken(android/ios) Jaxx(android/ios/desktop,网站访问量低) Blockchain(android/ios,平台保存私钥) Coinbase(android/ios,平台保存私钥) Ownbit(android/ios) Electrum(android/ios/desktop,只支持btc) kcash Bitcoin Core(desktop,全节点,占用大量空间) Tokenall huobi GreenAddress Armory(高级,中心化,冷) Copay(开源,android/ios/desktop,有黑记录) MultiBit(desktop,不维护了) Bitcoin-Qt(占大量空间内存) bither(开源,android/ios/desktop)   在线/交易所钱包 BlockChain、火币、币安、OTCBTC、OKEX、Bigone、GDAX,inputs.io,greenaddress   纸钱包 将私钥打印到纸上离线保存,是冷存储。   脑钱包 脑钱包是基于确定性钱包,在创建种子时,不使用随机数,而通过用户输入的短语来创建,这样用户就可以仅记住自己的短语,就可以在任何时候借助工具恢复整个钱包。不过这个概念已经被废弃了。因为虽然简单但暴露了巨大安全问题。通过穷举短语就可以发现大量钱包,并盗取资金。不过这项技术确实有一定价值。 —https://www.zhihu.com/question/21478404/answer/391989244 https://www.yanshiba.com/code/hanwallet/   火币网交易   国内建议用rmb买usdt,再用usdt买btc 法币交易(rmb-虚拟币) 币币交易(虚拟币-虚拟币) 提现: 划转到法币交易再出售   相关资料 https://bitcoin.org/

了解cgi/fast-cgi/php-cgi/php-fpm

0x00 什么是cgi 即Common Gateway Interface 公共网关接口,是协议!!! 运行在服务器上的程序,fork-and-execute 模式,因为web服务器只能处理静态html/css,需要动态的就要交给cgi ,有标准输入,输出和环境变量的语言都可以编写,如C,PHP,python,shell,perl等。 //网上找的两张图,比较直观描述了cgi. cgi通过环境变量获得传递的参数,相关环境变量如下: 环境变量          意义 SERVER_NAME CGI脚本运行时的主机名和IP地址. SERVER_SOFTWARE 你的服务器的类型如: CERN/3.0 或 NCSA/1.3. GATEWAY_INTERFACE 运行的CGI版本. 对于UNIX服务器, 这是CGI/1.1. SERVER_PROTOCOL 服务器运行的HTTP协议. 这里当是HTTP/1.0. SERVER_PORT 服务器运行的TCP口,通常Web服务器是80. REQUEST_METHOD POST 或 GET, 取决于你的表单是怎样递交的. HTTP_ACCEPT 浏览器能直接接收的Content-types, 可以有HTTP Accept header定义. HTTP_USER_AGENT 递交表单的浏览器的名称、版本 和其他平台性的附加信息。 HTTP_REFERER 递交表单的文本的 URL,不是所有的浏览器都发出这个信息,不要依赖它 PATH_INFO 附加的路径信息, 由浏览器通过GET方法发出. PATH_TRANSLATED 在PATH_INFO中系统规定的路径信息. SCRIPT_NAME 指向这个CGI脚本的路径, 是在URL中显示的(如, /cgi-bin/thescript). QUERY_STRING 脚本参数或者表单输入项(如果是用GET递交). QUERY_STRING 包含URL中问号后面的参数. REMOTE_HOST 递交脚本的主机名,这个值不能被设置. REMOTE_ADDR 递交脚本的主机IP地址. REMOTE_USER 递交脚本的用户名. 如果服务器的authentication被激活,这个值可以设置。 REMOTE_IDENT 如果Web服务器是在ident (一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值. CONTENT_TYPE 如果表单是用POST递交, 这个值将是 application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个 multipart/form-data. CONTENT_LENGTH 对于用POST递交的表单, 标准输入口的字节数.   0x01 什么是fast-cgi cgi进程管理器,cgi升级版,也是一个协议。将cgi保存在内存中以提高性能(不用像cgi一样每次请求都解析php.ini)。可独立于服务器。 工作原理: 1. Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module) 2. FastCGI进程管理器自身(master)初始化,解析配置文件,初始化执行环境,启动多个CGI解释器进程(可见多个php-cgi/worker)并等待来自Web Server的连接。 3. 当客户端请求到达Web Server时,FastCGI进程管理器(master)选择并连接到一个CGI解释器(worker)。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 4. FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了) 当worker不够用时,master可以根据配置预先启动几个worker等着,同时如果发现空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源 而对应的是,只要是遵循了这个协议标准实现的程序,就可以称之为FastCGI程序 这就是fastcgi的对进程的管理。   0x02 什么是php-cgi cgi解释器进程,解释PHP脚本。   0x03 什么是php-fpm PHP fast-cgi,对fast-cgi的PHP实现,可调度php-cgi进程。可以平滑重载配置。   0x04 cgi安全问题 1. shellsock 参考 重温经典:shellshock漏洞重现及分析   2. 解析漏洞 环境:vulhub 以nginx为例进行重现: 判断漏洞,在任意图片后加/xxx.php 图片被解析 在上传图片马即可(尝试phpinfo): 更多解析漏洞参考: 解析漏洞总结   0x05 结语 时不时还能看到cgi-bin,整理下相关概念,不至于太混乱。   0x06 参考资料 https://www.jdon.com/idea/cgi.htm https://www.zhihu.com/question/19998865 www.nowamagic.net/librarys/veda/detail/1319 www.cnblogs.com/wanghetao/p/3934350.html https://segmentfault.com/q/1010000000256516 www.cnblogs.com/LittleHann/p/4561462.html https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html#    

web服务器、中间件、web容器的区别

有时会弄混这三者的区别,现总结区分。 Web服务器:提供www服务,处理http协议,响应静态页面的请求,页面跳转,也可以把动态请求委托其他程序(中间件/容器),返回信息给客户端。 中间件:提供系统软件和应用软件之间的连接,为应用程序提供容器。 Web容器:给其中的应用程序组件提供环境,中间件的组成部分,实现了对动态语言的解析,如tomcat有jsp容器去解析jsp。 ################## 常见web服务器:IIS(微软)、Apache、nginx、tomcat、weblogic(oracle)、websphere(IBM) 常见中间件:tomcat、weblogic、websphere 常见web容器:jsp容器、servlet容器、asp容器 有重复是因为中间件也可以提供web服务,充当web服务器的功能。 ##################

HTTP 状态码大全

0x00 概述 1xx:收到请求 2xx:请求成功 3xx:重定向 4xx:客户端错误 5xx:服务端错误   0x01 状态码解释 100:继续 101:切换协议 ############################## 200:请求成功 201:已创建 202:已接受 203:非授权信息 204:无内容 205:重置内容 206:部分内容 ############################### 300:多种选择 301:永久移动 302:临时移动 304:未修改 305:用代理 307:临时移动 ################################### 400:语法错误 401:身份认证 403:拒绝 404:Not Found 405:方法禁止 406:无法完成 407:代理认证 408:超时 409:put请求冲突 410:已不存在 411:要content-length 412:先决错误 413:实体过大 414:url过长 415:无法处理的媒体格式 416:范围无效 417:无法满足expect ################################ 500:内部错误 501:无法完成 502:bad gateway 503:服务不可用 504:gateway time-out 505:不支持的http版本 更详细的解释可看参考资料。   0x02 参考资料 www.runoob.com/http/http-status-codes.html tool.oschina.net/commons?type=5 tools.jb51.net/table/http_status_code blog.csdn.net/woshihaiyong168/article/details/52438839                

概览开源协议

0x00 什么是开源协议 简单的说,就是规定别人用你的开源代码可以做什么,可以修改什么,可以怎么用,用的时候要达到啥要求的一个条约。协议可以维护代码原作者的权利,尊重原作者劳动成果。开源协议有很多种,自己也可以写一份,但是如果没有特别需求,还是选一个已经写好的协议较为方便。   0x01 主要的开源协议 1. MIT:此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险。保留版权,而无任何其他限制。 关键词:保留版权,其他随意 代表:jQuery,.NET core,Rails   2. Apache:与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权。 (1)需要给代码的用户一份Apache Licence (2)如果你修改了代码,需要再被修改的文件中说明。 (3)在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 (4)如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 关键词:专利授权,商业友好 代表:Android,apache,swift   3. BSD: (1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。 (2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 (3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 关键词:商业友好。   4. GPL:此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。 关键词:开源,免费,传染 代表:linux,bash,GIMP   5. LGPL:允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。LGPL开源代码很适合作为第三方类库被商业软件引用。 关键词:库引用,可商业   0x02 主要协议图表说明 图片来源:www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html 图片来源:www.gcssloop.com/tips/choose-license 更详细的协议内容可以参考: 英文版:https://choosealicense.com 中文版:choosealicense.online   0x03 结语 尊重作品作者的劳动是基本道德素养,才能营造出良好的开源环境。每个人都应该尊重版权,尊重他人劳动,不仅是开源代码作品,其他作品也一样。本博客也积极做到不能转载的不转,可以转的按要求转(一些文章没写能否转载的本人默认可以转载),引用的地方注明引用源,参考到的文章都在参考资料里写出,欢迎大家监督,如果有无意侵权的地方,请联系本人LSA,大家共同维护互联网纯净和谐的环境。   0x04 参考资料 www.cnblogs.com/Wayou/p/how_to_choose_a_license.html www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html blog.csdn.net/u012150179/article/details/25490535 univasity.iteye.com/blog/1292658 https://baike.baidu.com/item/开源协议/10642383?fr=aladdin https://www.zhihu.com/question/19568896 www.gcssloop.com/tips/choose-license https://creativecommons.org/choose/ choosealicense.online/licenses/ https://choosealicense.com  

user-agent大全

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0 Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11 Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT……