IPIP IPsec VPN เชŸเชจเชฒ Linux เชฎเชถเซ€เชจ เช…เชจเซ‡ Mikrotik เชตเชšเซเชšเซ‡ NAT เชชเซเชฐเชฆเชพเชคเชพเชจเซ€ เชชเชพเช›เชณ

เชฒเชฟเชจเช•เซเชธ: เช‰เชฌเซเชจเซเชŸเซ 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

  • Eth0 1.1.1.1/32 เชฌเชพเชนเซเชฏ IP
  • ipip-ipsec0 192.168.0.1/30 เช…เชฎเชพเชฐเซ€ เชŸเชจเชฒ เชนเชถเซ‡

เชฎเชฟเช•เชŸเซ‹เช‡เช•: CCR 1009, RouterOS 6.46.5

  • Eth0 10.0.0.2/30 เชชเซเชฐเชฆเชพเชคเชพ เชคเชฐเชซเชฅเซ€ เช†เช‚เชคเชฐเชฟเช• IP. เชชเซเชฐเชฆเชพเชคเชพเชจเซ‹ เชฌเชพเชนเซเชฏ NAT IP เช—เชคเชฟเชถเซ€เชฒ เช›เซ‡.
  • ipip-ipsec0 192.168.0.2/30 เช…เชฎเชพเชฐเซ€ เชŸเชจเชฒ เชนเชถเซ‡

เช…เชฎเซ‡ เชฐเซ‡เช•เซ‚เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Linux เชฎเชถเซ€เชจ เชชเชฐ IPsec เชŸเชจเชฒ เชฌเชจเชพเชตเซ€เชถเซเช‚. เชนเซเช‚ เชตเชฟเช—เชคเซ‹ เชตเชฐเซเชฃเชตเซ€เชถ เชจเชนเซ€เช‚, เชคเซเชฏเชพเช‚ เชเช• เชธเชพเชฐเซ€ เช›เซ‡ เชฒเซ‡เช– ัƒ vvpoloskin.

เชœเชฐเซ‚เชฐเซ€ เชชเซ‡เช•เซ‡เชœเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

sudo install racoon ipsec-tools

เช…เชฎเซ‡ เชฐเซ‡เช•เซ‚เชจเชจเซ‡ เช—เซ‹เช เชตเซ€เช เช›เซ€เช, เชคเซ‡ เชถเชฐเชคเซ€ เชฐเซ€เชคเซ‡ ipsec เชธเชฐเซเชตเชฐ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡. เชฎเซเช–เซเชฏ เชฎเซ‹เชกเชฎเชพเช‚ เชฎเชฟเช•เซเชฐเซ‹เชŸเชฟเช• เชตเชงเชพเชฐเชพเชจเชพ เช•เซเชฒเชพเชฏเช‚เชŸ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เช…เชจเซ‡ เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเซเช‚ เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชคเซ‡ Linux เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏ เช›เซ‡ เชคเซ‡ เช—เชคเชฟเชถเซ€เชฒ เช›เซ‡, เชชเซเชฐเซ€เชถเซ‡เชฐเซเชก เช•เซ€ (เชชเชพเชธเชตเชฐเซเชก เช…เชงเชฟเช•เซƒเชคเชคเชพ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชชเชพเชธเชตเชฐเซเชก เช•เซเชฏเชพเช‚ เชคเซ‹ IP เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชคเซ‹ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช. เช•เชจเซ‡เช•เซเชŸเชฟเช‚เช— เชนเซ‹เชธเซเชŸ, เช…เชฅเชตเชพ เช“เชณเช–เช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡.

เช…เชฎเซ‡ RSA เช•เซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚.

เชฐเซ‡เช•เซ‚เชจ เชกเชฟเชฎเชจ RSA เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เช•เซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ mikrotik PEM เชซเซ‹เชฐเซเชฎเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชฐเซ‡เช•เซ‚เชจ เชธเชพเชฅเซ‡ เช†เชตเชคเซ€ plainrsa-gen เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ€เช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ Mikrotika เชฎเชพเชŸเซ‡เชจเซ€ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชฆเชฆเชฅเซ€ PEM เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚ - เชคเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชœ เชฆเชฟเชถเชพเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เชฅเชพเชฏ เช›เซ‡: PEM เชฅเซ€ RSA. openssl เช•เซ‡ ssh-keygen เชฌเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆ เชชเซเชฒเซ‡เชจเชฐเชธเชพ-เชœเชจ เชฆเซเชตเชพเชฐเชพ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เช•เซ€ เชตเชพเช‚เชšเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฃ เชชเชฃ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€.

เช…เชฎเซ‡ openssl เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ PEM เช•เซ€ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€เชถเซเช‚ เช…เชจเซ‡ เชชเช›เซ€ plainrsa-gen เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชฐเซ‡เช•เซ‚เชจ เชฎเชพเชŸเซ‡ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ€เชถเซเช‚:

#  ะ“ะตะฝะตั€ะธั€ัƒะตะผ ะบะปัŽั‡
openssl genrsa -out server-name.pem 1024
# ะ˜ะทะฒะปะตะบะฐะตะผ ะฟัƒะฑะปะธั‡ะฝั‹ะน ะบะปัŽั‡
openssl rsa -in server-name.pem -pubout > server-name.pub.pem
# ะšะพะฝะฒะตั€ั‚ะธั€ัƒะตะผ
plainrsa-gen -i server-name.pem -f server-name.privet.key
plainrsa-gen -i server-name.pub.pem -f server-name.pub.key

เช…เชฎเซ‡ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‡เชฒเซ€ เช•เซ€ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ€เชถเซเช‚: /etc/racoon/certs/server. เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพ เชจเชพเชฎ เชนเซ‡เช เชณ เชฐเซ‡เช•เซ‚เชจ เชกเชฟเชฎเชจ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฐเซ‚เชŸ) เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเชพ เชฎเชพเชฒเชฟเช•เชจเซ‡ 600 เชชเชฐเชฎเชฟเชถเชจ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚.

