Score:0

การนำเสนอเว็บ Iredmail + ความปลอดภัยของ mod

ธง cn

มีใครพยายามใช้ iredmail ด้วย mod security หรือไม่? ภาษาอังกฤษของฉันยังไม่ค่อยดีนัก ฉันหวังว่าคุณจะเข้าใจเหตุผลของฉัน ขอบคุณสำหรับความช่วยเหลือของคุณล่วงหน้า

ฉันติดตั้ง iredmail + การนำเสนอเว็บบน nginx แล้ว แต่ฉันมีปัญหากับกฎ modsec ฉันใช้ apache2 + mod sec มาก่อน ฉันใช้กฎที่กำหนดเองเช่นคำขอ rbl หรือ drop .php หรือ .env เป็นต้น คุณสามารถดูตัวอย่างของฉันด้านล่าง ซึ่งฉันใช้โดย apache2 กฎ Rbl

SecRule REMOTE_ADDR "@rbl sbl-xbl.spamhaus.org" "phase:1,id:171,t:none,pass,log,auditlog,msg:'RBL Match for SPAM Source',tag:'AUTOMATION/MALICIOUS', ความรุนแรง:'2',setvar:'tx.msg=%{rule.msg}',setvar:tx.automation_score=+%{tx.warning_anomaly_score},setvar:tx.an>
 setvar:tx.%{rule.id}-AUTOMATION/MALICIOUS-%{matched_var_name}=%{matched_var},setvar:ip.spammer=1,expirevar:ip.spammer=86400,setvar:ip.previous_rbl_check=1,expirevar :ip.previous_rbl_check=86400,ข้ามหลัง:END_RBL_CHECK"

กฎ .php

SecRule REQUEST_LINE "@contains .php" "phase:1,id:150,drop,status:444,log,t:none,t:urlDecode,t:lowercase,t:normalizePath,msg:'คำขอมีไฟล์ .php' "

กฎ .env

SecRule REQUEST_LINE "@contains .env" "phase:1,id:155,drop,status:444,log,t:none,t:urlDecode,t:lowercase,t:normalizePath,msg:'คำขอมีไฟล์ .env' "

มันทำงานได้ดีมากกับ apache, spamers kiss ..... :) แต่มันวางไม่ถูกต้องบน iredmail ด้วย nginx

Rbl ไม่ลดลงเลย ฉันลอง RBL จาก projecthonejpot แล้ว แต่ก็เหมือนเดิม ตัวอย่างเช่น ถ้าฉันพยายาม www.example.com/index.php ดังนั้นมันจึงลดลงได้ดี แต่คำขอบางอย่างจากผู้ส่งสแปมก็ฆ่าฉัน ฉันไม่รู้ว่ามันมาจากไหน แต่คำขอถูกฆ่าบน apache

ด้านล่างคือ access.log

184.168.103.230 - - [08/Feb/2022:17:33:28 +0100] "GET /wp-login.php HTTP/1.1" 301 162 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv :62.0) Gecko/20100101 Firefox/62.0"
184.168.103.230 - - [08/Feb/2022:17:33:31 +0100] "GET /wp-login.php HTTP/1.1" 404 47 "http://example.com/wp-login.php" " Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"

ด้านล่างคือ error.log

2022/02/08 17:33:31 [ข้อผิดพลาด] 1036473#1036473: *232 FastCGI ส่งใน stderr: "ไม่ทราบสคริปต์หลัก" ขณะอ่านส่วนหัวการตอบสนอง 
จากอัปสตรีม ไคลเอ็นต์: 184.168.103.230 เซิร์ฟเวอร์: domain.com คำขอ: "GET /wp-login.php HTTP/1.1" อัปสตรีม: 
"fastcgi://127.0.0.1:9999", โฮสต์: "example.com", ผู้อ้างอิง: "http://example.com/wp-login.php"

Mod sec ไม่ปล่อยตามกฎ .php แต่ถ้าถูกทิ้ง บันทึกข้อผิดพลาดจะมีลักษณะดังนี้

2022/02/08 18:28:29 [ข้อผิดพลาด] 1036473#1036473: *238 [ไคลเอนต์ 173.212.214.140] ModSecurity: การเข้าถึงถูกปฏิเสธด้วยรหัส 444 (ระยะที่ 1) 
จับคู่ "ตัวดำเนินการ `ประกอบด้วย' กับพารามิเตอร์ `.php' กับตัวแปร `REQUEST_LINE' (ค่า: `GET /wp-login.php HTTP/1.1' ) 
[ไฟล์ "/etc/nginx/modsecurity/modsecurity.conf"] [บรรทัด "279"] [id "150"] [rev ""] [msg "คำขอมีไฟล์ .php"] [ข้อมูล""] 
[ความรุนแรง "0"] [เวอร์ชัน ""] [ครบกำหนด "0"] [ความแม่นยำ "0"] [ชื่อโฮสต์ "xxxx"] [uri "/wp-login.php"] [unique_id "1644341309"] 
[อ้างอิง "o13,4v0,26t:urlDecode,t:lowercase,t:normalizePath"], ไคลเอ็นต์: 173.212.214.140, เซิร์ฟเวอร์: example.com, คำขอ: "GET /wp-login.php HTTP/1.1", 
โฮสต์: "example.com", ผู้อ้างอิง: "http://example.com/wp-login.php"

