Centos 7 সংরক্ষণ করুন iptables সেটিংস


58

সমস্যা: iptables সার্ভার পুনরায় বুট করার পরে ডিফল্ট সেটিংসে পুনরায় সেট করে।

আমি এইভাবে নিয়ম স্থাপনের চেষ্টা করছি:

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

তার পরে আমি করি:

service iptables save

এবং এটি আবার কিছু লেখেন

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

এবং এর পরে আমি কেবল দৌড়েছি (এটি একবার হয়ে গিয়েছিল):

chkconfig iptables on (আমি পড়েছি যে পুনরায় বুট করার পরে সেটিংস পুনরুদ্ধার করতে এটি করতে হবে)

এর পরে আমি এই আদেশটি পুনরায় বুট করব এবং চালাব:

systemctl list-unit-files | grep iptables

এবং আমি দেখতে পাচ্ছি যে iptables.service সক্ষম করা আছে, তবে, নিয়মটি (3000 পোর্ট খোলার জন্য) আর কাজ করে না।

আমি কীভাবে এই সেটিংস চালিয়ে যেতে পারি?


আপনি কেবল ফায়ারওয়াল্ড ব্যবহার করেননি কেন? এটি সম্ভবত এখনও চলছে।
মাইকেল হ্যাম্পটন

সম্ভবত কারণ ফায়ারওয়াল্ড সার্ভার পরিবেশের জন্য উপযুক্ত নয় ...
জুয়ান জিমেনিজ

উত্তর:


67

CentOS 7 এখন ফায়ারওয়াল্ড ব্যবহার করছে!

উদাহরণ:

firewall-cmd --zone=public --add-port=3000/tcp --permanent

পুনরায় লোড নিয়ম:

firewall-cmd --reload

2
এডাব্লুএস এএমআই থেকে সেন্টোস 7 ইমেজের ফায়ারওয়াল কেন নেই তার কোনও ধারণা।
সাদ মাসউদ

5
অথবা আপনি ফায়ারওয়াল্ড অক্ষম করতে পারেন এবং স্থানীয় iptables সামঞ্জস্যের কাছাকাছি অর্জনের জন্য "iptables-পরিষেবাদি" প্যাকেজ ইনস্টল করতে পারেন :)
বগরওয়াল

1
আমি --zone=trustedফায়ারওয়াল্ড-সিএমডি দিয়ে লো ( ) এর জন্য 80 -> 8180 পোর্ট ফরওয়ার্ডিং কনফিগার করার চেষ্টা করেছি তবে এটি কাজ করে না (এটি এতে কাজ করে --zone=public) iptables এর sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180কাজগুলি করে (তবে প্রত্যেকে এটি firewalld --reload
হারাবে

@ সাআদ: কারণ আউস ইতিমধ্যে একটি ফায়ারওয়াল পরিষেবা সরবরাহ করে তাই
আমিকে

এইটা না! আমি একটি Centos 7 ভিপিএস অর্ডার করেছি এবং এটিতে ডিফল্টরূপে iptables রয়েছে! ওএস সংস্করণ: 7.5.1804 (কোর)
কোডজম্বি

66

নিম্নলিখিত কমান্ড দ্বারা ফায়ারওয়াল্ড অক্ষম করুন:

systemctl disable firewalld

তারপরে নিম্নলিখিত কমান্ডের সাহায্যে iptables-service ইনস্টল করুন:

yum install iptables-services

তারপরে iptables পরিষেবাদি হিসাবে সক্ষম করুন:

systemctl enable iptables

এখন আপনি কমান্ড অনুসরণ করে আপনার iptable নিয়ম সংরক্ষণ করতে পারেন:

service iptables save

22

সেন্টওএস 7 সংক্ষিপ্ত উপর আপনি ইনস্টল করতে হতে পারে iptables-servicesপ্যাকেজ (ধন্যবাদ @RichieACC জন্য পরামর্শ ):

sudo yum install -y iptables-services

এবং তারপরে পরিষেবাটি সক্ষম করুন systemd:

sudo systemctl enable iptables.service

এবং আপনার ফায়ারওয়াল বিধিগুলি সংরক্ষণ করতে ইনসক্রিপ্ট চালান:

sudo /usr/libexec/iptables/iptables.init save

2

এর মতো স্ক্রিপ্ট কারও পক্ষে সহায়ক হত?

সাবধান থাকুন যে আপনি বর্তমানে কনফিগার করা যে কোনও কিছু আলগা করে দেবেন কারণ এটি ফায়ারওয়াল্ডগুলি সরিয়ে দেয় এবং ইনপুট টেবিলের যে কোনও বর্তমান নিয়ম ফ্লাশ করে :

yum remove firewalld && yum install iptables-services

iptables --flush INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv4 is OK
iptables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service iptables save       # Save IPv4 IPTABLES rules van memory naar disk
systemctl enable iptables   # To make sure the IPv4 rules are reloaded at system startup

আমার ধারণা আপনার আইপিভি 6 ট্র্যাফিকের মাধ্যমে (এখন বা পরে যে কোনও সময়) পৌঁছানো যেতে পারে আপনি একই চান:

ip6tables --flush INPUT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv6 is OK
ip6tables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service ip6tables save       # Save IPv6 IPTABLES rules van memory naar disk
systemctl enable ip6tables   # To make sure the IPv6 rules are reloaded at system startup

1

আপনি সরাসরি / etc / sysconfig / iptables ফাইলটি পরিবর্তন করতে পারেন। সেই ফাইলটি থেকে নিয়মগুলি পুনরায় লোড করতে আইপটিবল পরিষেবাটি পুনরায় লোড করুন। তবুও, যেমন আপনাকে আগেই বলা হয়েছিল, ফায়ারওয়াল্ড হ'ল সেন্টোসের জন্য নতুন ডিফল্ট ফায়ারওয়াল সিস্টেম, এবং এটি কীভাবে ব্যবহার করা যায় তা শেখার জন্য এটি একটি ভাল সুযোগ, আপনি কি ভাবেন না?


7
CentOS7 এ আর কোনও / etc / sysconfig / iptables ফাইল নেই
রুটাহ্ন

1
দুঃখিত @ রূতাহ্ন, তবে আপনি অবশ্যই কিছু প্যাকেজ মিস না করেন তবে তা অবশ্যই উপস্থিত থাকে ... /Usr/lib/systemd/system/iptables.service থেকে আপনি দেখতে পাচ্ছেন যে আসলে যা চালু হয়েছে সেটি হল "/usr/libexec/iptables/iptables.init", এটি সাধারণ পুরানো এবং প্রিয় স্ক্রিপ্ট যা সাধারণ পুরানো কনফিগারেশন ফাইল সন্ধান করে ইন / ইত্যাদি / সিসকনফিগ
পাথর ছুঁড়েছে

1
হ্যাঁ /etc/sysconfig/iptablesআমার পক্ষেও নেই। তবে, /etc/sysconfig/iptables-configআছে। তবে iptablesফাইলটির আগের মতো এটির ফায়ারওয়ালসের বিধি নেই ।
কেনটগ্রভ

2
আমি দেখতে পেলাম যে ফাইলটি কোনও ডিফল্ট, ন্যূনতম ইনস্টলটিতে নেই। CentOS 7 ডিফল্টরূপে iptables.service ইনস্টল করে না, মনে হয়। "yum ইনস্টল -y iptables.service" পরিষেবাটি ইনস্টল করে এবং আমার জন্য একটি ডিফল্ট / ইত্যাদি / সিসকনফিগ / iptables তৈরি করে।
রিচিএসিসি

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