WinBox เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชนเซเช‚ mikrotik เชธเซ‡เชŸเช…เชชเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถ.

mikrotik เชชเชฐ server-name.pub.pem เช•เซ€ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‹: เชฎเซ‡เชจเซ โ€œเชซเชพเชˆเชฒเซ‹โ€ - โ€œเช…เชชเชฒเซ‹เชก เช•เชฐเซ‹โ€.

"IP" เชตเชฟเชญเชพเช— - "IP เชธเซ‡เช•เชจเซเชก" - "เช•เซ€เช" เชŸเซ‡เชฌ เช–เซ‹เชฒเซ‹. เชนเชตเซ‡ เช†เชชเชฃเซ‡ เช•เซ€ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช - โ€œGenerate Keyโ€ เชฌเชŸเชจ, เชชเช›เซ€ mikrotika public key โ€œExpor Pubโ€ เชจเชฟเช•เชพเชธ เช•เชฐเซ€เช เช›เซ€เช. เช•เซ€", เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ "เชซเชพเช‡เชฒเซเชธ" เชตเชฟเชญเชพเช—เชฎเชพเช‚เชฅเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชซเชพเช‡เชฒ เชชเชฐ เชœเชฎเชฃเซเช‚-เช•เซเชฒเชฟเช• เช•เชฐเซ‹ - "เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹".

เช…เชฎเซ‡ เชฐเซ‡เช•เซ‚เชจ เชชเชฌเซเชฒเชฟเช• เช•เซ€, "เช‡เชฎเซเชชเซ‹เชฐเซเชŸ" เช†เชฏเชพเชค เช•เชฐเซ€เช เช›เซ€เช, "เชซเชพเช‡เชฒ เชจเชพเชฎ" เชซเซ€เชฒเซเชกเชจเซ€ เชกเซเชฐเซ‹เชช-เชกเชพเช‰เชจ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช…เชฎเซ‡ เช…เช—เชพเช‰ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡เชฒ เชธเชฐเซเชตเชฐ-name.pub.pem เชถเซ‹เชงเซ€เช เช›เซ€เช.

เชฎเชฟเช•เซเชฐเซ‹เชŸเชฟเช• เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€เชจเซ‡ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key

เช…เชจเซ‡ เชคเซ‡เชจเซ‡ /etc/racoon/certs เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ‹, เชฎเชพเชฒเชฟเช• เช…เชจเซ‡ เช…เชงเชฟเช•เชพเชฐเซ‹ เชตเชฟเชถเซ‡ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚.

เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชธเชพเชฅเซ‡ racoon เชฐเซ‚เชชเชฐเซ‡เช–เชพ: /etc/racoon/racoon.conf

log info; # ะฃั€ะพะฒะตะฝัŒ ะปะพะณะธั€ะพะฒะฐะฝะธั, ะฟั€ะธ ะพั‚ะปะฐะดะบะต ะธัะฟะพะปัŒะทัƒะตะผ Debug ะธะปะธ Debug2.

listen {

    isakmp 1.1.1.1 [500]; # ะะดั€ะตั ะธ ะฟะพั€ั‚, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ ะดะตะผะพะฝ.
    isakmp_natt 1.1.1.1 [4500]; # ะะดั€ะตั ะธ ะฟะพั€ั‚, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ ะดะตะผะพะฝ ะดะปั ะบะปะธะตะฝั‚ะพะฒ ะทะฐ NAT.
    strict_address; # ะ’ั‹ะฟะพะปะฝัั‚ัŒ ะพะฑัะทะฐั‚ะตะปัŒะฝัƒัŽ ะฟั€ะพะฒะตั€ะบัƒ ะฟั€ะธะฒัะทะบะธ ะบ ัƒะบะฐะทะฐะฝะฝั‹ะผ ะฒั‹ัˆะต IP.
}

path certificate "/etc/racoon/certs"; # ะŸัƒั‚ัŒ ะดะพ ะฟะฐะฟะบะธ ั ัะตั€ั‚ะธั„ะธะบะฐั‚ะฐะผะธ.

