dante-1.1.19+pam_mysql-0.5+mysql建立socks代理
时间:2006-10-18 来源:augustusqing
昨晚上开始想重新搭建dante+pam+mysql的socks5服务器,重新找到以前ycc给我的关于搭建的文章
感觉里面说的太简短,概念性的东西都没有说,当时是在我的FC4里面,服务器能测试通过,但好像自己没怎么理解
这次怎算有点稍微的眉目
1,下载dante-1.1.19源代码
tar xvf .....
cd dante
./configure --prefix=/usr --sysconfdir=/etc && make && make install (这些选项通过configure的帮助说明得到)
cp example/sock{d,s}.conf /etc (拷贝两个都过去,例子配制文件在example下面)
根据文章,修改sockd.conf,对里面的选项不怎么明白,照葫芦画瓢,感觉里面的rules比较重要,后来明白了
今早上仔细阅读sockd.conf,才大致明白了,根据建议,主要修改的地方:
服务器设置
1,logoutput: log的地方,/var/run/sockd,就是这个log帮了我的大忙,第一次实地体会到log的重要性
2,internal:是接受连接的网卡和端口,对应3
3,external:出去的网卡
4,method: 这里选择激活pam,这里的method不是真正用来用的,用的时候还得指明,这里相当于声明一下
当然,当只声明了一种方法,在rules中又没有声明方法时会默认这一种
5,clientmethod:是用于client-rules的方法
6,users: 好理解
7,extension:扩展性说明,用于要求扩展的,一般不要用
Rules规则设置:
1, 分清除带client前缀的规则是指 允许或者不允许哪些连接到我这个服务器,
不带的是指跟我服务器连接好后,用户要发请求到其他地方是用到的规则
根据这里我推测socks协议是通过两个步骤的,这里的规则就是针对这两个步骤来的,我没有阅读个socks相关规范,不知道对不对
2,明白了上面的,就好办了,我主要设置了
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
method: pam
}
就是说第二个步骤采用pam认证方法,再下面的关于route的就没试了 2,下载pam_mysql模块,也是下载的0.5版本的,只修改了c文件中的/*#define DEBUG */
make完后拷贝到我的pam模块目录下/lib/security下面
3,配制pam:建立/etc/pam.d/sockd
auth required /usr/lib/security/pam_mysql.so user=sockd passwd=111111 host=localhost db=sockd table=user usercolumn=username passwdcolumn=password crypt=2 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=logtime account required /usr/lib/security/pam_mysql.so user=sockd passwd=111111 host=localhost db=sockd table=user usercolumn=username passwdcolumn=password crypt=2 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=host logtimecolumn=logtime
开始不明白为什么要这么设置,昨晚比较郁闷,今早阅读了pam_mysql中的Readme后才明白
user:
passwd:这是连接mysql数据库的用户名密码
db:自然是要连接的数据库了
table:是db里面的用来认证的表格
logtable:是记录log的表格
其他则是表格里面的相应列,
我修改pam_mysql.so模块的目录路径,用户名密码,crypt我选择0,意思是数据库里user表格的password不加密,明文,全是为了方便,设为2的时候用MySQL PASSWORD()加密;
4,配制mysql,根据上面信息,建立sockd数据库和user,logs表格,
再在user表格里插入一行,sockd:sockd
重启mysql,启动sockd -D,测试通过,查看logs表格,里面有log信息,成就感就随之来了。。。
再通过迅雷里设置我自己的socks代理,顺利从国内网上下载了文件回来,和和 关于dante里面的method里的rfc931方法,好像是通过主机的passwd用户验证,但要又libwrap库的支持,不行
我后来编译了libwrap库,也不行,估计是我编译dante时就没有支持libwrap库,但到此应该时可以运行了
感觉里面说的太简短,概念性的东西都没有说,当时是在我的FC4里面,服务器能测试通过,但好像自己没怎么理解
这次怎算有点稍微的眉目
1,下载dante-1.1.19源代码
tar xvf .....
cd dante
./configure --prefix=/usr --sysconfdir=/etc && make && make install (这些选项通过configure的帮助说明得到)
cp example/sock{d,s}.conf /etc (拷贝两个都过去,例子配制文件在example下面)
根据文章,修改sockd.conf,对里面的选项不怎么明白,照葫芦画瓢,感觉里面的rules比较重要,后来明白了
今早上仔细阅读sockd.conf,才大致明白了,根据建议,主要修改的地方:
服务器设置
1,logoutput: log的地方,/var/run/sockd,就是这个log帮了我的大忙,第一次实地体会到log的重要性
2,internal:是接受连接的网卡和端口,对应3
3,external:出去的网卡
4,method: 这里选择激活pam,这里的method不是真正用来用的,用的时候还得指明,这里相当于声明一下
当然,当只声明了一种方法,在rules中又没有声明方法时会默认这一种
5,clientmethod:是用于client-rules的方法
6,users: 好理解
7,extension:扩展性说明,用于要求扩展的,一般不要用
Rules规则设置:
1, 分清除带client前缀的规则是指 允许或者不允许哪些连接到我这个服务器,
不带的是指跟我服务器连接好后,用户要发请求到其他地方是用到的规则
根据这里我推测socks协议是通过两个步骤的,这里的规则就是针对这两个步骤来的,我没有阅读个socks相关规范,不知道对不对
2,明白了上面的,就好办了,我主要设置了
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
method: pam
}
就是说第二个步骤采用pam认证方法,再下面的关于route的就没试了 2,下载pam_mysql模块,也是下载的0.5版本的,只修改了c文件中的/*#define DEBUG */
make完后拷贝到我的pam模块目录下/lib/security下面
3,配制pam:建立/etc/pam.d/sockd
auth required /usr/lib/security/pam_mysql.so user=sockd passwd=111111 host=localhost db=sockd table=user usercolumn=username passwdcolumn=password crypt=2 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logtimecolumn=logtime account required /usr/lib/security/pam_mysql.so user=sockd passwd=111111 host=localhost db=sockd table=user usercolumn=username passwdcolumn=password crypt=2 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid loghostcolumn=host logrhostcolumn=host logtimecolumn=logtime
开始不明白为什么要这么设置,昨晚比较郁闷,今早阅读了pam_mysql中的Readme后才明白
user:
passwd:这是连接mysql数据库的用户名密码
db:自然是要连接的数据库了
table:是db里面的用来认证的表格
logtable:是记录log的表格
其他则是表格里面的相应列,
我修改pam_mysql.so模块的目录路径,用户名密码,crypt我选择0,意思是数据库里user表格的password不加密,明文,全是为了方便,设为2的时候用MySQL PASSWORD()加密;
4,配制mysql,根据上面信息,建立sockd数据库和user,logs表格,
再在user表格里插入一行,sockd:sockd
重启mysql,启动sockd -D,测试通过,查看logs表格,里面有log信息,成就感就随之来了。。。
再通过迅雷里设置我自己的socks代理,顺利从国内网上下载了文件回来,和和 关于dante里面的method里的rfc931方法,好像是通过主机的passwd用户验证,但要又libwrap库的支持,不行
我后来编译了libwrap库,也不行,估计是我编译dante时就没有支持libwrap库,但到此应该时可以运行了
相关阅读 更多 +