CentOS7安装部署OpenVPN纯密码认证桥接模式

本文参考

1.https://www.emaculation.com/doku.php/bridged_openvpn_server_setup

2.https://serverfault.com/questions/622657/configure-firewalld-for-openvpn-server-bridge-in-fedora-20

3.https://www.linux.org.ru/forum/admin/10631949

1. 软件版本

CentOS – 7.9.2009

easy-rsa – 3.0.8

OpenVPN – 2.4.10

bridge-utils

2.安装

根据前面NAT模式的安装教程,大部分步骤能复用,这里只说区别

2.1配置桥接

安装bridge-utils

yum install bridge-utils

ip addr 查看本机ip

[root@localhost ~]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

      valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

      valid_lft forever preferred_lft forever

2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:50:56:8f:c0:dd brd ff:ff:ff:ff:ff:ff

    inet 10.24.11.243/24 brd 10.24.11.255 scope global noprefixroute ens32

      valid_lft forever preferred_lft forever

    inet6 fe80::f4f5:b7e6:943d:fd26/64 scope link noprefixroute

      valid_lft forever preferred_lft forever

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100

    link/none

    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0

      valid_lft forever preferred_lft forever

    inet6 fe80::80e4:f8c5:e4fe:cf1/64 scope link flags 800

      valid_lft forever preferred_lft forever

可以获取如下信息

IP地址:10.24.11.243

子网掩码:255.255.255.0(/24 CIDR表示法)

广播地址:10.24.11.255

路由IP地址:10.24.11.254

配置桥接脚本

nano /etc/openvpn/openvpn-bridge

内容如下

#!/bin/sh

# Define Bridge Interface

br="br0"

# Define list of TAP interfaces to be bridged,

# for example tap="tap0 tap1 tap2".

tap="tap0"

# Define physical ethernet interface to be bridged

# with TAP interface(s) above. 根据实际内容修改下面四项

eth="ens32"

eth_ip_netmask="10.24.11.243/24"

eth_broadcast="10.24.11.255"

eth_gateway="10.24.11.254"

case "$1" in

start)

    for t in $tap; do

        openvpn --mktun --dev $t

    done

    brctl addbr $br

    brctl addif $br $eth

    for t in $tap; do

        brctl addif $br $t

    done

    for t in $tap; do

        ip addr flush dev $t

        ip link set $t promisc on up

    done

    ip addr flush dev $eth

    ip link set $eth promisc on up

    ip addr add $eth_ip_netmask broadcast $eth_broadcast dev $br

    ip link set $br up

    ip route add default via $eth_gateway

    ;;

stop)

    ip link set $br down

    brctl delbr $br

    for t in $tap; do

        openvpn --rmtun --dev $t

    done

    ip link set $eth promisc off up

    ip addr add $eth_ip_netmask broadcast $eth_broadcast dev $eth

    ip route add default via $eth_gateway

    ;;

*)

    echo "Usage:  openvpn-bridge {start|stop}"

    exit 1

    ;;

esac

exit 0

赋权限

chmod 700 /etc/openvpn/openvpn-bridge

chown openvpn:openvpn /etc/openvpn/openvpn-bridge

2.2编辑服务端配置

dev tun注释掉,改成 dev tap0

server行注释掉,改成server-bridge,server-bridge语法如下

server-bridge [gw] [mask] [start-IP] [end-IP]

注意,这里的[gw] 有的教程是本机ip,有的教程是实际网关,两个都试验后,填本机网关的只能访问本网段的,如果存在多个vlan,那就无法访问

所以正确的填发应该是填实际网关。

编辑

nano /etc/openvpn/server/server.conf

内容如下

port 1194

proto tcp

#dev tun

dev tap0

#dev-node tap-bridge

user openvpn

group openvpn

#配置证书信息

ca /etc/openvpn/server/easy-rsa/pki/ca.crt

cert /etc/openvpn/server/easy-rsa/pki/issued/server.crt

key /etc/openvpn/server/easy-rsa/pki/private/server.key

dh /etc/openvpn/server/easy-rsa/pki/dh.pem

tls-auth /etc/openvpn/server/easy-rsa/ta.key 0

#配置账号密码的认证方式

script-security 3

auth-user-pass-verify "/etc/openvpn/server/user/checkpsw.sh" via-env

verify-client-cert none

username-as-common-name

client-to-client

duplicate-cn

#配置网络信息

#server 10.8.0.0 255.255.255.0

server-bridge 10.24.11.254 255.255.255.0 10.24.11.10 10.24.11.190

client-to-client

push "dhcp-option DNS 10.24.11.250"

push "dhcp-option DNS 114.114.114.114"

push "route 10.24.11.0 255.255.255.0"

push "route 10.24.0.0 255.255.0.0"

push "route 172.20.0.0 255.255.0.0"

push "route 10.244.0.0 255.255.0.0"

compress lzo

cipher AES-256-CBC

keepalive 10 120

persist-key

persist-tun

verb 3

log /var/log/openvpn/server.log

log-append /var/log/openvpn/server.log

status /var/log/openvpn/status.log

2.3编辑启动脚本

编辑openvpn-server@.service

nano /usr/lib/systemd/system/openvpn-server@.service

在Service内容后添加两行

[Service]

ExecStartPre=/etc/openvpn/openvpn-bridge start

ExecStopPost=/etc/openvpn/openvpn-bridge stop

重载service

systemctl daemon-reload

重启服务端

systemctl restart openvpn-server@.service.service

2.4 配置防火墙

官网只给了iptables版本的,iptable如下

iptables -A INPUT -i tap0 -j ACCEPT

iptables -A INPUT -i br0 -j ACCEPT

iptables -A FORWARD -i br0 -j ACCEPT

执行后需要保存

service iptables save

对应的firewall版本如下

firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i tap0 -j ACCEPT

firewall-cmd --permanent --direct --passthrough ipv4 -A INPUT -i br0 -j ACCEPT

firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i br0 -j ACCEPT

执行后需执行重载生效

firewall-cmd --reload

2.5配置客户端

dev tun改成dev tap0

编辑C:\Program Files\OpenVPN\config\client.ovpn如下

client

proto tcp

dev tap0

auth-user-pass

remote 10.24.11.243 1194

ca ca.crt

tls-auth ta.key 1

remote-cert-tls server

cipher AES-256-CBC

auth-nocache

persist-tun

persist-key

comp-lzo

verb 3

mute 10

3.常见问题

1.能分配同网段ip,能ping通其他网段和服务器IP,但无法ping通同网段其他ip

如果服务器在虚拟机(如ESXI,hyper-V)上,先检查是否开启”允许MAC地址欺骗”功能

EXSI对应配置如下


开启之后,检查防火墙是否开启NAT配置,取消掉。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容