remote anonymous { # ะกะตะบั†ะธั, ะทะฐะดะฐัŽั‰ะฐั ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะดะปั ั€ะฐะฑะพั‚ั‹ ะดะตะผะพะฝะฐ ั ISAKMP ะธ ัะพะณะปะฐัะพะฒะฐะฝะธั ั€ะตะถะธะผะพะฒ ั ะฟะพะดะบะปัŽั‡ะฐัŽั‰ะธะผะธัั ั…ะพัั‚ะฐะผะธ. ะขะฐะบ ะบะฐะบ IP, ั ะบะพั‚ะพั€ะพะณะพ ะฟะพะดะบะปัŽั‡ะฐะตั‚ัั Mikrotik, ะดะธะฝะฐะผะธั‡ะตัะบะธะน, ั‚ะพ ะธัะฟะพะปัŒะทัƒะตะผ anonymous, ั‡ั‚ะพ ั€ะฐะทั€ะตัˆะฐะตั‚ ะฟะพะดะบะปัŽั‡ะตะฝะธะต ั ะปัŽะฑะพะณะพ ะฐะดั€ะตัะฐ. ะ•ัะปะธ IP ัƒ ั…ะพัั‚ะพะฒ ัั‚ะฐั‚ะธั‡ะตัะบะธะน, ั‚ะพ ะผะพะถะฝะพ ัƒะบะฐะทะฐั‚ัŒ ะบะพะฝะบั€ะตั‚ะฝั‹ะน ะฐะดั€ะตั ะธ ะฟะพั€ั‚.

    passive on; # ะ—ะฐะดะฐะตั‚ "ัะตั€ะฒะตั€ะฝั‹ะน" ั€ะตะถะธะผ ั€ะฐะฑะพั‚ั‹ ะดะตะผะพะฝะฐ, ะพะฝ ะฝะต ะฑัƒะดะตั‚ ะฟั‹ั‚ะฐั‚ัŒัั ะธะฝะธั†ะธะธั€ะพะฒะฐั‚ัŒ ะฟะพะดะบะปัŽั‡ะตะฝะธั.
    nat_traversal on; # ะ’ะบะปัŽั‡ะฐะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ั€ะตะถะธะผะฐ NAT-T ะดะปั ะบะปะธะตะฝั‚ะพะฒ, ะตัะปะธ ะพะฝะธ ะทะฐ NAT. 
    exchange_mode main; # ะ ะตะถะธะผ ะพะฑะผะตะฝะฐ ะฟะฐั€ะฐะผะตั‚ั€ะฐะผะธ ะฟะพะดะบะปัŽั‡ะตะฝะธั, ะฒ ะดะฐะฝะฝะพะผ ัะปัƒั‡ะฐะต ---ัะพะณะปะฐัะพะฒะฐะฝะธะต.
    my_identifier address 1.1.1.1; # ะ˜ะดะตะฝั‚ะธั„ะธั†ะธั€ัƒะตะผ ะฝะฐัˆ linux ั…ะพัั‚ ะฟะพ ะตะณะพ ip ะฐะดั€ะตััƒ.
    certificate_type plain_rsa "server/server-name.priv.key"; # ะŸั€ะธะฒะฐั‚ะฝั‹ะน ะบะปัŽั‡ ัะตั€ะฒะตั€ะฐ.
    peers_certfile plain_rsa "mikrotik.pub.key"; # ะŸัƒะฑะปะธั‡ะฝั‹ะน ะบะปัŽั‡ Mikrotik.

    proposal_check claim; # ะ ะตะถะธะผ ัะพะณะปะฐัะพะฒะฐะฝะธั ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ISAKMP ั‚ัƒะฝะฝะตะปั. Racoon ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะทะฝะฐั‡ะตะฝะธั ะฟะพะดะบะปัŽั‡ะฐัŽั‰ะตะณะพัั ั…ะพัั‚ะฐ (ะธะฝะธั†ะธะฐั‚ะพั€ะฐ) ะดะปั ัั€ะพะบะฐ ะดะตะนัั‚ะฒะธั ัะตััะธะธ                   ะธ ะดะปะธะฝั‹ ะบะปัŽั‡ะฐ, ะตัะปะธ ะตะณะพ ัั€ะพะบ ะดะตะนัั‚ะฒะธั ัะตััะธะธ ะฑะพะปัŒัˆะต, ะธะปะธ ะดะปะธะฝะฐ ะตะณะพ ะบะปัŽั‡ะฐ ะบะพั€ะพั‡ะต, ั‡ะตะผ ัƒ ะธะฝะธั†ะธะฐั‚ะพั€ะฐ. ะ•ัะปะธ ัั€ะพะบ ะดะตะนัั‚ะฒะธั ัะตััะธะธ ะบะพั€ะพั‡ะต, ั‡ะตะผ ัƒ ะธะฝะธั†ะธะฐั‚ะพั€ะฐ, racoon ะธัะฟะพะปัŒะทัƒะตั‚ ัะพะฑัั‚ะฒะตะฝะฝะพะต ะทะฝะฐั‡ะตะฝะธะต ัั€ะพะบะฐ ะดะตะนัั‚ะฒะธั ัะตััะธะธ ะธ ะฑัƒะดะตั‚ ะพั‚ะฟั€ะฐะฒะปัั‚ัŒ ัะพะพะฑั‰ะตะฝะธะต RESPONDER-LIFETIME.
    proposal { # ะŸะฐั€ะฐะผะตั‚ั€ั‹ ISAKMP ั‚ัƒะฝะฝะตะปั.

        encryption_algorithm aes; # ะœะตั‚ะพะด ัˆะธั„ั€ะพะฒะฐะฝะธั ISAKMP ั‚ัƒะฝะฝะตะปั.
        hash_algorithm sha512; # ะะปะณะพั€ะธั‚ะผ ั…ะตัˆะธั€ะพะฒะฐะฝะธั, ะธัะฟะพะปัŒะทัƒะตะผั‹ะน ะดะปั ISAKMP ั‚ัƒะฝะฝะตะปั.
        authentication_method rsasig; # ะ ะตะถะธะผ ะฐัƒั‚ะตะฝั‚ะธั„ะธะบะฐั†ะธะธ ะดะปั ISAKMP ั‚ัƒะฝะฝะตะปั - ะฟะพ RSA ะบะปัŽั‡ะฐะผ.
        dh_group modp2048; # ะ”ะปะธะฝะฐ ะบะปัŽั‡ะฐ ะดะปั ะฐะปะณะพั€ะธั‚ะผะฐ ะ”ะธั„ั„ะธ-ะฅะตะปะปะผะฐะฝะฐ ะฟั€ะธ ัะพะณะปะฐัะพะฒะฐะฝะธะธ ISAKMP ั‚ัƒะฝะฝะตะปั.
        lifetime time 86400 sec; ะ’ั€ะตะผั ะดะตะนัั‚ะฒะธั ัะตััะธะธ.
    }

    generate_policy on; # ะะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะต ัะพะทะดะฐะฝะธะต ESP ั‚ัƒะฝะฝะตะปะตะน ะธะท ะทะฐะฟั€ะพัะฐ, ะฟั€ะธัˆะตะดัˆะตะณะพ ะพั‚ ะฟะพะดะบะปัŽั‡ะฐัŽั‰ะตะณะพัั ั…ะพัั‚ะฐ.
}

