Score:3

เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้และขอ htaccess

ธง om

ฉันกำลังใช้งานเซิร์ฟเวอร์ Ubuntu 20.04 บน a Gigabyte BRIX (GB-BACE-3000)ใช้งานได้ดียกเว้นเครือข่ายตั้งแต่สองสามวันมานี้

หลังจากนั้นสักครู่ (ไม่กี่ชั่วโมงหลังจากเปิดเครื่อง) ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์โดยใช้ SSH ได้ มันแสดงข้อผิดพลาดปฏิเสธการเชื่อมต่อ

ฉันยังโฮสต์เว็บไซต์ท้องถิ่นบนนั้นด้วย ซึ่งฉันเข้าถึงได้โดยการแก้ไขของฉัน / etc / โฮสต์. เมื่อ SSH ไม่พร้อมใช้งาน เว็บไซต์จะขอ htaccess ด้วย! เนื่องจากไม่มี htaccess เลยบนเซิร์ฟเวอร์นี้ ฉันจึงไม่เข้าใจ

นี่เกือบจะเป็นการติดตั้งเซิร์ฟเวอร์ใหม่ มีเพียง nginx, mariadb เท่านั้นที่กำลังทำงานอยู่ UFW ไม่ได้ใช้งาน iptables ไม่มีกฎ

บริการต่างๆ เช่นเครือข่ายกำลังทำงานอยู่ ฉันไม่เห็นข้อผิดพลาดใดๆ ไม่มีบันทึก (ตรวจสอบในเครื่อง)

บล็อกเซิร์ฟเวอร์ Nginx สำหรับเว็บไซต์ในพื้นที่ (vhost... ที่ง่ายที่สุด):

เซิร์ฟเวอร์ {
  ฟัง 80;

  server_name my-website.lo;

  รูท /var/www/html/my-website.lo;
  ดัชนี index.html;
}

เดอะ nginx.conf เป็นค่าเริ่มต้น เดอะ sshd_config เป็นค่าเริ่มต้นด้วย

คุณคิดว่านี่อาจเป็นปัญหาเกี่ยวกับฮาร์ดแวร์หรือไม่ มีบันทึกเพิ่มเติมที่ฉันสามารถตรวจสอบได้หรือไม่


อัปเดต:

นี่คือแบบเต็ม nginx -T เอาต์พุต barebone-test.lo มีไว้สำหรับเว็บไซต์ทดสอบเท่านั้น (โหลดซ้ำอัตโนมัติทุกๆ 5 วินาที) เพื่อให้ทราบเมื่อเครือข่ายเซิร์ฟเวอร์หยุดทำงาน

nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

เหตุการณ์ {
    worker_connections 768;
    # multi_accept บน;
}

