Good, 你已经有了一个自己的SSH代理了,现在想要把这个代理公布出去给所有人分享。 但是没有两个小时,代理就没法使用了,为什么?因为你需要额外注意以下事项(以下步骤需要比较高的linux技能) 关于如何创建SSH FQ账号?请看:
大家都知道,利用国外的VPS,可以实现SSH代理X墙。但是考虑到安全问题,我们不敢把自己的root账户给别人用。如果朋友急着要 Fuck 墙怎么办呢?其实也很简单,给朋友建一个最权限的 SSH账...
一、首先要做的当然是禁用root用户远程登录。
shell# vi /etc/ssh/sshd_config
1、找到下面这行:把值改为yes(允许)或no(不允许)
PermitRootLogin yes
2、然后重新启动ssh服务就可以了.
# /etc/rc.d/sshd restart
或# service sshd restart
二、检查操作系统的各种限制
1、对于openvz的vps,特别需要检查一下
shell# cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
3124: kmemsize 3468342 4718592 268435456 268435456 0
lockedpages 0 0 65536 65536 0
privvmpages 11819 14263 9223372036854775807 9223372036854775807 0
shmpages 769 785 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
numproc 22 48 9223372036854775807 9223372036854775807 0
physpages 5275 8020 0 131072 0
vmguarpages 0 0 9223372036854775807 9223372036854775807 0
oomguarpages 1847 1847 9223372036854775807 9223372036854775807 0
numtcpsock 5 5 9223372036854775807 9223372036854775807 0
numflock 4 5 9223372036854775807 9223372036854775807 0
numpty 1 1 9223372036854775807 9223372036854775807 0
numsiginfo 0 42 9223372036854775807 9223372036854775807 0
tcpsndbuf 87200 87200 9223372036854775807 9223372036854775807 0
tcprcvbuf 81920 81920 9223372036854775807 9223372036854775807 0
othersockbuf 4624 59320 9223372036854775807 9223372036854775807 0
dgramrcvbuf 0 2312 9223372036854775807 9223372036854775807 0
numothersock 13 27 9223372036854775807 9223372036854775807 0
dcachesize 1312205 1382789 134217728 134217728 0
numfile 388 455 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
numiptent 24 24 9223372036854775807 9223372036854775807 0
2、其中 numtcpsock 表示 tcp 连接数。像上面这样的情况,就不适合用于公共代理,因为vps商限制了并发的tcp连接数。
shell# ulimit -n
1024
3、这个命令检查默认的一个进程可以打开的文件数。1024这个默认值是不够的。推荐设置为8000
shell# ulimit -n 8000
三、防止vps被用于暴力破解ssh密码等非法行为
1、下面假设SSH账号为sshproxy
shell# iptables -t filter -A OUTPUT -d 127.0.0.1 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner sshproxy -A OUTPUT -p tcp --sport 22 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner sshproxy -A OUTPUT -p tcp --dport 80 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner sshproxy -A OUTPUT -p tcp --dport 443 -j ACCEPT
shell# iptables -t filter -m owner --uid-owner sshproxy -A OUTPUT -p tcp -j REJECT --reject-with tcp-reset
2、对于sshproxy用户,限制其不能访问80,443之外的端口
四、 防止DMCA Compliant
1、虽然你已经把sshproxy限制为只能访问80/443端口,但是对于美国的vps,仍然有额外的一点需要注意。 2、因为美国的vps需要遵从美国的DMCA版权法律,如果该vps被用于bt下载,而且正好遇上了电影公司设置的蜜罐的话,你的vps的ip就会被记录下来。然后DMCA Compliant律师函会被送往你的vps商那,然后就会被停止服务。为了避免ssh帐号被用于bt下载,你不得不对80端口的流量再进一步进行限制
shell# apt-get update && apt-get install -y nginx #安装nginx
3、随便添加一个虚拟主机配置文件,内容为
server {
listen 127.0.0.1:3128;
server_name localhost;
resolver 8.8.8.8;
location / {
set $upstream_host $host;
if ($request_uri ~ "^/announce.*") {
return 403;
}
if ($request_uri ~ "^.*torrent.*") {
return 403;
}
proxy_set_header Host $upstream_host;
proxy_pass http://$upstream_host;
proxy_buffers 8 32k;
proxy_buffering off;
}
}
4、接着把所有的80端口流量转到nginx来处理
shell# iptables -t nat -m owner --uid-owner http-ss -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 3128
话说,两小时。。。你是不是把root共享出去了?
知根知底的我都提供root算了,反正都是单独一个vps用来fq
卧槽TCP连接限制5这玩意能玩?话说这个TCP连接限制都会影响在什么方面?
上面我搞错了,maxheld是并发限制,limit是总数限制
有啥影响我真不懂了
确实能玩啊,还能看U2B上1080P的视频
话说你是不是看错了,上面的排版有点乱limit才是限制啊
uid resource held maxheld barrier limit failcnt
numflock 4 5 9223372036854775807 9223372036854775807 0
话说如果限制在2000一下这玩意还能玩么?
布吉岛,没试过,估计还能耍两下的
好吧,豆腐乳君的linux 知识好像挺高的
你妹看到是参照别人教程改的么?via:http://v2ex.com/t/118804
你竟然在shadowsocks.net还共享了个ss账户。。。
一直有共享啊
来支持咯!
好麻烦,表示SSH共享的是ROOT账户
心眼真大,共享root用户
。。。。。以及你的RssFeed地址挂掉了,直接doufu.ru/feed 吧
好麻烦