Security – 夏清然的日志 https://www.qingran.net Xia Qingran Geek Blog Sun, 07 Aug 2016 09:50:33 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.1 112893047 Putty使用公钥认证时,报错:Disconnected: No supported authentication methods available(server sent:public key) 问题的解决 https://www.qingran.net/2014/01/putty%e4%bd%bf%e7%94%a8%e5%85%ac%e9%92%a5%e8%ae%a4%e8%af%81%e6%97%b6%ef%bc%8c%e6%8a%a5%e9%94%99%ef%bc%9adisconnected-supported-authentication-methods-availableserver-sentpublic-key-%e9%97%ae/ https://www.qingran.net/2014/01/putty%e4%bd%bf%e7%94%a8%e5%85%ac%e9%92%a5%e8%ae%a4%e8%af%81%e6%97%b6%ef%bc%8c%e6%8a%a5%e9%94%99%ef%bc%9adisconnected-supported-authentication-methods-availableserver-sentpublic-key-%e9%97%ae/#comments Sat, 04 Jan 2014 09:28:13 +0000 https://www.qingran.net/?p=1922 Putty使用公钥认证时,按照常规方法设置,一直报错:Disconnected: No supported authentication methods available (server sent:public key)。

如截图:

putty-error

 

找了半天没找到问题出在哪里,sshd的设置一切正常。这个做过多次居然也能错????

 

最后发现原来是 ~/.ssh/authorized_keys 文件的内容有问题,putty生成的pub文件的格式如下:


---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAvifBFJzxK0PGJVNV9ZdDGOYWvytwnFDKoaZv
Djdt7rEK+zeFzR6eU7ERhOjMPb7GfoFU/1JPwXqSN2p57T4xdtR/Qi9/XAhmQ9SY
XnfA1yNOhHXoQuoCEjOmIbOo+NmZCoKPeBob7fXV8Ar7MmJ0vUpZ+79Usm9lsvQF
zEfI/Q1NuaVoOb7s6CFyj9WcmX7Yzc3cXpIHeFzLfLTFFROohw==
---- END SSH2 PUBLIC KEY ----

而原来设置的都是在一行的格式,所以openssh不支持putty生成的此格式,需要把这些合并成一行即可:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAvifBFJzxK0PGJVNV9ZdDGOYWvytwnFDKoaZvDjdt7rEK+zeFzR6eU7ERhOjMPb7GfoFU/1JPwXqSN2p57T4xdtR/Qi9/XAhmQ9SYXnfA1yNOhHXoQuoCEjOmIbOo+NmZCoKPeBob7fXV8Ar7MmJ0vUpZ+79Usm9lsvQFzEfI/1NuaVoOb7s6CFyj9WcmX7Yzc3cXpIHeFzLfLTFFROohw== rsa-key

]]>
https://www.qingran.net/2014/01/putty%e4%bd%bf%e7%94%a8%e5%85%ac%e9%92%a5%e8%ae%a4%e8%af%81%e6%97%b6%ef%bc%8c%e6%8a%a5%e9%94%99%ef%bc%9adisconnected-supported-authentication-methods-availableserver-sentpublic-key-%e9%97%ae/feed/ 1 1922
FreeBSD在线开启ipfw https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/ https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/#respond Tue, 10 May 2011 10:31:48 +0000 https://www.qingran.net/?p=1108 在FreeBSD 7.1 amd64版下,由于默认的内核编译选项没有并加入以下内容:

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT

所以在启用ipfw的时候,会启用默认禁止的全部连接的规则,那么直接的后果是把ssh的连接踢下线,并切断外界到这个服务器一切端口的连接请求。

解决方案,在启用ipfw后,马上加入一条允许所有请求的规则:

kldload ipfw && ipfw add 65534 allow ip from any to any

另外需要注意一点:绝对禁止使用/sbin/ipfw -q -f flush,会导致把上面这条手动添加的开放规则删除!

同时,如果想在重启后ipfw也开启生效,那么需要这样做:

在/etc/rc.conf里加入:

firewall_enable="YES"
firewall_script="/etc/firewall.sh"

同时/etc/firewall.sh的内容是

#!/bin/sh
/sbin/ipfw -q -f flush
/sbin/ipfw add 65534 allow ip from any to any

同时自定义的ipfw规则也可以向/etc/firewall.sh中添加,比如阻止118.215.66.135到本机80端口的连接,那么加入

/sbin/ipfw add 1 deny ip from 124.193.167.1 to any dst-port 80

]]>
https://www.qingran.net/2011/05/freebsd%e5%9c%a8%e7%ba%bf%e5%bc%80%e5%90%afipfw/feed/ 0 1108
sshd防止“防火墙断开空闲TCP链接”的设置 https://www.qingran.net/2011/02/sshd%e9%98%b2%e6%ad%a2%e2%80%9c%e9%98%b2%e7%81%ab%e5%a2%99%e6%96%ad%e5%bc%80%e7%a9%ba%e9%97%b2tcp%e9%93%be%e6%8e%a5%e2%80%9d%e7%9a%84%e8%ae%be%e7%bd%ae/ https://www.qingran.net/2011/02/sshd%e9%98%b2%e6%ad%a2%e2%80%9c%e9%98%b2%e7%81%ab%e5%a2%99%e6%96%ad%e5%bc%80%e7%a9%ba%e9%97%b2tcp%e9%93%be%e6%8e%a5%e2%80%9d%e7%9a%84%e8%ae%be%e7%bd%ae/#respond Tue, 22 Feb 2011 02:51:06 +0000 https://www.qingran.net/?p=996 最近发现公司的的内网ssh登陆上服务器后不操作一段时间就会断线,同时如果一直在操作或有屏幕输出(类似tail -f /var/log/apache2/access.log),那么ssh就不会断线。

猜测是公司的防火墙有“断开空闲TCP链接”的策略,在/etc/ssh/sshd_config 内加入:

ClientAliveInterval = 15
ClientAliveCountMax = 100

ClientAliveInterval的含义是每过15s,sshd会向ssh client发出一个询问是否在线的请求,正常的ssh client都会予以回应;同时ClientAliveCountMax设定了这种询问的最大失败值,在本例中如果sshd向client发出了100次讯问均没有得到回应,那么sshd会主动断开此ssh链接。

]]>
https://www.qingran.net/2011/02/sshd%e9%98%b2%e6%ad%a2%e2%80%9c%e9%98%b2%e7%81%ab%e5%a2%99%e6%96%ad%e5%bc%80%e7%a9%ba%e9%97%b2tcp%e9%93%be%e6%8e%a5%e2%80%9d%e7%9a%84%e8%ae%be%e7%bd%ae/feed/ 0 996
Trac、Mercurial集成项目管理工具组建 https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/ https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/#respond Thu, 13 Jan 2011 04:12:34 +0000 https://www.qingran.net/?p=775 我们的项目已经进行了半年,马上进入了第3个季度,慢慢的需求管理、缺陷管理的建立也需要提上日程。

从走在前面的3D引擎的开发状况看,需要有一个良好的bug管理系统来管理bug、记录需求等,于是决定用一个项目管理工具来实施,直接上Trac,并且要做到和我们的开发的版本管理工具Mercurial完全集成,Mercurial的安装见链接

首先ubuntu的apt reposity里只有trac 0.11.7,所以需要下载trac-0.12.1,导致一些安装需要手工安装。

使用0.12.1在于支持i18n,支持多个source reposity等,并且基于0.12版本的plugin较多。

[准备工作]

系统是ubuntu 10.04 LTS。

首先安装trac所需要的支持环境,采取先安装trac,然后再移除的方式安装依赖包:
apt-get install trac && dpkg -P trac

安装Genshi 0.6版本(下载),trac 0.12依赖此:
tar -xvzf Genshi-0.6.tar.gz && cd Genshi-0.6 && python setup.py install

安装Trac 0.12.1:
tar -xvzf Trac-0.12.1.tar.gz && cd Trac-0.12.1 && python setup.py install

[配置apache2]

