আমি iptables এ একক নিয়ম তৈরি করতে চাই (যদি সম্ভব হয়) যা একাধিক উত্সের আইপি ঠিকানা ব্যবহার করে। এটা কি সম্ভব?
আমি iptables এ একক নিয়ম তৈরি করতে চাই (যদি সম্ভব হয়) যা একাধিক উত্সের আইপি ঠিকানা ব্যবহার করে। এটা কি সম্ভব?
উত্তর:
এটি কেবল তখনই সম্ভব যখন আপনি উত্স আইপিটিকে একটি সীমাবদ্ধ পরিসরে যোগ করতে পারেন। যেমন
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.5 -p tcp -j ACCEPT
আপনি যদি চান এমন আইপি কভার করে এমন একটি সাধারণ নেটমাস্ক খুঁজে না পান তবে যা চান তা করতে আপনাকে বেশ কয়েকটি অভিন্ন নিয়ম লিখতে হবে।
বেশ কয়েকটি আইপটেবল ফ্রেমওয়ার্ক রয়েছে যার চারপাশে iptables নিয়মগুলি লেখার নিম্ন স্তরের সাথে মোকাবিলা করতে পারে, আপনাকে আরও নিয়মিত স্তরে আপনার বিধিগুলি সংজ্ঞায়িত করতে দেয়। শোরওয়াল হ'ল একটি সাধারণ যা বেশিরভাগ বর্তমান লিনাক্স বিতরণ করে।
একটি কমান্ডে একাধিক উত্স যুক্ত করতে আমি এটি করব:
iptables -t filter -A INPUT -s 192.168.1.1,2.2.2.2,10.10.10.10 -j ACCEPT
iptables এটিকে স্বয়ংক্রিয়ভাবে একাধিক নিয়মে অনুবাদ করবে ।
-m multiport --dports 123,456,789
একাধিক বন্দর ব্যবহার করতে পারেন
iptables v1.3.7
প্রদত্ত কমান্ড ব্যবহার করে iptables -I FORWARD -s 5.188.206.14,193.238.47.5 -j DROP
এই ত্রুটি ফিরে আসে " host/network '5.188.206.14,193.238.47.5' not found
"।
আপনি প্রাক্তনের মতো '--src-range' এর সাথে মিলিয়ে আইপ্রেঞ্জ মডিউলটি ব্যবহার করতে পারেন:
-A INPUT -i eth0 -m iprange --src-range 192.168.1.90-192.168.1.101 -j ACCEPT
উত্স: iptables 1.4.7 ম্যান পৃষ্ঠা
iprange
This matches on a given arbitrary range of IP addresses.
[!] --src-range from[-to]
Match source IP in the specified range.
[!] --dst-range from[-to]
Match destination IP in the specified range.
(আমি জানি এটি 4 বছরের পুরানো প্রশ্নের মতো, তবে যে কেউ নেট এ এটি অনুসন্ধান করে তার উত্তর দেওয়ার জন্য)
মূল প্রশ্নটি ২০০৯ সালের মে মাসের, তবে ২০১১ সালের মে থেকে লিনাক্স কার্নেলের আইপসেট নামক এই প্রয়োজনটির সমাধান করার জন্য একটি বৈশিষ্ট্য রয়েছে ।
এখানে একটি আইপসেট তৈরি করা, এতে ঠিকানা যুক্ত করা এবং তারপরে ফায়ারওয়াল নিয়মে এটি ব্যবহার করার উদাহরণ রয়েছে:
ipset -N office365 iphash
ipset -A office365 132.245.228.194
ipset -A office365 132.245.77.34
ipset -A office365 132.245.48.34
ipset -A office365 132.245.68.242
ipset -A office365 132.245.55.2
ipset -A office365 40.101.17.98
ipset -A office365 132.245.48.18
ipset -A office365 132.245.229.114
ipset -A office365 132.245.196.34
ipset -A office365 132.245.56.114
iptables -A OUTPUT -m set --match-set office365 dst -j ACCEPT
আরও তথ্যের জন্য দেখুন man iptables
এবং man ipset
।
বস কিংয়ের মন্তব্য ছাড়াও, আপনি সহজেই কমা দিয়ে বিচ্ছিন্ন কয়েকটি ঠিকানা নির্দিষ্ট করতে পারেন:
[!] -s, --source address[/mask][,...]
Source specification. Address can be either a network name, a hostname, a network IP address (with /mask), or a plain IP address. Hostnames will be resolved once only, before the rule is submitted to the kernel. Please note that specifying
any name to be resolved with a remote query such as DNS is a really bad idea. The mask can be either a network mask or a plain number, specifying the number of 1's at the left side of the network mask. Thus, a mask of 24 is equivalent to
255.255.255.0. A "!" argument before the address specification inverts the sense of the address. The flag --src is an alias for this option. Multiple addresses can be specified, but this will expand to multiple rules (when adding with -A),
or will cause multiple rules to be deleted (with -D).
bash
, আমাকে অবশ্যই ব্যাকস্ল্যাশ দিয়ে বিপর্যয় থেকে বাঁচতে হবে:\! -s 192.168.1.3 ...
iptables v1.6.1: ! not allowed with multiple source or destination IP addresses
:-(
আপনি একাধিক চেইন সংজ্ঞায়িত করতে পারেন যে আপনি প্রয়োজনীয়তার স্বাধীন তালিকা একত্রিত করতে পারেন। আমি সন্দেহ করি এটি হ'ল আপনি যা চান তবে এটি এখনও বেশ কার্যকর। আমরা এটি আইপি দ্বারা বৈধ ব্যবহারকারী-ধরণের তালিকা সংজ্ঞায়িত করতে ব্যবহার করি এবং তারপরে উত্স নেটওয়ার্কগুলিতে পোর্ট সীমাবদ্ধতা প্রয়োগ করি। সুতরাং, উদাহরণস্বরূপ:
# Allow SMTP from anywhere
-A tcp_inbound -p tcp -m tcp -s 0/0 --dport 25 -j allowed
#
# Define the set of IP ranges we'll send to the tcp_user_inbound chain
-A tcp_inbound -p tcp -m tcp -s 172.19.1.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.6.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.8.0/24 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.10.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.12.0/23 -j tcp_user_inbound
-A tcp_inbound -p tcp -m tcp -s 172.19.4.0/23 -j tcp_user_inbound
#
# Ports we allow access to based on a source-address prereq.
# SSH
-A tcp_user_inbound -p tcp -m tcp --dport 22 -j allowed
# VNC
-A tcp_user_inbound -p tcp -m tcp --dport 5950:5958 -j allowed
# https
-A tcp_user_inbound -p tcp -m tcp --dport 443 -j allowed
উদাহরণস্বরূপ বলা যাক যে আপনি কেবল এসএমটিপি প্যাকেটগুলি গ্রহণ করতে চান যা 10.0.0.2 বা 192.168.1.2 থেকে আসে। আপনি নিম্নলিখিত বিধি ব্যবহার করতে পারেন:
# create a new chain
iptables --new-chain multiple_sources_smtp
# send all SMTP connections to the new chain
iptables --append INPUT --protocol tcp --dport 25 --jump multiple_sources_smtp
# use the default INPUT rules for packets coming from allowed sources
iptables --append multiple_sources_smtp --source 10.0.0.2 --jump RETURN
iptables --append multiple_sources_smtp --source 192.168.1.2 --jump RETURN
# drop packets from anywhere else
iptables --append multiple_sources_smtp -j DROP
বা আউটপুট হিসাবে iptables-save
# Generated by iptables-save v1.4.14 on Sat Dec 6 09:17:11 2014
*filter
:INPUT ACCEPT [32:13325]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [25:3084]
:multiple_sources_smtp - [0:0]
-A INPUT -p tcp -m tcp --dport 25 -j multiple_sources_smtp
-A multiple_sources_smtp -s 10.0.0.2/32 -j RETURN
-A multiple_sources_smtp -s 192.168.1.2/32 -j RETURN
-A multiple_sources_smtp -j DROP
COMMIT
# Completed on Sat Dec 6 09:17:11 2014