Iptables এবং সাধারণ ফায়ারওয়াল ক্ষতিগুলি ডিবাগ করছেন?


18

এটি লিনাক্স সিস্টেমে সফ্টওয়্যার ফায়ারওয়াল বুঝতে এবং ডিবাগ করার বিষয়ে একটি প্রস্তাবিত ক্যানোনিকাল প্রশ্ন

EEAA এর উত্তর এবং @ শোগের প্রতিক্রিয়া হিসাবে যে iptables সম্পর্কে সাধারণ তুলনামূলক সহজ প্রশ্নগুলি বন্ধ করার জন্য আমাদের একটি উপযুক্ত ক্যানোনিকাল প্রশ্নোত্তর দরকার।

লিনাক্স সফটওয়্যার ফায়ারওয়াল, নেটফিল্টার প্যাকেট ফিল্টারিং কাঠামো, যা সাধারণত ইউজারল্যান্ড ইন্টারফেস iptables দ্বারা উল্লেখ করা হয় তাতে সমস্যাগুলি ডিবাগ করার জন্য একটি কাঠামোগত পদ্ধতি কী ?

মাঝে মাঝে ফায়ারওয়াল অ্যাডমিনিস্ট্রেটর উপেক্ষা করতে বা অন্যথায় জেনে উপকার পেতে পারে তা যাচাই করার জন্য সাধারণ সমস্যাগুলি, পুনরাবৃত্তি হওয়া প্রশ্নগুলি এবং সহজ বা কিছুটা বেশি অস্পষ্ট বিষয়গুলি কী কী?

এমনকি যখন আপনি যেমন সাধনী দ্বারা প্রয়োগকরণ ব্যবহার UFW , FirewallD (ওরফে firewall-cmd), Shorewall আপনি বিমূর্ততা স্তর ঐ সরঞ্জামগুলি সরবরাহ ছাড়া ফণা অধীন খুঁজছেন থেকে উপকৃত হতে পারে বা অনুরূপ।

এই প্রশ্নটি ফায়ারওয়ালগুলি তৈরির উপায় হিসাবে নয়: এর জন্য পণ্যের ডকুমেন্টেশন পরীক্ষা করে দেখুন এবং উদাহরণস্বরূপ আইপটিবল ট্রাইপস এবং ট্রিক্সে রেসিপিগুলি অবদান রাখুন বা বিদ্যমান ঘন এবং উচ্চ বিবেচিত উচ্চতর স্কোরিংয়ের জন্য ট্যাগযুক্ত প্রশ্নগুলি অনুসন্ধান করুন Q & A- এর।


1
পারফরম্যান্স উন্নতি করতে এবং সুরক্ষা বাড়ানোর জন্য শৃঙ্খলে আগে স্থাপন করা যেতে পারে এমন NAT ও রাষ্ট্রীয় নিয়মের কী হবে?
ম্যাট

1
@Matt: ফায়ারওয়ালের নিয়মনীতি নিখুঁত নিজেই এবং এই Q & A- আমি সম্পূর্ণ Q & A- হয় আগের উত্তর আমি দিয়েছিলাম প্রসারিত করা হবে না এখানে
HBruijn

1
আপনি যদি আইপেটেবলের নিয়মটি না পৌঁছাতে চান তবে অনুরূপ এলওজি বিধি যুক্ত করুন এবং আপনি এলওজি বার্তা না পাওয়া পর্যন্ত চেইনটিতে আরও ভ্রমণ করুন up তারপরে, নীচের নীচের একটি নিয়ম আপনার প্যাকেটে ভুলভাবে মেলে এমন নিয়ম হবে।
ম্যাথু ইফে

1
ওহ এবং net.netfilter.nf_conntrack_log_invalid255 এ সেট করা অবৈধ প্যাকেটগুলি বেশ সুন্দরভাবে ক্যাপচার করবে যা নেটফিল্টারের রাষ্ট্রীয় অংশটি যদি খারাপ আচরণের কারণ হয়ে দাঁড়ায় তবে তা সাহায্য করতে পারে।
ম্যাথু ইফে

উত্তর:


14

সাধারণভাবে:

ফায়ারওয়াল কনফিগারেশন দেখতে এবং সংশোধন করতে প্রশাসনিক সুবিধাগুলি প্রয়োজন ( root) যেমন সীমাবদ্ধ পোর্ট নম্বর পরিসরে খোলার পরিষেবাগুলি। এর অর্থ হল কমান্ডটি রুট হিসাবে চালানোর জন্য আপনাকে হয় হিসাবে লগইন করা উচিত rootঅথবা বিকল্পভাবে ব্যবহার sudoকরা উচিত। আমি এই জাতীয় কমান্ডগুলি alচ্ছিক দিয়ে চিহ্নিত করার চেষ্টা করব [sudo]

সূচিপত্র:

  1. অর্ডার বিষয় বা মধ্যে পার্থক্য -Iএবং-A
  2. বর্তমান ফায়ারওয়াল কনফিগারেশন প্রদর্শন করুন
  3. এর আউটপুট ব্যাখ্যা iptables -L -v -n
  4. আপনার পরিবেশ জানুন
  5. ইনপুট এবং ফরোয়ার্ড চেইন
  6. কার্নেল মডিউলগুলি

1. অর্ডার বিষয় বা মধ্যে পার্থক্য -Iএবং-A

মনে রাখার বিষয়টি হ'ল ফায়ারওয়াল বিধিগুলি তালিকাভুক্ত হওয়ার সাথে তাদের পরীক্ষা করা হয়। কোনও নিয়ম ট্রিগার করা হলে কার্নেল শৃঙ্খলা প্রক্রিয়াজাতকরণ বন্ধ করে দেবে যা প্যাকেট বা সংযোগকে অনুমতি দেয় বা নিষ্ক্রিয় করে।

আমি মনে করি নবজাতক ফায়ারওয়াল প্রশাসকদের সবচেয়ে সাধারণ ভুলটি হ'ল তারা নীচের মত একটি নতুন বন্দর খোলার জন্য সঠিক নির্দেশাবলী অনুসরণ করে:

[sudo] iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

এবং তারপরে আবিষ্কার করুন যে এটি কার্যকর হবে না।

এর কারণটি হ'ল -Aবিকল্পটি বিদ্যমান নিয়মগুলির পরে এবং নতুন ফর্মওয়ালটিতে চূড়ান্ত নিয়মটি যুক্ত করে যা এই নতুন ট্র্যাফিককে স্পষ্টভাবে অনুমোদিত নয় এমন সমস্ত ট্র্যাফিককে ব্লক করে দেয় যার ফলে