sainfo anonymous { # ะŸะฐั€ะฐะผะตั‚ั€ั‹ ESP ั‚ัƒะฝะฝะตะปะตะน, anonymous - ัƒะบะฐะทะฐะฝะฝั‹ะต ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะฑัƒะดัƒั‚ ะธัะฟะพะปัŒะทะพะฒะฐะฝั‹ ะบะฐะบ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ. ะ”ะปั ั€ะฐะทะฝั‹ั… ะบะปะธะตะฝั‚ะพะฒ, ะฟะพั€ั‚ะพะฒ, ะฟั€ะพั‚ะพะบะพะปะพะฒ ะผะพะถะฝะพ              ะทะฐะดะฐะฒะฐั‚ัŒ ั€ะฐะทะฝั‹ะต ะฟะฐั€ะฐะผะตั‚ั€ั‹, ัะพะฟะพัั‚ะฐะฒะปะตะฝะธะต ะฟั€ะพะธัั…ะพะดะธั‚ ะฟะพ ip ะฐะดั€ะตัะฐะผ, ะฟะพั€ั‚ะฐะผ, ะฟั€ะพั‚ะพะบะพะปะฐะผ.

    pfs_group modp2048; # ะ”ะปะธะฝะฐ ะบะปัŽั‡ะฐ ะดะปั ะฐะปะณะพั€ะธั‚ะผะฐ ะ”ะธั„ั„ะธ-ะฅะตะปะปะผะฐะฝะฐ ะดะปั ESP ั‚ัƒะฝะฝะตะปะตะน.
    lifetime time 28800 sec; # ะกั€ะพะบ ะดะตะนัั‚ะฒะธั ESP ั‚ัƒะฝะฝะตะปะตะน.
    encryption_algorithm aes; # ะœะตั‚ะพะด ัˆะธั„ั€ะพะฒะฐะฝะธั ESP ั‚ัƒะฝะฝะตะปะตะน.
    authentication_algorithm hmac_sha512; # ะะปะณะพั€ะธั‚ะผ ั…ะตัˆะธั€ะพะฒะฐะฝะธั, ะธัะฟะพะปัŒะทัƒะตะผั‹ะน ะดะปั ะฐัƒั‚ะตะฝั‚ะธั„ะธะบะฐั†ะธะธ ESP ั‚ัƒะฝะฝะตะปะตะน.
    compression_algorithm deflate; # ะกะถะธะผะฐั‚ัŒ ะฟะตั€ะตะดะฐะฒะฐะตะผั‹ะต ะดะฐะฝะฝั‹ะต, ะฐะปะณะพั€ะธั‚ะผ ัะถะฐั‚ะธั ะฟั€ะตะดะปะฐะณะฐะตั‚ัั ั‚ะพะปัŒะบะพ ะพะดะธะฝ.
}

mikrotik เชฐเซ‚เชชเชฐเซ‡เช–เชพ

"IP" เชตเชฟเชญเชพเช— เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ‹ - "IPsec"

"เชชเซเชฐเซ‹เชซเชพเช‡เชฒเซเชธ" เชŸเซ…เชฌ
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชจเชพเชฎ
เชคเชฎเชพเชฐเซ€ เชฎเซเชจเชธเชซเซ€ เชชเชฐ (เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡)

เชนเซ‡เชถ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ
เชถเซ…เช•เซเชธเชฎเซ…เช•เซเชธ

เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ
aes-128

