办公网络环境搭建

一,简介

        通过搭建环境,可以在任何地方(公司,家里,地铁...)使用客户端登录,来访问公司的其他机器,但不影响非公司网络的访问(百度,微博,淘宝...) 

网络流程图

二,搭建前的准备

注意,以下开始,使用的ip都是假的,根据自己服务器ip自行更换

        1,服务器A,centos7系统,内网ip 192.168.0.1

        2,服务器B,centos7系统,内网ip 192.168.0.2

        2,openconnect客户端

三,开始搭建

      服务器A

       下面👇🏻的命令,依次执行,服务器A就配置好了,建议慢慢看都做了些什么

# 禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

# 开启ipv4 转发
echo "1" > /proc/sys/net/ipv4/ip_forward
# 加载ip_gre模块
modprobe ip_gre

# 建立到服务器B的gre隧道,可以通过 ip tunnel list 或 ip route,查看是否添加成功,建立gre隧道
ip tunnel add gre mode gre remote 192.168.0.2 local 192.168.0.1 
# 给gre隧道远端接口添加ip地址
ip addr add 10.10.10.2/24 dev gre
# 启用gre隧道接口
ip link set gre up

# 新增虚拟路由表HK(默认所有接口走路由表main,不新增虚拟表,无法走gre 路由)
# vi /etc/iproute2/rt_tables # 新增    100     hk 条目 保存退出
echo "100     hk" >> /etc/iproute2/rt_tables
# 刷新路由表
ip route flush table hk

# 当客户端通过拨号连接时,服务端会给客户端分配一个10.10.9.0 - 10.10.9.255的随机地址,这个地址可以在/etc/ocserv/ocserv.conf中修改
# 把来自10.10.9.0/24的数据包,通过hk路由表发送出去,优先级100,可以执行 ip rule list 查看是否添加成功
ip rule add from 10.10.9.0/24 table hk prio 100

# 默认路由发送到 10.10.10.2,也就是服务器B的gre隧道ip地址,可以执行 ip route show table hk 查看是否成功
ip route add default via 10.10.10.2 table hk
# 至此 定义新表后 所有来自Cisco的流量默认都会走向服务器B

# 安装 epel-release 源
yum -y install epel-release
# 安装 ocserv
yum -y install ocserv

# 新建一个目录,用来存放SSL证书相关文件,然后进入到这个目录内
mkdir ~/ssl && cd ~/ssl

# 新建一个证书模板,写入
echo "cn = 'h3c'
organization = 'h3c.IM'
serial = 1
expiration_days = 9999
ca
signing_key
cert_signing_key
crl_signing_key" > ca.tmpl

# 然后生成私钥和CA证书:
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem

# 接着来生成服务器证书,还是老样子新建一个证书模板:
echo "cn = '你的服务器IP'
organization = 'TEST.IM'
expiration_days = 9999
signing_key
encryption_key
tls_www_server" > server.tmpl

# 然后生成私钥和证书:
certtool --generate-privkey --outfile server-key.pem
certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem

# 然后把证书文件用移动到Ocserv默认的目录下:
cp server-cert.pem /etc/pki/ocserv/public/
cp server-key.pem /etc/pki/ocserv/private/
cp ca-cert.pem /etc/pki/ocserv/cacerts/

# 现在编辑ocserv的配置文件
# auth也就是验证方式要改为密码验证
sed -i 's/auth = "pam"/#auth = "pam"/g' /etc/ocserv/ocserv.conf
echo 'auth = "plain[passwd=/etc/ocserv/ocpasswd]"' >> /etc/ocserv/ocserv.conf

# 默认的监听端口为443,如果你的服务器上跑着HTTPS的WEB站点,那么443端口肯定是被占用了的,所以如果有需求的话,可以更改下面的值:
# sed -i 's/tcp-port = 443/tcp-port = 8080/g' /etc/ocserv/ocserv.conf 
# sed -i 's/udp-port = 443/udp-port = 8080/g' /etc/ocserv/ocserv.conf

# Anyconnect可以限制最大允许连接的设备数量,如有需要可以更改下面这两个值:
# sed -i 's/max-clients = 16/max-clients = 32/g' /etc/ocserv/ocserv.conf
# sed -i 's/max-same-clients = 2/max-same-clients = 6/g' /etc/ocserv/ocserv.conf