...
7    2515K  327M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
8        0  0    ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080

বা iptables-save এর সমতুল্য:

...
iptables -A INPUT  -j REJECT
iptables -A INPUT  -p tcp --dport 8080 -j ACCEPT

এবং নতুন বিধি খোলার টিসিপি পোর্ট 8080 কখনই পৌঁছাবে না। (জবাবদিহিভাবে 0 প্যাকেট এবং শূন্য বাইটে থাকা কাউন্টারদের দ্বারা প্রমাণিত)।

-Iনতুন নিয়মের সাথে নিয়ম সন্নিবেশ করিয়ে শৃঙ্খলে প্রথম স্থান পেত এবং কাজ করবে।

২. বর্তমান ফায়ারওয়াল কনফিগারেশন প্রদর্শন করুন

ফায়ারওয়াল প্রশাসকের জন্য আমার পরামর্শটি হ'ল লিনাক্স কার্নেলটি চলমান প্রকৃত কনফিগারেশনটি ব্যবহারকারী ব্যবহারকারীর সরঞ্জামগুলি থেকে ফায়ারওয়াল সমস্যাগুলি সনাক্ত করার চেষ্টা করার পরিবর্তে চলছে look অন্তর্নিহিত সমস্যাগুলি প্রায়শই একবার বুঝতে পারলে আপনি সহজেই সেগুলি সেই সরঞ্জামগুলির দ্বারা সমর্থিত কোনও বিষয়ে সমাধান করতে পারেন।

কমান্ডটি [sudo] iptables -L -v -nআপনার বন্ধু (যদিও কিছু লোক iptables-saveআরও ভাল পছন্দ করে )। প্রায়শই কনফিগারেশনগুলি নিয়ে আলোচনা --line-numbersকরার সময় নম্বর লাইনের বিকল্পটি ব্যবহার করা কার্যকর। # এক্সকে নিয়ম করে উল্লেখ করা তাদের আলোচনাটি কিছুটা সহজ করে তোলে।
দ্রষ্টব্য: NAT বিধিগুলি iptables-saveআউটপুটে অন্তর্ভুক্ত রয়েছে তবে -t natবিকল্পটি যোগ করে পৃথকভাবে তালিকাবদ্ধ করতে হবে [sudo] iptables -L -v -n -t nat --line-numbers,।

একাধিকবার কমান্ড চালানো এবং বাড়ানো কাউন্টারগুলির জন্য অনুসন্ধান করা কোনও নতুন নিয়মটি আসলে ট্রিগার হয়ে যায় কিনা তা দেখার জন্য দরকারী সরঞ্জাম হতে পারে।

[root@host ~]# iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     784K   65M fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
2    2789K  866M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
3       15  1384 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4    44295 2346K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    40120 2370K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
6    16409  688K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:443
7    2515K  327M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 25 packets, 1634 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain fail2ban-SSH (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       117.239.37.150       0.0.0.0/0           reject-with icmp-port-unreachable
2        4   412 REJECT     all  --  *      *       117.253.208.237      0.0.0.0/0           reject-with icmp-port-unreachable

বিকল্পভাবে আউটপুট iptables-saveএকটি স্ক্রিপ্ট দেয় যা উপরের ফায়ারওয়াল কনফিগারেশনটিকে পুনরায় তৈরি করতে পারে:

[root@host ~]# iptables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [441:59938]
:fail2ban-SSH - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A fail2ban-SSH -s 117.239.37.150/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-SSH -s 117.253.208.237/32 -j REJECT --reject-with icmp-port-unreachable
COMMIT

আপনি বুঝতে সহজতর কি এটি পছন্দ করার বিষয়।

3. এর আউটপুট ব্যাখ্যা iptables -L -v -n

নীতি ডিফল্ট অ্যাকশন শৃঙ্খল ব্যবহার করেন, যখন কোন স্পষ্ট নিয়ম ম্যাচ সেট করে। ইন INPUTশৃঙ্খল যে সমস্ত ট্রাফিক গ্রহণ করতে সেট করা হয়।

ইনপুট চেইনের প্রথম নিয়মটি তত্ক্ষণাত্ একটি আকর্ষণীয়, এটি টিসিপি পোর্ট 22 ( tcp dpt:22) এর জন্য নির্ধারিত সমস্ত ট্র্যাফিক (উত্স 0.0.0.0/0 এবং গন্তব্য 0.0.0.0/0) কাস্টম টার্গেটে এসএসএইচ-র ডিফল্ট পোর্ট প্রেরণ করে fail2ban-SSH) । নামটি নির্দেশ করে যেহেতু এই নিয়মটি ব্যর্থ 2 বা তত্ত্বাবধানে পরিচালিত হয় (এমন সুরক্ষা পণ্য যা অন্যান্য জিনিসের মধ্যে সিস্টেম লগ ফাইলগুলি সম্ভাব্য অপব্যবহারের জন্য স্ক্যান করে এবং গালাগালীর আইপি-ঠিকানা আটকে দেয়)।

এই নিয়মটি iptables -I INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSHiptables-save হিসাবে আউটপুটে পাওয়া যায় বা iptables-save হিসাবে পাওয়া যায় এমন একটি iptables কমান্ডলাইন দ্বারা তৈরি করা হত -A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH। প্রায়শই আপনি ডকুমেন্টেশনে এই স্বরলিপিগুলির মধ্যে একটি খুঁজে পাবেন।

কাউন্টারগুলি নির্দেশ করে যে এই নিয়মটি 784'000 প্যাকেট এবং 65 মেগাবাইট ডেটার সাথে মেলে।

এই প্রথম নিয়মের সাথে মেলে ট্র্যাফিকটি fail2ban-SSHচেইন দ্বারা প্রক্রিয়া করা হয় যা একটি অ-মানক শৃঙ্খলা হিসাবে, OUTPUT চেইনের নীচে তালিকাভুক্ত হয়।

এই শৃঙ্খলে দুটি নিয়ম রয়েছে, প্রতিটি আপত্তিজনকদের জন্য একটি (উত্স আইপি-ঠিকানা 117.253.221.166 বা 58.218.211.166) যা ব্লক করা হয়েছে (একটি দিয়ে reject-with icm-port-unreachable)।

 -A fail2ban-SSH -s 117.253.221.166/32 -j REJECT --reject-with icmp-port-unreachable
 -A fail2ban-SSH -s 58.218.211.166/32 -j REJECT --reject-with icmp-port-unreachable

