আমি br0
দুটি ইন্টারফেসের সাথে একটি সেতু "সংযুক্ত" স্থাপন করেছি :
eth0
, আমার দৈহিক ইন্টারফেসটি আসল ল্যানের সাথে সংযুক্ত,vnet0
, একটি কেভিএম ভার্চুয়াল ইন্টারফেস (একটি উইন্ডোজ ভিএম এর সাথে সংযুক্ত)।
এবং আমার এই ফরোয়ার্ড চেইনে ফায়ারওয়াল নিয়ম রয়েছে:
iptables -A FORWARD -j REJECT
এখন, কেবল পিং যা কাজ করছে তা ভিএম থেকে হোস্ট পর্যন্ত।
br0
ইন্টারফেস আমার হোস্ট মেশিনের IP ঠিকানা মালিক। eth0
এবং vnet0
হোস্ট দৃষ্টিকোণ থেকে কোনও আইপি "নিজের" করবেন না। উইন্ডোজ ভিএমের একটি স্ট্যাটিক আইপি কনফিগারেশন রয়েছে।
যদি আমার iptables
নিয়মটি পরিবর্তন করে ACCEPT
(বা আরও সীমাবদ্ধ ব্যবহার করে iptables -A FORWARD -o br0 -j ACCEPT
), সবকিছু ঠিকঠাক চলছে! (অর্থাত্ আমি ভিএম থেকে যে কোনও ল্যান মেশিন পিন করতে পারি, এবং অন্যভাবেও রাউন্ডে)।
সমস্ত আইপি ফরোয়ার্ডিং কার্নেল বিকল্পগুলি অক্ষম করা (যেমন net.ipv4.ip_forward = 0
)।
সুতরাং, নেটফিল্টার ফায়ারওয়াল এমন কিছুকে কীভাবে ব্লক করতে পারে যা এমনকি সক্ষম নয়?
তদ্ব্যতীত, ভিএম - ল্যান ট্র্যাফিক কেবলমাত্র বোঝানো উচিত eth0
এবং vnet0
। তবুও দেখে মনে হচ্ছে -o br0
"কাজগুলি" দিয়ে ফরওয়ার্ড ট্র্যাফিকের অনুমতি দেওয়া হয়েছে (যদিও আমি খুব সাবধানে চেক করি নি)।
sysctl -a | grep bridge-nf
net.bridge.bridge-nf-call-arptables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0