CentOS SS5安装与配置详解
一、前言
CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,以其稳定性和安全性著称,在网络代理方面,SS5(Simple Socks Server 5)是一个高性能的SOCKS代理服务器,支持SOCK4和SOCKS5协议,本文将详细介绍如何在CentOS上安装和配置SS5,包括如何实现多进程、多IP地址绑定、用户名/密码认证等功能。
二、安装步骤
1. 系统准备
确保你的CentOS系统已经安装了以下工具:
wget:用于下载文件。
tar:用于解压文件。
make:用于编译软件。
vim:文本编辑器。
如果没有这些工具,可以通过以下命令安装:
sudo yum install y wget tar make vim
2. 安装依赖包
SS5需要一些开发库才能正常编译和运行,执行以下命令安装必要的依赖包:
sudo yum install y gcc automake make pamdevel openldapdevel cyrussasldevel openssldevel
3. 下载并安装SS5
从SourceForge下载SS5源码包:
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.98/ss53.8.98.tar.gz nocheckcertificate
解压文件:
tar vzxf ss53.8.98.tar.gz cd ss53.8.9
编译并安装SS5:
./configure make sudo make install
4. 配置SS5
默认情况下,SS5没有启用用户认证,这意味着任何人都可以使用该代理服务器,这是非常不安全的,我们需要修改配置文件来启用用户名和密码认证。
编辑SS5的主配置文件/etc/opt/ss5/ss5.conf
:
sudo vim /etc/opt/ss5/ss5.conf
找到以下两行,取消注释并将none
改为u
:
#auth 0.0.0.0/0 none #permit 0.0.0.0/0 none
修改为:
auth 0.0.0.0/0 u permit u 0.0.0.0/0 0.0.0.0/0
添加用户名和密码到/etc/opt/ss5/ss5.passwd
文件中,每行一个用户+密码,格式如下:
user1 password1 user2 password2
admin1 123456 admin2 abcdef
保存并关闭文件。
5. 配置防火墙和端口转发
为了允许外部访问SS5,需要配置防火墙规则,假设你想将SS5绑定到端口10808
,执行以下命令:
sudo firewallcmd permanent addport=10808/tcp sudo firewallcmd reload
6. 启动SS5并设置为开机自启
创建SS5服务文件/etc/rc.d/init.d/ss5
:
sudo cp /etc/opt/ss5/ss5 /etc/rc.d/init.d/ss5 sudo chmod a+x /etc/rc.d/init.d/ss5
启动SS5:
sudo /etc/rc.d/init.d/ss5 start
或者使用service
命令:
sudo service ss5 start
设置SS5开机自启:
sudo chkconfig add ss5 sudo chkconfig level 345 ss5 on
三、高级配置:多进程、多IP地址绑定及限制访问目标网段
1. 多进程和多IP地址绑定
如果服务器有多个IP地址,可以运行多个SS5进程,每个进程绑定不同的IP地址和端口,为每个进程创建一个单独的用户:
sudo useradd user1 s /bin/false p YourPasswordHere sudo useradd user2 s /bin/false p YourPasswordHere
查看用户的UID:
awk F: '/^user1:/{print $1,$4}' /etc/passwd awk F: '/^user2:/{print $1,$4}' /etc/passwd
假设user1
的UID是1001
,user2
的UID是1002
,配置iptables规则,根据用户的uid来设置出口IP地址:
sudo iptables t mangle A OUTPUT m owner uidowner 1001 j MARK setmark 1001; sudo iptables t nat A POSTROUTING m mark mark 1001 j SNAT tosource IP_Address_1; sudo iptables t mangle A OUTPUT m owner uidowner 1002 j MARK setmark 1002; sudo iptables t nat A POSTROUTING m mark mark 1002 j SNAT tosource IP_Address_2;
IP_Address_1
和IP_Address_2
分别替换为实际的IP地址,用不同用户启动SS5进程:
sudo u user1 ss5 b IP_Address_1:10808 u user1 sudo u user2 ss5 b IP_Address_2:10809 u user2
2. 限制访问目标网段
要限制SS5只能访问特定的网段,可以在配置文件中添加相应的规则,只允许访问192.168.1.0/24
网段:
Auth SHost SPort DHost DPort Fixup Group Band ExpDate permit u 0.0.0.0/0 192.168.1.0/24
可以添加多条permit
规则来允许访问多个网段。
四、常见问题解答(FAQs)
Q1:如何更改SS5的默认端口?
A1:可以通过修改SS5的配置文件/etc/sysconfig/ss5
中的SS5_OPTS
参数来更改默认端口,将默认端口改为8899
,编辑文件并修改为:
SS5_OPTS=" u root b 0.0.0.0:8899"
然后重新启动SS5服务:
sudo /etc/rc.d/init.d/ss5 restart
或使用service
命令:
sudo service ss5 restart
Q2:如何为SS5添加更多的用户?
A2:可以通过编辑/etc/opt/ss5/ss5.passwd
文件来添加更多用户,每行添加一个用户名和密码,格式如下:
username password
添加一个新用户user3
,密码为password3
:
user3 password3
保存文件后,无需重启SS5服务,新用户即可立即生效。
通过以上步骤,你已经成功在CentOS上安装和配置了SS5,并且实现了多进程、多IP地址绑定以及用户名/密码认证等功能,如果在使用过程中遇到任何问题,欢迎随时提问。