এসএসএইচ প্যাকেটগুলি যেগুলি অবরুদ্ধ হোস্টগুলি থেকে নেই তা এখনও অনুমোদিত বা অস্বীকৃত মঞ্জুরিপ্রাপ্ত এবং কাস্টম চেইনটি সম্পন্ন হওয়ার পরে ইনপুট চেইনের দ্বিতীয় নিয়মের বিরুদ্ধে পরীক্ষা করা হবে।

যে সমস্ত প্যাকেট 22 বন্দরের জন্য নির্ধারিত ছিল না তারা INPUT চেইনে প্রথম নিয়মটি পাস করেছে এবং ইনপুট নিয়ম # 2 এও মূল্যায়ন করা হবে।

2 নম্বর ইনপুট নিয়মটিকে এটি একটি স্টেটফুল ফায়ারওয়াল হিসাবে চিহ্নিত করা হয়েছে যা সংযোগগুলি ট্র্যাক করে। এর কিছু সুবিধা রয়েছে, কেবলমাত্র নতুন সংযোগের প্যাকেটগুলি সম্পূর্ণ নিয়ম-সেট-এর বিপরীতে চেক করা দরকার, তবে একবার অনুমোদিত বা সম্পর্কিত সংযোগের অতিরিক্ত প্যাকেটগুলি আরও চেক না করে গ্রহণ করা হবে।

ইনপুট নিয়ম # 2 এর সাথে সমস্ত ওপেন এবং সম্পর্কিত সংযোগ এবং প্যাকেটগুলির সাথে মেলে যেগুলি এই নিয়মের সাথে মেলে এবং আরও মূল্যায়ন করার প্রয়োজন হবে না।

দ্রষ্টব্য: রাষ্ট্রীয় ফায়ারওয়ালের কনফিগারেশনের নিয়ম পরিবর্তনগুলি কেবল নতুন সংযোগগুলিতে প্রভাব ফেলবে, প্রতিষ্ঠিত সংযোগ নয়।

বিপরীতে একটি সাধারণ প্যাকেট ফিল্টার ট্র্যাকিং সংযোগের স্থিতি ছাড়াই প্রতিটি প্যাকেট পুরো নিয়ম-সেটটির বিপরীতে পরীক্ষা করে। এই ধরনের ফায়ারওয়ালে কোনও রাজ্যের কীওয়ার্ড ব্যবহার করা হত না।

ইনপুট নিয়ম # 3 বেশ বিরক্তিকর, লুপব্যাকের সাথে সংযুক্ত সমস্ত ট্র্যাফিক ( loবা 127.0.0.1) অনুমোদিত।

ইনপুট বিধি 4, 5 এবং 6 টিসিপি বন্দরগুলি 22, 80 এবং 443 (শ্রদ্ধার জন্য ডিফল্ট পোর্টস SS এসএসএইচ, এইচটিটিপি এবং এইচটিটিপিএস) খোলার জন্য নতুন সংযোগে অ্যাক্সেস প্রদানের মাধ্যমে ব্যবহৃত হয় (বিদ্যমান সংযোগগুলি ইতিমধ্যে ইনপুট বিধি 2 দ্বারা অনুমোদিত)।

স্টেটলেস ফায়ারওয়ালে এই বিধিগুলি রাষ্ট্রীয় বৈশিষ্ট্য ছাড়াই উপস্থিত হবে:

4    44295 2346K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
5    40120 2370K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
6    16409  688K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0

অথবা

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

চূড়ান্ত ইনপুট নিয়ম, # 7 একটি নিয়ম যা সমস্ত ট্র্যাফিককে ব্লক করে যা ইনপুট বিধি 1-7 এ অ্যাক্সেস পায় নি। একটি মোটামুটি প্রচলিত সম্মেলন: অনুমোদিত নয় এমন সমস্ত কিছুই অস্বীকার করা হয়েছে। তত্ত্বের ক্ষেত্রে এই নিয়মটি বাদ দেওয়া যেতে পারে ডিফল্ট POLICY সেটাকে প্রত্যাখ্যান করে।

সর্বদা পুরো চেইনটি তদন্ত করুন।

4. আপনার পরিবেশ জানুন

4.1। সফ্টওয়্যার ফায়ারওয়ালের সেটিংসটি নেটওয়ার্কের অন্য যে কোনও স্থানে রক্ষণাবেক্ষণ করা সুরক্ষা সেটিংসকে প্রভাবিত করবে না, অর্থাত্ iptablesআপনার নেটওয়ার্কের রাউটারগুলিতে বা অন্য ফায়ারওয়ালগুলিতে অশোধিত অ্যাক্সেস নিয়ন্ত্রণ তালিকাগুলি দিয়ে একটি নেটওয়ার্ক পরিষেবা খোলার পরেও ট্র্যাফিক অবরোধ করতে পারে ...

4.2। যখন কোনও পরিষেবা শুনছে না তখন আপনি ফায়ারওয়াল সেটিংস নির্বিশেষে সংযোগ করতে এবং কোনও সংযোগ অস্বীকার করার ত্রুটি পেতে সক্ষম হবেন না । অতএব:

  • নিশ্চিত করুন যে কোনও পরিষেবা শুনছে (সঠিক নেটওয়ার্ক ইন্টারফেস / আইপি-ঠিকানাতে) এবং পোর্ট নম্বরগুলি ব্যবহার করে আপনি আশা করছেন [sudo] netstat -plnutবা বিকল্পভাবে ব্যবহার করছেন ss -tnlp
  • যদি আপনার পরিষেবাগুলি এখনও চলছে বলে মনে না করা হয়, তবে নেটক্যাট উদাহরণস্বরূপ একটি সাধারণ শ্রোতার অনুকরণ করুন: [sudo] nc -l -p 123বা আপনার openssl s_server -accept 1234 [options] যদি কোনও টিএলএস / এসএসএল শ্রোতার প্রয়োজন হয় ( man s_serverবিকল্পগুলির জন্য পরীক্ষা করুন)।
  • যাচাই করুন যে আপনি সার্ভারে নিজেকে IE থেকে সংযোগ করতে পারেন telnet <IP of Server> 123বা echo "Hello" | nc <IP of Server> 123যখন TLS / SSL এর নিরাপদ পরিষেবার পরীক্ষার বা openssl s_client -connect <IP of Server>:1234, একটি দূরবর্তী হোস্ট থেকে একই চেষ্টা করার আগে।

