GPG使用记录

发布在 Linux

GPG简单来说是一种加密机制,可以用来加密文件、邮件等。这里以Centos为例记录一下生成密钥以及相关操作。

阅读全文

细心的老读者可能发现,本站现在全面启用了https,为啥捏?因为好看!哇哈哈哈……

这里记录一下Centos6系统上的nginx配置方法。这里我使用 letsencrypt 提供的免费证书,首先访问https://certbot.eff.org/,然后根据你的实际情况选择webserver和操作系统,这里为了通用性,我选择“Unspecified Webserver on Other UNIX”。

阅读全文

很多情况下我们都需要进行端口转发,这里以centos为例记录一下linux系统上端口转发的3种方式。

iptables

想利用iptables进行端口转发,首先要打开内核转发功能:

1
2
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

然后编辑转发的服务器的/etc/sysconfig/iptables文件,添加

1
2
3
4
5
6
7
8
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 转发服务器的ip -p tcp --dport 转发服务器的端口 -j DNAT --to-destination 目标ip:端口
-A POSTROUTING -d 目标ip -p tcp --dport 目标端口 -j SNAT --to 转发服务器的Ip
COMMIT

重启Iptables后即可生效,在我们本机链接转发服务器的ip和端口实际上就是链接目标机器的ip和端口了。

阅读全文

fedora21无缝升级到23

发布在 Linux

今天看到消息说在12月1号后,fedora将停止对21及以前版本的yum源中软件的更新、新增,作为一个“尝鲜爱好者”当然必须使用最新版的软件了,于是决定对fedora进行升级,目前版本是21,直接升级到23。注意,本文只适用于21,22进行升级,而20及以前的版本命令是fedup而非dnf。

首先执行:

1
2
sudo dnf update
sudo dnf system-upgrade download --releasever 23

经过漫长的等待后:

1
sudo dnf system-upgrade reboot

重启后会自动进入升级页面,等待即可。

更新完成,所有的配置、软件都还在,直接使用就好了。不过在23版本中,dnf命令替代了yum命令,基本的安装啊、更新啊、删除啊就是把yum换成了dnf,这里就不多说了。感觉比较有用的新命令就是:

  1. dnf repolist 显示本机中的软件源
  2. dnf repolist all 显示所有软件源
  3. dnf list 显示所有可用的和已经安装的软件包
  4. dnf list installed 显示已经安装的软件包
  5. dnf list available 显示所有可用的软件包
  6. dnf update 升级系统,感觉这个命令充满了apt的味道…
  7. dnf autoremove 删除那些没用的包
  8. dnf clean all 删除无用的缓存文件

不过也移除了一些Yum命令,比如–skip-broken、 deplist,而且目前没有替代方案。

评论和分享

最近使用requests库进行操作时总出现如下警告:

1
InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

虽然不影响程序执行,不过看着一个警告还是心理不舒服.

解决办法很简单,安装几个包即可pip install pyopenssl ndg-httpsclient pyasn1

安装过程中可能出现某些头文件不存在的错误,比如

1
2
openssl/aes.h: No such file or directory
fatal error: ffi.h: No such file or directory

安装对应的dev包即可,比如ubuntu下就是
sudo apt-get install libffi-dev libssl-dev

评论和分享

上周刚刚从dota2的坑中跳出来,这周就又跳入了mincraft的大坑中。作为买不起官网服务的穷人,自己玩单机也未免过于孤单。虽然网上有很多现成的“私服”,不过又不想受别人限制,那就自己搭建一个呗!

首先安装jdk,fedora执行:
sudo yum install java-1.8.0-openjdk.x86_64
ubuntu则是:
suso apt-get install openjdk-7-jre-headless
安装完成后可以执行java命令看是否成功,然后下载minecraft的服务端:

1
wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.8/minecraft_server.1.8.8.jar

这步最好新建一个目录,因为运行程序后会在当前目录生成一些文件。