http {

    ##
    # การตั้งค่าพื้นฐาน
    ##

    ส่งไฟล์บน;
    tcp_nopush บน;
    tcp_nodelay บน;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # ปิด server_tokens;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect ปิด;

    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    ##
    # การตั้งค่า SSL
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
    เปิด ssl_prefer_server_ciphers;

    ##
    # การตั้งค่าการบันทึก
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # การตั้งค่า Gzip
    ##

    เปิด gzip;

    # gzip_vary บน;
    # gzip_proxyed ใด ๆ ;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types ข้อความ/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;

    ##
    # การกำหนดค่าโฮสต์เสมือน
    ##

    รวม /etc/nginx/conf.d/*.conf;
    รวม /etc/nginx/sites-enabled/*;
}


#จดหมาย {
# # ดูตัวอย่างสคริปต์การตรวจสอบได้ที่:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "ผู้ใช้";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
# เซิร์ฟเวอร์ {
# ฟัง localhost:110;
#โปรโตคอลpop3;
# เปิดพร็อกซี;
# }
# 
# เซิร์ฟเวอร์ {
# ฟัง localhost:143;
# โปรโตคอล imap;
# เปิดพร็อกซี;
# }
#}

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module โมดูล/ngx_http_image_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module โมดูล/ngx_http_xslt_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module โมดูล/ngx_mail_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module โมดูล/ngx_stream_module.so;

# ไฟล์กำหนดค่า /etc/nginx/mime.types:

ประเภท {
    ข้อความ/html html htm shtml;
    ข้อความ/css css;
    ข้อความ/xml xml;
    รูปภาพ/gif gif;
    รูปภาพ/jpeg jpeg jpg;
    แอปพลิเคชัน/จาวาสคริปต์ js;
    แอ็พพลิเคชัน/atom+xml อะตอม;
    แอปพลิเคชัน/rss+xml rss;

    ข้อความ/mathml mml;
    ข้อความ/ธรรมดา txt;
    text/vnd.sun.j2me.app-descriptor jad;
    ข้อความ/vnd.wap.wml wml;
    ข้อความ/x-คอมโพเนนต์ htc;

    รูปภาพ/png png;
    รูปภาพ/tiff tif tiff;
    ภาพ/vnd.wap.wbmp wbmp;
    ไอคอนรูปภาพ/x-icon;
    ภาพ/x-jng jng;
    ภาพ/x-ms-bmp bmp;
    ภาพ/svg+xml svg svgz;
    รูปภาพ/เว็บเพจ เว็บเพจ;

    แอปพลิเคชัน/ฟอนต์-woff woff;
    แอปพลิเคชัน / java-archive jar war ear;
    แอปพลิเคชัน/json json;
    แอปพลิเคชัน/mac-binhex40 hqx;
    เอกสารแอปพลิเคชัน/msword;
    ใบสมัคร/pdf pdf;
    ใบสมัคร/postscript ps eps ai;
    แอปพลิเคชัน/rtf rtf;
    แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
    แอปพลิเคชัน/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    แอปพลิเคชัน/vnd.ms-powerpoint ppt;
    แอปพลิเคชัน/vnd.wap.wmlc wmlc;
    application/vnd.google-earth.kml+xml kml;
    แอปพลิเคชัน/vnd.google-earth.kmz kmz;
    แอปพลิเคชัน/x-7z-บีบอัด 7z;
    ใบสมัคร/x-cocoa cco;
    แอปพลิเคชัน/x-java-archive-diff jardiff;
    แอปพลิเคชัน/x-java-jnlp-file jnlp;
    เรียกใช้แอปพลิเคชัน / x-makeself;
    แอปพลิเคชัน/x-perl pl pm;
    แอปพลิเคชัน/x-pilot prc pdb;
    แอปพลิเคชั่น/x-rar-บีบอัด rar;
    แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
    ใบสมัคร / ทะเล x-sea;
    แอปพลิเคชั่น/x-shockwave-แฟลช swf;
    แอปพลิเคชั่น / นั่ง x-stuffit;
    ใบสมัคร/x-tcl tcl tk;
    ใบสมัคร/x-x509-ca-cert จาก pem crt;
    แอปพลิเคชัน/x-xpinstall xpi;
    แอปพลิเคชัน/xhtml+xml xhtml;
    แอปพลิเคชัน/xspf+xml xspf;
    แอปพลิเคชั่น / ซิปซิป;

    แอปพลิเคชัน / octet-stream bin exe dll;
    แอ็พพลิเคชัน/octet-stream deb;
    แอปพลิเคชัน/octet-stream dmg;
    แอปพลิเคชั่น/octet-stream iso img;
    แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;

    แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document.docx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.การนำเสนอ pptx;

    เสียง/midi กลาง midi kar;
    เสียง/mpeg mp3;
    เสียง/ogg ogg;
    เสียง/x-m4a m4a;
    เสียง/x-realaudio ra;

    วิดีโอ/3gpp 3gpp 3gp;
    วิดีโอ/mp2t ts;
    วิดีโอ/mp4 mp4;
    วิดีโอ/mpeg mpeg mpg;
    วิดีโอ/quicktime mov;
    วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
    วิดีโอ/x-flv flv;
    วิดีโอ/x-m4v m4v;
    วิดีโอ/x-mng mng;
    วิดีโอ/x-ms-asf asx asf;
    วิดีโอ/x-ms-wmv wmv;
    วิดีโอ/x-msvideo avi;
}

# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/barebone-test.lo:
เซิร์ฟเวอร์ {
  ฟัง 80;

  server_name แบร์โบน-test.lo;

  รูท /var/www/html/barebone-test.lo;
  ดัชนี index.html;
}

# ไฟล์กำหนดค่า /etc/nginx/sites-enabled/default:
##
# คุณควรดู URL ต่อไปนี้เพื่อทำความเข้าใจที่แน่นอน
# ของไฟล์การกำหนดค่า Nginx เพื่อปลดปล่อยพลังของ Nginx ได้อย่างเต็มที่
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# ในกรณีส่วนใหญ่ ผู้ดูแลระบบจะลบไฟล์นี้ออกจากไซต์ที่เปิดใช้งาน/ และ
# ปล่อยให้เป็นข้อมูลอ้างอิงภายในไซต์ที่มีอยู่ซึ่งจะยังคงอยู่ต่อไป
# อัปเดตโดยทีมบรรจุภัณฑ์ nginx
#
# ไฟล์นี้จะโหลดไฟล์การกำหนดค่าที่ผู้อื่นให้มาโดยอัตโนมัติ
# แอปพลิเคชัน เช่น Drupal หรือ Wordpress แอปพลิเคชันเหล่านี้จะทำขึ้น
# อยู่ภายใต้เส้นทางที่มีชื่อแพ็คเกจนั้น เช่น /drupal8
#
# โปรดดู /usr/share/doc/nginx-doc/examples/ สำหรับตัวอย่างโดยละเอียดเพิ่มเติม
##

# การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น
#
เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    ฟัง [::]:80 default_server;

    # การกำหนดค่า SSL
    #
    # ฟัง 443 ssl default_server;
    # ฟัง [::]:443 ssl default_server;
    #
    # หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
    # ดู: https://bugs.debian.org/773332
    #
    # อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
    # ดู: https://bugs.debian.org/765782
    #
    # ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
    # ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
    #
    # รวมตัวอย่าง/snakeoil.conf;

    รูท /var/www/html;

    # เพิ่ม index.php ในรายการหากคุณใช้ PHP
    ดัชนี index.html index.htm index.nginx-debian.html;

    ชื่อเซิร์ฟเวอร์ _;

    ที่ตั้ง / {
        # ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
        # เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
        try_files $uri $uri/ =404;
    }

    # ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
    #
    #location ~ \.php$ {
    # รวมตัวอย่าง/fastcgi-php.conf;
    #
    # # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
    # fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
    # # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
    # fastcgi_pass 127.0.0.1:9000;
    #}

    # ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
    # เห็นด้วยกับของ nginx
    #
    #location ~ /\.ht {
    #ปฏิเสธทั้งหมด
    #}
}


# การกำหนดค่าโฮสต์เสมือนสำหรับ example.com
#
# คุณสามารถย้ายไปยังไฟล์อื่นภายใต้ไซต์ที่มีจำหน่าย/ และ symlink ที่
# เพื่อเปิดใช้งานไซต์ / เพื่อเปิดใช้งาน
#
#เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
#
# server_name example.com;
#
# ราก /var/www/example.com;
# ดัชนี index.html;
#
#   ที่ตั้ง / {
# try_files $uri $uri/ =404;
# }
#}

นอกจากนี้ เมื่อ Nginx กำลังทำงาน lsof -Pi :80 กลับ:

nginx 975 root 6u IPv4 32176 0t0 TCP *:80 (ฟัง)
nginx 975 root 7u IPv6 32177 0t0 TCP *:80 (ฟัง)
nginx 976 www-data 6u IPv4 32176 0t0 TCP *:80 (ฟัง)
nginx 976 www-data 7u IPv6 32177 0t0 TCP *:80 (ฟัง)
nginx 977 www-data 6u IPv4 32176 0t0 TCP *:80 (ฟัง)
nginx 977 www-data 7u IPv6 32177 0t0 TCP *:80 (ฟัง)

และ lsof -Pi :443 กลับไม่มีอะไร สุดท้าย เมื่อ Nginx หยุดทำงาน ทั้งสองคำสั่งจะไม่ส่งเอาต์พุตใดๆ ครั้งต่อไปที่เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้ ฉันจะหยุด Nginx จากการเข้าถึงทางกายภาพ จากนั้นตรวจสอบว่าเว็บไซต์ทดสอบของฉันขอการเข้าสู่ระบบและรหัสผ่านอยู่เสมอ หรือแสดง การเชื่อมต่อถูกปฏิเสธ เนื่องจากเว็บเซิร์ฟเวอร์หยุดทำงาน

kz flag
"เว็บไซต์ขอ htaccess ด้วย!" - เว็บ "ขอ htaccess" ทำอย่างไร?!
om flag
เมื่อฉันพูดว่า "htaccess" ฉันหมายถึงเว็บไซต์ขอการเข้าสู่ระบบและรหัสผ่าน เช่น: https://www.lansweeper.com/wp-content/uploads/2015/02/enabling-or-disabling-web-browser-login -prompts-1.jpg (รูปภาพพบใน google)
om flag
omg ใช่ ขออภัย @djdomi และ @MrWhite ฉันไม่ควรพูดถึง `.htaccess` คุณพูดถูก อย่างไรก็ตามด้วยการขดมันจะส่งคืน *401* ไม่รู้ว่าทำไมในเมื่อเว็บไซต์ใช้งานได้ไม่กี่นาที/ชั่วโมง แล้วก็โยนทิ้ง! (โดยไม่ต้องทำอะไรบนเว็บไซต์หรือเซิร์ฟเวอร์)
djdomi avatar
za flag
อย่าใช้รูปภาพทั่วไป ใช้ curl เพื่อตรวจสอบส่วนหัว - ตรวจสอบว่า Apache หรือสิ่งที่คล้ายกันนั้นใช้งานได้หรือไม่เพราะ nginx ไม่สนใจไฟล์ .htaccess ยอมรับเฉพาะไฟล์ authfile เป็นตัวแปรใน Config และหากไม่มีสิ่งนี้ ฉันเชื่อว่าอย่างน้อยเกือบ 99% เว็บเซิร์ฟเวอร์อื่นกำลังเข้าร่วมปาร์ตี้
djdomi avatar
za flag
โปรดแสดง nginx -T แบบเต็มแก่เรา นอกจากนี้ให้หยุด Webservers daemon เป็นเวลา 5 นาทีแล้วลอง lsof -Pi :80 และ lsof -Pi :443 หากการตอบกลับยังคงว่างเปล่า และลองเข้าถึงไซต์หากยังใช้งานได้ ถ้าใช่ แสดงว่ามี บางสิ่งผิดปกติ
kz flag
การถูกขอให้เข้าสู่ระบบ/รหัสผ่านไม่จำเป็นต้องเกี่ยวข้องกับ `.htaccess` การตรวจสอบสิทธิ์ HTTP (ในเบราว์เซอร์) จะถูกกระตุ้นหากเซิร์ฟเวอร์ตอบสนองด้วยสถานะ 401 และส่วนหัว `WWW-Authenticate` ที่เหมาะสม การกล่าวถึง `.htaccess` ในบริบทนี้เป็นเพียงการทำให้เข้าใจผิด (แม้ใน Apache คุณไม่จำเป็นต้อง _need_ `.htaccess` เพื่อทริกเกอร์การเข้าสู่ระบบ/รหัสผ่าน)
om flag
@djdomi ฉันได้อัปเดตโพสต์ของฉันเพื่อหลีกเลี่ยงพื้นที่แสดงความคิดเห็นสแปม
Nikita Kipriyanov avatar
za flag
เมื่อคุณสูญเสียการเข้าถึงผ่าน SSH สิ่งนี้จะต้องถูกบันทึกในบันทึกด้วยวิธีใดวิธีหนึ่ง คุณพยายามค้นหาสิ่งนี้หรือไม่?
om flag
@NikitaKipriyanov น่าเสียดายที่ฉันเช็คอิน `/var/log/auth.log` และไม่มีอะไรเปิดขึ้นเมื่อพยายามเชื่อมต่อ SSH (ในกรณีที่เซิร์ฟเวอร์เข้าไม่ถึง)
Nikita Kipriyanov avatar
za flag
หากการเชื่อมต่อกับ SSH ถูกปฏิเสธ จะไม่มีการพยายามตรวจสอบสิทธิ์ใดๆ คุณต้องอ่านบันทึกอื่นๆ เกี่ยวกับเวลาพัก คุณมีไฟร์วอลล์และคุณสมบัติการแบนอัตโนมัติหรือไม่ เช่น ล้มเหลว 2 แบน?
om flag
ไม่มีไฟร์วอลล์อย่าง ufw หรือ f2b อย่างแน่นอน พูดตามตรงเกี่ยวกับบันทึกอื่น ๆ ฉันไม่รู้ว่าจะค้นหาที่ไหน จากบันทึก Nginx ไปยังบันทึก SSH ฉันไม่รู้ว่ามีบันทึกที่เป็นไปได้ที่อื่นหรือไม่ :/

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา