20181129日常——修改SSH端口,配置MTProxy
修改SSH默认端口
自从买了网络服务器之后,每次用XShell登录总是有如下提示信息:
有时候还会出现上万次的暴力破解尝试,内心很是恐慌,遂想到去求助搜索引擎,得到的结果就是修改一下ssh端口,会更安全,于是开始行动。
1.使用vim编辑器编辑SSH访问端口的文件
文件在 /etc/ssh/sshd_config 里面,通过执行命令 vim /etc/ssh/sshd_config 查看配置信息
2.添加需要添加的SSH访问端口
在 sshd_config 文件中有一样注释掉的配置:
#Port = 22
将这一行的注释打开,即去掉行头的#号,之后再其后加上一条自己的SSH端口:
Port = 22222
保存退出;
3.重启SSH服务
service sshd restart
注:如果使用的是类似阿里云的服务器,记得在安全组中开启对应的XXXXX端口。
这样就可以通过设置的端口进行SSH访问。
带新端口可以测试可以访问SSH之后就可以在 sshd_config文件中将原来的22号端口注释掉。
搭建MTProxy服务
MTProxy是TG官方开源的一个TG代理工具,用户可以用来自建代理方便自己使用TG,C语言写一个很轻便的代理软件。废话不多说,贴出github地址:传送门。
1.安装(默认已经安装了git)
Debin/Ubuntu:
apt install git curl build-essential libssl-dev zlib1g-dev
CentOS/RHEL:
yum install openssl-devel zlib-devel yum groupinstall "Development Tools"
从git上克隆文件:
git clone https://github.com/TelegramMessenger/MTProxy
cd MTProxy
make && cd objs/bin
编译完成之后的可执行文件在 obj/bin 文件夹中,名称为: mtproto-proxy 将这个文件移动或者拷贝到你想的位置:
cp mtproto-proxy /opt/MTProxy 或者 mv mtproto-proxy /opt/MTProxy
cd /opt/MTProxy
2.生成配置文件:
使用一下命令获取secret,用来连接TG服务器:
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
其中curl指令为cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。 它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。
用法:
-A/--user-agent <string> 设置用户代理发送给服务器 -b/--cookie <name=string/file> cookie字符串或文件读取位置 -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中 -C/--continue-at <offset> 断点续转 -D/--dump-header <file> 把header信息写入到该文件中 -e/--referer 来源网址 -f/--fail 连接失败时不显示http错误 -o/--output 把输出写到该文件中 -O/--remote-name 把输出写到该文件中,保留远程文件的文件名 -r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围 -s/--silent 静音模式。不输出任何东西 -T/--upload-file <file> 上传文件 -u/--user <user[:password]> 设置服务器的用户和密码 -w/--write-out [format] 什么输出完成后 -x/--proxy <host[:port]> 在给定的端口上使用HTTP代理 -#/--progress-bar 进度条显示当前的传送状态
通过下面的命令获取proxy-multi.config,TG官方的host,里面存放的是TG官方服务器的地址和端口,官网建议是经常更新这个文件。
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
通过以下命令生成一个32位的字符串,作为密钥:
head -c 16 /dev/urandom | xxd -ps
3.创建系统服务
创建系统服务有助于对于MTProxy进程的管理,状态的查看已经重启的自动启动服务。
添加和写入文件:
vim /etc/systemd/system/MTProxy.service
写入如下信息:
[Unit] Description=MTProxy After=network.target [Service] Type=simple WorkingDirectory=/opt/MTProxy ExecStart=/opt/MTProxy/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --aes-pwd proxy-secret proxy-multi.conf -M 1 Restart=on-failure [Install] WantedBy=multi-user.target
其中<secret>为上述产生的32位密钥
8888位内部查看服务状态的端口
443位客户端连接用的端口
nobody为当前登录的用户名
注意如果没有执行文件移动的操作,就使用自己的文件路径,而且必须相对路径,不能含有~这类符号,如果需要根目录的使用/root。
保存MTProxy.service之后重载一下systemctl,随后启动服务并查看状态:
systemctl daemon-reload systemctl restart MTProxy.service //查看一下服务状态 systemctl status MTProxy.service
注意:如果使用的是诸如阿里云等国内的服务器提供商,会有一个内部IP地址,这时候可能出现配置完成还是不发链接的问题,需要写入MTProxy.serviec文件的时候修改如下:
[Unit] Description=MTProxy After=network.target [Service] Type=simple WorkingDirectory=/opt/MTProxy ExecStart=/opt/MTProxy/mtproto-proxy -u nobody -p 8888 -H 443 -S <secret> --nat-info <内网地址>:<外网地址> --aes-pwd proxy-secret proxy-multi.conf -M 1 Restart=on-failure [Install] WantedBy=multi-user.target