目前使用mod_python方式运行trac,wsgi方式配置Trac mainnav一直出不来,很郁闷:(
apt-get install libapache2-mod-python

因为是通过 http://ipaddr/trac 访问的,修改/etc/apache2/sites-available/default,加入以下内容:

<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main
PythonOption TracEnv /data/trac/core-trac
PythonOption TracUriRoot /trac
SetEnv PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName "core trac password"
SetEnv PYTHON_EGG_CACHE /tmp
AuthUserFile /etc/apache2/hg.passwd
Require valid-user
</Location>

初始化trac库:
cd /var/www && mkdir trac && trac-admin trac/ initenv && trac-admin trac/ permission add xiaqingran TRAC_ADMIN

指定TRAC_ADMIN用户:
trac-admin trac/ permission add xiaqingran TRAC_ADMIN

[配置trac]

首先配置用户的trac权限,觉的命令行麻烦就用webadmin来吧。

配置mercurial,在trac中能浏览mercurial中的代码,能在commit代码的时候自动close ticket,并且把diff加入提案:

安装mercurial-plugin:
svn co http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin
制作egg文件:
cd mercurial-plugin && python setup.py bdist_egg

进入webadmin界面,然后再plugin选项里安装刚刚生成的egg mercurial-plugin/dist/TracMercurial-0.12.0.23dev_r9953-py2.6.egg

重启apache2,刷新页面,看plugin是否enabled。

同时在plugin里把Trac 0.12.1里把tacopt.ticket.commit_updater.*下的插件打开,同时把TracMercurial里的所有插件enable。

进入WebAdmin -> Version Control -> Repositories加入相关的版本库,名称为client,版本库类型是hg,目录就选在在服务器上的hg目录。

[配置mercurial]

设定mercurial的hooks,使其在hg push时能同步修改trac,编辑hg服务器端的.hg/hgrc,加入以下两段:
[hooks]
commit = trac-admin /var/www/trac/ changeset added client %HG_NODE%
incoming = trac-admin /var/www/trac/ changeset added client %HG_NODE%

mercurial提交的时候按照此格式编写commit log:
- *Fixes #123* - to reference this changeset and close #123 ticket with the default status *fixed*

完毕,enjoy it.

]]>
https://www.qingran.net/2011/01/trac%e3%80%81mercurial%e9%9b%86%e6%88%90%e9%a1%b9%e7%9b%ae%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7%e7%bb%84%e5%bb%ba/feed/ 0 775
IE6居然还是使用最多的浏览器 https://www.qingran.net/2010/11/ie6%e5%b1%85%e7%84%b6%e8%bf%98%e6%98%af%e4%bd%bf%e7%94%a8%e6%9c%80%e5%a4%9a%e7%9a%84%e6%b5%8f%e8%a7%88%e5%99%a8/ https://www.qingran.net/2010/11/ie6%e5%b1%85%e7%84%b6%e8%bf%98%e6%98%af%e4%bd%bf%e7%94%a8%e6%9c%80%e5%a4%9a%e7%9a%84%e6%b5%8f%e8%a7%88%e5%99%a8/#comments Sun, 07 Nov 2010 15:25:23 +0000 https://www.qingran.net/?p=687 刚才看了一下自己网站的awstats数据,在浏览器这块儿IE6还是占有了第一的份额。

崩溃到家!IE6这个M$的十年前的产品,漏洞之王,HTML不标准之王,JS性能最差之王…

QQ和360等有现在这功夫干嘛不把用户的IE都升级到最新的IE8,Firefox或是Chrome。

转念一想不可能,首先都利用了IE6漏洞多的特点:要么自己搞浏览器,插入自己的东西;如果都用IE8,Firefox和Chrome了,用户还要这些安全软件做甚?