DH-เชœเซ‚เชฅ
modp2048

เชชเซเชฐเชชเซ‹เชเชฒ_เชšเซ‡เช•
เชฆเชพเชตเซ‹

เช†เชœเซ€เชตเชจ
1d 00:00:00

NAT เชŸเซเชฐเชพเชตเชฐเซเชธเชฒ
เชธเชพเชšเซเช‚ (เชฌเซ‹เช•เซเชธ เชšเซ‡เช• เช•เชฐเซ‹)

เชกเซ€เชชเซ€เชกเซ€
120

DPD เชฎเชนเชคเซเชคเชฎ เชจเชฟเชทเซเชซเชณเชคเชพ
5

เชชเซ€เช…เชฐ เชŸเซ‡เชฌ
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชจเชพเชฎ
เชคเชฎเชพเชฐเชพ เชตเชฟเชตเซ‡เช•เชฌเซเชฆเซเชงเชฟ เชชเชฐ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชฎเชพเชฏเชชเซ€เชฐ เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡)

เชธเชฐเชจเชพเชฎเซเช‚
1.1.1.1 (IP Linux เชฎเชถเซ€เชจเซ‹)

เชธเซเชฅเชพเชจเชฟเช• เชธเชฐเชจเชพเชฎเซเช‚
10.0.0.2 (IP WAN เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฎเชฟเช•เซเชฐเซ‹เชŸเชฟเช•)

เชชเซเชฐเซ‹เชซเชพเช‡เชฒ
เชฎเซ‚เชณเชญเซ‚เชค

เชตเชฟเชจเชฟเชฎเชฏ เชธเซเชฅเชฟเชคเชฟ
เชฎเซเช–เซเชฏ

เชจเชฟเชทเซเช•เซเชฐเซ€เชฏ
เช–เซ‹เชŸเซเช‚

INITIAL_CONTACT เชฎเซ‹เช•เชฒเซ‹
เชธเชพเชšเซเช‚

เชฆเชฐเช–เชพเชธเซเชค เชŸเซ‡เชฌ
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชจเชพเชฎ
เชคเชฎเชพเชฐเซ€ เชตเชฟเชตเซ‡เช•เชฌเซเชฆเซเชงเชฟ เชชเชฐ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชฎเชพเชฏเชชเซ€เชฐเชชเซเชฐเชชเซ‹เชเชฒ เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡)

เช“เชฅ. เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ
เชถเซ…เช•เซเชธเชฎเซ…เช•เซเชธ

เชเชจเซเช•เชฐ. เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ
aes-128-cbc

เช†เชœเซ€เชตเชจ
08:00:00

เชชเซ€เชเชซเชเชธ เช—เซเชฐเซเชช
modp2048

"เช“เชณเช–" เชŸเซ‡เชฌ
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชชเซ€เช…เชฐ
เชฎเชพเชฏเชชเซ€เชฐ

เช†เชคเซเชน. เชชเชฆเซเชงเชคเชฟ
rsa เช•เซ€

เช•เซ€
mikrotik.privet.key

เชฐเชฟเชฎเซ‹เชŸ เช•เซ€
server-name.pub.pem

เชชเซ‹เชฒเชฟเชธเซ€ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เช—เซเชฐเซเชช
เชฎเซ‚เชณเชญเซ‚เชค

เชจเซ‹เชŸเซเชฐเซ‡เช• เชธเชพเช‚เช•เชณ
เช–เชพเชฒเซ€

เชฎเชพเชฐเซ‹ ID เชชเซเชฐเช•เชพเชฐ
เช“เชŸเซ‹

เชฆเซ‚เชฐเชธเซเชฅ ID เชชเซเชฐเช•เชพเชฐ
เช“เชŸเซ‹

เชฎเซ‡เชš เชฌเชพเชฏ
เชฆเซ‚เชฐเชธเซเชฅ เช†เชˆเชกเซ€

เชฎเซ‹เชก เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ
เช–เชพเชฒเซ€

เชจเซ€เชคเชฟ เชฌเชจเชพเชตเซ‹
เชจเช‚

เชŸเซ…เชฌ "เชจเซ€เชคเชฟเช“ - เชธเชพเชฎเชพเชจเซเชฏ"
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชชเซ€เช…เชฐ
เชฎเชพเชฏเชชเซ€เชฐ

เชŸเชจเชฒ
เชธเชพเชšเซเช‚

Src. เชธเชฐเชจเชพเชฎเซเช‚
192.168.0.0/30

เชกเซ‡เชธเซเชŸ. เชธเชฐเชจเชพเชฎเซเช‚
192.168.0.0/30

เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ
255 (เชฌเชงเชพ)

เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ
เช–เซ‹เชŸเซเช‚

เชŸเซ…เชฌ "เชจเซ€เชคเชฟเช“ - เช•เซเชฐเชฟเชฏเชพ"
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เช•เซเชฐเชฟเชฏเชพ
เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ

เชธเซเชคเชฐ
เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชจเชพเชฐ

IPsec เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเซเชธ
esp

เชฆเชฐเช–เชพเชธเซเชค
MyPeerProposal

