ব্রাউজারে অ্যাপাচি ২.৪..7 ওয়েব সার্ভার অ্যাক্সেস করার চেষ্টা করার সময় নিষিদ্ধ 403 ত্রুটি


9

আমি যখন একই ওয়েব সার্ভার পিসি থেকে লোকালহোস্ট ব্যবহার করে অ্যাপাচি ওয়েব সার্ভার অ্যাক্সেস করি তখন এটি অ্যাপাচি 2 উবুন্টু ডিফল্ট পৃষ্ঠাটি দেখায়।

তবে আমি যখন 192.168.0.2 ব্যবহার করে অ্যাপাচি ওয়েব সার্ভারটি অ্যাক্সেস করি তখন এটি 403 নিষিদ্ধ ত্রুটি দিচ্ছে (নিষিদ্ধ আপনার কাছে এই সার্ভারটিতে / প্রবেশ করার অনুমতি নেই)।

ওয়েব সার্ভারের বিশদ

  • উবুন্টু 14.04 এলটিএস
  • অ্যাপাচি সংস্করণ 2.4.7

মালিকানা আদেশ

www-data sudo adduser ftpuser www-data
sudo chown -R www-data:ftpuser /var/www
sudo chmod -R g+rwX /var/www

ইন ইত্যাদি / apache2 / apache2.conf ফাইল

ServerName 192.168.0.2

<Directory/>
    AllowOverride All
    Require all granted
</Directory>

ইন ইত্যাদি / apache2 / port.conf ফাইল

NameVirtualHost *:80
Listen *:80

একটি ওয়েবসাইটের জন্য ভার্চুয়াল হোস্ট

<VirtualHost *:80>
    ServerName mysite
    DocumentRoot /var/www/mysite
    <Directory /var/www/mysite>
        Options None FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>    
</VirtualHost>

কোন স্থানে আমার কি সেটিংসের দরকার? সাহায্য করুন...


ServerName 192.168.0.2সার্ভারনামের নির্দেশনার আইপি নাম্বার নয়, www.server.com এর মতো নাম থাকা উচিত বলে আমি লাইনটি ছুঁড়ে দেব । আমি মনে করি এটি সমস্যার সমাধান করতে পারে। সার্ভারনামের জন্য আপনার যদি সার্ভারটি থাকে তবে এটির নাম লিখতে হবে। সার্ভারনাম নাম ভিত্তিক ভার্চুয়াল হোস্টিংকে মঞ্জুরি দেয়, যা একই আইপিতে আরও বেশি ওয়েবসাইট থাকতে পারে।
কেউই

@ নোবডি, ইতিমধ্যে এটি ফাইল থেকে সরানো হয়েছে তবে এখনও কোনও সাফল্য পায় না।
কে আহির

উত্তর:


8

1. আপনার নিজের / ইত্যাদি / হোস্ট ফাইলগুলি কনফিগার করা উচিত :

127.0.0.1   localhost
127.0.0.1   test-site
127.0.1.1   my-hostname
# The following lines are desirable for IPv6 capable hosts. etc...

যেখানে test-siteদ্বিতীয় "লোকালহোস্ট"। এবং my-hostnameএতে "সিস্টেম হোস্টনাম" সংজ্ঞায়িত করা হয়েছে /etc/hostname


২. আপনার কোনও ভার্চুয়াল হোস্ট (ভিএইচ) সংজ্ঞায়িত এবং সক্ষম করা উচিত :

একটি ডিফল্ট এইচটিটিপি ভিএইচ আছে। এটি রাখা হয়েছে /etc/apache2/sites-available/। ফাইলের নাম 000-default.conf। আপনাকে এটি সম্পাদনা করতে হবে (আপনি চাইলে এটির নামকরণ করতে পারেন, আপনি চাইলে বা এর ভিত্তিতে কিছু .conf ফাইল তৈরি করতে পারেন) এবং তারপরে আপনাকে এটি সক্ষম করতে হবে।