另,QQ和360这场大戏的最大受益者现在看应该是新浪微博。微博的兄弟们再给力点啊!

]]>
https://www.qingran.net/2010/11/ie6%e5%b1%85%e7%84%b6%e8%bf%98%e6%98%af%e4%bd%bf%e7%94%a8%e6%9c%80%e5%a4%9a%e7%9a%84%e6%b5%8f%e8%a7%88%e5%99%a8/feed/ 3 687
FreeBSD下安装IPSec VPN https://www.qingran.net/2010/05/freebsd%e4%b8%8b%e5%ae%89%e8%a3%85ipsec-vpn/ https://www.qingran.net/2010/05/freebsd%e4%b8%8b%e5%ae%89%e8%a3%85ipsec-vpn/#comments Fri, 14 May 2010 13:51:41 +0000 https://www.qingran.net/?p=317 本文详细说明在FreeBSD下如何建立IPSec VPN链路。在GNU/Linux下安装IPSec VPN,详见这里

1,  kernel update
2,  ports update

# portsnap fetch extract update

3, kernel configure

# cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/kernel_ipsec
# cat >> /usr/src/sys/i386/conf/kernel_ipsec << _EOF_
options  IPSEC
options  IPSEC_ESP
device   gif
_EOF_

# cd /usr/src
# make buildkernel KERNCONF=kernel_ipsec
# make installkernel KERNCONF=kernel_ipsec

4,  Edit tunnel – /etc/rc.conf
host 1:

gif_interfaces="gif0"
gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"

host 2:

gif_interfaces="gif0"
gifconfig_gif0="W.X.Y.Z A.B.C.D"
ifconfig_gif0="inet 192.168.2.1 192.168.1.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.1.0 192.168.1.1 netmask 0xffffff00"

5, do tunnel commands
host 1:

# ifconfig gif0 create
# ifconfig gif0 tunnel A.B.C.D W.X.Y.Z
# ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff

host 2:

# ifconfig gif0 create
# ifconfig gif0 tunnel W.X.Y.Z A.B.C.D
# ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff

6, enable ipsec – /etc/rc.conf

ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"

7, setkey – /etc/ipsec.conf
host 1:

spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;

host 2:

spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;

8, enable racoon in /etc/rc.conf

racoon_enable="YES"

9,  racoon configure

# mkdir -p /usr/local/etc/racoon
# echo "A.B.C.D password" > /usr/local/etc/racoon/psk.txt
# chmod 0600 /usr/local/etc/racoon/psk.txt
# cat >> /usr/local/etc/racoon/racoon.conf << _EOF_
path pre_shared_key "/usr/local/etc/racoon/psk.txt";

remote anonymous
{
exchange_mode main,aggressive,base;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key ;
dh_group 2 ;
}
}
sainfo anonymous
{
pfs_group 2;
lifetime time 12 hour ;
encryption_algorithm 3des, cast128, blowfish 448, des, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
_EOF_

10, add route

/sbin/route add -net 10.55.0/16 192.168.1.101
/sbin/route add -net 172.16.0/16 192.168.1.101
/sbin/route add -net 10.69.0/16 192.168.1.101

11, /etc/sysctl.conf

# echo 'net.inet.ip.forwarding=1' >> /etc/sysctl.conf
# sysctl net.inet.ip.forwarding=1

11, ipsec boot

# setkey -F
# setkey -FP
# setkey -f /etc/ipsec.conf
# /usr/local/etc/rc.d/racoon start

12, Done!

]]>
https://www.qingran.net/2010/05/freebsd%e4%b8%8b%e5%ae%89%e8%a3%85ipsec-vpn/feed/ 2 317
GNU/Linux 安装IPSec VPN https://www.qingran.net/2010/05/gnulinu%e5%ae%89%e8%a3%85ipsec-vpn/ https://www.qingran.net/2010/05/gnulinu%e5%ae%89%e8%a3%85ipsec-vpn/#comments Thu, 06 May 2010 08:14:15 +0000 https://www.qingran.net/?p=307 在前面的一篇日志中详细说明了如何建立基于pptpd的VPN,由于pptpd脆弱的安全性和较低的性能,本文介绍一下IPSec VPN的架设。

一下的内容以ubuntu/debian发行版为例。

1,安装 IPSec。IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。

用以下命令安装 openswan:

sudo aptitude install openswan

2,用文字编辑器打开 /etc/ipsec.conf,改成这样:

version 2.0
config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=YOUR.SERVER.IP.ADDRESS
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

3,修改 /etc/ipsec.secrets:

YOUR.SERVER.IP.ADDRESS   %any:  PSK "YourSharedSecret"

把“YOUR.SERVER.IP.ADDRESS”,这部分换成你的服务器的 IP 地址,把“YourSharedSecret”

4、运行以下命令:

for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done

5,检查一下 IPSec 能否正常工作:

sudo ipsec verify

如果在结果中看到「Opportunistic Encryption Support」被禁用了,没关系,其他项 OK 即可。

6,重启 openswan:

sudo /etc/init.d/ipsec restart

7,安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。

运行以下命令:

sudo aptitude install xl2tpd

8,用文字编辑器打开 /etc/xl2tpd/xl2tpd.conf,改成这样:

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。

9,安装 ppp。这是用来管理 VPN 用户的。

sudo aptitude install ppp

10,检查一下 /etc/ppp 目录里有没有 options.xl2tpd 这个文件,没有的话就建一个,文件内容如下:

require-mschap-v2
ms-dns 208.67.222.222
ms-dns 208.67.220.220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。

11,现在可以添加一个 VPN 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:

# user      server      password            ip
test        l2tpd       testpassword        *

如果你之前设置过 PPTP VPN,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword * 这样加到后面即可。

12,重启 xl2tpd:

sudo /etc/init.d/xl2tpd restart

13,设置 iptables 的数据包转发:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

14,因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rc.local 文件里写入如下语句:

iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。

如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。

Ubuntu 9.10 自带的 openswan 版本是 2.6.22, Debian Lenny 带的版本是 2.4.12。这两个版本的 openswan 都有问题。我们的测试结果表明,2.6.24 版的 openswan 可以在上述两版的 Linux 操作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2.6.24 :

sudo aptitude install libgmp3-dev gawk flex bison
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar xf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs
sudo make install

编译需要一段时间。你的 Linux 内核版本需要高于 2.6.6。

然后可以删除原先通过 aptitude 安装的 openswan,并重启之:

sudo aptitude remove openswan
sudo /etc/init.d/ipsec restart
]]>
https://www.qingran.net/2010/05/gnulinu%e5%ae%89%e8%a3%85ipsec-vpn/feed/ 3 307
GNU/Linux使用pptpd建立VPN网络 https://www.qingran.net/2010/02/gnulinux%e4%bd%bf%e7%94%a8pptpd%e5%bb%ba%e7%ab%8bvpn%e7%bd%91%e7%bb%9c/ https://www.qingran.net/2010/02/gnulinux%e4%bd%bf%e7%94%a8pptpd%e5%bb%ba%e7%ab%8bvpn%e7%bd%91%e7%bb%9c/#comments Mon, 22 Feb 2010 10:11:26 +0000 https://www.qingran.net/?p=123 刚刚做好,留档保存。

VPN方案以前比较熟悉的OpenVPN,不过win下需要单装客户端,所以这次就用pptpd来做,比OpenVPN简单不少。

安装pptpd

以debian/ubuntu为例

# apt-get install pptpd
# apt-get install iptables

配置pptpd

修改/etc/pptpd.conf

localip 10.0.0.1
remoteip 10.0.0.10-250

修改/etc/ppp/pptpd-options

ms-dns <your dns0>
ms-dns <your dns1>

修改密码文件 /etc/ppp/chap-secrets

第一列为用户名,第二列为/etc/ppp/pptpd-options中的name字段(默认为pptpd),第三列为密码,最后一列为允许ip(所有都允许是*)。

iptables转发:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

sysctl打开ip_forward

sysctl net.ipv4.ip_forward=1

客户端连接:

直接在windows下建立vpn连接,走默认的即可。

完成。

]]>
https://www.qingran.net/2010/02/gnulinux%e4%bd%bf%e7%94%a8pptpd%e5%bb%ba%e7%ab%8bvpn%e7%bd%91%e7%bb%9c/feed/ 1 123
Debian Secure APT简介 https://www.qingran.net/2009/11/debian-secure-apt%e7%ae%80%e4%bb%8b/ https://www.qingran.net/2009/11/debian-secure-apt%e7%ae%80%e4%bb%8b/#comments Mon, 02 Nov 2009 10:46:44 +0000 https://www.qingran.net/?p=468 简单说一下Debian APT体系中为了保证deb包的完整性和可信,建立的一套secure apt体系。

