এনএফএস সার্ভার এবং ফায়ারওয়াল্ড


16

আমি এটিতে একটি স্ল্যাম-ডঙ্ক ডকুমেন্ট খুঁজে পাইনি, সুতরাং আসুন একটি শুরু করি।

একটি CentOS 7.1 হোস্টে, আমি এন্ট্রিগুলি সহ লিনাক্স কনফিগ হাও-টো পেরিয়েছিfirewall-cmd এবং আমার এক্সপোর্টযোগ্য ফাইল সিস্টেম রয়েছে।

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.10.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 2049/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

[root@<server> ~]# showmount -e localhost
Export list for localhost:
/export/home/<user> *.localdomain

যাইহোক, আমি showmountক্লায়েন্ট থেকে যদি , আমার এখনও একটি সমস্যা আছে।

[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

এখন, আমি কীভাবে নিশ্চিত যে এটি ফায়ারওয়াল সমস্যা? সহজ। ফায়ারওয়াল বন্ধ করুন। সার্ভারের দিক:

[root@<server> ~]# systemctl stop firewalld

এবং ক্লায়েন্ট পক্ষ:

[root@<client> ~]# showmount -e <server>.localdomain
Export list for <server>.localdomain:
/export/home/<server> *.localdomain

ফায়ারওয়াল্ড পুনরায় চালু করুন। সার্ভারের দিক:

[root@<server> ~]# systemctl start firewalld

এবং ক্লায়েন্ট পক্ষ:

[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

সুতরাং, আসুন শহরে যাই, একটি RHEL 6 এনএফএস সার্ভার থেকে আইপিটাবল কমান্ডগুলি কীভাবে রূপান্তর করে ...

[root@ ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp
success

[root@<server> ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp \
>  --permanent
success

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.0.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 32803/tcp 662/udp 662/tcp 111/udp 875/udp 32769/udp 875/tcp 892/udp 2049/tcp 892/tcp 111/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

এবার আমি ক্লায়েন্টের কাছ থেকে কিছুটা আলাদা ত্রুটি বার্তা পেয়েছি:

[root@<client> ~]# showmount -e <server>.localdomain
rpc mount export: RPC: Unable to receive; errno = No route to host

সুতরাং, আমি জানি আমি সঠিক পথে আছি। এটি বলার পরে কেন আমি কোথাও এটির একটি নির্দিষ্ট টিউটোরিয়াল খুঁজে পাচ্ছি না? আমি এটি প্রথম খুঁজে বের করতে পারে না!

firewall-cmdআমি কোন এন্ট্রি মিস করছি?

ওহ, অন্য একটি নোট। /etc/sysconfig/nfsCentOS 6 ক্লায়েন্ট এবং সেন্টস 7 সার্ভারে থাকা আমার ফাইলগুলি এখন পর্যন্ত অপরিবর্তিত। আমি যদি সম্ভব হয় তবে এগুলি পরিবর্তন করতে (এবং রক্ষণাবেক্ষণ করুন!) না করতে পছন্দ করব।

উত্তর:


40

এটি যথেষ্ট হওয়া উচিত:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

আমার ক্ষেত্রে যথেষ্ট নয়। আমি দুটি এনএফএস সার্ভার পেয়েছি, প্রথমটি সঠিকভাবে সম্প্রচার করে এবং তার ক্লায়েন্টদের দ্বারা সাবস্ক্রাইব করা হয়, দ্বিতীয়টি দৃশ্যত সমস্ত ঠিকঠাক সম্প্রচার করছে তবে এর ক্লায়েন্ট (প্রথম সার্ভার) 'শোমাউন্ট' করতে অক্ষম (আরপিসি মাউন্ট এক্সপোর্ট: আরপিসি: অক্ষম গ্রহণ; errno = হোস্টের জন্য কোনও রুট নেই)। আমি / আমি যখন এটি সমাধান করব তখন এখানে ফিরে আসব।
উর্হিশিদুর

দেখা যাচ্ছে যে সার্ভারের তিনটি পরিষেবাদি (এনএফএস, মাউন্টড, আরপিসি-বাইন্ড) এর ফায়ারওয়ালের সাথে যুক্ত হয়েছে (ক্লায়েন্টকে যদি তিনটিরও দরকার হয় তবে এটি আমার ক্ষেত্রে তিনটিই হয়ে থাকে)। আমার ক্ষেত্রে, ক্লায়েন্টের (প্রথম এনএফএস সার্ভার) এটি ছিল তবে সার্ভারটি (দ্বিতীয় এনএফএস সার্ভার) মাউন্ট মিস ছিল না।
উর্হিশিদুর

@ উরিশিদুর ক্লায়েন্টের এগুলির দরকার নেই কারণ ফায়ারওয়াল্ড বহির্গামী সংযোগগুলির অনুমতি দেয়।
T0xicCode

আরপিসি-বাইন্ডের বানানটি নোট করুন। যদিও আমি এটি দিয়ে সক্ষম করেছি systemctl enable rpcbindএবং systemctl start rpcbind, ফায়ারওয়াল-সিএমডি আমাকে জানিয়েছে Error: INVALID_SERVICE: rpcbind। শীঘ্রই আমি বুঝতে পারি যে এই প্রসঙ্গে এটির ড্যাশ দরকার! তারা কি সত্যিই একই পরিষেবা?
কিওয়ারটি

5

এনএফএস সার্ভারটি কনফিগার করার পরে আমাদের তিনটি পরিষেবা সক্ষম এবং শুরু করা উচিত:

  1. NFS-server.service
  2. rpcbind.service
  3. nfs-Mountd.service (শুধুমাত্র শুরু করা দরকার)

এবং সার্ভার ফায়ারওয়ালে এই পরিষেবাগুলিকে অনুমতি দিন:

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

4

সবে এটি পাওয়া গেছে - এবং যখন সমস্যা সেলইনাক্স লগইন চলাকালীন ~ / .ssh / অনুমোদিত_কিগুলি পড়তে বাধা দেয় তখন এটি কাজ করে! প্রথমে, আপনার ~ / .ssh / अधिकृत_keys ফাইলটি যথাযথভাবে জনবহুল করা হয়েছে এবং এর অনুমতিগুলি এবং এর ফোল্ডারের অনুমতিগুলি সঠিকভাবে সেট করা আছে en তারপরে আপনি যদি এসএসএইচ গন্তব্য হোস্টে "সেটেনফোর্স 0" চালনা করেন এবং পাসওয়ার্ড প্রবেশ না করেই সেই হোস্টটিতে লগইন করতে সক্ষম হন, তবে একই গন্তব্য হোস্টে "সেফেনফোর্স 1" প্রবেশের পরে এটি করতে না পারলে নীচেরগুলি আপনার সমস্যাটি সমাধান করতে পারে:

setsebool -P use_nfs_home_dirs 1

রেফ: https://cassjohnston.wordpress.com/2015/06/12/selinux-nfs-home-directories/


0

আমি nfsv4 ব্যবহার করি এবং এই লাইনগুলির সাথে সূক্ষ্মভাবে কাজ করি, মনে করুন আপনার অঞ্চলটি "পাবলিক" এবং আপনি ডিফল্ট পোর্টগুলি ব্যবহার করছেন 2049 এবং 4001

firewall-cmd --permanent --add-service=nfs --zone=public
firewall-cmd --permanent --add-service=mountd --zone=public
firewall-cmd --permanent --add-service=rpc-bind --zone=public
firewall-cmd --permanent --add-port=4001/udp --zone=public
firewall-cmd --permanent --add-port=4001/tcp --zone=public
firewall-cmd --permanent --add-port=2049/tcp --zone=public
firewall-cmd --permanent --add-port=2049/udp --zone=public
firewall-cmd --reload
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.