运行:java -Xmx1024M -Xms1024M -d64 -jar minecraft_server.1.8.8.jar nogui
这里官网提示可用内存至少在1G以上,我自己添加了-d参数因为我的系统是64位的。

1
2
3
4
5
6
7
8
root@localhost:/var/local/mine# java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
[02:37:30] [Server thread/INFO]: Starting minecraft server version 1.8.8
[02:37:30] [Server thread/INFO]: Loading properties
[02:37:30] [Server thread/WARN]: server.properties does not exist
[02:37:30] [Server thread/INFO]: Generating new properties file
[02:37:30] [Server thread/WARN]: Failed to load eula.txt
[02:37:30] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[02:37:30] [Server thread/INFO]: Stopping server

第一次运行后会出现这个错误,编辑当前目录下生成的eula.txt,把eula设置为true即可。

修改保存后再次运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@localhost:/var/local/mine# java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.8.jar nogui
[02:37:49] [Server thread/INFO]: Starting minecraft server version 1.8.8
[02:37:49] [Server thread/INFO]: Loading properties
[02:37:49] [Server thread/INFO]: Default game type: SURVIVAL
[02:37:49] [Server thread/INFO]: Generating keypair
[02:37:49] [Server thread/INFO]: Starting Minecraft server on *:25565
[02:37:49] [Server thread/INFO]: Using epoll channel type
[02:37:49] [Server thread/INFO]: Preparing level "world"
[02:37:50] [Server thread/INFO]: Preparing start region for level 0
[02:37:51] [Server thread/INFO]: Preparing spawn area: 4%
[02:37:52] [Server thread/INFO]: Preparing spawn area: 10%
[02:37:53] [Server thread/INFO]: Preparing spawn area: 18%
[02:37:54] [Server thread/INFO]: Preparing spawn area: 31%
[02:37:55] [Server thread/INFO]: Preparing spawn area: 43%
[02:37:56] [Server thread/INFO]: Preparing spawn area: 57%
[02:37:57] [Server thread/INFO]: Preparing spawn area: 70%
[02:37:58] [Server thread/INFO]: Preparing spawn area: 86%
[02:37:59] [Server thread/INFO]: Preparing spawn area: 99%
[02:37:59] [Server thread/INFO]: Done (9.702s)! For help, type "help" or "?"

这里服务就成功启动了,但注意,这里服务端是正版的,如果使用的是盗版客户端,比如HMCL,选择多人游戏并添加服务器地址后是无法链接的,需要修改配置文件server.properties,把其中online-mode的值改成false,之后再次启动服务器即可链接。

评论和分享

fedora21使用ipv6访问google

发布在 Linux

有传言ss、goagent作者被喝茶,不知真假,不过github上的项目确实被删除了,照这趋势大中华局域网指日可待啊。

项目删除并不代表不能使用,如果你有好的ss、goagent服务端fq依然是没太大问题的。不过我最近用ss自己搭建的服务端经常出现时不时就断线的情况,不知道是不是GFW又升级了?作为一个google重度用户,这实在是难以忍受,而且某些情况下又不能直接使用vpn,之前有研究过使用ipv6访问google,但那时候各种fq方法都还不会受到严重干扰,也就没深入了解。ipv6访问google并不是神码新鲜玩意,几年之前就说有朝一日ipv6将取代ipv4,不过喊了几年也没什么动静。原理和废话不多说,想使用ipv6访问google,fedora21默认已经启用了ipv6支持,ubuntu还需要设置一下,具体操作自行百度。然后需要安装miredo:
sudo yum install miredo

然后 使用root权限 执行:/usr/local/sbin/miredo

执行后会发现多出一个虚拟网卡:

1
2
3
4
5
6
7
8
teredo Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00...
inet6 addr: 2001:0:8ac3:9ddd:0:7ffa:ad80:3464/32 Scope:...
inet6 addr: fe80::5445:5245:444f/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:468 (468.0 b) TX bytes:560 (560.0 b)