这次升级ubuntu 9.10系统后直接把/etc/apt/sources.list里面google、opera和skype的源的地址直接拷贝了过来,结果apt-get update的时候总是报gpg签名的错误:

“W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used.GPG error: http://dl.google.com stable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY A040830F7FAC5991“

详细查探了一下原因,原来是因为debian 的 secure apt体系的约束。

secure apt也叫apt-secure是从apt 0.6版本开始引入,时间是在2003年。secure apt的作用是使用数字签名和加密对所有下载包的进行验证。

数字签名目前同时使用了md5、sha-1、sha256等三种签名方式。
首先在每个源、每种架构(i386、amd64)目录都存在了一个Packages.bz2内保存了所有包的checksum文件
例如:

wget http://archive.ubuntu.com/ubuntu/dists/lucid-security/multiverse/binary-i386/Packages.bz2
bzless Packages.bz2

可以看到如下内容:

Filename: pool/multiverse/f/flashplugin-nonfree/flashplugin-installer_10.1.53.64ubuntu0.10.04.1_i386.deb
Size: 19748
MD5sum: 9f0e2dcbdcbfe5df425334aabcd19b68
SHA1: 59dbb008eeba133a994e6a440042f49ed4876175
SHA256: 60d0ded6de08418ee99aa5d667bed9f1e4d2f76334e188b21386abdb343821f3

同时为了保证Packages.bz2的完整性呢, 又通过在的Release文件内加入对Package.bz2文件的签名来保证:
可以打开http://archive.ubuntu.com/ubuntu/dists/lucid-security/Release文件查看。

那么,Release文件的完整性如何来保证?此时为Release引入了GPG签名,可见http://archive.ubuntu.com/ubuntu/dists/lucid-security
/Release.gpg

当执行

apt-get update

apt系统先取到Release.gpg,此文件是一个GPG的签名结果,apt使用存储在/etc/apt/trusted.gpg内的GPG key对同位置下的Release文件进行签名,并把签名结果和Release.gpg进行比较,如果相同就通过,否则就会报最开始的“NO_PUBKEY”错误。

验证apt key的匹配可以通过以下步骤进行验证:

cd /var/lib/apt/lists
gpgv --keyring /etc/apt/trusted.gpg archive.ubuntu.com_ubuntu_dists_lucid-updates_Release.gpg\ archive.ubuntu.com_ubuntu_dists_lucid-updates_Release

同时列出当前的apt key(通过读取/etc/apt/trusted.gpg文件):

apt-key list

添加一个key

gpg --keyserver subkeys.pgp.net --recv-keys
gpg -a --export  | sudo apt-key add -

同时查看一个软件包的HASH签名:

apt-cache show  | egrep '(^MD5|^SHA1|^SHA256)'

参考资料
http://wiki.debian.org/SecureApt

]]>
https://www.qingran.net/2009/11/debian-secure-apt%e7%ae%80%e4%bb%8b/feed/ 1 468
网络连接加密之ssh https://www.qingran.net/2009/06/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8bssh/ https://www.qingran.net/2009/06/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8bssh/#respond Mon, 22 Jun 2009 06:59:56 +0000 https://www.qingran.net/?p=96 建立网络链路加密的方式有很多,比较常用方式就是建立VPN。VPN又包括ipsec、openvpn、pptp等。

而使用ssh建立加密链路是最简单的一种方式,直接使用ssh client和openssh配合即可。

此时的传输的路径为:

应用程序 <–> ssh tunnel <–> ssh server <–> 目的地

putty:

0,新建一个putty session

1,配置本地的ssh隧道端口,从左侧工具栏进入Connection -> SSH -> Tunnels,然后在Source Port处填入你想连接的本地端口,同时选中Dynamic和Auto,Add添加之:

