მხოლოდ პორტი 25 გადაამისამართეთ გვირაბში, არა ჰოსტი
პორტის მიხედვით შერჩეული წესი მხოლოდ გამავალ SMTP-ს ატარებს გვირაბში. ცხრილი, წყაროს მისამართი და დაბრუნების გზა ერთმანეთს უნდა შეეწყოს, თორემ არაფერი იმუშავებს.
ოთხი რამ უნდა დაემთხვეს, სანამ Linux ჰოსტი მხოლოდ საკუთარ SMTP-ს გაგზავნის გვირაბით: მარშრუტი ცალკე ცხრილში, პოლიტიკის წესი, რომელიც ტრაფიკს ირჩევს, წყაროს მისამართი, რომელსაც peer მიიღებს, და დაბრუნების გზა, რომელიც ასიმეტრიას უძლებს. თითოეული ცალკე კონფიგურაციაა თავისი წარუმატებლობის რეჟიმით. ქვემოთ მოცემული თანმიმდევრობა სწორედ ისაა, რომელიც წარუმატებლობას რეალურად არასწორ ნაწილზე მიუთითებს. ეს პორტისთვის სპეციფიკური მარშრუტიზაციის სამუშაოა, და არა VPN-ის ნაგულისხმევი მარშრუტის მოთხოვნა.
პორტის წესი ნაგულისხმევი მარშრუტი არ არის
წესი, რომელიც ლოკალურად შექმნილ TCP-ს დანიშნულების პორტ 25-ს უთანაბრებს, ამ ტრაფიკს თქვენ მიერ დასახელებულ ცხრილში აგზავნის. წესი თავისთავად არაფერს ქმნის: ის ირჩევს, და ცხრილში უნდა იყოს მარშრუტი, რომელსაც პაკეტის გატანა შეუძლია. ორივეს შერწყმა მხოლოდ ერთი პროტოკოლის გამავალ მიმართულებას ფარავს, ამიტომ სხვა ჰოსტებისთვის გადამისამართება, შემომავალი ფოსტის კავშირები და IPv6 ამ სქემის გარეთ რჩება. VPN-ის ნაგულისხმევის ნაცვლად პორტისთვის სპეციფიკური პოლიტიკის დარქმევა ამ საზღვარს პატიოსნად ინახავს.
wg-quick-ის ორი პარამეტრი წინაპირობაა და არა პოლიტიკის ნაწილი. AllowedIPs = 0.0.0.0/0 peer-ს თვითნებური IPv4 დანიშნულებების გატანის საშუალებას აძლევს, ხოლო Table = off wg-quick-ს ხელს უშლის ამ პრეფიქსისთვის საკუთარი ნაგულისხმევი მარშრუტის დაყენებაში. არ შეურიოთ ეს ინსტრუქციები მენეჯერს, რომელიც საკუთარ მარშრუტულ პოლიტიკას იყენებს, რადგან ორივე ვერ შეთანხმდება, ვის ეკუთვნის მთავარი ცხრილი.
დაწერეთ მარშრუტი, სელექტორი და მცველი
აირჩიეთ ცხრილის ნომერი და პრიორიტეტების წყვილი, რომელსაც სხვა არაფერი იყენებს, შემდეგ გამოიყენეთ მარშრუტი, სელექტორი და მცველი ამ თანმიმდევრობით. ქვემოთ მოცემული რიცხვები მაგალითებია, არა დაცული მნიშვნელობები:
ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachableiif lo წესს ლოკალური წარმოშობის ტრაფიკზე ზღუდავს, ხოლო ipproto tcp dport 25 კავშირის მიმართულებას განსაზღვრავს; ip-rule-ის ცნობარი ორივე სელექტორს აღწერს. ისინი არსებობს მიმდინარე ბირთვებსა და iproute2-ის გამოცემებში, ხოლო ძველ სისტემაზე წესი მთლიანად უარყოფილია, რაც უფრო ნათელი წარუმატებლობაა, ვიდრე წესი, რომელიც იტვირთება და არაფერს ემთხვევა.
შემდეგი პრიორიტეტის unreachable წესი მცველია. მის გარეშე, 51825 ცხრილში არმყოფი მარშრუტი ჩვეულებრივ ნაგულისხმევში ვარდება, და გვირაბის გათიშვის დროს ფოსტა ფიზიკური ბმულით გადის, რაც ზუსტად ის შემთხვევაა, რომლის თავიდან ასაცილებლადაც პოლიტიკა აშენდა.
წყაროს მისამართი უნდა დაემთხვეს
მარშრუტის src უპირატესობა წყაროს მხოლოდ იმ კავშირებისთვის ავსებს, რომლებსაც საკუთარი წყარო არ მიუბმიათ. ეს თარგმანი არ არის და არ აუქმებს გამოკვეთილ მიბმას, ამიტომ ფიზიკურ მისამართზე მიბმული დემონი კვლავ იმ მისამართიდან აგზავნის. თუ ზუსტად ამას აღმოაჩენთ, შეცვალეთ თავად დემონის პარამეტრი ან შეიმუშავეთ განზრახი თარგმანის პოლიტიკა, რადგან გვიანი ყოვლისმომცველი masquerade სხვა გადაწყვეტაა სხვა შედეგებით.
შესასვლელში კლიენტის peer-მა უნდა უფლება მისცეს წყაროს, რომელსაც რეალურად იღებს, ანუ 10.77.0.2/32-ს და არა ფართო დანიშნულების პრეფიქსს. კლიენტის 0.0.0.0/0-ის ყველა შესასვლელ peer-ში კოპირება აბნევს, რომელი peer რომელ ტრაფიკს ფლობს. შესასვლელს ასევე სჭირდება გადამისამართება, ნაკადის დაშვების firewall-ის პოლიტიკა და დაბრუნების გზა, მათ შორის გამავალი თარგმანი, როცა ზედა დონე ვერ ახერხებს კერძო გვირაბის მისამართის მარშრუტიზაციას.
შეამოწმეთ დაბრუნების გზა, შემდეგ მდგრადობა
სანამ რამეს ენდობით, წაიკითხეთ ძიებები, რადგან ისინი აჩვენებენ, რომელი ცხრილი და რომელი წყარო მიიღება თითოეული მიმართულებით. ერთი დანიშნულება 25 პორტზე და იგივე დანიშნულება 443 პორტზე საკმარისია:
ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443პირველმა ძიებამ უნდა დაასახელოს wg0 და განზრახული წყარო, ხოლო მეორემ შეინარჩუნოს ჩვეულებრივი ზედა ბმული. როცა აპლიკაცია საკუთარ მისამართს ბმავს, ძიებას დაუმატეთ from ამ მისამართით. პასუხის ის მიმართულება, რომელიც wg0-მდე აღწევს და შემდეგ ლოკალურად იხსნება, IPv4-ის უკუგზის ფილტრაციაზე მიუთითებს, რადგან მხოლოდ გამავალი პორტის წესი უკუძიებას გვირაბის არჩევას არ აიძულებს.
სადაც ასიმეტრიული მარშრუტიზაცია დაშვებულია, ინტერფეისით შეზღუდული ფხვიერი რეჟიმი net.ipv4.conf.wg0.rp_filter=2-ის მეშვეობით შესაძლოა მიზანშეწონილი იყოს, და ღირს ჯერ all-ისა და ინტერფეისის მნიშვნელობების ეფექტური მაქსიმუმის შემოწმება. ნუ გამორთავთ ვალიდაციას გლობალურად მოკლე გზის სახით. შემდეგ გადაეცით ცხრილი, პრიორიტეტები და მცველი კონფიგურაციის მფლობელს, და ხელახლა დაკავშირების შემდეგ გახსენით ახალი კავშირები, რომ დაადასტუროთ, რომ არჩევანი კვლავ ძალაშია. გაითვალისწინეთ, რომ ლოკალური SMTP მსმენელის პასუხები ატარებს წყაროს პორტ 25-ს და არა დანიშნულების პორტ 25-ს, რაც ცალკე პოლიტიკის საკითხია.