全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别
查看: 456|回复: 0

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

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

具体方法:

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

  1. apt-get install iptables-persistent ocserv
复制代码


第二步:修改配置文件

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

  1. net.ipv4.ip_forward = 1
  2. net.ipv4.ip_forward_update_priority = 0
  3. net.ipv4.ip_forward_use_pmtu = 1
  4. net.ipv6.conf.all.forwarding = 1
复制代码


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

  1. # openconnect server user
  2. run-as-user = ocserv
  3. run-as-group = ocserv

  4. # require file while server run
  5. socket-file = /run/ocserv-socket
  6. chroot-dir = /var/lib/ocserv

  7. # isolate sub proccess control
  8. isolate-workers = true

  9. # net interface for server
  10. device = op

  11. # mtu size for server
  12. mtu = 1480

  13. # log level
  14. log-level = 1

  15. # auth method
  16. auth = "plain[/etc/ocserv/ocpasswd]"

  17. # maximum users allowed connect
  18. max-clients = 10

  19. # maximum client allowed connect for per user
  20. max-same-clients = 5

  21. # server listen address (default is all)
  22. # listen-host =

  23. # server listen ports (default is 443, but can modified)
  24. tcp-port = 443
  25. udp-port = 443

  26. # mtu auto discovery for per tunnel
  27. try-mtu-discovery = true

  28. # user certificate type
  29. # cert-user-oid = 2.5.4.3

  30. # certificate and private key for server
  31. server-cert = /etc/ocserv/server.pem
  32. server-key = /etc/ocserv/server.key

  33. # dns while clients connected use
  34. dns = 8.8.8.8
  35. dns = 9.9.9.9
  36. tunnel-all-dns = true

  37. # route option (set it to default as a gateway)
  38. #route = 192.168.1.0/255.255.255.0
  39. route = default

  40. # enable cisco anyconnect compatible
  41. cisco-client-compat = true

  42. # keep alive interval
  43. keepalive = 32400
  44. dpd = 60
  45. mobile-dpd = 120

  46. # other option
  47. output-buffer = 0
  48. rate-limit-ms = 0

  49. # access control
  50. restrict-user-to-routes = false
  51. restrict-user-to-ports = ""

  52. # disconnected idle time
  53. # idle-timeout = 1200
  54. # mobile-idle-timeout = 1800

  55. # dtls protocol control
  56. dtls-legacy = true
  57. switch-to-tcp-timeout = 30
  58. tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-TLS1.2"

  59. # compression control
  60. compression = true
  61. no-compress-limit = 0

  62. # speed limit by per client
  63. rx-data-per-sec = 0
  64. tx-data-per-sec = 0

  65. # client auth control
  66. auth-timeout = 240
  67. min-reauth-time = 300
  68. max-ban-score = 80
  69. ban-reset-time = 1200

  70. # client status control
  71. cookie-timeout = 600
  72. rekey-time = 172800
  73. deny-roaming = false
  74. use-occtl = true

  75. # internal network settings
  76. ipv4-network = 10.255.255.0/24
  77. ipv6-network = fd09::/80
  78. ipv6-subnet-prefix = 128
  79. client-bypass-protocol = false
  80. predictable-ips = true
  81. ping-leases = true
  82. net-priority = 3
复制代码


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

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

  1. openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:4096 -keyout server.key -out server.pem
复制代码


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

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


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

  1. iptables-save >> /etc/iptables/rules.v4
  2. ip6tables-save >> /etc/iptables/rules.v6
复制代码


第四步:添加用户

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

  1. ocpasswd -c /etc/ocserv/ocpasswd  boss
复制代码


第五步:开启相应端口

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

  1. iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT
  2. iptables -I INPUT -p udp --dport 端口号 -j ACCEPT
复制代码


第六步:重启服务器

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

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

  1. # camouflage
  2. camouflage = true
  3. camouflage_secret = "dark"
  4. camouflage_realm = "router admin panel"
复制代码


常见疑问:

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

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

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

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-29 01:18 , Processed in 0.058934 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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