如果向修改网卡名则编辑/etc/miredo/miredo.conf即可,当然懒的话就用默认的。

然后可以用命令测试是否生效:

1
2
3
4
5
6
7
8
ping6 ipv6.google.com
PING ipv6.google.com(google.com) 56 data bytes
64 bytes from google.com: icmp_seq=1 ttl=59 time=753 ms
64 bytes from google.com: icmp_seq=2 ttl=59 time=331 ms
64 bytes from google.com: icmp_seq=3 ttl=59 time=334 ms
64 bytes from google.com: icmp_seq=4 ttl=59 time=354 ms
^C
--- ipv6.google.com ping statistics ---

此时不用代理访问https://ipv6.google.com/即可打开。

如果想访问其他网站呢?这就需要hosts文件了,这里不普及hosts是什么了,给个地址https://code.google.com/p/ipv6-hosts/,这个地址貌似很久没更新了,可以去https://github.com/lennylxx/ipv6-hosts 瞧瞧。

如果想知道某个网站是否支持ipv6,我知道3个办法:

  1. http://ipv6-test.com/validate.php
  2. nslookup -q=aaaa xxxx.com
  3. dig @2001:470:20::2 xxxx.com AAAA

上面的2、3原理是一样的,如果支持的话把得到的地址写入hosts中即可。

评论和分享

本来用浏览器插件+ss翻墙翻的好好的,结果最近不知道哪里抽风,一访问google就给我跳转到”We are sorry”页面,提示说电脑自动向google发送了一些奇怪的东西,不过使用vpn则没有这个问题。

但使用vpn则无法访问公司内网,关于这点mac上处理的就非常好,当同时使用多个vpn时mac会自动根据访问目标不同而切换不同的vpn线路。既然fedora上没有自动切换功能,但同为的*unix系统肯定是有解决办法的。

目标:使用vpn翻墙同时能访问公司内网

达成目标的核心原理就是路由表,未使用vpn时路由表如下:

1
2
3
4
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 1024 0 0 enp2s0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

当链接vpn后路由表变化为:

1
2
3
4
5
6
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 1024 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.3.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
198.74.121.155 192.168.0.1 255.255.255.255 UGH 0 0 0 enp2s0