4.3। আপনার পরিষেবাগুলি দ্বারা ব্যবহৃত প্রোটোকলগুলি বুঝতে tand আপনি যথাযথভাবে বুঝতে পারবেন না এমন পরিষেবাগুলি আপনি সঠিকভাবে সক্ষম / অক্ষম করতে পারবেন না। এই ক্ষেত্রে:

  • টিসিপি বা ইউডিপি ব্যবহার হয় বা উভয়ই (ডিএনএসের মতো)?
  • পরিষেবাটি কি কোনও স্থির ডিফল্ট পোর্ট ব্যবহার করে (উদাহরণস্বরূপ কোনও ওয়েবসভারের জন্য টিসিপি পোর্ট 80 এর মতো কিছু)?
  • বিকল্পভাবে একটি গতিশীল পোর্ট নম্বর নির্বাচন করা যায় যা পরিবর্তিত হতে পারে (যেমন পোর্টম্যাপের সাথে নিবন্ধিত ক্লাসিক এনএফএসের মতো আরপিসি পরিষেবাদি)?
  • প্যাসিভ মোড ব্যবহার করার জন্য যখন কনফিগার করা হয় তখন কুখ্যাত এফটিপি এমনকি দুটি বন্দর ব্যবহার করে , একটি স্থির এবং একটি গতিশীল পোর্ট নম্বর ...
  • এতে থাকা পরিষেবা, বন্দর এবং প্রোটোকল বিবরণ অবশ্যই /etc/servicesকোনও বন্দর ব্যবহার করে প্রকৃত পরিষেবার সাথে মেলে না।

4.4। কার্নেল প্যাকেট ফিল্টারটি কেবলমাত্র নেটওয়ার্ক সংযোগকে সীমাবদ্ধ করতে পারে না:

  • সেলইনাক্স নেটওয়ার্ক পরিষেবাদিগুলিকে সীমাবদ্ধ করতে পারে। getenforceSELinux চলছে কিনা তা নিশ্চিত করবে।
  • যদিও কিছুটা অস্পষ্ট হয়ে উঠেছে টিসিপি র্যাপার্স এখনও নেটওয়ার্ক সুরক্ষা কার্যকর করার একটি শক্তিশালী সরঞ্জাম। ldd /path/to/service |grep libwrapএবং /hosts.[allow|deny]নিয়ন্ত্রণ ফাইলগুলির সাথে পরীক্ষা করুন ।

5. INPUTবা FORWARDচেইন

চেইনের ধারণাটি এখানে আরও পুঙ্খানুপুঙ্খভাবে ব্যাখ্যা করা হয়েছে তবে এর সংক্ষিপ্তসারটি হ'ল:

INPUTশৃঙ্খল আপনি যেখানে খুলুন এবং / অথবা যেখানে আপনি iptables- র কমান্ড ইস্যু পরিষেবার জন্য ঘনিষ্ঠ নেটওয়ার্কের পোর্ট, স্থানীয়ভাবে চলমান হোস্ট চালু আছে।

FORWARDশৃঙ্খল যেখানে আপনি যে অন্যান্য সিস্টেমে কার্নেল দ্বারা ফরওয়ার্ড পরার প্রকৃত সিস্টেম ফিল্টার ট্রাফিক নিয়ম, কিন্তু Docker পাত্রে এবং ভার্চুয়াল গেস্ট সার্ভার সার্ভার যখন আপনার Linux মেশিন একটি সেতু, রাউটার, হাইপারভাইসরের হিসাবে অভিনয় এবং / অথবা নেটওয়ার্ক ঠিকানা নেই প্রয়োগ অনুবাদ এবং পোর্ট ফরওয়ার্ডিং

একটি সাধারণ ভ্রান্ত ধারণাটি হ'ল যেহেতু কোনও ডকার ধারক বা কেভিএম অতিথি স্থানীয়ভাবে চালিত হয়, তাই প্রয়োগ করা ফিল্টারের নিয়মগুলি INPUT চেইনে থাকা উচিত, তবে সাধারণত এটি হয় না।

6. কার্নেল মডিউল

যেহেতু প্যাকেট ফিল্টারটি লিনাক্স কার্নেলের মধ্যে চলে তাই এটি ডায়নামিক মডিউল হিসাবে সংকলন করা যায়, একাধিক মডিউল আসলে। বেশিরভাগ ডিস্ট্রিবিউশনে নেটফিল্টার মডিউল হিসাবে অন্তর্ভুক্ত থাকে এবং প্রয়োজনীয় নেটফিল্টার মডিউলগুলি প্রয়োজনীয় হিসাবে কার্নেলের মধ্যে লোড হয়ে যাবে, তবে কিছু মডিউলগুলির জন্য ফায়ারওয়াল প্রশাসককে ম্যানুয়ালি এটি লোড হওয়া নিশ্চিত করতে হবে। এটি প্রাথমিকভাবে সংযোগ ট্র্যাকিং মডিউলগুলি নিয়ে উদ্বেগ করে, যেমন nf_conntrack_ftpলোড করা যায় insmod

চলমান কার্নেলের মধ্যে বর্তমানে লোড হওয়া মডিউলগুলি প্রদর্শিত হতে পারে lsmod

মডিউলগুলি নিশ্চিত করার পদ্ধতিটি পুনরায় বুটগুলি জুড়ে অবিচ্ছিন্নভাবে লোড করা হয় লিনাক্স বিতরণের উপর নির্ভর করে।


1
যখন ইনক্রিমেন্ট প্যাকেট / বাইট কাউন্টার খুঁজছেন। ডিফারিং মোডে ঘড়িটি ব্যবহার করা একটি দরকারী সরঞ্জাম। ভালো তাই কিছু: watch --difference -n 1 iptables -L FORWARD -v -n। সরঞ্জামটি পর্যায়ক্রমে কমান্ডটি চালানো এবং পরিবর্তনগুলি হাইলাইট করা এটিকে অনেক সহজ করে তোলে।
জোড়দাছে

1
আমি সবেমাত্র আপনার শিথিল মন্তব্যটি দেখেছি। এটি একটি ভাল উত্তর, নিশ্চিত না যে আমি আরও যুক্ত করতে পারি। আপনি ট্র্যাক বৈশিষ্ট্যটি ব্যবহারের একটি উল্লেখ অন্তর্ভুক্ত করতে চাইতে পারেন ।
জোড়দাছে

আমি এই ভয়ঙ্কর (বিভিন্ন যুক্তি সহ) আউটপুট প্রতি প্রতিবার iptables-saveআউটপুট (অগ্রাধিকার সহ -c) নেব iptables -L
0xC0000022L

7

বিভিন্ন প্রোটোকল সহ সাধারণ সমস্যা

