CentOS 7 iptables পুনরায় বুটের পরে স্থির থাকে না


11

আমি কেভিএম / কিউমু দিয়ে কিছু লিনাক্স অতিথিকে ভার্চুয়ালাইজ করতে একটি ডেভলপমেন্ট সার্ভারে একটি ন্যূনতম CentOS 7 সংস্করণ ইনস্টল করেছি।

firewalldআমি ইনস্টল iptables-serviceও না করে iptables ব্যবহার করার জন্য :

systemctl stop firewalld
systemctl mask firewalld
systemctl enable iptables
systemctl start iptables

সেলিনাক্স সম্পাদনা করে অক্ষম করা হয়েছে /etc/sysconfig/selinux

Iptables জন্য আমার নিয়ম নিম্নলিখিত:

iptables -Z
iptables -F
iptables -X
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables -A FORWARD -i enp6s0 -o virbr0 -j ACCEPT

এখন আমি নিম্নলিখিত কমান্ড দিয়ে আমার সেটিংস সংরক্ষণ করি:

iptables-save > /etc/sysconfig/iptables

আমার iptables-fileচেহারা:

# Generated by iptables-save v1.4.21 on Thu Aug 20 10:46:40 2015
*mangle
:PREROUTING ACCEPT [16736:10889078]
:INPUT ACCEPT [1063:106860]
:FORWARD ACCEPT [15679:10784186]
:OUTPUT ACCEPT [570:71275]
:POSTROUTING ACCEPT [15728:10809742]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Thu Aug 20 10:46:40 2015
# Generated by iptables-save v1.4.21 on Thu Aug 20 10:46:40 2015
*filter
:INPUT ACCEPT [868:81772]
:FORWARD ACCEPT [8328:7311589]
:OUTPUT ACCEPT [233:32016]
-A FORWARD -i enp6s0 -o virbr0 -j ACCEPT
COMMIT
# Completed on Thu Aug 20 10:46:40 2015
# Generated by iptables-save v1.4.21 on Thu Aug 20 10:46:40 2015
*nat
:PREROUTING ACCEPT [1308:86998]
:INPUT ACCEPT [77:12475]
:OUTPUT ACCEPT [1:72]
:POSTROUTING ACCEPT [1228:74319]
-A POSTROUTING -o enp6s0 -j MASQUERADE
COMMIT
# Completed on Thu Aug 20 10:46:40 2015

আমার নিয়মগুলি আপাতত সঠিক কিনা তা দেখার জন্য একটি দ্রুত চেক:

[root@dev1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

তবে সার্ভারটি পুনরায় বুট করার পরে iptables নিয়মগুলি দেখতে পাওয়া যায়:

[root@dev1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.0.1.0/24          ctstate RELATED,ESTABLISHED
ACCEPT     all  --  10.0.1.0/24          anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc

অন্যান্য বিধিগুলি কোথা থেকে এসেছে তা আমি বুঝতে পারি না।

কল iptables-restore -c /etc/sysconfig/iptablesকরার সময় প্রত্যাশিত বিধিগুলি প্রদর্শিত হয়।

দেখে মনে হয় যে সংরক্ষিত নিয়মগুলি বুট-সময় লোড হয় না বা "ডিফল্ট" -rulesগুলি ফ্লাশ হয় না বা যা কিছু।

এখানে সমস্যা কি ??? আমি ধীরে ধীরে ধীরে ধীরে চুল পাচ্ছি ...


আপনার দ্রুত প্রতিক্রিয়া জন্য ধন্যবাদ :)

উপরে উল্লিখিত হিসাবে iptables- পরিষেবাগুলি আমার দ্বারা ইনস্টল করা হয়েছিল:

[root@dev1 ~]# rpm -aq iptables-services
iptables-services-1.4.21-13.el7.x86_64

systemctl enable iptables.serviceব্যবহারের পরিবর্তে পরিষেবাটি সক্ষম করা systemctl enable iptablesকোনও তাত্পর্যপূর্ণ বলে মনে হচ্ছে কারণ একই পরিষেবা ফাইলটি লিঙ্কযুক্ত:

[root@dev1 ~]# systemctl disable iptables
rm '/etc/systemd/system/basic.target.wants/iptables.service'
[root@dev1 ~]# systemctl enable iptables.service
ln -s '/usr/lib/systemd/system/iptables.service' '/etc/systemd/system/basic.target.wants/iptables.service'

এটি কল করার পরে iptables ফাইলের সামগ্রী /usr/libexec/iptables/iptables.init save

[root@develcluster1 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Fri Aug 21 14:34:04 2015
*nat
:PREROUTING ACCEPT [351490:22546787]
:INPUT ACCEPT [15751:2400243]
:OUTPUT ACCEPT [324:21186]
:POSTROUTING ACCEPT [304860:18293418]
-A POSTROUTING -o enp6s0 -j MASQUERADE
COMMIT
# Completed on Fri Aug 21 14:34:04 2015
# Generated by iptables-save v1.4.21 on Fri Aug 21 14:34:04 2015
*filter
:INPUT ACCEPT [505048:69178501]
:FORWARD ACCEPT [55815086:22035726185]
:OUTPUT ACCEPT [325986:56595531]
-A FORWARD -i enp6s0 -o virbr0 -j ACCEPT
COMMIT
# Completed on Fri Aug 21 14:34:04 2015
# Generated by iptables-save v1.4.21 on Fri Aug 21 14:34:04 2015
*mangle
:PREROUTING ACCEPT [109215513:66867793592]
:INPUT ACCEPT [505243:69203589]
:FORWARD ACCEPT [108710264:66798590873]
:OUTPUT ACCEPT [326323:56634790]
:POSTROUTING ACCEPT [109036066:66855179944]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Fri Aug 21 14:34:04 2015

iptables -Lআমার সংরক্ষিত নিয়মগুলি না দেখানোর জন্য একটি কল পুনরায় বুট করার পরে :

[root@dev1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.0.1.0/24          ctstate RELATED,ESTABLISHED
ACCEPT     all  --  10.0.1.0/24          anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc

আমি মৌলিক কিছু ভুল করছি। তবে আমি যে প্রতিটি থ্রেড পড়েছি তা একইভাবে করে এবং এটি কাজ করা উচিত।

আপনার যদি আরও তথ্যের প্রয়োজন হয় তবে আমাকে জানান।

এদিকে, আমি একটি ছোট স্ক্রিপ্ট কল করে আমাকে সাহায্য করেছি যা প্রতিটি রিবুটের পরে আমাকে অবশ্যই কল করতে হবে।

#!/bin/sh

iptables -Z
iptables -F
iptables -X
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -o enp6s0 -j MASQUERADE
iptables -A FORWARD -i enp6s0 -o virbr0 -j ACCEPT

iptables --flush
iptables-restore -c /etc/sysconfig/iptables

এটি সেক্সি নয় তবে এ পর্যন্ত কাজ করে। তবে চূড়ান্ত সমাধান হতে পারেনি।


আপনি ফায়ারওয়াল্ডটি সেন্টোস 7 হিসাবে পরীক্ষা করেছেন? সম্পর্কিত লিঙ্ক: সার্ভারফল্ট / প্রশ্ন / 626521/… আশা করি আমি সাবজেক্টের বাইরে আছি না। দয়া করে এই উত্তরটি stackoverflow.com/a/24827438/2522966 দেখুন যা আপনাকে ফায়ারওয়াল্ড পরিষেবা বন্ধ করতে এবং মাস্ক করতে বলছে ( service stop|mask firewalld)
নিকো

উত্তর:


13

আমি মনে করি আপনার সাথে পরিষেবাটি সক্ষম করা দরকার:

systemctl enable iptables.service

এবং আপনার নিয়মগুলি এভাবে সংরক্ষণ করতে আপনাকে iptables init স্ক্রিপ্টটি চালানো দরকার:

/usr/libexec/iptables/iptables.init save


3

আপনার iptables-পরিষেবাদি প্যাকেজ ইনস্টল করা আছে তা নিশ্চিত করুন:

rpm -aq iptables-services

এটি ইনস্টল না হলে:

yum install iptables-services

এরপরে আপনি পরিষেবা কমান্ডটি সেন্টোসের পূর্ববর্তী সংস্করণগুলির মতোই এটি নিয়ন্ত্রণ করতে ব্যবহার করতে পারেন:

service iptables save

save, stop, start, restartকমান্ড সব কাজ এবং এটি বুট লোড উচিত হবে না।


আমার iptables কমান্ড আছে। তবে `rpm -aq iptables-Services` কিছুই আউটপুট দেয় না। ওটার মানে কি?
সাদ মাসউদ

rpm -aqনিজেই একটি সিস্টেমে ইনস্টল করা সমস্ত প্যাকেজ এবং তাদের সংস্করণ তালিকাভুক্ত করবে। rpm -aq <package>এটি ইনস্টলড থাকলে সংজ্ঞায়িত প্যাকেজ সম্পর্কে তথ্য মুদ্রণ করবে। যদি rpm -aq iptables-services কিছু না দেয় তবে তার অর্থ 'iptables-Services' প্যাকেজ ইনস্টল করা নেই।
জেন

আপনার যদি সেন্টোস 7 এবং এডাব্লুএস সম্পর্কিত নির্দিষ্ট প্রশ্ন থাকে তবে আপনার একটি সম্পূর্ণ নতুন প্রশ্ন পোস্ট করা উচিত, কোনও সম্পর্কযুক্ত উত্তর সম্পর্কে মন্তব্য করা উচিত নয়। আমাজন কীভাবে প্যাকেজগুলি তাদের সংগ্রহস্থলগুলিতে রাখে সে সম্পর্কে আমার কোনও ধারণা নেই তবে আমি আপনাকে বলতে পারি যে iptables-servicesএটি স্ট্যান্ডার্ড, বেস সেন্টস 7 এর সংগ্রহস্থলে উপলব্ধ।
জিন

1

নীচে /etc/rc.d/rc.local এ যোগ করা 'পরিষেবা iptables স্টপ \ iptables --flush' কমান্ড যুক্ত করে আমি এটি পেয়েছিলাম

আমার পরিবেশটি সেন্টোস 7 কেভিএম ছিল এবং আমার সমস্যাটি হ'ল লিবারভার্টটি iptables কে পুনরায় বুট করে পুনরায় বসিয়ে দেবে - আমার ভার্চুয়াল মেশিনগুলিতে অ্যাক্সেস আটকাচ্ছে।


0

যদি আমি মনে করি সঠিকভাবে ভার্চুয়ালাইজেশন পরিষেবাদিগুলির মধ্যে একটি (এবং আপনার মনে হয় আপনি একটি চালাচ্ছেন, ভার্ভির0 ইন্টারফেসের নাম থেকে বিচার করে) কনফিগার করা, ভার্চুয়াল নেটওয়ার্ক এবং ইন্টারফেসগুলি সংযুক্ত করার জন্য কিছু ফায়ারওয়াল নিয়ম যুক্ত করেছিল adding দয়া করে এই অঞ্চলটি দেখুন (এবং libvirt-daemonসম্ভবত এটি একটি ভাল সূচনার দিক)।

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


0

এটা চেষ্টা কর:

systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld
yum -y remove iptables-services
yum -y install iptables-services
systemctl start iptables
systemctl status iptables

echo '# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT' > /etc/sysconfig/iptables

এখনই আপনার iptables বিধি কার্যকর করুন

iptables-save > /etc/sysconfig/iptables
iptables-restore < /etc/sysconfig/iptables
systemctl restart iptables
systemctl restart iptables
systemctl enable iptables.service
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.