NODE & NPM

npm安装包依赖检查

npm i -g npm-check

npm安装包升级插件

npm i -g npm-upgrade

npm指定msbuild

npm install --msvs_version 2015

跳过安装puppeteer

set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1

arch系统安装chromium

搜索/安装chromium

$ pacman -Ss chromium
extra/chromium 65.0.3325.181-7
$ pacman -S chromium

直接运行chromium尽然无反应,命令行中运行出现如下错误

$ chromium
/usr/lib/chromium/chromium: error while loading shared libraries: libicui18n.so.61: cannot open shared object file: No such file or directory

想也不想就安装ICU(没考虑兼容性 pacman -Su icu)

$ pacman -S icu

结果发现chromium还是无法启动并且pacman命令失败

pacman: error while loading shared libraries: libicuuc.so.58: cannot open shared object file: No such file or directory

需要降级ICU,以便恢复pacman,但ICU不兼容导致很多系统命令失败。
最后发现一个办法:使用一个LiveCD系统(基本功能)对目前的系统进行修复

记住现在的磁盘分区挂载情况

$ df -h
dev              /dev
run              /run
/dev/sda3        /
tmpfs            /dev/shm
tmpfs            /sys/fs/cgroup
tmpfs            /tmp
/dev/sda1        /boot
/dev/sda5        /data
/dev/sda6        /home
/dev/sda4        /var
tmpfs            /run/user/120
tmpfs            /run/user/1000
/dev/sdb         /mnt/usb

这里相关的分区是两个 /dev/sda3(根)和 /dev/sda4(var)

下载Bootstrap

$ wget -O http://mirrors.edge.kernel.org/archlinux/iso/2018.04.01/archlinux-bootstrap-2018.04.01-x86_64.tar.gz
$ tar zxf archlinux-bootstrap-2018.04.01-x86_64.tar.gz; ls
archlinux-bootstrap-2018.04.01-x86_64.tar.gz  root.x86_64

进入临时系统,挂载旧系统镜像

$ cd root.x86_64
$ bin/arch-chroot `pwd`
$ pacman-key --init
$ pacman-key --populate archlinux
$ mkdir /mnt/sys
$ mount /dev/sda3 /mnt/sys
$ mount /dev/sda4 /mnt/sys/var

安装(降级)ICU

$ cd /mnt/sys/var/cache/pacman/pkg/
$ pacman -r /mnt/sys -S icu-59.1-2-x86_64.pkg.tar.xz

上述命令意味Bootstrap系统里将icu59安装到/mnt/sys也就是之前的根

结论

之所以出现软件不兼容,是因为系统长时间没有滚动升级了

$ pacman -Syyu

ARCH VIM support clipboard

ArchLinux 上的 vim 不支持 x11,所以用vim打开的文件无法与外部程序共享剪切板。于是在arch的论坛上找到了利用abs编译打包vim的步骤。过程记录如下:

  1. 找到与现在系统兼容的版本
$ pacman -Q vim
vim 8.0.1272-1
  1. 因为ABS(archlinux build system) 已经不支持了,所以用svn (本次时packages包,有时是community)
$ svn co --depth=empty svn://svn.archlinux.org/packages
$ svn co --depth=empty svn://svn.archlinux.org/community
  1. 下载合适版本build,https://github.com/vim/vim/releases?after=v8.0.1282
$ cd packages
$ svn up -r308931 vim
$ cd vim/repos/extra-x86_64
  1. 修改PKGBUILD文件
  • --with-x= [no] yes
  • pkgname=('vim' ['gvim' 'vim-runtime'])
  1. 打包并安装
$ makepkg -s
$ pacman -U vim-8.0.1272-1-x86_64.pkg.tar.xz

暗网攻击步骤

  1. create a new site or login to an old one
  2. login and set sftp password
  3. login via sftp and create a symlink to /
  4. disable DirectoryIndex in .htaccess
  5. enable mod_autoindex in .htaccess
  6. disable php engine in .htaccess
  7. add text/plain type for .php files in .htaccess
  8. have fun browsing files
  9. find /home/fhosting
  10. look at the content of the index.php file in /home/fhosting/www/
  11. find configuration in /home/fhosting/www/_lbs/config.php
  12. copy paste database connection details to phpmyadmin login
  13. find active users with shell access in /etc/passwd
  14. look through the scripts and figure out how password resets work
  15. manually trigger a sftp password reset for the user ‘user’
  16. connect via ssh
  17. run ‘sudo -i’
  18. edit ssh config in /etc/ssh/sshd_config to allow root login
  19. run ‘passwd’ to set root password
  20. reconnect via ssh as root
  21. enjoy

制作SSL证书

参照 How to set SSL on Apache Server on Windows using Fake Local Certificate Authority

介绍

本教程用以演示如何在Apache(windows)上安装SSL/TLS,以及利用客户端私有证书进行认证。一个典型的SSL/TLS生态系统的设置涉及到三个部分。它们是 证书授权服务端、*客户端"。这篇教程的灵感来自于我渴望弄懂双向SSL是如何工作的。在开始研究前我对SSL的了解几乎为0。我将研究成果写成这篇博客发表出来。

  • CA机构 : VeriSign, DigiCert
  • Server : Apache, Tomcat
  • Client : Firefox, Chrome