ডিএনএস: ডিএনএস ডিফল্ট হিসাবে 53 ইউডিপি পোর্ট ব্যবহার করে তবে কোনও ইউডিপি ডেটাগ্রামে ফিট না হওয়া বার্তাগুলি পরিবর্তে টিসিপি ব্যবহার করে সঞ্চারিত হবে (সাধারণত জোন ট্রান্সফার এবং এ জাতীয়) পোর্টের প্রয়োজন হয় 53 টিসিপি খোলার পাশাপাশি আপনি যখন নাম সার্ভার চালাবেন তখন ।

ইমেল: অনেক গ্রাহক আইএসপি-র ব্লক এসএমটিপি ট্র্যাফিক (বা কমপক্ষে ডিফল্ট পোর্ট টিসিপি 25) তৈরি করে, সরাসরি ইমেল গ্রহণ বা প্রেরণ করা অসম্ভব করে দেয় এবং তাদের গ্রাহকরা সমস্ত বহির্গামী ইমেলের জন্য এবং কখনও কখনও আগত ইমেলের জন্যও আইএসপির এসএমটিপি রিলে ব্যবহার করতে বাধ্য হন । সম্পর্কিত §1.1।

এফটিপি: এফটিপি দুটি সংযোগ ব্যবহৃত হয়েছে সে ক্ষেত্রে একটি বিজোড় প্রোটোকল । প্রথমটি হ'ল নিয়ন্ত্রণ সংযোগ, ডিফল্টরূপে একটি এফটিপি সার্ভার তার জন্য টিসিপি পোর্ট 21 শুনবে। নিয়ন্ত্রণ সংযোগ প্রমাণীকরণ এবং কমান্ড জারি করার জন্য ব্যবহৃত হয়। প্রকৃত ফাইল স্থানান্তর এবং ডিরেক্টরি তালিকার আউটপুটের মতো জিনিসগুলি দ্বিতীয় টিসিপি সংযোগ, ডেটা সংযোগের উপরে চলে যায়। সক্রিয় এফটিপিতে যে টিটিসি পোর্ট 20 থেকে এফটিপি সার্ভার থেকে ডেটা সংযোগ শুরু করা হবে এবং এফটিপি ক্লায়েন্টের সাথে সংযুক্ত হবে। অ্যাক্টিভ এফটিপি ফায়ারওয়াল এবং এনএটি গেটওয়ের পিছনে ব্যবহারকারীদের সাথে খুব বেশি কার্যকরভাবে কাজ করে না তাই এটি বেশিরভাগই ব্যবহারের মধ্যে পড়ে। পরিবর্তে বেশিরভাগ এফটিপি সার্ভার প্যাসিভ এফটিপি সাপোর্ট করে। প্যাসিভ এফটিপি সহ এফটিপি সার্ভারটি একটি দ্বিতীয় পোর্টে ডেটা সংযোগের জন্য শ্রোতাকে খোলে, যার সাথে এফটিপি ক্লায়েন্ট সংযোগ করতে পারে। ফায়ারওয়ালের সমস্যাটি হ'ল ডেটা বন্দরটি 1024-65536 এর মধ্যে যে কোনও উপলভ্য অনিবদ্ধ পোর্ট হতে পারে।

স্টেটহীন ফায়ারওয়ালে যা সাধারণত এফটিপি সার্ভার নির্ধারণ করতে পারে এমন প্যাসিভ পোর্টগুলির সংখ্যা সীমিত করে এবং তারপরে স্পষ্টভাবে those পোর্টগুলি খোলার মাধ্যমে সমাধান করা হয়। অর্থাত

iptables -A INPUT -p tcp --match multiport --dports 21000:21050 -j ACCEPT

স্টেটফুল ফায়ারওয়ালে আপনাকে স্পষ্টভাবে ডেটা বন্দরটি খোলার দরকার নেই, নেটফিল্টার হেল্পার মডিউলটি ডাইনামিক পোর্টটি স্বীকৃত করবে এবং ডায়াটা সংযোগ চিহ্নিত করে সঠিক ক্লায়েন্টের জন্য সেই পোর্টটি গতিশীলভাবে খুলবে RELATEDযার পরে এটি সাধারণ নিয়মের সাথে মিলবে match :

  iptables -I INPUT -p tcp -m state ESTABLISHED,RELATED -j ACCEPT

এ জন্য প্রয়োজন যে সঠিক কার্নেল মডিউলটি লোড করা হবে, FTP ক্ষেত্রে ম্যানুয়ালি উদাহরণস্বরূপ চালানো insmod nf_conntrack_ftp, যাতে ধ্রুবক নির্ভর করে পুনরায় বুট বিতরণের উপর নির্ভর করে।

দ্রষ্টব্য: এফটিপি সংযোগ ট্র্যাকিং মডিউলটি ব্যর্থ হবে যখন এসটিএল-এর সাথে এফটিপি ব্যবহার করা হবে, কারণ নিয়ন্ত্রণ সংযোগ এনক্রিপ্ট করা হবে এবং nf_conntrack_ftp আর পিএএসভি পুনরায় পড়তে সক্ষম হবে না।

এনএফএস এবং অনুরূপ আরপিসি পরিষেবাদি: আরপিসি পরিষেবাদির সমস্যা হ'ল ডিজাইনের মাধ্যমে তারা নির্দিষ্ট নির্দিষ্ট বন্দর ব্যবহার করে না। তারা এলোমেলোভাবে যে কোনও উপলভ্য বন্দর বেছে নিতে পারে, যা আরপিসি পোর্টম্যাপ ডেমন দিয়ে নিবন্ধিত হবে। সংযোগের চেষ্টা করা কোনও ক্লায়েন্ট পোর্টম্যাপ ডেমনকে জিজ্ঞাসা করবে এবং তারপরে সরাসরি সঠিক পোর্টের সাথে সংযুক্ত হবে। এটি সংরক্ষিত বন্দরগুলির বাইরে চলে যাওয়ার সমস্যা সমাধান করেছে ...

ফায়ারওয়াল দৃষ্টিকোণ থেকে টিসিপি / ইউডিপি পোর্ট 111 খোলার প্রয়োজন এবং আরপিসি পরিষেবাটি বর্তমানে ব্যবহার করছে প্রকৃত পোর্ট। ফায়ারওয়ালে এ জাতীয় র্যান্ডম পোর্ট খোলার সমস্যাটি সাধারণত আরপিসি পরিষেবা যেমন এনএফএস সার্ভারকে পূর্বনির্ধারিত স্থির বন্দর ব্যবহার করে সীমাবদ্ধ করে সমাধান করা হয়।


