সেলিনাক্স: httpd কে একটি নির্দিষ্ট পোর্টের সাথে সংযোগ স্থাপনের অনুমতি দিন


41

আমার সিস্টেমটি অ্যাপাচি 2.2.15 এর সাথে সেন্টস 6.4 চলছে। সেলিনাক্স কার্যকর করছে এবং আমি আমার পাইথন / ডাব্লুএসজি অ্যাপ্লিকেশনটির মাধ্যমে রেডিসের স্থানীয় উদাহরণের সাথে সংযোগ দেওয়ার চেষ্টা করছি। আমি ত্রুটি 13 পেয়েছি, অনুমতি অস্বীকার করেছে। কমান্ডের মাধ্যমে আমি এটি ঠিক করতে পারলাম:

setsebool -P httpd_can_network_connect

তবে, আমি ঠিক চাই না যে httpd সমস্ত টিসিপি পোর্টের সাথে সংযোগ রাখতে সক্ষম হোক। কোন পোর্ট / নেটওয়ার্কগুলি httpd এর সাথে সংযোগ স্থাপনের অনুমতি দেওয়া হয়েছে তা আমি কীভাবে নির্দিষ্ট করতে পারি? যদি আমি httpd কে 127.0.0.1 তে পোর্ট 6379 (redis) বা কোনও টিসিপিতে সংযোগ করার অনুমতি দিতে একটি মডিউল তৈরি করতে পারি, তবে এটি আরও ভাল। আমার প্যারানিয়া এ বিষয়ে কেন এত দৃ strong় তা নিশ্চিত নয় তবে ওহে ...

কেউ জানেন?


প্রক্সি দিয়ে বাইরে যেতে বাধ্য করা কি ভাল হবে না? এই উপায়ে আপনি ক) যা অ্যাক্সেস করা যায় তার উপর আরও ভাল নিয়ন্ত্রণ রাখতে পারেন খ) কী ঘটেছিল এবং কখন হয়েছে তার থেকে ভাল অডিটিং করতে হবে।
ক্যামেরন কের

উত্তর:


51

ডিফল্টরূপে, SELinux নীতি কেবল পরিষেবাগুলির সাথে সম্পর্কিত স্বীকৃত পোর্টগুলিতে পরিষেবাগুলিকে অ্যাক্সেসের অনুমতি দেবে:

# semanage port -l | egrep '(^http_port_t|6379)'
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
# curl http://localhost/redis.php
Cannot connect to redis server.

- সেলইনক্স নীতিতে রেডিস পোর্ট (6379) যুক্ত করুন

# semanage port -a -t http_port_t -p tcp 6379
# semanage port -l | egrep '(^http_port_t|6379)'
http_port_t                    tcp      6379, 80, 81, 443, 488, 8008, 8009, 8443, 9000
# curl http://localhost/redis.php
Connected successfully.

আপনি setroubleshoot-serverআরপিএম ইনস্টল করে রানও করতে পারেন : sealert -a /var/log/audit/audit.log- এটি আপনাকে দরকারী পরামর্শ (উপরের কমান্ড সহ) সহ একটি সুন্দর প্রতিবেদন দেবে।

সংযোগ পরীক্ষা করার জন্য পিএইচপি স্ক্রিপ্ট:

# cat redis.php 
<?php

$redis=new Redis();
$connected= $redis->connect('127.0.0.1', 6379);

if(!$connected) {
        die( "Cannot connect to redis server.\n" );
}

echo "Connected successfully.\n";

?>

3
ফেডোরা 23 তে ই-মেইল প্রেরণে আমার সমস্যা ছিল (পোর্ট 25-তে 127.0.0.1 এ সংযুক্ত করে) পার্ল স্ক্রিপ্ট থেকে (নেট :: এসএমটিপি ব্যবহার করে) httpd থেকে শুরু হয়েছিল। "25d পোর্টের সাথে সংযোগ করার জন্য httpd এর অনুমতি" সেই ক্ষেত্রে যা খুঁজছে তা নয়। প্রকৃতপক্ষে SELinux- র টাইপ বন্দর 25 যোগ করার http_port_tব্যর্থ কারণ বন্দর 25 ইতিমধ্যে (অন্য SELinux- র টাইপ জন্য) ব্যবহার করা হয়: ValueError: Port tcp/25 already defined। 25 টি পোর্টের সাথে সংযুক্ত হওয়ার জন্য httpd কে মঞ্জুরি দেওয়ার সঠিক উপায়টি সম্পর্কিত SELinux পলিসি বুলিয়ান সেট করা setsebool -P httpd_can_sendmail on(দেখুন getseebool -a) see (অংশ 2 অব্যাহত)
ডেভিড টোনহোফার

1
(পার্ট 1 থেকে ক্রমাগত) কিন্তু আপনি একটি Perl স্ক্রিপ্ট থেকে পাঠাতে চান, আপনি স্পষ্টভাবে একটি SELinux- র মডিউল যে অনুমতি দেয় সৃষ্টি করতে হবে: sealert -b; sealert -a /var/log/audit/audit.log; grep perl /var/log/audit/audit.log | audit2allow -M mypol; semodule -v -i mypol.pp। তাহলে কাজ করে!
ডেভিড টোনহোফার

কমান্ডটিতে ডেভিডটনহোফার মাইনর টাইপ করুন getsebool -a(এক জন কম e)।
ডেভিডজব

1
@DavidTonhofer আপনি বিদ্যমান পোর্টের জন্য একটি নতুন নীতি তৈরি করতে হবে না আপনি এটা পরিবর্তে পরিবর্তন করতে পারেন: semanage port -m -t http_port_t -p tcp 25দেখুনsemanage port --help
HTF

জাবিবিক্সের জন্য, ইতিমধ্যে CentOS 7.5-তে একটি নির্দিষ্ট বুলিয়ান রয়েছে:setsebool -P httpd_can_connect_zabbix true
ডেভিড টনহোফার

17

আপনার ব্যবহারের প্রয়োজন হতে পারে

semanage port -m -t http_port_t -p tcp 6379

যদি সেমেনেজ অনুপস্থিত থাকে তবে প্যাকেজ পলিসি কোয়ার্টিলস-পাইথন যুক্ত করুন

yum install policycoreutils-python

semanagepolicycoreutils-python-utilsএখনই থাকতে পারে (কমপক্ষে ফেডোরার 23 তে)
ডেভিড টনহোফার

1
সেন্টওএস 7 এখনও অন্তর্ভুক্ত semanageমধ্যে policycoreutils-python
jxmallett

অন্য কিছুর পরিবর্তে প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ।
ফ্লোরিয়ান হিগল

3

আপনি সাময়িকভাবে মোডে সেলিনাক্সকে অস্থায়ীভাবে স্থাপন করতে পারেন এবং HTDD কে আবার redis এ সংযুক্ত করতে দিতে পারেন, তারপরে অডিট 2 নীল ব্যবহার করে একটি কাস্টম পলিসি মডিউল তৈরি এবং তৈরি করতে পারেন

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