CentOS7.X 部署OpenVPN
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7.X 部署OpenVPN相关的知识,希望对你有一定的参考价值。
1、实验环境
CentOS7.9
内网ens32:172.16.9.129
外网ens33:10.33.56.100
2、配置路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/99-sysctl.conf
sysctl -p
3、安装openvpn
yum -y install epel-release
yum -y install easy-rsa openssh-server lzo openssl openssl-devel openvpn NetworkManager-openvpn openvpn-auth-ldap iptables-services
4、生成证书文件
wget https://github.com/OpenVPN/easy-rsa-old/archive/2.3.3.tar.gz
tar -xf 2.3.3.tar.gz
mkdir -pv /etc/openvpn/easy-rsa/keys
cp easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
# 配置证书信息
cd /etc/openvpn/easy-rsa/
vi vars
# 替换尾部内容
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BJ"
export KEY_ORG="DevOps"
export KEY_EMAIL="devops@sina.com"
export KEY_CN="devops"
export KEY_NAME="devops"
export KEY_OU="devops"
export PKCS11_MODULE_PATH=devops
export PKCS11_PIN=1234
# 制作CA证书
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
source ./vars
./build-ca
# 制作Server端证书
./build-key-server server
# 制作防攻击的key文件和密钥文件
openvpn --genkey --secret keys/ta.key
./build-dh
# 制作Client端证书
./build-key client
# 复制证书文件到特定的配置路径下
cp keys/dh2048.pem,ca.crt,server.crt,server.key,ta.key /etc/openvpn/
# 如果中途异常,清空重新执行以上步骤
./clean-all
5、配置服务端
# 使用PAM和密码认证
tee /etc/openvpn/server.conf <<EOF
port 1194
proto udp
dev tap
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/<MYSERVER>.crt
key /etc/openvpn/easy-rsa/keys/<MYSERVER>.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 192.168.56.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;learn-address ./script
client-to-client
;duplicate-cn
keepalive 10 120
;tls-auth ta.key 0
comp-lzo
;max-clients 100
;user nobody
;group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-cert-not-required
username-as-common-name
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
EOF
# 使用证书认证
tee /etc/openvpn/server.conf <<EOF
port 1194
proto tcp
dev tun0
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/<MYSERVER>.crt
key /etc/openvpn/easy-rsa/keys/<MYSERVER>.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
log-append /var/log/openvpn
status /tmp/vpn.status 10
EOF
6、配置防火墙
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/etc/rc.d/iptables save
7、启动服务
systemctl enable --now openvpn@server.service
8、配置客户端
# 使用密码认证
client
dev tap
proto udp
remote <address> 1194
resolv-retry infinite
nobind
persist-tun
comp-lzo
verb 3
auth-user-pass passwd
ca ca.crt
备注:auth-user-pass 引用的 passwd 文件必须包含如下两行:
第一行 - username
第二行 - password
# 证书认证
client
remote <MYSERVER> 1194
dev tun0
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
verb 2
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
备注:将ca.crt, client1.crt 和 client1.key复制到远程计算机
9、客户端工具
MAC:Tunnelblick
WINDOWS:OpenVPN Connect client
Centos7.x部署SeaFile私有网盘
1.安装依赖环境
yum -y install wge gcc-c++ ..........
2.关闭Firewalld防火墙和SElinux
systemctl stop firewalld
systemct disable firewalld
cd /etc/selinux/config
把enable更改成disabled
3.安装epel、Nux Dextop
安装epel
rpm -ivh http://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
安装Nux Dextop
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
4.安装mysql或mariadb
yum -y install mariadb mariadb-server
systemctl enable mariadb
systemctl start mariadb
5.进行mariadb初始化设置
mysql_secure_installation
根据内容自行更改设置
第一次运行密码为空,回车。
Enter current password for root (enter for none):
需要设置root密码,输入y后回车。
Set root password? [Y/n] y
接着输入两次新密码。
是否删除匿名用户,回车。
Remove anonymous users? [Y/n]
是否禁止root远程登录,回车。
Disallow root login remotely? [Y/n]
是否删除test数据库,回车。
Remove test database and access to it? [Y/n]
是否重新加载权限表,回车。
Reload privilege tables now? [Y/n]
6.登录数据库
mysql -uroot -p #能正常进入数据库说明已经部署成功
7.给数据库设置权限
允许任意ip使用root远程连接
create user ‘root‘@‘%‘ identified by ‘root远程登录的密码‘;
添加权限给该root
grant all privileges on . to ‘root‘@‘%‘ identified by ‘root远程登录的密码‘;
配置立即生效
flush privileges;
8.安装seafile依赖环境
yum install -y python-memcached
python-ldap
python-urllib3
python-imaging
MySQL-python
python-distribute
ffmpeg
ffmpeg-devel
9.下载源码包
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.5_x86-64.tar.gz
10.解压源码包
tar -zxf seafile-server_6.2.5_x86-64.tar.gz -C 路径
11.进入已经解压的文件进行安装
cd seafile-server-*
./setup-seafile-mysql.sh
12.根据下面内容进行自行设置
显示给客户端的服务名,输入服务名后回车。
What is the name of the server? It will be displayed on the client.
- 15 letters or digits
[ server name ] OpsBakPE
输入ip或域名,由于内部使用直接ip,输入ip后回车。
What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server‘s ip or domain ] 192.168.16.203
使用默认,将数据文件放在/root/seafile-data下,回车。
Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/root/seafile-data" ]
使用默认的文件服务端口8082,回车。
Which port do you want to use for the seafile fileserver?
[ default "8082" ]
# 使用新的seahub数据库,输入1后回车。
Please choose a way to initialize seafile databases:
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] 1
由于刚才装了mariadb,使用默认本地,回车。
What is the host of mysql server?
[ default "localhost" ]
mariadb的默认端口就是3306,回车。
What is the port of mysql server?
[ default "3306" ]
使用默认的seafile作为seafile使用mariadb的用户,回车。
Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ]
输入mariadb的用户seafile的密码,回车。
Enter the password for mysql user "seafile":
[ password for seafile ]
使用默认ccnet-db作为ccnet-server使用的数据库名,回车。
Enter the database name for ccnet-server:
[ default "ccnet-db" ]
使用默认seafile-db作为seafile-server使用的数据库名,回车。
Enter the database name for seafile-server:
[ default "seafile-db" ]
使用默认seahub-db作为seahub使用的数据库名,回车。
Enter the database name for seahub:
[ default "seahub-db" ]
等待片刻........提示安装成功
13.启动服务
./seafile.sh start
14.启动端口
./seafile.sh start 80 #没有设置端口默认是8000端口
15.访问
http://ip:80/ #如果没设置端口号就默认就行
16.登录账号密码
以上是关于CentOS7.X 部署OpenVPN的主要内容,如果未能解决你的问题,请参考以下文章
CentOS7.X环境下源码包安装部署RabbitMQ3.7.17