আপনি "নরম, প্রতীকী লিঙ্ক" তৈরির মাধ্যমে এটি ম্যানুয়ালি সক্ষম করতে পারেন:

sudo ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/

অথবা আপনি অ্যাপাচি 2 সরঞ্জামটি a2ensite নামক সরঞ্জাম ব্যবহার করতে পারেন যা এটি একই করে:

sudo a2ensite 000-default.conf

ধরে নেওয়া যাক সেখানে 3 ভার্চুয়াল হোস্ট , সক্ষম এসএসএল এবং নিবন্ধিত বেসরকারী ডোমেন রয়েছে (উদাহরণস্বরূপ SOS.info):

/etc/apache2/sites-available/http.SOS.info.conf
/etc/apache2/sites-available/https.SOS.info.conf

এবং একটি যা এই বিষয়টির উদ্দেশ্যে তৈরি করা হয়েছে:

/etc/apache2/sites-available/http.test-site.conf

প্রথম 2 ভিএইচএসের সামগ্রীটি হ'ল:

$ cat /etc/apache2/sites-available/http.SOS.info.conf

<VirtualHost *:80>    
    ServerName SOS.info
    ServerAlias www.SOS.info
    ServerAdmin admin@SOS.info

    # Redirect Requests to SSL
    Redirect permanent "/" "https://SOS.info/"

    ErrorLog ${APACHE_LOG_DIR}/http.SOS.info.error.log
    CustomLog ${APACHE_LOG_DIR}/http.SOS.info.access.log combined       
</VirtualHost>

এইটি সমস্ত এইচটিটিপি অনুরোধকে এইচটিটিপিএসে পুনঃনির্দেশ করে।

$ cat /etc/apache2/sites-available/https.SOS.info.conf

<IfModule mod_ssl.c>    
    <VirtualHost _default_:443>    
        ServerName SOS.info
        ServerAlias www.SOS.info
        ServerAdmin admin@SOS.info

        DocumentRoot /var/www/html  

        SSLEngine on    
        SSLCertificateFile /etc/ssl/certs/SOS.info.crt
        SSLCertificateKeyFile /etc/ssl/private/SOS.info.key
        SSLCertificateChainFile /etc/ssl/certs/SOS.info.root-bundle.crt
        #etc..
    </VirtualHost>    
</IfModule>

এটি এইচটিটিপিএস ভিএইচ।

এই দুটি ফাইলের বিষয়বস্তু একটি ফাইলে পোস্ট করা যেতে পারে তবে এক্ষেত্রে তাদের পরিচালনা ( a2ensite/ a2dissite) আরও কঠিন হবে।


তৃতীয় ভার্চুয়াল হোস্টটি হ'ল, যা আমাদের উদ্দেশ্যে তৈরি করা হয়েছে :

$ cat /etc/apache2/sites-available/http.test-site.conf

<VirtualHost *:80>
    ServerName test-site
    ServerAlias test-site.SOS.info

    DocumentRoot /var/www/test-site
    DirectoryIndex index.html

    ErrorLog ${APACHE_LOG_DIR}/test-site.error.log
    CustomLog ${APACHE_LOG_DIR}/test-site.access.log combined

    <Directory /var/www/test-site>
        # Allow .htaccess 
        AllowOverride All
        Allow from All
    </Directory>    
</VirtualHost>

৩. এই কনফিগারেশনের মাধ্যমে আপনার অ্যাক্সেস করা উচিত:

http://localhost     # pointed to the directory of the mine Domain 
https://localhost    # iin our case: /var/www/html (SOS.info), but you should get an error, because the SSL certificate

http://SOS.info      # which redirects to https://SOS.info
https://SOS.info     # you should have valid SSL certificate

http://www.SOS.info  # which is allied to http://SOS.info and redirects to https://SOS.info
https://www.SOS.info # which is allied to https://SOS.info

