OpenVPN маршрут strongSwan XFRM бодлогод яагаад ялагддаг вэ
Тодорхой OpenVPN маршрут XFRM бодлогыг хүчингүй болгодоггүй: маршрут ба бодлогын сонгогчдыг уншиж, дараа нь нарийсгах, онцгойлон гарах эсвэл XFRM интерфейс рүү шилжинэ.
Пакетууд OpenVPN маршрутыг дагаж байсан ч IPsec бодлогод баригдаж болох бөгөөд энэ хослол зөв өнцгөөс бусад бүх өнцгөөс маршрутжуулалтын алдаа мэт харагддаг. Linux маршрутыг шийдэж, дараа нь тусдаа аюулгүй байдлын бодлогын сангаас лавладаг тул илүү тодорхой очих газрын маршрут тохирох XFRM бодлогыг түлхэж гаргахгүй. Харагдах шинж нь хостоос гарч хэзээ ч хүрдэггүй урсгал бөгөөд хоёр туннель хоёулаа өөрсдийгөө эрүүл гэж мэдээлдэг. Үүнийг гурван сонголт шийддэг бөгөөд алиныг нь сонгох нь тухайн префиксыг хоёр замын алийн нь зөөх ёстойгоос хамаарна.
Хоёр шийдвэр, нэг биш
Маршрутын сонголт нарийн асуултад хариулдаг: аль дараагийн хоп, эх үүсвэрийн хаяг энэ пакетыг зөөх ёстой вэ. Аюулгүй байдлын бодлогын сан өөр асуултад хариулдаг: энэ пакетэд IPsec хамгаалалт хэрэгтэй юу, ямар сонгогчдын дор. Хоёулаа нэг пакетийн хувьд ажилладаг бөгөөд эхнийхийг биелүүлэх нь хоёр дахь тухай юу ч хэлэхгүй. Тиймээс хэмжүүр өөрчлөх эсвэл статик маршрут нэмэх нь шинжийг хөндөгдөөгүй орхиж болно.
Өргөн IPsec сонгогч нь ердийн шалтгаан. 172.16.0.0/12-ыг хамгаалдаг бодлого 172.20.8.0/24-ийг ч хамардаг бөгөөд администратор тэнд OpenVPN туннелээр хүрэхийг зорьж байж болно. Зорилго нь зөвхөн маршрутжуулалтын хүснэгтэд байдаг бөгөөд бодлогын сан үүнийг хэзээ ч мэдээгүй.
Үүнийг хоёр хэмжүүрийн өрсөлдөөн биш, тохируулсан хоёр хамгаалалтын замын зөрчил гэж үзээрэй. Залруулга нь буруу хамрах хүрээтэй тохируулагдсан бүрэлдэхүүн хэсэгт хамаарна.
Цөм бодитоор сонгодог маршрутыг уншаарай
Цөмийн хийдэг хайлтаас эхлээрэй, үүнд эх үүсвэрийн хаяг болон пакетыг өөр хүснэгт рүү чиглүүлж болох аливаа бодлогын дүрэм багтана. Үндсэн хүснэгтийн маршрут өмнөх дүрэм өөр хүснэгт сонговол хэзээ ч харагдахгүй байж болох бөгөөд хамгийн урт префиксын тохирол нь дүрэм сонгосон хүснэгтийн дотор л үйлчилнэ.
ip rule show
ip route show table all
ip route get 172.20.8.20 from 10.44.7.15
Сүүлийн команд нь чухал, учир нь сонгосон маршрутыг цөмийн ашиглах эх үүсвэрийн хаягийн хамт хэвлэдэг. Тэр гаралтыг IPsec бодлого тохирох сонгогчтой харьцуул. Маршрут OpenVPN интерфейс рүү зааж, бодлого мөн адил хосод тохирсоор байвал та таамаглахгүйгээр зөрчлийг дахин үүсгэсэн байна.
Тикетэд хүрэхээс өмнө дампуудыг холбоогүй хаягуудаас цэвэр байлга. Үйлдвэрлэлийн хостны маршрутжуулалтын хүснэгт дотоод топологи агуулдаг бөгөөд асуултад хариулах мөрүүд л наах зохистой.
Мөн хамаарах бодлогыг уншаарай
Бодлогын жагсаалт чиглэл, сонгогчид болон тохирох пакетад юу тохиолдохыг шийддэг загварыг харуулна. Эхлээд гарч буй чиглэлийг, дараа нь буцаж ирэх урсгалын орж буй талыг унш, учир нь нэг чиглэлийн онцгой тохиолдол эхлээд хэзээ ч дуусдаггүй холболт үүсгэдэг.
ip -s xfrm policy
swanctl --list-sas
Жагсаалтын сонгогчдыг холболт хэлэлцсэн префикстэй харьцуул. strongSwan-ы маршрут суулгахыг унтраах нь тэдгээр бодлогыг арилгахгүй бөгөөд хэмжүүр өөрчлөх нь бодлого аль эх үүсвэр-очих газрын хосыг хамгаалдгийг өөрчлөхгүй. Энэ хоёр хуурамч засварыг эрт хасах нь зүйтэй, учир нь хүмүүс эхлээд тэднийг л туршдаг.
Хэрэв жагсаалтад таны хүлээсэн префиксын бодлого байхгүй бол асуудал өөр газар байгаа бөгөөд маршрутжуулалтын хүснэгт үнэнийг хэлж байгаа байх. Хэрэв түүнд префиксыг хамарсан илүү өргөн бодлого байвал та барилтыг олсон байна.
Хоёр зам хоёулаа хууль ёсны үед гурван сонголт
Өргөн префикс шаардлага биш тав тух байсан үед IPsec сонгогчийг нарийсгах нь хамгийн цэвэр сонголт. Алсын урсгалын сонгогчийг үнэхээр IPsec-ийн ард байдаг дэд сүлжээ хүртэл багасгах нь бүх хостод зөрчлийг нэгэн зэрэг арилгаж, зардал нь шинэ бүрэлдэхүүн биш түлхүүрийн дахин хэлэлцээр.
Өргөн сонгогч үлдэх ёстой үед нэвтрүүлэх онцгой тохиолдол нь мэс заслын сонголт. strongSwan өөрийн child pass горим ашигладаг тусдаа холболтыг дэмждэг бөгөөд энэ нь тохирох урсгалыг IPsec боловсруулж болохгүй гэдгийг цөмд хэлдэг. Loopback алсын хаяг нь тэр холболтыг орж ирэх түншүүдэд сонгогдохоос сэргийлдэг бөгөөд сонгогчид бүгдийг биш, бодит зөвшөөрөгдсөн хосыг тодорхойлох ёстой.
connections {
openvpn-exception {
remote_addrs = 127.0.0.1
children {
openvpn-exception {
local_ts = 10.44.7.0/24
remote_ts = 172.20.8.0/24
mode = pass
start_action = trap
}
}
}
}
strongSwan тохиргооны жишээнүүд энэ бодлогын төрөл болон loopback түншийн уламжлалыг баримтжуулдаг. Гурав дахь сонголт нь XFRM интерфейстэй маршрутад суурилсан загвар бөгөөд бодлогыг дэлхийн сонгогчид биш, нэрлэсэн интерфейсээр маршрутжсан урсгалд холбодог. Энэ нь тохируулга биш, шилжилт бөгөөд урсгал хэлэлцсэн сонгогчдыг хангах ёстой хэвээр.
| Option | Use it when | Cost |
|---|---|---|
| Narrow the selector | The broad prefix was convenience | A rekey and a policy review |
| Passthrough child | The broad selector must stay | One exception per intended pair |
| XFRM interface | Policy should follow routing | A design migration |
Бусдыг сулруулахгүйгээр онцгой тохиолдлыг нотлоорой
Өөрчлөлтийг ачаалсны дараа онцгой тохиолдол болон хамгаалагдсан хэвээр байх ёстой энгийн очих газрыг туршиж үзээрэй. Хоёр чиглэлийг шалгаад, дараа нь OpenVPN туннелийг унагаж, онцгойлсон урсгалд юу тохиолдохыг батал. Туннель унасан үед тэр префиксыг чимээгүй задгайгаар илгээдэг онцгой тохиолдол бол ослын үеэр илрүүлэх зүйл биш, санаатайгаар гаргах ёстой бодлогын шийдвэр юм.
Аль префикс аль замыг ашигладаг, яагаад гэдгийг тэмдэглэ. Эс бөгөөс өргөн сонгогчийг харсан дараагийн инженер мөнөөх мөрдөн шалгалтыг дахин нээж, хариулт нь хэн ч уншдаггүй commit мессежид үлдэнэ.