เชธเช‚เชญเชตเชคเชƒ, เชฎเชพเชฐเซ€ เชœเซ‡เชฎ, เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ WAN เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชชเชฐ เชธเซเชจเซ‡เชŸ/เชฎเชพเชธเซเช•เชฐเซ‡เชก เช—เซ‹เช เชตเซเชฏเซเช‚ เช›เซ‡; เช† เชจเชฟเชฏเชฎเชจเซ‡ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— ipsec เชชเซ‡เช•เซ‡เชŸเซ‹ เช…เชฎเชพเชฐเซ€ เชŸเชจเชฒเชฎเชพเช‚ เชœเชพเชฏ:
"IP" - "เชซเชพเชฏเชฐเชตเซ‹เชฒ" เชตเชฟเชญเชพเช— เชชเชฐ เชœเชพเช“.
"NAT" เชŸเซ‡เชฌ, เช…เชฎเชพเชฐเซ‹ เชธเซเชจเซ‡เชŸ/เชฎเชพเชธเซเช•เชฐเซ‡เชก เชจเชฟเชฏเชฎ เช–เซ‹เชฒเซ‹.

เช…เชฆเซเชฏเชคเชจ เชŸเซ‡เชฌ
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

IPsec เชจเซ€เชคเชฟ
เชฌเชนเชพเชฐ: เช•เซ‹เชˆ เชจเชนเซ€เช‚

เชฐเซ‡เช•เซ‚เชจ เชฐเชพเช•เซเชทเชธเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

sudo systemctl restart racoon

เชœเซ‹ เชฐเซ‡เช•เซ‚เชจ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชตเชพ เชชเชฐ เชถเชฐเซ‚ เชฅเชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชเช• เชญเซ‚เชฒ เช›เซ‡; syslog เชฎเชพเช‚, เชฐเซ‡เช•เซ‚เชจ เช เชฒเชพเช‡เชจ เชจเช‚เชฌเชฐ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชญเซ‚เชฒ เชฎเชณเซ€ เช†เชตเซ€ เชนเชคเซ€.

เชœเซเชฏเชพเชฐเซ‡ OS เชฌเซ‚เชŸ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชฐเซ‡เช•เซ‚เชจ เชกเชฟเชฎเชจ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เช…เชฎเซ‡ เชฒเชฟเชธเชจ เชตเชฟเชญเชพเช—เชฎเชพเช‚ strict_address เชตเชฟเช•เชฒเซเชชเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡; เชคเชฎเชพเชฐเซ‡ เชธเชฟเชธเซเชŸเชฎd เชซเชพเช‡เชฒเชฎเชพเช‚ เชฐเซ‡เช•เซ‚เชจ เชฏเซเชจเชฟเชŸ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
/lib/systemd/system/racoon.service, [Unit] เชตเชฟเชญเชพเช—เชฎเชพเช‚, เชฒเชพเช‡เชจ After=network.target.

เชนเชตเซ‡ เช…เชฎเชพเชฐเซ€ ipsec เชŸเชจเชฒ เช‰เชชเชฐ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เช†เช‰เชŸเชชเซเชŸ เชœเซเช“:

sudo ip xfrm policy

src 192.168.255.0/30 dst 192.168.255.0/30 
    dir out priority 2147483648 
    tmpl src 1.1.1.1 dst "IP NAT ั‡ะตั€ะตะท ะบะพั‚ะพั€ั‹ะน ะฟะพะดะบะปัŽั‡ะฐะตั‚ัั mikrotik"
        proto esp reqid 0 mode tunnel
src 192.168.255.0/30 dst 192.168.255.0/30 
    dir fwd priority 2147483648 
    tmpl src "IP NAT ั‡ะตั€ะตะท ะบะพั‚ะพั€ั‹ะน ะฟะพะดะบะปัŽั‡ะฐะตั‚ัั mikrotik" dst 1.1.1.1
        proto esp reqid 0 mode tunnel
src 192.168.255.0/30 dst 192.168.255.0/30 
    dir in priority 2147483648 
    tmpl src "IP NAT ั‡ะตั€ะตะท ะบะพั‚ะพั€ั‹ะน ะฟะพะดะบะปัŽั‡ะฐะตั‚ัั mikrotik" dst 1.1.1.1
        proto esp reqid 0 mode tunnel

เชœเซ‹ เชŸเชจเชฒ เช‰เชชเชฐ เชจ เชนเซ‹เชฏ, เชคเซ‹ syslog, เช…เชฅเชตเชพ journalctl -u racoon เชœเซเช“.