মূল উদাহরণে আপনার অ্যাক্সেস করা উচিত এবং :

http://test-site           # pointed to the directory /var/www/test-site
http://test-site.SOS.info  # which is allied to http://test-site

ওয়েব ব্রাউজারে সাইটটি খোলার চেষ্টা করুন বা পরবর্তী কমান্ডগুলি দিয়ে কেবল (টার্মিনালে) চেষ্টা করুন:

$ curl -L http://test-site/index.html
$ curl -L http://test-site.SOS.info/index.html

অবশ্যই, index.htmlতাদের ডকুমেন্টআরটে আপনার কয়েকটি পৃষ্ঠা থাকতে হবে :)



পেডেন্ট্রির কারণে আমি পরবর্তী নোটগুলি ছেড়ে দেব :)


৪. আপনার সঠিকভাবে `/ etc / apache2 / apache2.conf` কনফিগার করা দরকার`

II আপনার সার্ভারের সুরক্ষার উন্নতি করতে কিছুটা সময় ব্যয় করা ভাল ধারণা। এই ম্যানুয়ালগুলি সুরক্ষা কনফিগারেশন সম্পর্কে: প্রথম এবং দ্বিতীয়এখানে আপনি নিখরচায় এসএসএল শংসাপত্র পেতে পারেন। এই সাইটগুলি আপনাকে আপনার অগ্রগতি পরীক্ষা করতে সহায়তা করবে: প্রথম এবং দ্বিতীয়

উপরোক্ত সুরক্ষা অনুসারে ম্যানুয়াল /etc/apache2/apache2.confফাইলগুলি অবশ্যই দেখতে হবে:

Mutex file:${APACHE_LOCK_DIR} default

PidFile ${APACHE_PID_FILE}

Timeout 60

#KeepAlive Off
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

HostnameLookups Off

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Include ports.conf

<Directory />
    Options None FollowSymLinks 
    AllowOverride None
    Require all denied
</Directory>

<Directory /var/www/>
    Options None FollowSymLinks 
    AllowOverride None
    Require all granted
</Directory>

AccessFileName .htaccess
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

# Hide Server type in the http error-pages 
ServerSignature Off
ServerTokens Prod

# Etag allows remote attackers to obtain sensitive information 
FileETag None

# Disable Trace HTTP Request
TraceEnable off

# Set cookie with HttpOnly and Secure flag.
# a2enmod headers
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

# Clickjacking Attack
Header always append X-Frame-Options SAMEORIGIN

# CX-XSS Protection
Header set X-XSS-Protection "1; mode=block"

# Disable HTTP 1.0 Protocol
RewriteEngine On
RewriteCond %{THE_REQUEST} !HTTP/1.1$
RewriteRule .* - [F]

# Change the server banner @ ModSecurity 
# Send full server signature so ModSecurity can alter it
ServerTokens Full
# Alter the web server signature sent by Apache
<IfModule security2_module>
    SecServerSignature "Apache 1.3.26"
</IfModule>
Header set Server "Apache 1.3.26"
Header unset X-Powered-By

# Hde TCP Timestamp
#   gksu gedit /etc/sysctl.conf
#   >> net.ipv4.tcp_timestamps = 0
# Test: sudo hping3 SOS.info -p 443 -S --tcp-timestamp -c 1

# Disable -SSLv2 -SSLv3 and weak Ciphers
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

5. ফায়ারওয়াল সেট আপ করুন।

আপনার ওয়েব সার্ভারে বাহ্যিক অ্যাক্সেসের অনুমতি / অস্বীকার করার জন্য আপনি ইউএফডাব্লু (জটিল জটিল ফায়ারওয়াল) ব্যবহার করতে পারেন :

sudo ufw allow http
sudo ufw allow https

কেবলমাত্র tcpপ্রোটোকল ব্যবহারের অনুমতি দিতে :

sudo ufw allow http/tcp
sudo ufw allow https/tcp

আপনি এবং পোর্ট নম্বর সরাসরি ব্যবহার করতে পারেন:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

কেবলমাত্র যদি আপনি "বিধি সারণী" পুনরায় লোড করতে পারেন:

sudo ufw reload

আপনি ব্যবহার করতে পারেন এবং ইউএফডাব্লু এর জিইউআই ইন্টারফেস, যাকে গ্যুফডাব্লু বলা হয়

sudo apt update
sudo apt install gufw
gufw &

চয়েস Officeপ্রোফাইল। এটি সেট হবে: Status:ON, Incoming:Denyএবং Outgoing:Allowএবং আপনার নিয়ম যোগ করুন।


You. আপনার যদি রাউটার থাকে তবে কিছু বন্দর ফরওয়ার্ড করতে ভুলবেন না:

আপনার যদি রাউটার থাকে এবং আপনি চান যে আপনার ওয়েব সার্ভারটি ইন্টারনেট থেকে অ্যাক্সেসযোগ্য হয় তবে কিছু পোর্ট ফরওয়ার্ডিং যুক্ত করতে ভুলবেন না। ভালো কিছু এই


000-default.conf ফাইলটি ইতিমধ্যে / etc / apache2 / সাইটগুলি সক্ষম / ফোল্ডারে রয়েছে। সুতরাং আমি কি এখনও উপরের কমান্ডটি ব্যবহার করে এটি সক্ষম করব? আমাকে বুঝতে দাও.
কে আহির

যদি এটি ইতিমধ্যে থাকে তবে আপনার সেগুলি ব্যবহার করার দরকার নেই।
pa4080

সম্ভবত আপনি এই ত্রুটির কারণগুলি খুঁজে পাবেন /var/log/apache2/error.log
pa4080

আমি আমার মন্তব্য আপডেট করেছি।
pa4080

এই ত্রুটি বার্তাটি পেয়েছে ... [শুক্র আগস্ট 12 17: 18: 37.224182 2016] [এমএমপিএমপ্রিফোরক: নোটিশ] [পিড 4335] এএইচ00169: সিআইজিআরটিএম বন্ধ করেছে, [শুক্র আগস্ট 12 17: 18: 40.679317 2016] [এমএমএম_প্রিয়র্ক: বিজ্ঞপ্তি] [পিড 4571] এএইচ00163: অ্যাপাচি / ২.৪..7 (উবুন্টু) পিএইচপি / ৫..9.৯-১৮বুন্টু ৪.১৯ কনফিগার করা হয়েছে - আবার স্বাভাবিক ক্রিয়াকলাপ শুরু করছে [শুক্র আগস্ট 12 17: 18: 40.679382 2016] [মূল: নোটিশ] [পিড 4571] এএইচ 200094 : কমান্ড লাইন: '/ usr / sbin / apache2'
কে আহির

3

আপনি যে ডিরেক্টরিটি আপনার ফাইলগুলি কমান্ড ব্যবহার করে পরিবেশন করছেন সেটির মালিকানা পরিবর্তন করুন:

sudo chown -R www-data:www:data <directory_where_you_serve_files_from>

আমার প্রশ্নে উল্লেখ না করার জন্য দুঃখিত তবে আমি ইতিমধ্যে / var / www ফোল্ডারের জন্য নির্দিষ্ট গোষ্ঠী এবং ব্যবহারকারীকে মালিকানা অর্পণ করেছি।
কে আহির

0

আমার এই সমস্যার সমাধান করার জন্য আমি আপনাকে এই উত্তরের সাথে সংযুক্ত করব।

প্রথমত, ফোল্ডারে অনুমতিগুলি যুক্ত করুন:

sudo chmod -R 775 /var/www

তারপরে এই পাঠ্যটি যুক্ত করুন:

<Directory /var/www/html>
  AllowOverride All
</Directory>

এই ফাইলের শেষে:

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