找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 11|回复: 0

教你在debian上用五分钟搭建好 openconnect server

[复制链接]

12

主题

7

回帖

316

积分

中级会员

积分
316
发表于 2024-1-5 15:38:15 | 显示全部楼层 |阅读模式
这篇文章的主要内容是,让你用最短的时间让你在debian系统的服务器上搭建好openconnect server,以供openconnect或者anyconnect客户端连接(黑莓手机、只能登录中国大陆AppleID的账号的IPhone对此是刚需):

具体方法:

第一步:使用apt安装所需的软件包

[ol]
  • apt-get install iptables-persistent ocserv[/ol]复制代码

    第二步:修改配置文件

    首先,需要修改 /etc/sysctl.conf,以用于开启IP转发。(对于扶墙服务器而言,这是必要的。确保以下内容存在于文件中,若不存在将以下内容添加到配置文件末尾即可)

    [ol]
  • net.ipv4.ip_forward = 1
  • net.ipv4.ip_forward_update_priority = 0
  • net.ipv4.ip_forward_use_pmtu = 1
  • net.ipv6.conf.all.forwarding = 1[/ol]复制代码

    然后,继续需要修改 /etc/ocserv/ocserv.conf,以用于设置服务器基本配置参数。(这是必要的,以下贴出的配置文件中的信息可以按需修改,再编辑文件之前,建议将原始文件备份,以用作参考)

    [ol]
  • # openconnect server user
  • run-as-user = ocserv
  • run-as-group = ocserv
  • # require file while server run
  • socket-file = /run/ocserv-socket
  • chroot-dir = /var/lib/ocserv
  • # isolate sub proccess control
  • isolate-workers = true
  • # net interface for server
  • device = op
  • # mtu size for server
  • mtu = 1480
  • # log level
  • log-level = 1
  • # auth method
  • auth = "plain[/etc/ocserv/ocpasswd]"
  • # maximum users allowed connect
  • max-clients = 10
  • # maximum client allowed connect for per user
  • max-same-clients = 5
  • # server listen address (default is all)
  • # listen-host =
  • # server listen ports (default is 443, but can modified)
  • tcp-port = 443
  • udp-port = 443
  • # mtu auto discovery for per tunnel
  • try-mtu-discovery = true
  • # user certificate type
  • # cert-user-oid = 2.5.4.3
  • # certificate and private key for server
  • server-cert = /etc/ocserv/server.pem
  • server-key = /etc/ocserv/server.key
  • # dns while clients connected use
  • dns = 8.8.8.8
  • dns = 9.9.9.9
  • tunnel-all-dns = true
  • # route option (set it to default as a gateway)
  • #route = 192.168.1.0/255.255.255.0
  • route = default
  • # enable cisco anyconnect compatible
  • cisco-client-compat = true
  • # keep alive interval
  • keepalive = 32400
  • dpd = 60
  • mobile-dpd = 120
  • # other option
  • output-buffer = 0
  • rate-limit-ms = 0
  • # access control
  • restrict-user-to-routes = false
  • restrict-user-to-ports = ""
  • # disconnected idle time
  • # idle-timeout = 1200
  • # mobile-idle-timeout = 1800
  • # dtls protocol control
  • dtls-legacy = true
  • switch-to-tcp-timeout = 30
  • tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-TLS1.2"
  • # compression control
  • compression = true
  • no-compress-limit = 0
  • # speed limit by per client
  • rx-data-per-sec = 0
  • tx-data-per-sec = 0
  • # client auth control
  • auth-timeout = 240
  • min-reauth-time = 300
  • max-ban-score = 80
  • ban-reset-time = 1200
  • # client status control
  • cookie-timeout = 600
  • rekey-time = 172800
  • deny-roaming = false
  • use-occtl = true
  • # internal network settings
  • ipv4-network = 10.255.255.0/24
  • ipv6-network = fd09::/80
  • ipv6-subnet-prefix = 128
  • client-bypass-protocol = false
  • predictable-ips = true
  • ping-leases = true
  • net-priority = 3[/ol]复制代码

    第三步:签发自签名SSL证书、设置相应的iptables转发规则

    首先,运行以下命令来签发一个自签名SSL证书。(命令运行后会提示填写相应信息,按照自己的需要按需填写即可,若未修改上述配置文件中的SSL证书私钥保存路径,则应将生成的文件放置在 /etc/ocserv 下)

    [ol]
  • openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:4096 -keyout server.key -out server.pem[/ol]复制代码

    之后,为了确保客户端连接后能正常访问互联网,我们需要设置相应的规则以用作开启NAT转发。

    [ol]
  • # 这几句话的意思是,允许相应网段的流量经过机器转发,如果不正确配置此规则,则客户端到公网的UDP连接是不通的
  • iptables -I FORWARD -s 10.255.255.0/24 -j ACCEPT
  • iptables -I FORWARD -d 10.255.255.0/24 -j ACCEPT
  • ip6tables -I FORWARD -s fd09::/80 -j ACCEPT
  • ip6tables -I FORWARD -d fd09::/80 -j ACCEPT
  • # 这几句话的意思是,对于来源于扶墙服务器的网段的流量,NAT之后再到公网
  • iptables -A POSTROUTING -s 10.255.255.0/24 ! -o op+ -j MASQUERADE
  • ip6tables -A POSTROUTING -s fd09::/80 ! -o op+ -j MASQUERADE[/ol]复制代码

    设置完成规则后,需要将其保存到配置文件中才能永久生效,以下是具体方法(若服务器原本已经存在相应的配置文件,则此类方法可能不适用,请考虑将上述规则转换后直接写入配置文件)

    [ol]
  • iptables-save >> /etc/iptables/rules.v4
  • ip6tables-save >> /etc/iptables/rules.v6[/ol]复制代码

    第四步:添加用户

    如果没有修改配置文件中用户验证的方法的话,默认是需要手动添加用户的,此时就需要添加用户到指定的配置文件中。(格式为 ocpasswd -c /etc/ocserv/ocpasswd 用户名,运行命令后会提示给相应的用户设置一个密码,若以后需要删除相应用户的话,直接修改对应的文件,删除相应行即可)

    [ol]
  • ocpasswd -c /etc/ocserv/ocpasswd  boss[/ol]复制代码

    第五步:开启相应端口

    若服务器本身存在防火墙白名单规则的话,则需要按需开放防火墙端口,以下是对于iptables而言的方法。

    [ol]
  • iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT
  • iptables -I INPUT -p udp --dport 端口号 -j ACCEPT[/ol]复制代码

    第六步:重启服务器

    完成上述步骤后,就可以使用openconnect或者anyconnect客户端测试是否能正常连接了。

    可选步骤: 若能将服务器端的ocserv版本升级到1.2.1以上的话,还可以开启入口伪装功能,以让外界更难发现这是一个扶墙服务器,若可以确认版本在此之上,只需要向配置文件添加以下内容到末尾,就可以开启伪装功能。(开启此功能后 客户端只能通过 https //SERVER/?secret 的方式连接到服务器)

    [ol]
  • # camouflage
  • camouflage = true
  • camouflage_secret = "dark"
  • camouflage_realm = "router admin panel"[/ol]复制代码

    常见疑问:

    1.为什么搭建的服务连接速度特别慢?
    这一般是由于客户端到服务器的网络质量不好导致的。若确认不是网络质量导致的问题,则可以通过修改配置文件的方式,将传输压缩功能关闭就可以了。

    2.我想要在iphone上连接,但是它登录的是中国大陆的appleid,我应该怎么做?
    只需要在大陆区应用商店下载安装cisco anyconnect客户端,然后填写相应信息连接即可。

    3.我在河南省,这个方法在我这不可用怎么办?
    不要尝试使用域名的方式连接,直接填写服务器IP连接就可以了。(若开启了伪装功能则将URL中的地址替换为服务器本身的IP地址就可以了)
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-5-16 14:11 , Processed in 0.051323 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表