เชนเชตเซ‡ เชคเชฎเชพเชฐเซ‡ L3 เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชฐเซ‚เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ. เชคเซเชฏเชพเช‚ เชตเชฟเชตเชฟเชง เชตเชฟเช•เชฒเซเชชเซ‹ เช›เซ‡, เช…เชฎเซ‡ IPIP เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ mikrotik เชคเซ‡เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชนเซเช‚ vti เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถ, เชชเชฐเช‚เชคเซ, เช•เชฎเชจเชธเซ€เชฌเซ‡, เชคเซ‡ เชนเชœเซ เชธเซเชงเซ€ mikrotik เชฎเชพเช‚ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€. เชคเซ‡ IPIP เชฅเซ€ เช…เชฒเช— เช›เซ‡ เช•เซ‡ เชคเซ‡ เชตเชงเซเชฎเชพเช‚ เชฎเชฒเซเชŸเซ€เช•เชพเชธเซเชŸเชจเซ‡ เชธเชฎเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซ‡เช•เซ‡เชŸเซ‹ เชชเชฐ fwmarks เชฎเซ‚เช•เซ€ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชคเซ‡เชจเซ‡ iptables เช…เชจเซ‡ iproute2 (เชจเซ€เชคเชฟ-เช†เชงเชพเชฐเชฟเชค เชฐเซ‚เชŸเซ€เช‚เช—) เชฎเชพเช‚ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชœเซ‹ เชคเชฎเชจเซ‡ เชฎเชนเชคเซเชคเชฎ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, GRE. เชชเชฐเช‚เชคเซ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚ เช•เซ‡ เช…เชฎเซ‡ เชฎเซ‹เชŸเชพ เช“เชตเชฐเชนเซ‡เชก เชนเซ‡เชก เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชฎเชพเชŸเซ‡ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเซ€เช เช›เซ€เช.

เชคเชฎเซ‡ เชŸเชจเชฒ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ€ เชธเชพเชฐเซ€ เชธเชฎเซ€เช•เซเชทเชพเชจเซ‹ เช…เชจเซเชตเชพเชฆ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚.

Linux เชชเชฐ:

# ะกะพะทะดะฐะตะผ ะธะฝั‚ะตั€ั„ะตะนั
sudo ip tunnel add ipip-ipsec0 local 192.168.255.1 remote 192.168.255.2 mode ipip
# ะะบั‚ะธะฒะธั€ัƒะตะผ
sudo ip link set ipip-ipsec0 up
# ะะฐะทะฝะฐั‡ะฐะตะผ ะฐะดั€ะตั
sudo ip addr add 192.168.255.1/30 dev ipip-ipsec0

เชนเชตเซ‡ เชคเชฎเซ‡ mikrotik เชชเชพเช›เชณ เชจเซ‡เชŸเชตเชฐเซเช• เชฎเชพเชŸเซ‡ เชฐเซ‚เชŸเซเชธ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹

sudo ip route add A.B.C.D/Prefix via 192.168.255.2

เชฐเซ€เชฌเซ‚เชŸ เชชเช›เซ€ เช…เชฎเชพเชฐเชพ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ เชฐเซ‚เชŸเซเชธ เชตเชงเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชพเชฐเซ‡ /etc/network/interfaces เชฎเชพเช‚ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชชเซ‹เชธเซเชŸ-เช…เชชเชฎเชพเช‚ เชคเซเชฏเชพเช‚ เชฐเซ‚เชŸเซเชธ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชฅเชตเชพ เชฌเชงเซเช‚ เชเช• เชซเชพเชˆเชฒเชฎเชพเช‚ เชฒเช–เชตเซเช‚ เชœเซ‹เชˆเช, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, /etc/ipip -ipsec0.conf เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเซ‹เชธเซเชŸ-เช…เชช เชฆเซเชตเชพเชฐเชพ เช–เซ‡เช‚เชšเซ‹, เชซเชพเช‡เชฒ เชฎเชพเชฒเชฟเช•, เช…เชงเชฟเช•เชพเชฐเซ‹ เชตเชฟเชถเซ‡ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชเช•เซเชเซ‡เช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชฌเชจเชพเชตเซ‹.

เชจเซ€เชšเซ‡ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชซเชพเช‡เชฒ เช›เซ‡

#!/bin/bash
ip tunnel add ipip-ipsec0 local 192.168.255.1 remote 192.168.255.2 mode ipip
ip link set ipip-ipsec0 up
ip addr add 192.168.255.1/30 dev ipip-ipsec0

ip route add A.B.C.D/Prefix via 192.168.255.2

เชฎเชฟเช•เซเชฐเซ‹เชŸเชฟเช• เชชเชฐ:

เชตเชฟเชญเชพเช— โ€œเช‡เชจเซเชŸเชฐเชซเซ‡เชธโ€, เชจเชตเซเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ โ€œIP เชŸเชจเชฒโ€ เช‰เชฎเซ‡เชฐเซ‹:

เชŸเซ…เชฌ "IP เชŸเชจเชฒ" - "เชธเชพเชฎเชพเชจเซเชฏ"
เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชจเชพเชฎ
เชคเชฎเชพเชฐเชพ เชตเชฟเชตเซ‡เช•เชฌเซเชฆเซเชงเชฟ เชชเชฐ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ IPIP-IPsec0 เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡)

เชเชฎเชŸเซ€เชฏเซ
1480 (เชœเซ‹ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจ เชนเซ‹เชฏ เชคเซ‹, mikrotik mtu เชจเซ‡ 68 เชชเชฐ เช•เชพเชชเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡)

เชธเซเชฅเชพเชจเชฟเช• เชธเชฐเชจเชพเชฎเซเช‚
192.168.0.2

เชฆเซ‚เชฐเชธเซเชฅ เชธเชฐเชจเชพเชฎเซเช‚
192.168.0.1

