เบเบฒเบเบชเปเบฒเบเบเบฑเบเบซเบฒ
เบเบปเบเบเบงเบฒเบกเบญเบฐเบเบดเบเบฒเบเปเบเบดเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบเบชเปเบฒเบฅเบฑเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบซเบผเปเบเปเบเบตเบเปเบฅเบฐเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบชเบญเบเปเบเบทเปเบญเบชเปเบฒเบเบฅเบฐเบเบปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เปเบฅเบฐเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบฒเบเบเบฒเบเปเบเบเปเบเบญเบฐเบเบธเบเบฒเบเปเบเบฅเบฐเบเบปเบเบเบฒเบเบเปเบฒเบเบตเปเบกเบตเบขเบนเปเบซเบผเบทเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบกเบฑเบเบเปเปเบเบฝเบเบเป.
เปเบเบปเปเบฒเบซเบกเบฒเบเบเบญเบเบเบปเบเบเบงเบฒเบกเปเบกเปเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบฅเบฐเบเบปเบเบเบตเปเบชเบปเบกเบเบนเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบเบเบฑเบเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบ, เปเบเบดเปเบเบซเบผเบฒเบเบเปเบงเบฒ "เบเบฒเบเบเบดเบเบเบฑเปเบ OpenVPN เปเบ 10 เบเบฒเบเบต."
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบฅเบฐเบเบปเบเบเบตเปเปเบเบขเบฑเปเบเบขเบทเบเปเบฅเบฐ (เบเบฒเบเปเบฅเบทเบญเบ) Active Directory เบเบญเบเบเปเบฅเบดเบชเบฑเบเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบงเบเบชเบญเบเบเบนเปเปเบเป. เบเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบฅเบฐเบเบปเบเบเบตเปเบกเบตเบชเบญเบเบเบฑเบเปเบเบเบฒเบเบเบงเบเบชเบญเบ - เบชเบดเปเบเบเบตเปเบเปเบญเบเบกเบต (เปเบเบขเบฑเปเบเบขเบทเบ) เปเบฅเบฐเบชเบดเปเบเบเบตเปเบเปเบญเบเบฎเบนเป (เบฅเบฐเบซเบฑเบเบเปเบฒเบ).
เบชเบฑเบเบเบฒเบเบเบตเปเบเบนเปเปเบเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบทเปเบญเบกเบเปเปเปเบกเปเบเบเบฒเบเปเบเบฑเบเบชเบฐเบกเบฒเบเบดเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบเบธเปเบก myVPNUsr. เบชเบดเบเบญเบณเบเบฒเบเปเบเบฎเบฑเบเบฎเบญเบเบเบฐเบเบทเบเปเบเปเปเบเบเบญเบญเบเบฅเบฒเบ.
เบเปเบฒเปเบเปเบเปเบฒเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเปเปเบเปเบกเปเบเบเบฝเบเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบเบฎเบฒเบเปเบงเบเบฐเบซเบเบฒเบเบเปเบญเบเปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ 1 เบเบปเปเบงเปเบกเบเบเบญเบเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเปเบเบทเปเบญเบ virtual เบเบฑเบ OpenVPN เปเบฅเบฐ Easy-RSA เบฎเบธเปเบ 3 เปเบ CetntOS 7, เปเบเบดเปเบเบเบทเบเบเบฑเบเบชเบฑเบ 100 vCPUs เปเบฅเบฐ 4 GiB RAM เบเปเป 4 เบเบฒเบเปเบเบทเปเบญเบกเบเปเป.
เปเบเบเบปเบงเบขเปเบฒเบ, เปเบเบทเบญเบเปเบฒเบเบเบญเบเบญเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบ 172.16.0.0/16, เปเบเบเบฑเปเบเปเบเบตเบเปเบงเบต VPN เบเบตเปเบกเบตเบเบตเปเบขเบนเป 172.16.19.123 เบขเบนเปเปเบเบชเปเบงเบ 172.16.19.0/24, DNS servers 172.16.16.16 เปเบฅเบฐ 172.16.17.17 เปเบฅเบฐเบเปเบญเบ. .172.16.20.0/23 เบเบทเบเบเบฑเบเบชเบฑเบเปเบซเปเบฅเบนเบเบเปเบฒ VPN .
เปเบเบทเปเบญเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบเบฒเบเบเบญเบ, เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบเบเบญเบ 1194/udp เบเบทเบเบเปเบฒเปเบเป, เปเบฅเบฐ A-record gw.abc.ru เปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบ DNS เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบกเบฑเบเบเปเปเปเบเปเบเบทเบเปเบเบฐเบเปเบฒเปเบซเปเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ SELinux เบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ! OpenVPN เปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบดเบเบเบฐเปเบเบเบฒเบเบเบงเบฒเบกเบเบญเบเปเบ.
เปเบเบทเปเบญเปเบ
เบเบฒเบเบเบดเบเบเบฑเปเบ OS เปเบฅเบฐเบเบญเบเปเบงเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ เบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบฅเบฑเบ เบเบฑเปเบเบเปเบฒ OpenVPN AD Authentication เบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบฒเบเบงเบดเบเบดเบเปเบช เบเบฑเบเบซเบฒเปเบเบฎเบฑเบเบฎเบญเบ เปเบฅเบฐเบเบฒเบเบเบญเบเบเบทเบ เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเปเบฒเบ เบกเบตเบซเบเบฑเบเบเปเปเปเบ
เบเบฒเบเบเบดเบเบเบฑเปเบ OS เปเบฅเบฐเบเบญเบเปเบงเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฒเบเปเบเบเบขเบฒเบ CentOS 7.8.2003. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบดเบเบเบฑเปเบ OS เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบเปเบญเบเบเบตเปเบชเบธเบ. เบกเบฑเบเบชเบฐเบเบงเบเบเบตเปเบเบฐเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเปเบเป
เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบโ, เบเบฒเบโเบกเบญเบโเบซเบกเบฒเบโเบเบตเปโเบขเบนเปโเปเบโเบเบฒเบโเปเบเปโเบเบญเบโเปเบเบทเบญโเบเปเบฒเบ (เบเบฒเบกโเปเบเบทเปเบญเบโเปเบโเบเบญเบโเบงเบฝเบโเบเบฒเบ 172.16.19.123โ)โ, เบเบงเบโเปเบฎเบปเบฒโเบเบฑเบโเบเบธเบ OSโ:
$ sudo yum update -y && reboot
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเบญเบเบเบฒเบเปเบซเปเปเบเปเปเบเบงเปเบฒ synchronization เปเบงเบฅเบฒเปเบกเปเบเบเบฐเบเบดเบเบฑเบเบขเบนเปเปเบเปเบเบทเปเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เปเบเบทเปเบญเบเบดเบเบเบฑเปเบเบเบญเบเปเบงเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบ openvpn, openvpn-auth-ldap, easy-rsa เปเบฅเบฐ vim packages เปเบเบฑเบเบเบปเบงเปเบเปเปเบเบเบปเปเบเบเป (เบเปเบฒเบเบเปเบญเบเบเบฒเบ EPEL repository).
$ sudo yum install epel-release
$ sudo yum install openvpn openvpn-auth-ldap easy-rsa vim
เบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเบเบดเบเบเบฑเปเบเบเบปเบงเปเบเบเปเบเบเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบ virtual:
$ sudo yum install open-vm-tools
เบชเปเบฒเบฅเบฑเบ VMware ESXi hosts, เบซเบผเบทเบชเปเบฒเบฅเบฑเบ oVirt
$ sudo yum install ovirt-guest-agent
เบเบฑเปเบเบเปเบฒเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบฅเบฑเบ
เปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบต easy-rsa:
$ cd /usr/share/easy-rsa/3/
เบชเปเบฒเบเปเบเบฅเปเบเบปเบงเปเบ:
$ sudo vim vars
เปเบเบทเปเบญเปเบเบเปเปเปเบเบเบตเป:
export KEY_COUNTRY="RU"
export KEY_PROVINCE="MyRegion"
export KEY_CITY="MyCity"
export KEY_ORG="ABC LLC"
export KEY_EMAIL="[email protected]"
export KEY_CN="allUsers"
export KEY_OU="allUsers"
export KEY_NAME="gw.abc.ru"
export KEY_ALTNAMES="abc-openvpn-server"
export EASYRSA_CERT_EXPIRE=3652
เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ ABC LLC เปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเบขเบนเปเบเบตเปเบเบตเป; เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบเบปเบงเบเบดเบเบซเบผเบทเบญเบญเบเบเบฒเบเบเบปเบงเบขเปเบฒเบ. เบชเบดเปเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบเปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบกเปเบเปเบชเบฑเปเบเบชเบธเบเบเปเบฒเบ, เปเบเบดเปเบเบเปเบฒเบเบปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบตเปเบเบทเบเบเปเบญเบเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเบกเบทเป. เบเบปเบงเบขเปเบฒเบเปเบเปเบเปเบฒ 10 เบเบต (365*10+2 เบเบตเบเปเบฒเบงเบเบฐเปเบเบ). เบเปเบฒเบเบตเปเบเบฐเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเปเบญเบเบเบตเปเบเบฐเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบนเปเปเบเป.
เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบชเบดเบเบญเปเบฒเบเบฒเบเบเบฒเบเบขเบฑเปเบเบขเบทเบเปเบญเบเบฐเบฅเบฒเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเบฅเบงเบกเบกเบตเบเบฒเบเบชเบปเปเบเบญเบญเบเบเบปเบงเปเบ, เบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ CA, เบเบฒเบเบญเบญเบเบฅเบฐเบซเบฑเบ เปเบฅเบฐเปเบเบขเบฑเปเบเบขเบทเบเบเบญเบ CA, เบฅเบฐเบซเบฑเบ Diffie-Hellman, เบเบฐเปเบ TLS, เปเบฅเบฐเบฅเบฐเบซเบฑเบเปเบเบตเบเปเบงเบต เปเบฅเบฐเปเบเบขเบฑเปเบเบขเบทเบ. เบเบฐเปเบ CA เบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบปเบเบเปเบญเบเบขเปเบฒเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบ เปเบฅเบฐเปเบเบฑเบเปเบงเปเปเบเบฑเบเบเบงเบฒเบกเบฅเบฑเบ! เบเบธเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบญเบเบเบฒเบกเบชเบฒเบกเบฒเบเบเบทเบเบเบฐเปเบงเปเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.
cd /usr/share/easy-rsa/3/
. ./vars
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-req myvpngw nopass
./easyrsa sign-req server myvpngw
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key
เบเบตเปเปเบฎเบฑเบเบชเปเบฒเปเบฅเบฑเบเบชเปเบงเบเบเบปเปเบเบเปเบเบญเบเบเบฒเบเบชเปเบฒเบเบเบฑเปเบเบเบปเบเปเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบฅเบฑเบ.
เบเบฑเปเบเบเปเบฒ OpenVPN
เปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบต OpenVPN, เบชเปเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบฅเบฐเปเบเบตเปเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบซเบฒ easy-rsa:
cd /etc/openvpn/
mkdir /var/log/openvpn/ /etc/openvpn/ccd /usr/share/easy-rsa/3/client
ln -s /usr/share/easy-rsa/3/pki/ /etc/openvpn/
เบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ OpenVPN เบซเบผเบฑเบ:
$ sudo vim server.conf
เปเบเบทเปเบญเปเบเบเปเปเปเบเบเบตเป
port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/myvpngw.crt
key /etc/openvpn/pki/private/myvpngw.key
crl-verify /etc/openvpn/pki/crl.pem
dh /etc/openvpn/pki/dh.pem
server 172.16.20.0 255.255.254.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "route 172.17.0.0 255.255.255.0"
client-config-dir ccd
push "dhcp-option DNS 172.16.16.16"
push "dhcp-option DNS 172.16.17.17"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
username-as-common-name
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/ldap.conf
เบซเบกเบฒเบเปเบซเบเบเบฒเบเบญเบฑเบเบเปเบฝเบงเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบต:
- เบเปเบฒเบเบทเปเบญเบทเปเบเบเบทเบเบฅเบฐเบเบธเปเบเปเบงเบฅเบฒเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบ, เปเบซเปเบเบตเปเบเบญเบเบกเบฑเบ;
- เบฅเบฐเบเบธเบเบธเปเบกเบเบตเปเบขเบนเปเปเบซเปเปเปเบฒเบฐเบชเบปเบกเบเบฑเบเปเปเบฒเบงเบฝเบเบเบญเบเปเบเบปเปเบฒ*;
- เบชเบฒเบกเบฒเบเบกเบตเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเปเบชเบฑเปเบเบเบฒเบเปเบฅเบฐเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ DNS;
- 2 เปเบเบงเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเปเบ AD**.
* เบเปเบงเบเบเบญเบเบเบตเปเบขเบนเปเบเบตเปเปเบฅเบทเบญเบเปเบเบเบปเบงเบขเปเบฒเบเบเบฐเปเบฎเบฑเบเปเบซเปเบฅเบนเบเบเปเบฒเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเปเปเบเบดเบ 127 เบเบปเบเบเปเบญเบกเบเบฑเบ, เปเบเบฒเบฐเบงเปเบฒ. เปเบเบทเบญเบเปเบฒเบ /23 เบเบทเบเปเบฅเบทเบญเบ, เปเบฅเบฐ OpenVPN เบชเปเบฒเบเปเบเบทเบญเบเปเบฒเบเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเปเบเบเปเบเปเบซเบเปเบฒเบเบฒเบ /30.
เบเปเบฒเบเปเบฒเปเบเบฑเบเปเบเบเบชเบฐเปเบเบฒเบฐ, เบเบญเบเปเบฅเบฐเปเบเปเบเบเบญเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเป, เปเบเบงเปเบเบเปเปเบเบฒเบก, เบกเบฑเบเบเบงเบเบเบฐเบขเบนเปเปเบเปเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเบเปเบฒเบเบงเบเบเบญเบเบเบญเบเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฒเบเบเบฑเปเบเบเปเบฒ SELinux, เปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบเบญเบ tcp เบเบฐเปเบเบตเปเบกเบเบถเปเบ, เปเบเบฒเบฐเบงเปเบฒ. เบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเบเบฑเบเบชเบปเปเบเปเบเบฑเบเปเบเบฑเบ TCP เปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบฅเปเบงเปเบเบฅเบฐเบเบฑเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเบทเบเบซเบธเปเบกเบขเบนเปเปเบเบญเบธเปเบกเบ.
** เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบฒเบโเบเบงเบโเบชเบญเบโเปเบ AD เบเปเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโ, เปเบซเปโเบเปเบฒโเปเบซเบฑเบโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบญเบญเบโ, เบเปเบฒเบกโเบเบฒเบโเบเปเปโเปเบโ, เปเบฅเบฐโเปเบโเปเบกเปโเปเบเบ เปเบญเบปเบฒเปเบชเบฑเปเบ auth-user-pass เบญเบญเบ.
AD Authentication
เปเบเบทเปเบญเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฑเบเปเบเบเบตเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเบฒเบเบเบงเบเบชเบญเบเบเบฑเบเบเบตเปเบ AD.
เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฑเบเบเบตเบขเบนเปเปเบเปเบเปเบกเบเบเบตเปเบกเบตเบชเบดเบเบเบดเบเบญเบเบเบนเปเปเบเปเบเบปเปเบงเปเบเปเบฅเบฐเบเบธเปเบก, เบชเบฐเบกเบฒเบเบดเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป.
เบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ:
/etc/openvpn/ldap.conf
เปเบเบทเปเบญเปเบเบเปเปเปเบเบเบตเป
<LDAP>
URL "ldap://ldap.abc.ru"
BindDN "CN=bindUsr,CN=Users,DC=abc,DC=ru"
Password b1ndP@SS
Timeout 15
TLSEnable no
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "OU=allUsr,DC=abc,DC=ru"
SearchFilter "(sAMAccountName=%u)"
RequireGroup true
<Group>
BaseDN "OU=myGrp,DC=abc,DC=ru"
SearchFilter "(cn=myVPNUsr)"
MemberAttribute "member"
</Group>
</Authorization>
เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบปเปเบเบเป:
- URL โldap://ldap.abc.ruโ - เบเบตเปเบขเบนเปเบเบปเบงเบเบงเบเบเบธเบกเปเบเปเบกเบ;
- BindDN โCN=bindUsr,CN=Users,DC=abc,DC=ruโ - เบเบทเป canonical เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบนเบเบกเบฑเบเบเบฑเบ LDAP (UZ - bindUsr เปเบ abc.ru/Users container);
- เบฅเบฐโเบซเบฑเบโเบเปเบฒเบ b1ndP@SS โ เบฅเบฐโเบซเบฑเบโเบเปเบฒเบโเบเบนเปโเปเบเปโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบนเบโเบกเบฑเบโ;
- BaseDN โOU=allUsr,DC=abc,DC=ruโ โ เปเบชเบฑเปเบเบเบฒเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบญเบเบซเบฒเบเบนเปเปเบเป;
- BaseDN โOU=myGrp,DC=abc,DC=ruโ โ container of the allow group (group myVPNUsr in the container abc.rumyGrp);
- SearchFilter "(cn=myVPNUsr)" เปเบกเปเบเบเบทเปเบเบญเบเบเบธเปเบกเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเป.
เบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบฒเบเบงเบดเบเบดเบเปเบช
เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฐเบเบฒเบเบฒเบกเปเบเบตเบเปเบเป เปเบฅเบฐเปเบฅเบตเปเบกเปเบเบตเบเปเบงเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเป:
$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]
เบเบฒเบโเบเบงเบโเบชเบญเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโ:
systemctl status [email protected]
journalctl -xe
cat /var/log/messages
cat /var/log/openvpn/*log
เบเบฑเบเบซเบฒเปเบเบฎเบฑเบเบฎเบญเบ เปเบฅเบฐเบเบฒเบเบเบญเบเบเบทเบ
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เบเบญเบ เปเปเบทเบญ เปเบเบเบฒเบเปเบเบขเบฑเปเบเบขเบทเบเบเบปเบงเบกเบฑเบเปเบญเบ, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฐเปเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบญเบทเปเบเป; เบกเบฑเบเบชเบฐเบเบงเบเบซเบผเบฒเบเบเบตเปเบเบฐเบซเปเปเบเบฑเบ เปเบปเบ เบเบตเปเปเบงเปเปเบเปเบเปเบกเปเบญเบเบฐเบชเบฒเบเบเบฝเบง. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบเบฅเปเบเบตเปเบเบฐเบเบทเบเปเบญเบเปเบเบซเบฒเบเบนเปเปเบเปเปเบฅเบฐเปเบเบฃเปเบเบฅเปเบเบฐเบเบทเบเบเปเบฒเปเบเบปเปเบฒเบขเบนเปเปเบเบฅเบนเบเบเปเบฒ OpenVPN. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเปเบกเปเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบชเบฐเบเบดเบเบเบตเปเบชเปเบฒเบเปเบเบฃเปเบเบฅเป.
เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเปเบเบทเปเบญเปเบเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบฎเบฒเบ (ca.crt) เปเบฅเบฐเปเบเบฅเป TLS key (ta.key) เปเบชเปเปเบเบฃเปเบเบฅเป.
เบเปเบญเบเบเบตเปเบเบฐเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบนเปเปเบเป เบขเปเบฒเบฅเบทเบกเบเปเบฒเบเบปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบตเปเบเบทเบเบเปเบญเบเบชเปเบฒเบฅเบฑเบเปเบเบขเบฑเปเบเบขเบทเบ เปเบเปเบเบฅเปเบเบฒเบฅเบฒเบกเบดเปเบเบต. เปเบเบปเปเบฒเบเปเปเบเบงเบเปเบฎเบฑเบเบกเบฑเบเบเบปเบเปเบเบตเบเปเบ; เบเปเบญเบเบเปเปเบเบฐเบเบณเปเบซเปเบเบณเบเบฑเบเบเบปเบงเปเบญเบเปเบงเปเบชเบนเบเบชเบธเบ 180 เบกเบทเป.
vim /usr/share/easy-rsa/3/vars
...
export EASYRSA_CERT_EXPIRE=180
vim /usr/share/easy-rsa/3/client/template.ovpn
client
dev tun
proto udp
remote gw.abc.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
verb 3
auth-user-pass
<ca>
-----BEGIN CERTIFICATE-----
PUT YOUR CA CERT (ca.crt) HERE
-----END CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
PUT YOUR TA KEY (ta.key) HERE
-----END OpenVPN Static key V1-----
</tls-auth>
เบซเบกเบฒเบเปเบซเบ:
- เปเบเบทเบญเบ เปเบชเปเบเบญเบเปเบเบปเปเบฒ... เบเปเบฝเบเปเบเบเปเบเบทเปเบญเบซเบฒ เปเบญเบ เปเบเบขเบฑเปเบเบขเบทเบ;
- เปเบเบเปเบฒเบชเบฑเปเบเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบ, เบฅเบฐเบเบธเบเบทเป / เบเบตเปเบขเบนเปเบเบญเบเบเบฐเบเบนเบฎเบปเปเบงเบเบญเบเบเปเบฒเบ;
- เบเปเบฒเบชเบฑเปเบ auth-user-pass เบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบชเบนเบเบขเบทเบเบขเบฑเบเบเบฒเบเบเบญเบเปเบเบตเปเบกเปเบเบตเบก.
เปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบฎเบทเบญเบ (เบซเบผเบทเบชเบฐเบเบฒเบเบเบตเปเบเบตเปเบชเบฐเบเบงเบเบญเบทเปเบเป) เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบชเบฐเบเบดเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบขเบฑเปเบเบขเบทเบเปเบฅเบฐเบเบฒเบเบชเปเบฒเบเปเบเบฃเปเบเบฅเป:
vim ~/make.profile.sh
#!/bin/bash
if [ -z "$1" ] ; then
echo Missing mandatory client name. Usage: $0 vpn-username
exit 1
fi
#Set variables
basepath=/usr/share/easy-rsa/3
clntpath=$basepath/client
privpath=$basepath/pki/private
certpath=$basepath/pki/issued
profile=$clntpath/$1.ovpn
#Get current year and lowercase client name
year=`date +%F`
client=${1,,}
echo Processing $year year cert for user/device $client
cd $basepath
if [ -f client/$client* ]; then
echo "*** ERROR! ***"
echo "Certificate $client already issued!"
echo "*** ERROR! ***"
exit 1
fi
. ./vars
./easyrsa --batch --req-cn=$client gen-req $client nopass
./easyrsa --batch sign-req client $client
#Make profile
cp $clntpath/template.ovpn $profile
echo "<key>" >> $profile
cat $privpath/$1.key >> $profile
echo "</key>" >> $profile
echo -e "n" >> $profile
openssl x509 -in $certpath/$1.crt -out $basepath/$1.crt
echo "<cert>" >> $profile
cat $basepath/$1.crt >> $profile
echo "</cert>" >> $profile
echo -e "n" >> $profile
#remove tmp file
rm -f $basepath/$1.crt
echo Complete. See $profile file.
cd ~
เบเบฒเบโเปเบฎเบฑเบโเปเบซเปโเปเบเบฅโเปโเบเบฐโเบเบดโเบเบฑเบโเปเบเปโ:
chmod a+x ~/make.profile.sh
เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบญเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเปเบฒเบญเบดเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
~/make.profile.sh my-first-user
Feedback
เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเบฐเบเบตเบเบฐเบเบญเบกเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบ (เบเบฒเบเบชเบนเบเปเบชเบ, เบเบฒเบเบฅเบฑเบ), เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบญเบเปเบเบขเบฑเปเบเบขเบทเบเบเบตเป:
cd /usr/share/easy-rsa/3/
./easyrsa revoke my-first-user
./easyrsa gen-crl
เปเบเบดเปเบเปเบเบฎเบฑเบเบฎเบญเบเบเบตเปเบญเบญเบ เปเบฅเบฐเบเบญเบเบเบทเบ
เปเบเบทเปเบญเปเบเบดเปเบเปเบเบขเบฑเปเบเบขเบทเบเบเบตเปเบญเบญเบเปเบฅเบฐเบเบญเบเบเบทเบ, เบเบฝเบเปเบเปเปเบเบดเปเบเปเบเบฅเปเบเบฑเบเบชเบฐเบเบต:
cd /usr/share/easy-rsa/3/
cat pki/index.txt
เบเบณ เบญเบฐเบเบดเบเบฒเบ:
- เปเบเบงเบเปเบฒเบญเบดเบเปเบกเปเบเปเบเบขเบฑเปเบเบขเบทเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ;
- เบฅเบฑเบโเบชเบฐโเบเบฐโเบเปเบฒโเบญเบดเบโ
- V (เบเบทเบเบเปเบญเบ) - เบเบทเบเบเปเบญเบ;
- R (เบเบญเบเบเบทเบ) - เปเบญเบตเปเบเบเบทเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเปเบฒเบ
เบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบทเบญเบเปเบฒเบเบชเบฒเบเบชเบปเปเบ - routing เปเบฅเบฐ firewalls.
เบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบทเปเบญเบกเบเปเปเปเบ Firewall เบเปเบญเบเบเบดเปเบ:
$ sudo firewall-cmd --add-service=openvpn
$ sudo firewall-cmd --add-service=openvpn --permanent
เบเปเปเปเบ, เปเบเบตเบเปเบเปเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบชเบฑเบเบเบญเบ IP:
$ sudo sysctl net.ipv4.ip_forward=1
$ sudo echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/50-sysctl.conf
เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเบเปเบฅเบดเบชเบฑเบ, เบกเบตเปเบเบงเปเบเปเบกเบเบตเปเบเบฐเบกเบต subnetting เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบญเบ router (s) เบงเบดเบเบตเบเบฒเบเบชเบปเปเบ packets เบเบฒเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒ VPN เบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบเบฅเบฑเบเบชเบฐเบเบฐ (เบเบถเปเบเบเบฑเบเบญเบธเบเบฐเบเบญเบเบเบตเปเปเบเป):
# ip route 172.16.20.0 255.255.254.0 172.16.19.123
เปเบฅเบฐเบเบฑเบเบเบถเบเบเบฒเบเบเบฑเปเบเบเปเบฒ.
เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบเบเบฒเบเปเบเปเบเบญเบ router เบเบฒเบเปเบเบเบเบตเป gw.abc.ru เบเบตเปเบขเบนเปเบเบฒเบเบเบญเบเปเบกเปเบเปเบซเปเบเปเบฅเบดเบเบฒเบ, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเบฑเบเปเบเบฑเบ udp/1194.
เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบญเบปเบเบเบฒเบเบกเบตเบเบปเบเบฅเบฐเบเบฝเบเบเบงเบฒเบกเบเบญเบเปเบเบเบตเปเปเบเบฑเปเบกเบเบงเบ, เปเบเบงเปเบเปเบญเบเบเบทเบเบเบฑเปเบเบเปเบฒเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ VPN เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบเบเบฑเบ. เปเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบญเบเบเปเบญเบ, เบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบชเบนเบเบชเบธเบเปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒ iptables FORWARD chains, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบฑเปเบเบเบงเบเบกเบฑเบเปเบกเปเบเบชเบฐเบเบงเบเบซเบเปเบญเบ. เบญเบตเบเปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเบกเบฑเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบกเบฑเบเบชเบฐเบเบงเบเบเบตเปเบชเบธเบเบเบตเปเบเบฐเปเบเป "เบเบปเบเบฅเบฐเบเบฝเบเปเบเบเบเบปเบ" - เบเบปเบเบฅเบฐเบเบฝเบเปเบเบเบเบปเบ, เปเบเบฑเบเปเบงเปเปเบเปเบญเบเบฐเบชเบฒเบ /etc/firewalld/direct.xml. เบเบฒเบโเบเบฑเปเบโเบเปเบฒโเปเบโเบเบฑเบโเบเบธโเบเบฑเบโเบเบญเบโเบเบปเบโเบฅเบฐโเบเบฝเบโเบชเบฒโเบกเบฒเบโเบเบปเบโเปเบซเบฑเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
$ sudo firewall-cmd --direct --get-all-rule
เบเปเบญเบเบเบตเปเบเบฐเบเปเบฝเบเปเบเบฅเป, เปเบซเปเปเบฎเบฑเบเบชเปเบฒเปเบเบปเบฒเบชเปเบฒเบฎเบญเบเบเบญเบเบกเบฑเบ:
cp /etc/firewalld/direct.xml /etc/firewalld/direct.xml.`date +%F.%T`.bak
เปเบเบทเปเบญเปเบเปเบเบเบเบฐเบกเบฒเบเบเบญเบเปเบเบฅเปเปเบกเปเบ:
<?xml version="1.0" encoding="utf-8"?>
<direct>
<!--Common Remote Services-->
<!--DNS-->
<rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o ens192 -p udp --dport 53 -j ACCEPT</rule>
<!--web-->
<rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.200 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
<rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p tcp -d 172.16.19.201 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
<!--Some Other Systems-->
<rule priority="0" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -p udp -d 172.16.19.100 --dport 7000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT</rule>
<!--just logging-->
<rule priority="1" table="filter" ipv="ipv4" chain="FORWARD">-i tun0 -o eth0 -j LOG --log-prefix 'forward_fw '</rule>
</direct>
เบเปเบฒเบญเบฐเบเบดเบเบฒเบ
เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบปเบเบฅเบฐเบเบฝเบ iptables เบเบปเบเบเบฐเบเบด, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบเบฐเบเบทเบเบซเบธเปเบกเบซเปเปเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบกเบฒเปเบเบดเบเบเบญเบ firewalld.
เบเบฒเบเปเบเปเบเบญเบเบเบฒเบเบเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ tun0, เปเบฅเบฐเบชเปเบงเบเบเบดเบเบเปเปเบเบฒเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบญเบธเปเบกเบเบญเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ, เบเบปเบงเบขเปเบฒเบ, ens192, เบเบถเปเบเบเบฑเบเปเบงเบเบตเบเบตเปเปเบเป.
เปเบชเบฑเปเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบเบธเบเบเบตเปเบซเบผเบธเบเบฅเบปเบ. เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบฝเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบตเบเบฑเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ firewalld:
vim /etc/sysconfig/firewalld
FIREWALLD_ARGS=--debug=2
เบเบฒเบเบเบณเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเบเบเบณเบชเบฑเปเบ firewalld เบเบปเบเบเบฐเบเบดเปเบเบทเปเบญเบญเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบทเบเปเปเป:
$ sudo firewall-cmd --reload
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเบธเบเบเบตเปเบซเบผเบธเบเบฅเบปเบเปเบเบฑเปเบเบเบตเป:
grep forward_fw /var/log/messages
เบกเบตเบซเบเบฑเบเบเปเปเปเบ
เบญเบฑเบเบเบตเปเปเบฎเบฑเบเบชเบณเปเบฅเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบ!
เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเบเบฒเบเบเบดเบเบเบฑเปเบเบเบญเบเปเบงเบฅเบนเบเบเปเบฒเปเบเบเปเบฒเบเบฅเบนเบเบเปเบฒ, เบเปเบฒเปเบเบปเปเบฒเปเบเบฃเปเบเบฅเปเปเบฅเบฐเปเบเบทเปเบญเบกเบเปเป. เบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ Windows, เบเบธเบเปเบเบเบขเบฒเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบเบดเบ
เบชเบธเบเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบทเปเบญเบกเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบซเบกเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบฅเบฐเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบขเปเบฒเบฅเบทเบกเบเบดเบเบเบฑเปเบเบเบฒเบเบเบฑเบเบเบธเบเปเบเบฑเบเบเบฐเบเปเบฒ.
เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบซเบกเบฑเปเบเบเบปเบ!
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com