2,配置完毕,直接“Open“连接远程sshd服务。
3,浏览器修改网络连接socks v5配置

openssh客户端

ssh -qTfnN -D 7070 remotehost

此时如果其他的应用想走这个加密隧道,只需要配置socket5代理,host为127.0.0.1,port为7070。

同时建议使用firefox的FoxyProxy插件来实现快速的切换。




同时,还可以用ssh建立一条到远程指定端口连接的ssh加密通道,例如到testserver.org 110端口(pop邮件)的加密隧道:

ssh -qTfL 111:testserver:110 -l username -N testserver.org

同时把本地的邮件客户端到testserver.org的110端口的连接改为到localhost 111的连接即可。

如发泡制,rsync也可采取这种方式进行加密传输:

ssh -qTfL 874:testserver:873 -l username -N testserver.org

本文参考: http://thinkhole.org/wp/2006/05/10/howto-secure-firefox-and-im-with-putty/

]]>
https://www.qingran.net/2009/06/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8bssh/feed/ 0 96
网络连接加密之Tor篇--隐藏自己的所在地 https://www.qingran.net/2009/04/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8btor%e7%af%87%ef%bc%8d%ef%bc%8d%e9%9a%90%e8%97%8f%e8%87%aa%e5%b7%b1%e7%9a%84%e6%89%80%e5%9c%a8%e5%9c%b0/ https://www.qingran.net/2009/04/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8btor%e7%af%87%ef%bc%8d%ef%bc%8d%e9%9a%90%e8%97%8f%e8%87%aa%e5%b7%b1%e7%9a%84%e6%89%80%e5%9c%a8%e5%9c%b0/#comments Sat, 18 Apr 2009 06:50:39 +0000 https://www.qingran.net/?p=77 Tor是什么
Tor 是一个由虚拟通道构成的网络,团体和公民用它来增强他们在互联网上的隐私和安全。同时它使得软件开发人员能够创建具有内建隐私保护特性的新的通信工具。 Tor 奠定了一系列应用的基础,通过这些应用,组织和个人可以在公开的网络上分享信息而不必担心隐私受到威胁。


个人使用 Tor 以防止网站跟踪他们和他们的家庭成员,或者连接到被本地 ISP 封锁的新闻站点、即时通讯服务等。Tor 的隐匿服务(hidden services)使得用户能够发布网站和其他服务而不必泄露站点的位置。个人还使用 Tor 进行私密的交流。

记者使用 Tor 与告密者和持不同政见者更安全地交流。非政府组织(NGOs)也在使用 Tor,当工作人员在国外时,他们可以连接自己的网站,而周围的人对他们的工作却一无所知。

独立媒体中心(Indymedia)之类的团体建议使用 Tor 来保护成员的在线隐私和安全。电子前沿基金会(EFF)之类的社会活动团体建议将 Tor 作为维护公民在线自由的一种机制。公司使用 Tor 安全地从事竞争力分析,或者确保敏感的采购模式不被泄露。 他们还用它来替代传统的虚拟专用网络(VPNs),后者会泄露精确的通信量和通信时间:最近员工在什么地点工作?在什么地点有员工访问求职网站?哪些研究分支在和公司的专利律师交流?

Tor的如何工作
Tor 有助于降低简单的和高级的流量分析的风险,Tor 把你的流量分散到互联网上的多个地点,所以不存在单一的一点可以把你和你的目的地联系起来。这就好像用一条拐弯抹角的、难以辨认的路径甩掉跟踪你的人,然后定期擦掉你的脚印。在 Tor 网络上,来源和目的地不是用一条路径直接连接的,而是由一条通过数台中继的随机路径覆盖原始路径,数据包在这条路径上传输,因此,不存在任何单一一点上的观察者能够知道数据从哪里来、到哪里去。

用 Tor 创建一条私有网络路径时,用户的软件或客户端通过网络上的中继递增地建立一条由若干加密连接组成的环路(circuit)。环路一次扩展一跳(hop),环路上的中继仅仅知道它从哪一个中继接收数据以及向哪一个中继发送数据。没有一台单独的中继会知道数据包的完整路径。客户端与环路上的每一跳都协商一组独立的密钥,这样可以保证数据通过任何一跳时都无法跟踪。