IPsec เชธเชฟเช•เซเชฐเซ‡เชŸ
เชซเซ€เชฒเซเชกเชจเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเซ‹ (เช…เชจเซเชฏเชฅเชพ เชเช• เชจเชตเซเช‚ เชชเซ€เช…เชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡)

เช•เชฟเชชเชพเชฒเชฟเชต
เชซเซ€เชฒเซเชกเชจเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเซ‹ (เช…เชจเซเชฏเชฅเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชธเชคเชค เชฌเช‚เชง เชฐเชนเซ‡เชถเซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เช† เชชเซ‡เช•เซ‡เชœเซ‹ เชฎเชพเชŸเซ‡ mikrotikaเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ Linux เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€)

เชกเซ€เชเชธเชธเซ€เชชเซ€
เชตเชพเชฐเชธเซ‹

เชŸเซเช•เชกเชพ เชจ เช•เชฐเซ‹
เชจเช‚

เช•เซเชฒเซ‡เชฎเซเชช TCP MSS
เชธเชพเชšเซเช‚

เชซเชพเชธเซเชŸ เชชเชพเชฅเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‹
เชธเชพเชšเซเช‚

เชตเชฟเชญเชพเช— โ€œIPโ€ - โ€œเชธเชฐเชจเชพเชฎเชพโ€, เชธเชฐเชจเชพเชฎเซเช‚ เช‰เชฎเซ‡เชฐเซ‹:

เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ
เช•เชฟเช‚เชฎเชค

เชธเชฐเชจเชพเชฎเซเช‚
192.168.0.2/30

เชˆเชจเซเชŸเชฐเชซเซ‡เชธ
IPIP-IPsec0

เชนเชตเซ‡ เชคเชฎเซ‡ Linux เชฎเชถเซ€เชจเชจเซ€ เชชเชพเช›เชณเชจเชพ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชฐเซ‚เชŸเซเชธ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹; เชœเซเชฏเชพเชฐเซ‡ เชฐเซ‚เชŸ เช‰เชฎเซ‡เชฐเชคเชพ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เช—เซ‡เชŸเชตเซ‡ เช…เชฎเชพเชฐเซเช‚ IPIP-IPsec0 เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชนเชถเซ‡.

PS

เช…เชฎเชพเชฐเซเช‚ เชฒเชฟเชจเช•เซเชธ เชธเชฐเซเชตเชฐ เชŸเซเชฐเชพเชจเซเชเชฟเชŸเชฟเชต เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชจเชพ เชชเชฐ ipip เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฎเชพเชŸเซ‡ เช•เซเชฒเซ‡เชฎเซเชช TCP MSS เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เช›เซ‡:

เชจเซ€เชšเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชธเชพเชฅเซ‡ เชซเชพเช‡เชฒ /etc/iptables.conf เชฌเชจเชพเชตเซ‹:

*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT

เช…เชจเซ‡ /etc/network/interfaces เชฎเชพเช‚
เชชเซ‹เชธเซเชŸ-เช…เชช iptables-restore < /etc/iptables.conf

เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ mikrotik (ip 10.10.10.1) เชจเซ€ เชชเชพเช›เชณ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒ nginx เช›เซ‡, เชคเซ‡เชจเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐเชฅเซ€ เชธเซเชฒเชญ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชจเซ‡ /etc/iptables.conf เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‹:

*nat
-A PREROUTING -d 1.1.1.1/32 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.10.10.1
#ะะฐ mikrotik, ะฒ ั‚ะฐะฑะปะธั†ะต mangle, ะฝะฐะดะพ ะดะพะฑะฐะฒะธั‚ัŒ ะฟั€ะฐะฒะธะปะพ route ั ะฝะฐะทะฝะฐั‡ะตะฝะธะตะผ 192.168.0.1 ะดะปั ะฟะฐะบะตั‚ะพะฒ ั ะฐะดั€ะตัะพะผ ะธัั‚ะพั‡ะฝะธะบะฐ 10.10.10.1 ะธ ะฟะพั€ั‚ะพะฒ 80, 443.

# ะขะฐะบ ะถะต ะฝะฐ linux ั€ะฐะฑะพั‚ะฐะตั‚ OpenVPN ัะตั€ะฒะตั€ 172.16.0.1/24, ะดะปั ะบะปะธะตะฝั‚ะพะฒ ะบะพั‚ะพั€ั‹ะต ะธัะฟะพะปัŒะทัƒัŽั‚ ะฟะพะดะบะปัŽั‡ะตะฝะธะต ะบ ะฝะตะผัƒ ะฒ ะบะฐั‡ะตัั‚ะฒะต ัˆะปัŽะทะฐ ะดะฐะตะผ ะดะพัั‚ัƒะฟ ะฒ ะธะฝั‚ะตั€ะฝะตั‚
-A POSTROUTING -s 172.16.0.0/24 -o eth0 -j SNAT --to-source 1.1.1.1
COMMIT 

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเซ‡เช•เซ‡เชŸ เชซเชฟเชฒเซเชŸเชฐเซเชธ เชธเช•เซเชทเชฎ เชนเซ‹เชฏ เชคเซ‹ iptables เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เชชเชฐเชตเชพเชจเช—เซ€เช“ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚.

เชธเซเชตเชธเซเชฅ เชฐเชนเซ‹!

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