同时网卡信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.37 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::b283:feff:fe9c:474b prefixlen 64 scopeid 0x20<link>
ether b0:83:fe:9c:47:4b txqueuelen 1000 (Ethernet)
RX packets 202847 bytes 212380485 (202.5 MiB)
RX errors 0 dropped 276 overruns 0 frame 0
TX packets 110180 bytes 12264625 (11.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 8165 bytes 8007889 (7.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8165 bytes 8007889 (7.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400
inet 192.168.3.220 netmask 255.255.255.255 destination 192.168.3.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 81 bytes 42977 (41.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 92 bytes 17147 (16.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

既然原理就是添加路由信息,那么使用route add命令即可,指定4段网络使用原来的0.1:

1
sudo route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.0.1 dev enp2s0

添加后如下:

1
2
3
4
5
6
7
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 1024 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0
192.168.3.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.4.0 192.168.0.1 255.255.255.0 UG 0 0 0 enp2s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
198.74.121.155 192.168.0.1 255.255.255.255 UGH 0 0 0 enp2s0

这样再访问4段内网就可以了。

评论和分享

今天发现有道词典出了linux版,不过万恶的只有deepin和ubuntu的安装包,作为忠实的红帽系用户只能下源码了。首先从 http://cidian.youdao.com/index-linux.html 选择二进制安装包并解压。

这里注意2个地方,首先fedora21默认为qt4,python2.7,而有道词典需要qt5以及python3,所以先要去官网下载QT5离线安装版(个人建议,我这在线安装qt5慢的不可忍受)。下载完成我们得到qt-opensource-linux-x64-5.4.1.run添加执行权限后执行即可。

安装完成后进入到解压后的有道词典目录,我这里叫youdao-dict_1.0.2~binary_amd64,给里面的install.sh添加执行权限并执行即可。

接下来到了最纠结的地方了,我们要手动安装各个依赖,这里我就直接给出经过N次失败后成功的结果把,下面这些都要用yum命令安装:

1
2
3
4
5
6
7
8
9
yum install python3-qt5
yum install python3-requests
yum install python3-xlib
yum install python3-lxml
yum install python3-pillow
yum install tesseract-langpack-chi_sim
yum install tesseract-langpack-chi_tra
yum install qt5-qtquickcontrols
yum install qt5-qtgraphicaleffects

都安装完成后就可以用了,支持取词、划词,不过取词识别度还有待提高,划词翻译比较好用。当然了,如果你想更geek一点,可以安装openyoudao也很酷。

评论和分享

fedora21安装MITMf框架

发布在 Linux

关于这大名鼎鼎的中间人攻击框架不多介绍了,如果是kali linux用户直接apt-get install mitmf即可;如果是win用户呢,基本就放弃吧;如果是os x用户呢,有几个依赖我始终安装失败,你要安装成功了请联系我。

网上很多都是讲ubuntu怎么安装这个框架的,这里我记录一下在fedora21上我的安装记录。

首先安装一些系统依赖,这里我系统原来就安装了很多杂七杂八的东西,不保证下面的就是齐全的:

1
2
3
sudo yum install libnetfilter_queue-devel
sudo yum install libffi-devel
sudo yum install libpcap-devel

接下来下载一个不能用pip安装的包

1
git clone https://github.com/fqrouter/python-netfilterqueue.git

然后进入目录中执行python setup.py install即可。

然后把mitmf框架下载下来

1
git clone https://github.com/byt3bl33d3r/MITMf.git

进入目录后,修改requirements.txt,我安装成功后所有的依赖如下,不保证时效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# NetfilterQueue==0.6 这个是手动安装的
Pillow==2.8.0
PyYAML==3.11
Twisted==15.0.0
capstone==3.0.2
cffi==0.9.2
characteristic==14.3.0
configobj==5.0.6
cryptography==0.8.1
dnspython==1.12.0
enum34==1.0.4
msgpack-python==0.4.6
pefile==1.2.10-114
pyOpenSSL==0.14
pyasn1==0.1.7
pyasn1-modules==0.0.5
pycparser==2.10
pypcap==1.1.1
requests==2.6.0
scapy==2.3.1
service-identity==14.0.0
six==1.9.0
ua-parser==0.3.6
user-agents==0.3.2
wsgiref==0.1.2
zope.interface==4.1.2

都安装完就可以了,如果安装某个包时报错xxx.h不存在,基本就是某个系统依赖的devel包没安装的问题,使用yum安装即可。还有一点,运行这个框架要用root权限。

1
2
3
4
5
6
7
8
9
10
11
12
(mitmfenv)┌─[cpu0@localhost] - [~/git/MITMf] - [5230]
└─[#] ./mitmf.py -h [14:43:41]
▄▄▄▄███▄▄▄▄ ▄█ ███ ▄▄▄▄███▄▄▄▄ ▄████████
▄██▀▀▀███▀▀▀██▄ ███ ▀█████████▄ ▄██▀▀▀███▀▀▀██▄ ███ ███
███ ███ ███ ███▌ ▀███▀▀██ ███ ███ ███ ███ █▀
███ ███ ███ ███▌ ███ ▀ ███ ███ ███ ▄███▄▄▄
███ ███ ███ ███▌ ███ ███ ███ ███ ▀▀███▀▀▀
███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███
▀█ ███ █▀ █▀ ▄████▀ ▀█ ███ █▀ ███
usage:
MITMf v0.9.5 - Framework for MITM attacks

评论和分享

Roy.S

微信公众号:hi-roy


野生程序员


China