ในสถานการณ์นี้ หลุดบ้าง หลุดบ้าง หลุดบ้าง ตัวอย่างเช่นมันถูกทิ้งตลอดเวลาบน apache ด้านล่างนี้คือการกำหนดค่า nginx ของฉัน 00-default.conf:

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    ฟัง [::]:80 default_server;
    ฟังเซิร์ฟเวอร์ ip:80 default_server;
    ฟัง [เซิร์ฟเวอร์ ip6::1]:80 default_server;
    ชื่อเซิร์ฟเวอร์ _;

    กลับ 444;

}

เซิร์ฟเวอร์ {
    # ฟังบน ipv4
    ฟังเซิร์ฟเวอร์ ip:80;
    ฟัง [เซิร์ฟเวอร์ ip::6]:80;
    server_name mail.example.com;

    รูท /var/www/html;
    ดัชนี index.html robots.txt;

    # เปลี่ยนเส้นทางคำขอ http:// ที่ไม่ปลอดภัยทั้งหมดไปที่ https://
    ส่งคืน 301 https://$host$request_uri;

    เปิดโหมดความปลอดภัย;
    modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;

    ที่ตั้ง / {
        try_files $uri $uri/ =404;
    }

    #Remove วิธี HTTP ที่ไม่ต้องการ
    ถ้า ($request_method !~ ^(GET|POST)$) {
        กลับ 444;
    }
}

00-default-ssl.conf:

เซิร์ฟเวอร์ {
    ฟัง 443 default_server;
    ฟัง [::]:443 default_server;
    ฟัง 1 เซิร์ฟเวอร์ ip:443 default_server;
    ฟัง [เซิร์ฟเวอร์ ip::6]:443 default_server;
    ชื่อเซิร์ฟเวอร์ _;

    ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem; # จัดการโดย Certbot

    กลับ 444;

}

เซิร์ฟเวอร์ {
    ฟังเซิร์ฟเวอร์ ip:443 ssl http2;
    ฟัง [เซิร์ฟเวอร์ ip::6]:443 ssl http2;
    server_name mail.example.com;

    รูท /var/www/html;
    ดัชนี index.php index.html;

    เปิดโหมดความปลอดภัย;
    modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;

    รวม /etc/nginx/templates/misc.tmpl;
    รวม /etc/nginx/templates/ssl.tmpl;
    รวม /etc/nginx/templates/iredadmin.tmpl;
    รวม /etc/nginx/templates/roundcube.tmpl;
    รวม /etc/nginx/templates/php-catchall.tmpl;

    #Remove วิธี HTTP ที่ไม่ต้องการ
    ถ้า ($request_method !~ ^(GET|POST)$) {
        กลับ 444;
    }

    ที่ตั้ง / {
        try_files $uri $uri/ =404;
    }
}

mydomain.conf:

เซิร์ฟเวอร์ {
    ถ้า ($host = www.example.com) {
        ส่งคืน 301 https://$host$request_uri;
    } # จัดการโดย Certbot


    ถ้า ($host = example.com) {
        ส่งคืน 301 https://$host$request_uri;
    } # จัดการโดย Certbot


    ฟัง 80;
    ฟัง [::]:80;
    server_name example.com www.example.com;

      ที่ตั้ง / {
          กลับ 444;
      }

}


เซิร์ฟเวอร์ {
    ฟังเซิร์ฟเวอร์ ip:443 ssl http2;
    ฟัง [เซิร์ฟเวอร์ ip::6]:443 ssl http2;
    รูท /var/www/html/example.com;
    ดัชนี index.html robots.txt;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

    รวม /etc/nginx/templates/misc.tmpl;
    รวม /etc/nginx/templates/php-catchall.tmpl;
    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot

    เปิดโหมดความปลอดภัย;
    modsecurity_rules_file /etc/nginx/modsecurity/modsecurity.conf;

    ที่ตั้ง / {
        try_files $uri $uri/ =404;
    }

        error_page 404 /404/index.html;

}

บางทีฉันอาจไม่เข้าใจแนวคิดของ iredmail ฉันไม่ใช่ผู้ดูแลระบบ redmail Iredmail เป็นวิธีแก้ปัญหาที่ดี แต่บางครั้งก็ใช้ไม่ใช่ profi :) ดังนั้นจึงไม่ส่งคำขอจากผู้ส่งสแปม

ขอบคุณสำหรับความช่วยเหลือของคุณ

โพสต์คำตอบ

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