沙盒(本机环境确认)

  • Windows 7 64bit
  • Apache for Windows
  • OpenSSL for Windows
  • FireFox

配置环境变量

  • 打开命令提示符
  • 设置OPENSSL_CONF为APACHE的openssl.cnf
    例如: set OPENSSL_CONF=C:\xampp\apache\conf\openssl.cnf
  • 设置OPENSSL命令的路径到PATH路径
    例如: set PATH=%PATH%;C:\xampp\apache\bin

为服务端生成CA证书

这篇教程里并没有使用真实的CA(认证机构)。一个假的认证机构 "CA Server Certificate" 会在本地沙盒中创建出来。

  • 使用如下openssl命令创建CA的key文件(ca_server.key)
    openssl genrsa -out ca_server.key 1024

  • 创建证书的签名请求ca_server.csr, 并在subject节提供认证机构相关信息
    openssl req -new -newkey rsa:1024 -nodes -out ca_server.csr -keyout ca_server.key -subj "/C=US/ST=NY/L=New York/O=CA Server Certificate/OU=IT/CN=www.CAServer.org"

  • 利用csr文件和签名来创建CA证书
    openssl x509 -req -days 365 -in ca_server.csr -signkey ca_server.key -out ca_server.crt

创建WEB服务端证书

现在我们将创建服务端CA证书

  • 创建名为server.key的服务端key文件
    openssl genrsa -out server.key 1024

  • 创建服务端csr文件
    openssl req -new -newkey rsa:1024 -nodes -out server.csr -keyout server.key -subj "/C=US/ST=Texas/L=Austin/O=Server /OU=IT/CN=localhost

  • 创建服务端证书,并且用之前步骤中生成的CA为它签名
    openssl x509 -req -days 365 -CA ca_server.crt -CAkey ca_server.key -CAcreateserial -in server.csr -out server.crt

    如果不想用CA为它签名那么使用下面的命令
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

为客户端生成CA证书

openssl genrsa -out ca_client.key 1024
openssl req -new -newkey rsa:1024 -nodes -out ca_client.csr -keyout ca_client.key -subj "/C=US/ST=TX/L=Austin/O=CA for Client Cert/OU=IT/CN=www.CAforClient.org"
openssl x509 -req -days 365 -in ca_client.csr -signkey ca_client.key -out ca_client.crt

创建客户端证书

  • 创建client的key文件client.key
    openssl genrsa -out client.key 1024

  • 创建客户端csr
    openssl req -new -key client.key -out client.csr -subj "/C=US/ST=Texas/L=Austin/O=Client Iqbal/OU=IT/CN=ClientIqbal"

  • 创建客户端证书,并利用CA对其进行签名
    openssl x509 -req -days 365 -CA ca_client.crt -CAkey ca_client.key -CAcreateserial -in client.csr -out client_signedby_ca_client.crt

  • 转换client.crt证书让其可以在firefox中使用
    openssl pkcs12 -export -clcerts -in client_signedby_ca_client.crt -inkey client.key -out client_signedby_ca_client.p12

    注意这一步需要填入密码

配置服务端APACHE

编辑apache配置文件 http-ssl.conf

DocumentRoot "C:/xampp/htdocs"
<Directory "D:/xampp/htdocs">
  Options Indexes
  Order deny,allow
  Allow from all

  #SSLRequireSSL
  SSLVerifyClient require
  SSLVerifyDepth 1
  SSLEngine on
  SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
  SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.crt/server.key"
  SSLCACertificateFile "C:/xampp/apache/conf/ssl.crt/ca_client.crt"

  ErrorLog "logs/dummy-host.localhost-error.log"
  CustomLog "logs/dummy-host.localhost-access.log" combined
</Directory>

在Firefox中试用

添加CA机构证书 ca_server.crt

  • 进入Firefox菜单->选项->选项->高级
  • 点击“查看证书”
  • 选择证书机构,并点击导入按钮导入"ca_server.crt"
  • 选择相信证书的定义网站,并且点击“确定”按钮
  • ca_server.crt项展示为CA Server Certificate
  • 选择“我的证书”tab,导入client_signedby_ca_server.p12PKCS12证书
  • 点击“确定”按钮, 即完成设置

制作代理软件证书(charles)

  1. 生成目录
mkdir -p /usr/local/CharlesCA
cd /usr/local/CharlesCA
mkdir certs private newcerts
  1. 生成CA证书
openssl req -new -x509 -days 3650 -extensions v3_ca \
-keyout private/ca_key.pem -out certs/ca_cert.pem \
-config /etc/ssl/openssl.cnf
  1. 转换为 PKCS12 格式
openssl pkcs12 -export -out ca_cert.pfx -inkey private/ca_key.pem -in certs/ca_cert.pem
  1. 检查结果
    生成3个重要文件
  • ca_cert.pfx – charles 添加自定义证书用的
  • ca_cert.pem – 提供给客户端使用的
  • ca_key.pem – 钥匙(请保证它的安全)
www.000webhost.com