一旦环路建立完成,多种类型的数据可以在上面进行交换,不同种类的应用程序也可以在 Tor 网络上部署。因为每一台中继最多只能知道环路中的一跳,窃听者或者被入侵的中继都无法通过流量分析把连接的来源和目的地联系起来。 Tor 仅作用于 TCP 数据流,任何支持 SOCKS 的应用程序都可以使用它。

出于有效性,Tor 为大约在相同的十分钟内发起的连接请求分配同一环路。以后的请求被分配不同的环路,这样他人就不能把你早先的行为和新的行为联系起来。

Tor的安装

Windows下

可直接使用绿色版的OperaTor:OperaTor-3.5,更多详细内容可见 http://archetwist.com/en/opera/operator


在Debian/Ubuntu GNU/Linux下:

0, 修改apt源/etc/apt/sources.list,加入以下内容

==========================

deb     http://mirror.noreply.org/pub/tor <DISTRIBUTION> main

deb-src http://mirror.noreply.org/pub/tor <DISTRIBUTION> main

==========================

注意<DISTRIBUTION> 根据系统版本用以下字符来替换:

debian 4.0、debian 5.0、debian unstable 分别为 etch, lenny, sid

ubuntu-8.04、ubuntu-8.10、ubuntu-9.04 分别为 hardy, intrepid, jaunty

例如在ubuntu-9.04下,添加如下:

==========================

deb     http://mirror.noreply.org/pub/tor jaunty main

deb-src http://mirror.noreply.org/pub/tor jaunty main

==========================

执行以下命令:

==========================

$ gpg –keyserver keys.gnupg.net –recv 94C09C7F

$ gpg –export 94C09C7F | sudo apt-key add –

$ sudo apt-get update

$ sudo apt-get install tor tor-geoipdb privoxy

==========================

修改privoxy的配置/etc/privoxy/config,加入以下一行:

forward-socks4a / 127.0.0.1:9050 .

别忘记在这行的最后加上“.”

重启privoxy

==========================

$ sudo /etc/init.d/privoxy restart

==========================

给firefox安装 Torbutton插件 .

点击firefox右下角的Tor disabled使其变为Tor enabled即可启用。

要让其他支持HTTP代理的应用程序使用Tor,将他们指向Provixy即可(也就是127.0.0.1的8118端口)。其他访问SOCKET的程序(IM、MAIL)等,将应用程序端口指向Tor的127.0.0.1的9050。

Tor的未来

今天,在互联网上提供一个可用的匿名网络是一项持续的挑战。我们需要满足用户需求的软件。我们也需要网络以一种支持尽可能多的用户的方式运行。安全性和可用性并非不可协调:随着 Tor 的可用性的增加,它会吸引更多的用户,用户的增加提高了每次通信的来源与目的地的可能性,而这增强了每个人的安全性。我们在进步,但我们需要你的帮助。请考虑运行中继或者志愿作一名开发者。

法律、政策和技术的当前趋势以前所未有的程度威胁着匿名,破坏着我们在线言论与阅读的自由。这些趋势也使得个人、组织、公司、政府间的通信更易分析,削弱了国家和关键基础设施的安全。每一个新的用户、每一台新的中继都会增加网络的多样性,Tor 由此更能帮助你把安全和隐私的控制权重新掌握在自己手中。

参考文档:

http://www.torproject.org/overview.html.zh-cn

http://www.torproject.org/docs/tor-doc-unix.html.en

]]>
https://www.qingran.net/2009/04/%e7%bd%91%e7%bb%9c%e8%bf%9e%e6%8e%a5%e5%8a%a0%e5%af%86%e4%b9%8btor%e7%af%87%ef%bc%8d%ef%bc%8d%e9%9a%90%e8%97%8f%e8%87%aa%e5%b7%b1%e7%9a%84%e6%89%80%e5%9c%a8%e5%9c%b0/feed/ 2 77