7

Iptables / ফায়ারওয়াল "ভূমিকা"

একটি ফায়ারওয়াল মূলত একটি নীতি ভিত্তিক নেটওয়ার্ক ফিল্টার। নেটফিল্টারকে ঘিরে লিনাক্স ফায়ারওয়ালগুলি নির্মিত; কার্নেলের নেটওয়ার্ক প্যাকেট প্রসেসিং ফ্রেমওয়ার্ক যা কয়েকটি নির্দিষ্ট কার্নেল মডিউল দ্বারা নির্দিষ্ট কাজগুলি করে:

  1. ফিল্টার মডিউলটি (সর্বদা ডিফল্টরূপে লোড হওয়া) সাধারণত আমাদের একটি নির্দিষ্ট মিলের মানদণ্ডের ভিত্তিতে এসিসিপিটি বা ড্রপ আইপি প্যাকেটগুলিতে অনুমতি দেয়।
  2. NAT মডিউল সেটটি আমাদের নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশনগুলি (এসএনএটি, ডিএনএটি, মাসকোরেড) সম্পাদন করতে দেয়।
  3. ম্যাঙ্গেল মডিউলটি আমাদের নির্দিষ্ট আইপি প্যাকেট ক্ষেত্রগুলি (টিওএস, টিটিএল) পরিবর্তন করতে দেয়।

ব্যবহারকারীরা কমান্ড লাইন থেকে iptables ব্যবহার করে তাদের ফায়ারওয়াল প্রয়োজনীয়তার জন্য নেটফিল্টার কাঠামোটি কনফিগার করে। আইপটিবলগুলির সাহায্যে আমরা বিধিগুলি সংজ্ঞায়িত করি যা আইপি প্যাকেটগুলি যখন আমাদের লিনাক্স বাক্সে প্রবেশ করে, পাশ দিয়ে যায় বা ছেড়ে যায় তখন কার্নেলকে কী করতে হবে তা নির্দেশ দেয়। প্রতিটি নেটফিল্টার মূল প্রক্রিয়া আইপ্যাবলস লিংগোতে একটি টেবিল (ফিল্টার, নাট, মঙ্গল) দ্বারা প্রতিনিধিত্ব করা হয়। নেটওয়ার্ক প্যাকেট ফ্লো মানচিত্রে তাদের বেশ কয়েকটি নির্দিষ্ট হুক পয়েন্ট রয়েছে যেখানে কার্নেল দ্বারা তাদের দায়িত্ব পালনের জন্য অনুরোধ করা হয়েছে। টেবিল কলগুলির নির্দিষ্টভাবে অবস্থিত সিকোয়েন্সগুলিকে প্রিরিউটিং, ইনপুট, ফরোয়ার্ড, আউটপুট এবং পোস্ট্রোটিংয়ের নামগুলি প্রাপ্তভাবে বিল্ট-ইন CHAINS বলা হয়। এটি সহজেই মনে রাখা যায় যে আমরা যদি নেটওয়ার্ক প্যাকেট প্রবাহের মানচিত্রে একটি "প্রসেসের ধরণের" এবং একটি চেইনকে "অবস্থানের" সাথে সংযুক্ত করি তবে এই প্রক্রিয়াগুলির উদাহরণগুলি চাওয়া হয়।

এখানে চিত্র বর্ণনা লিখুন

যেহেতু একটি আইপি প্যাকেট একটি নেটওয়ার্ক ইন্টারফেসে প্রাপ্ত হয়, বা একটি স্থানীয় প্রক্রিয়া দ্বারা তৈরি করা হয়, অবশেষে বিতরণ বা বাতিল না করা পর্যন্ত নেটফিল্টার ইঞ্জিন ক্রমান্বয়ে পরীক্ষা করে এবং নেটওয়ার্ক প্যাকেট প্রবাহের মানচিত্রের সাথে থাকা নিয়মগুলি প্রয়োগ করে। একটি টেবিল @ চেইন জুড়ি দ্বারা চিহ্নিত প্রতিটি ব্লকে ব্যবহারকারী আইপি প্যাকেটের সাথে ম্যাচিংয়ের মানদণ্ড এবং সংশ্লিষ্ট ক্রিয়াকলাপযুক্ত এই ধারাবাহিক নিয়মের এক বা একাধিক যুক্ত করতে পারেন। একাধিক টেবিল এবং অন্যান্য ক্রিয়াকলাপ (যেমন এসএনএটি, ডিএনএটি, ইত্যাদি) দ্বারা সুনির্দিষ্ট সুনির্দিষ্ট করা যায় এমন ক্রিয়া রয়েছে (যেমন এসিসিপিটি, দ্রোপ, ইত্যাদি)।

অর্থাত্ যখন কোনও আইপি প্যাকেট কোনও নেটওয়ার্ক ইন্টারফেস থেকে আসে তখন এটি প্রথমে ম্যানগেল টেবিল ব্যবহারকারীর সংজ্ঞায়িত নিয়মকে অনুরোধ করে PREOUTING চেইন দ্বারা প্রক্রিয়া করা হয়। যদি এমন কোনও নিয়ম না থাকে যা বর্তমান প্যাকেটের সাথে মিলে যায় তবে মঙ্গলে @ PREROUTING ডিফল্ট কোর্সের কোর্স বা "নীতি" প্রয়োগ হয়। এই মুহুর্তে যদি প্যাকেটটি না ফেলে দেওয়া হয় তবে প্রক্রিয়াটি এখন চালানো শৃঙ্খলে (মানচিত্রটি দেখুন) ন্যাট টেবিলের নিয়মাবলীগুলি চালিয়ে যেতে থাকবে so নিয়ম বিন্যাসের সুবিধার্থে, ব্যবহারকারীরা তাদের নিজস্ব কাস্টম চেইন তৈরি করতে এবং তাদের ইচ্ছামত মানচিত্রের বিভিন্ন পয়েন্টগুলি থেকে তাদের মধ্যে "জাম্প" করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন

যদিও অন্তর্নির্মিত চেইনগুলির মধ্যে দুদকের এসিসিপিটি বা ডিআরওপি প্যাকেটের কোনও ব্যবহারকারী নির্ধারিত নীতি থাকতে পারে, ব্যবহারকারী সংজ্ঞায়িত চেইনগুলি প্রক্রিয়াটি চালিয়ে যাওয়ার জন্য কলারের কাছে ফেরতের একটি অপরিবর্তনীয় ডিফল্ট নীতিমালা সবই আছে।