# 更改服务器证书以及私钥的路径为刚才移动的路径:
sed -i 's~server-cert = /etc/pki/ocserv/public/server.crt~server-cert = /etc/pki/ocserv/public/server-cert.pem~g' /etc/ocserv/ocserv.conf
sed -i 's~server-key = /etc/pki/ocserv/private/server.key~server-key = /etc/pki/ocserv/private/server-key.pem~g' /etc/ocserv/ocserv.conf

# 更改CA证书的路径为刚才移动的路径:
sed -i 's~ca-cert = /etc/pki/ocserv/cacerts/ca.crt~ca-cert = /etc/pki/ocserv/cacerts/ca-cert.pem~g' /etc/ocserv/ocserv.conf

# 这个意思是下放远端DNS 建议注释掉不要用远端
sed -i 's/dns = 8.8.8.8/#dns = 8.8.8.8/g' /etc/ocserv/ocserv.conf

# 设置分配给客户端的私人ip
echo "ipv4-netmask = 255.255.255.0" >> /etc/ocserv/ocserv.conf
echo "ipv4-network = 10.10.9.0/24" >> /etc/ocserv/ocserv.conf
echo "tunnel-all-dns = false" >> /etc/ocserv/ocserv.conf

# 设置请求哪些ip,走gre通道,这里设置的ip,才会走<<网络流程图>>上画的流程,可以把公司的服务器ip可以添加在这里
# 192.168.0.1 - 192.168.0.255的数据包,走gre隧道,
echo "route = 192.168.0.0/255.255.255.0" >> /etc/ocserv/ocserv.conf
echo "route = 10.10.10.0/255.255.255.0" >> /etc/ocserv/ocserv.conf

# 到8.8.8.8 的数据包,走gre隧道
#echo "route = 8.8.8.8/255.255.255.255" >> /etc/ocserv/ocserv.conf

# 创建一个用户,执行下面的命令之后,会让盲输两遍密码
ocpasswd -c /etc/ocserv/ocpasswd lala

# 删除一个用户,可以在这 /etc/ocserv/ocpasswd 看有哪些用户
# ocpasswd -c /etc/ocserv/ocpasswd -d lala

# 启动ocserv 服务
systemctl start ocserv
systemctl status ocserv

上面的命令,有些是临时生效的,重启后就没了,所以,部分命令要写到 /etc/rc.local,开机时会自动执行,把下面的命令粘贴进去就行

systemctl stop firewalld
systemctl disable firewalld
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_gre
ip tunnel add gre mode gre remote 192.168.0.2 local 192.168.0.1
ip rule add from 10.10.9.0/24 table hk prio 100
ip route add default via 10.10.10.2 table hk

粘贴完之后,记得执行下面俩命令,要不然没权限

chmod +x /etc/rc.d/rc.local

chmod +x /etc/rc.local

 至此,服务器A上需要做的事情,全部完成

        服务器B

# 禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

# 开启ipv4 转发
echo "1" > /proc/sys/net/ipv4/ip_forward

# 加载ip_gre模块
modprobe ip_gre

# 建立到服务器A的gre隧道,可以通过 ip tunnel list 或 ip route,查看是否添加成功
ip tunnel add gre mode gre remote 192.168.0.1 local 192.168.0.2
# 给gre隧道远端接口添加ip地址
ip addr add 10.10.10.1/24 dev gre
# 启用gre隧道接口
ip link set gre up

# 到10.10.9.0/24的数据包,发送到 10.10.10.1 也就是服务器A的gre隧道ip
ip route add 10.10.9.0/24 via 10.10.10.1

# 把来自 10.10.9.0/24 网段的数据包,通过eth0网卡发送出去,把10.10.9.0/24 替换成本机的ip,执行 iptables -L -n --line-number -t nat 查看是否成功,
# 可以通过 "iptables -t nat -D POSTROUTING 编号" 删除规则
iptables -t nat -A POSTROUTING -o eth0 -s 10.10.9.0/24 -j MASQUERADE

至此,服务器A和B上要做的事情都已做完,接下来是客户端

四,客户端

        1,新建配置

  

五,说明

       开机启动的那些命令,还没测试过,先做个记录,有机会再试,试完会把这句话删掉

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值