Iptables কমান্ড

Iptables প্রধান কমান্ডগুলি প্রয়োজনীয় প্যাকেজিং বিধি দিয়ে নেটওয়ার্ক প্যাকেট ফ্লো মানচিত্রকে জনপ্রিয় করে তোলে।

জেনেরিক iptables নিয়মটি এইভাবে লেখা যেতে পারে:

# iptables <table> <Add/Insert/Delete> <CHAIN> <PKT_MATCHING_CRITERIA> <ACTION>

এটি পড়তে পারে:

Netfilter (kernel module) please <Add/Insert/Delete> this rule for <table> at <CHAIN> where packets matching <PKT_MATCHING_CRITERIA> have to be <ACTION>ed

<table>
  -t filter       (the filter table is assumed when omitted)
  -t nat
  -t mangle 

<Add/Insert/Delete>
  -A              (append rule at the end of the chain list)
  -I              (insert rule at the begining of the chain list)
  -D              (Delete rule)

<CHAIN>
  PREROUTING
  INPUT
  FORWARD
  OUTPUT
  POSTROUTING
  USER_DEFINED_CHAIN

<PKT_MATCHING_CRITERIA>
ISO Level-2 matching:
  -i [!] <if_name>    or --in-interface [!] <if_name>
          (OUTPUT and POSTROUTING chains cannot match on input  interfaces)
  -o [!] <if_name>    or --out-interface [!] <if_name>
          (INPUT  and PREROUTING  chains cannot match on output interfaces) 
    -mac-source [!] <xx-xx-xx-xx-xx-xx>
            (OUTPUT and POSTROUTING chains cannot match on input  interfaces)

ISO Level-3 matching:
  -s [!] <src_ip>     or --src [!] <src_ip>   or --source [!] <src_ip>
  -d [!] <dst_ip>     or --src [!] <dst_ip>   or --destination [!] <dst_ip>

ISO Level-4 matching:
  -p [!] <prot_name>    or --protocol [!] <prot_name>  (udp|tcp|icmp)

  Also available when ICMP protocol is defined
  --icmp-type [!] <icmp_type>

  Also available when UDP protocol is defined
  --source-port [!] <udp_src_port>      or --sport [!] <udp_src_port>
  --destination-port [!] <udp_dst_port> or --dport [!] <udp_dst_port>

  Also available when TCP protocol is defined
  --source-port [!] <tcp_src_port>      or --sport [!] <tcp_src_port>
  --destination-port [!] <tcp_dst_port> or --dport [!] <tcp_dst_port>
  --tcp-flags [!] <tcp_flags>   (SYN|ACK|FIN|RST|URG|PSH|ALL|NONE)
    --syn
  --tcp-option [!] <tcp_option#>

  --state [!] <state>
  -m <match> [options]

    note: [!] = negation operator

<ACTION>                (also called TARGET)
  -j ACCEPT             (process continues with rules of the next table in map)
  -j DROP               (discard current packet)
  -j REJECT             (discard current packet with ICMP notification)
      option:
      --reject-with <reject_type>
  -j USER_DEFINED_CHAIN   (start traversing USER_DEFINED_CHAIN rules)
  -j RETURN               (return from USER_DEFINED_CHAIN)
  -j LOG                  (log to syslog, then process next rule in table)
      options:
      --log-level <level>
      --log-prefix <prefix>
      --log-tcp-sequence
      --log-tcp-options
      --log-ip-options
      --log-uid

nat table specific
  -j SNAT             (rewrite the source IP address of the packet)
      option:
      --to <ip_address>
  -j SAME             (idem SNAT; used when more than one source address)
      options:
      --nodst 
      --to <a1-a2>
  -j MASQUERADE       (idem SNAT; used when the replace IP is dynamic)
  -j DNAT             (rewrite the destination IP address of the packet)
      option:
      --to <ip_address>
  -j REDIRECT         (rewrite dst IP to 127.0.0.1, PREROUTING and OUTPUT only)
      option:
      –-to-port <port#>

mangle table specific
  -j ROUTE            (explicitly route packets, valid at PREROUTING)
      options:
      --iface <iface_name>
      --ifindex <iface_idx>
  -j MARK             (set Netfilter mark values)
      options:
      --set-mark <value>
      --and-mark <value>
      --or-mark <value> 
  -j TOS              (set the IP header Type of Service field) 
      option:
      --set-tos <value>
  -j DSCP             (set the IP header Differentiated Services Field)
      options:
      --set-dscp <value>
      --set-dscp-class <class>
  -j TTL              (set the IP header Time To Live field)
      options:
      --ttl-set <value>
      --ttl-dec <value>
      --ttl-inc <value>

Iptables সহায়ক কমান্ডগুলি ডিফল্ট কনডিটিনস, তালিকা বিধি বিধান, ফ্লাশিং বিধি ইত্যাদির দৃশ্যাবলী সম্পূর্ণ করে complete

#iptables -t <table> -L             
       (Lists the <table> rules in all chains)
#iptables -t <table> -L <CHAIN>     
       (Lists the <table> rules in <CHAIN>)

#iptables -t <table> -N <CHAIN>     
       (Creates a user-defined <CHAIN> for holding <table> rules)
#iptables -t <table> -E <CHAIN> <NEWCHAIN>  
       (Renames <CHAIN> that holds <table> rules to <NEWCHAIN>)

#iptables -t <table> -X   
       (Deletes all user-defined chains created for holding <table> rules)
#iptables -t <table> -X <CHAIN>
       (Deletes user-defined <CHAIN> created for holding <table> rules)

#iptables -t <table> -P <CHAIN> <ACTION>     where <ACTION> = ACCEPT|DROP
       (Sets the default policy of <table> rules at <CHAIN> to <ACTION>)

#iptables -t <table> -F             
       (Flushes (deletes) all <table> rules in all chains)
#iptables -t <table> -F <CHAIN>
       (Flushes (deletes) all <table> rules in <CHAIN>)

#iptables -t <table> -R <CHAIN> <INDEX> <NEWRULE>
       (Replaces <table> rule at position <INDEX> in <CHAIN> with <NEWRULE>

Iptables রানটাইম সময়ে নেটফিল্টার ইঞ্জিনে আমাদের কমান্ডগুলি লোড করে, নেটফিল্টার তাত্ক্ষণিকভাবে লোড হওয়া নিয়ম এবং সেটিংস প্রয়োগ করে তবে সেগুলি স্থায়ী নয়। আফটার পুনরায় বুট করা সমস্ত নেটফিল্টার নিয়ম এবং সেটিংস হারিয়ে যাবে। এই কারণে iptables ইউটিলিটিগুলি রয়েছে যা বর্তমানে সক্রিয় রুলসেটটি কোনও ফাইলে সংরক্ষণ করতে এবং পরে এটিকে পুনরায় লোড করতে দেয়।

#iptables-save > fileName
      (Save the currently active Netfilter ruleset to fileName)

#iptables-restore < fileName
      (Restore Netfilter ruleset to the one saved in fileName)

Iptables সংক্ষিপ্তসার

নেটফিল্টার একটি অত্যন্ত নমনীয় এবং শক্তিশালী কাঠামো তবে এটির জন্য মূল্য দিতে হবে; Iptables জটিল। ব্যবহারকারীর দৃষ্টিকোণ থেকে টেবিল, চেইন, টারগেটের মতো নির্দিষ্ট পদগুলি তাদের ধারণার ধারণাকে খুব ভালভাবে মেলে না এবং প্রথমে খুব বেশি বোঝায় না। বিষয়টি দীর্ঘ, কমান্ডগুলির পরামিতির একটি অন্তহীন তালিকা রয়েছে বলে মনে হচ্ছে। বিষয়গুলিকে আরও খারাপ করে তোলার জন্য এমন একটিও বই নেই যা সত্যিকার অর্থেই ইপটেবলগুলিকে আয়ত্ত করে। এগুলি বেশিরভাগই দুটি বিভাগে পড়ে: "রেসিপি বই" বা "ম্যানপেজ বই"। আমি মনে করি এই ভূমিকা আপনাকে নেটফিল্টার / ইপটবেবলস ল্যান্ডস্কেপ প্লাস প্রাক হজম মানপেজ স্টাফের প্রয়োজনীয় ডোজ এর একটি স্ন্যাপশট দেয়। আপনি যদি আইপটবেলে নতুন হন, এই অনুচ্ছেদগুলি কয়েকবার পড়ার পরে আপনি iptables উদাহরণগুলি পড়তে প্রস্তুত হবেন। কিছু অনুশীলনের সাহায্যে আপনি শীঘ্রই নিজের নিয়ম লিখন করতে পারবেন find

ফায়ারওয়াল

একটি ফায়ারওয়াল মূলত নিয়মকানুনের উপর নির্ভর করে নেটওয়ার্ক ট্র্যাফিকের অনুমতি বা অস্বীকার করার জন্য ডিজাইন করা হয়েছে। এই মুহুর্তে ফায়ারওয়াল নির্মাণের জন্য কেন লিনাক্স নেটফিল্টার / ইপটেবলস কাঠামো নিখুঁত তা বোঝা সহজ। নেটওয়ার্ক প্যাকেট প্রবাহের মানচিত্রের দিকে তাকালে আমরা ফিল্টার টেবিলের দুটি বিশেষ আকর্ষণীয় স্পটগুলি INPUT এবং FORWARD চেইনে পাই; আমরা সেখানে আইপি উত্সের ঠিকানা, আইপি প্রোটোকল (ইউডিপি / টিসিপি), গন্তব্য পোর্ট (৮০, ২১, ৪৪৩, ইত্যাদি) ইত্যাদির উপর সিদ্ধান্ত নিতে পারি, যদি আমরা স্বীকৃত, প্রত্যাখ্যান করি, বা কেবল কোনও নির্দিষ্ট আইপি প্যাকেট ড্রপ করি। যখন কোনও ওয়েব সার্ভারকে অননুমোদিত নেটওয়ার্ক অনুরোধ থেকে সুরক্ষা দেয় তখন ফায়ারওয়াল এটি করে 80% does অন্যান্য 20% সময় হ'ল নেটওয়ার্ক প্যাকেটগুলি (NAT, MANGLE) হেরফের করে।

ফায়ারওয়ালস সিনারিও

বিভিন্ন রকম ফায়ারওয়াল লেআউট বিভিন্ন প্রয়োজন যুক্ত করে তবে তাদের মধ্যে 3 টি সবচেয়ে সাধারণ ফায়ারওয়াল পরিস্থিতি হিসাবে বিবেচিত হতে পারে।

  1. এক বা একাধিক ইন্টারফেসের সাথে ইন্টারনেটের সাথে সংযুক্ত সরল ওয়েব সার্ভার। নীতির মধ্যে সীমাবদ্ধ অন্তর্মুখী অ্যাক্সেস, অনিয়ন্ত্রিত আউটবাউন্ড অ্যাক্সেস এবং অ্যান্টি-স্পোফিং বিধিগুলিকে অনুমতি দেওয়ার জন্য বেসিক বিধি অন্তর্ভুক্ত রয়েছে। আইপি ফরওয়ার্ডিং বন্ধ রয়েছে।
  2. এই ফায়ারওয়াল ইন্টারনেট এবং একটি সুরক্ষিত অভ্যন্তরীণ অঞ্চলে সংযোগ করে। নীতির মধ্যে সীমাবদ্ধ অন্তর্মুখী অ্যাক্সেস, অনিয়ন্ত্রিত আউটবাউন্ড অ্যাক্সেস এবং অ্যান্টি-স্পোফিং বিধিগুলিকে অনুমতি দেওয়ার জন্য বেসিক বিধি অন্তর্ভুক্ত রয়েছে। যেহেতু সুরক্ষিত অঞ্চলটি প্রাইভেট আইপি অ্যাড্রেসগুলি উত্সটি NAT ব্যবহার করে। আইপি ফরওয়ার্ডিং চলছে।
  3. এই ফায়ারওয়ালটি ইন্টারনেট, অভ্যন্তরীণ সুরক্ষিত এবং ডিমিলিটাইজড অঞ্চলে সংযুক্ত। নীতির মধ্যে সীমাবদ্ধ অন্তর্মুখী অ্যাক্সেস, অনিয়ন্ত্রিত আউটবাউন্ড অ্যাক্সেস এবং অ্যান্টি-স্পুফিং বিধিগুলিকে অনুমতি দেওয়ার জন্য মৌলিক নিয়ম রয়েছে। যেহেতু সুরক্ষিত এবং ডিএমজেড অঞ্চলগুলি ব্যক্তিগত আইপি ঠিকানাগুলি ব্যবহার করে তাদের উত্স এবং গন্তব্য NAT প্রয়োজন NAT আইপি ফরওয়ার্ডিং চলছে। এখানে চিত্র বর্ণনা লিখুন

আমি এটি এর জন্য লিখেছি: http://www.vercot.com/~jeoss/howto/JeossEasyFirewall.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.