Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Tutorial ini menunjukkan server email berfitur lengkap yang berjalan di OpenBSD menggunakan OpenSMTPD, Dovecot, Rspamd, dan RainLoop. OpenSMTPD adalah server email default untuk OpenBSD. Pilih instance Vultr Compute Cloud dengan banyak penyimpanan untuk jumlah pengguna yang diharapkan.
Siapkan akun pengguna Anda untuk melakukan tugas sebagai root.
su -
usermod -G wheel <username>
echo "permit nopass keepenv :wheel" > /etc/doas.conf
exit
Siapkan repositori paket untuk OpenBSD.
doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit
Tambahkan paket yang diperlukan.
doas pkg_add opensmtpd-extras opensmtpd-filter-rspamd dovecot dovecot-pigeonhole rspamd redis
Secara default, OpenSMTPD hanya mendengarkan di localhost. Itu harus dikonfigurasi secara eksplisit untuk mendengarkan pada antarmuka eksternal. Ini harus dikonfigurasi untuk menggunakan pengguna virtual, bukan pengguna sistem untuk keamanan.
Cadangkan /etc/smtpd.conf
file default dan buat yang baru dari awal.
cd /etc/mail
mv smtpd.conf smtpd.conf.default
Buat yang baru smtpd.conf
seperti yang ditunjukkan di bawah ini. Ganti example.com
dengan domain Anda. Konfigurasi awal ini tidak mengaktifkan filter rspamd saat menguji OpenSMTP. Filter spam akan diaktifkan nanti.
pki "mail" cert "/etc/ssl/mail.crt"
pki "mail" key "/etc/ssl/private/mail.key"
table aliases file:/etc/mail/aliases
table credentials passwd:/etc/mail/credentials
table virtuals file:/etc/mail/virtuals
filter "rspamd" proc-exec "/usr/local/libexec/smtpd/filter-rspamd"
# To accept external mail, replace with: listen on all
# listen on all tls pki "mail" hostname "mail.example.com"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
auth <credentials>
action "local_mail" mbox alias <aliases>
action "domain_mail" maildir "/var/vmail/example.com/%{dest.user}" \
virtual <virtuals>
action "outbound" relay
# Uncomment the following to accept external mail for domain "example.org"
# match from any for domain "example.com" action "domain_mail"
match from local for local action "local_mail"
match from local for any action "outbound"
match auth from any for any action "outbound"
OpenSMTPD dan Dovecot dapat berbagi database otentikasi. Basis data ini menyerupai file kata sandi sistem dalam format, dengan dua bidang tambahan untuk Dovecot. Dua bidang khusus menentukan direktori home virtual dan lokasi email. Kata sandi dalam format blowfish. Tutorial ini menciptakan tiga contoh pengguna.
Buat kata sandi dan gabungkan ke /etc/mail/credentials
file.
doas su
smtpctl encrypt example_password1 >> /etc/mail/credentials
smtpctl encrypt example_password2 >> /etc/mail/credentials
smtpctl encrypt example_password3 >> /etc/mail/credentials
exit
Outputnya mirip dengan ini:
$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6
$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e
$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq
Edit /etc/mail/credentials
untuk menambahkan bidang yang diperlukan. Setiap baris memetakan ke akun sistem, vmail , dengan UID dan GID 2000 . Ganti example.com dengan domain Anda. Nama pengguna virtual adalah alamat email lengkap.
[email protected]:$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6:vmail:2000:2000:/var/vmail/example.com/john::userdb_mail=maildir:/var/vmail/example.com/john
[email protected]:$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e:vmail:2000:2000:/var/vmail/example.com/adam::userdb_mail=maildir:/var/vmail/example.com/adam
[email protected]:$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq:vmail:2000:2000:/var/vmail/example.com/natalie::userdb_mail=maildir:/var/vmail/example.com/natalie
/etc/mail/credentials
izin untuk hanya-baca untuk _smtpd
dan _dovecot
pengguna sistem.Buat vmail
pengguna sistem, grup, dan direktori home.
Bila Anda membuat sistem vmail pengguna, Anda akan menerima peringatan berikut: useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified
. Ini diharapkan. Ini menghindari kekacauan direktori dengan file dot dari /etc/skel
. Mereka tidak diperlukan karena akun vmail tidak mengizinkan masuk.
doas chmod 0440 / etc / mail / kredensial doas chown smtpd: dovecot / etc / mail / kredensial doas useradd -c "Virtual Mail Account" -d / var / vmail -s / sbin nologin -u 2000 -g = uid -L staf vmail doas mkdir / var / vmail doas chown vmail: vmail / var / vmail
Buat /etc/mail/virtuals
untuk menentukan alamat email yang valid.
/var/vmail/example.com/<user>
.Pengiriman email yang dicoba untuk alamat yang tidak didefinisikan dalam file ini akan dipantulkan dengan Pemberitahuan Status Pengiriman.
[email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: [email protected] [email protected]: vmail [email protected]: vmail [email protected]: vmail
Contoh ini menggunakan sertifikat yang ditandatangani sendiri. Gunakan sertifikat yang ditandatangani yang valid jika Anda memilikinya. Ketika diminta untuk nama umum, pastikan itu cocok dengan FQDN server. Contoh ini menggunakan mail.example.com.
doas su
cd /etc/ssl
openssl genrsa -out private/mail.key 4096
openssl req -x509 -new -nodes -key private/mail.key -out mail.crt -days 3650 -sha256
chmod 0400 /etc/ssl/private/mail.key
exit
Gunakan pemeriksa sintaksis konfigurasi OpenSMTPD. Jika tidak ada masalah yang ditemukan, restart daemon smtpd.
doas smtpd -n
doas rcctl restart smtpd
Dari akun email luar, kirim email percobaan ke salah satu pengguna.
/var/vmail
dan mengirimkan email ke /var/vmail/example.com/<username>/new
.1576339842.4d64757b.example.com:2,
.Tinjau isi file, termasuk semua header surat, untuk memverifikasi pengiriman email berfungsi dengan baik.
Return-Path: <n0244e80da3-54b1ed125c5342fc-adam===example.org@bounce.example.org>
Delivered-To: [email protected]
Received: from spruce-goose-ba.twitter.com (spruce-goose-ba.twitter.com [199.59.150.96])
by mail.example.com (OpenSMTPD) with ESMTPS id 75b514d3 (TLSv1.2:ECDHE-RSA-AES256-GCM- SHA384:256:NO)
for <[email protected]>;
Sat, 14 Dec 2019 11:10:40 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
s=dkim-201406; t=1576339839;
bh=jhKB5/w9v87GaXSuizT576ntJ/72gvLRDhsqmGQQrCE=;
h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
Message-ID;
b=TWn/QVUJ1VDlWiweWoanwHLABCL1nqmm0+TBzh3PjmYNm0quRMXB7QL2ykzHGME5A
DTz/JFHa0cOvQsrdhxxbjOLFKimK0nF+Ou5kI+2HzTzfVNZS0qGnTVP/tZyaIsWjjl
an5EiR6HFOHG4iClOOEOJW4oLDEZfPTefrlW+378bmHGIRUNDvVKrbXKunL9fJFAb3
JSrhWQNwbrF/aARFzw4nKfb1I7vTRSrN1eXE5JxzGwI2XAjqDIWdR5ExwUNbJH5ZPs
wQ85j8KLZEEgQkbH9CypgeUMJWsVK95FqOCCaqKMS10M7intGMb3aeiiFcB7yDHi9t
u7rVESm4eGp/g==
X-MSFBL: DM7pSZns+YDRgNEmGNre9aPjZTtc1tDlN97w5rQDBts=|eyJ1IjoibWF0dEBnb2J
sYWNrY2F0LmNvbUBpaWQjIzU0YjFlZDEyNWM1MzQyZmNiNThiMzVmNzI0NDZlMGF
mQHVzYiMjNkAyNDRAMTA4MjgwNTAxMDYzNzk1MDk3NkAwQDA4MjY5ZWI4OTI3YzR
kNTFiNTZkMjY3YzY2OGRmN2IwY2Y4M2ExZGIiLCJyIjoibWF0dEBnb2JsYWNrY2F
0LmNvbSIsImciOiJCdWxrIiwiYiI6InNtZjEtYmd4LTM0LXNyMS1CdWxrLjE4NiJ
9
Date: Sat, 14 Dec 2019 16:10:39 +0000
...
Dovecot membutuhkan kemampuan untuk memiliki jumlah file yang lebih besar terbuka untuk membaca dan menulis daripada kelas standar memungkinkan. Gagal melakukan ini akan menyebabkan kesalahan yang sulit dipecahkan.
Tentukan kelas login untuk daemon Dovecot. Di bagian bawah /etc/login.conf
tambahkan baris berikut.
dovecot:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Buat /etc/dovecot/local.conf
.
auth_mechanisms = plain
first_valid_uid = 2000
first_valid_gid = 2000
mail_location = maildir:/var/vmail/%d/%n
mail_plugin_dir = /usr/local/lib/dovecot
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = subscribe
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=CRYPT username_format=%u /etc/mail/credentials
driver = passwd-file
name =
}
plugin {
imapsieve_mailbox1_before = file:/usr/local/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Junk
imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_name = *
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap sieve
service imap-login {
inet_listener imaps {
port = 0
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
inet_listener sieve_deprecated {
port = 2000
}
}
ssl_cert = </etc/ssl/mail.crt
ssl_key = </etc/ssl/private/mail.key
userdb {
args = username_format=%u /etc/mail/credentials
driver = passwd-file
name =
}
protocol imap {
mail_plugins = " imap_sieve"
}
Ada bug di Dovecot di mana ssl_cert
dan ssl_key
pengaturan tidak mendapatkan ditimpa dalam local.conf
berkas sehingga kita harus komentar mereka. Jika Anda melewatkan langkah ini, Dovecot akan gagal memulai dengan benar.
Edit /etc/dovecot/conf.d/10-ssl.conf
seperti yang ditunjukkan.
...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/dovecotcert.pem
#ssl_key = </etc/ssl/private/dovecot.pem
...
Saringan skrip melatih Rspamd tentang spam dan ham . Memindahkan email masuk dan keluar dari folder sampah memicu acara untuk melatih Rspamd.
File-file ini terletak di /usr/local/lib/dovecot/sieve
.
Buat report-ham.sieve
file.
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
if environment :matches "imap.mailbox" "*" {
set "mailbox" "${1}";
}
if string "${mailbox}" "Trash" {
stop;
}
if environment :matches "imap.user" "*" {
set "username" "${1}";
}
pipe :copy "sa-learn-ham.sh" [ "${username}" ];
Buat report-spam.sieve
file.
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
if environment :matches "imap.user" "*" {
set "username" "${1}";
}
pipe :copy "sa-learn-spam.sh" [ "${username}" ];
Kompilasi file.
sievec report-ham.sieve
sievec report-spam.sieve
Buat dua skrip shell berikut di /usr/local/lib/dovecot/sieve
Tambahkan yang berikut ke sa-learn-ham.sh
#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_ham
Tambahkan yang berikut ke sa-learn-spam.sh
#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_spam
Jadikan file dapat dieksekusi.
chmod 0755 sa-learn-ham.sh
chmod 0755 sa-learn-spam.sh
Aktifkan dan mulai Dovecot.
rcctl enable dovecot
rcctl start dovecot
Periksa apakah Dovecot dimulai dengan benar.
ps ax | grep dovecot
88005 ?? I 0:00.11 /usr/local/sbin/dovecot
69640 ?? I 0:00.03 dovecot/anvil
91207 ?? I 0:00.03 dovecot/log
98178 ?? I 0:00.19 dovecot/config
34712 ?? I 0:00.06 dovecot/stats
96674 ?? I 0:00.03 dovecot/imap-login
8891 ?? S 0:00.02 dovecot/imap
Verifikasi Dovecot dapat membaca dengan benar /etc/mail/credentials
doveadm user [email protected]
field value
uid 2000
gid 2000
home /var/vmail/example.com/john
mail maildir:/var/vmail/example.com/john
Verifikasi bahwa pengguna surat dapat masuk.
doveadm auth login [email protected]
Password: ********
passdb: [email protected] auth succeeded
extra fields:
[email protected]
userdb extra fields:
[email protected]
mail=maildir:/var/vmail/example.com/john
uid=2000
gid=2000
home=/var/vmail/example.com/john
auth_mech=PLAIN
Ini adalah konfigurasi Rspamd dasar, lihat dokumentasi resmi untuk lebih jelasnya. Contoh ini membuat definisi untuk domain kami untuk mengaktifkan penandatanganan DKIM.
Buat keypair publik / pribadi /etc/mail/dkim
dan atur izin yang benar.
doas su
mkdir /etc/mail/dkim
cd /etc/mail/dkim
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
chmod 0440 private.key
chown root:_rspamd private.key
Buat data DNS untuk DKIM yang berisi kunci publik. Lihat penyedia DNS Anda untuk perincian tentang cara membuat catatan DKIM. Salin konten dari /etc/mail/dkim/public.key
dan tempel setelah p=
bagian catatan DKIM seperti yang ditunjukkan di bawah ini. Perhatikan contoh ini juga membuat catatan SPF.
default._domainkey.example.com. IN TXT "v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClcuK3FV3Ug64li8iFsuJ2ykgb7FMZsujk9uG79ppPUp57vCfjzO7F+HBfx5qIwvlGxv2IJXK86FZwhpUX+HFCDUtfB2z0ZNGerWcZfNzM1w1Bru/fdMd2tCYkiHEa5RWIkLfs/Fm+neXxRZfAG2UDWmAghNbgzYv7xViwgufDIQIDAQAB"
example.com. IN TXT "v=spf1 a ip4:192.0.2.1 mx ~all"
Buat catatan DMARC.
_dmarc.example.com. IN TXT "v=DMARC1;p=none;pct=100;rua=mailto:[email protected]"
Buat /etc/rspamd/local.d/dkim_signing.conf
file konfigurasi.
The selector="default";
garis berasal dari bagian pertama dari catatan DKIM DNS ( default._domainkey....
) dibuat di atas.
domain {
example.com {
path = "/etc/mail/dkim/example.com.key";
selector = "default";
}
}
Aktifkan dan mulai Rspamd.
doas rcctl enable redis rspamd
doas rcctl start redis rspamd
Ubah baris di bawah ini /etc/mail/smtpd.conf
dan mulai ulang OpenSMTPD untuk mengaktifkan Rspamd.
...
listen on all tls pki "mail" hostname "mail.example.com" filter "rspamd"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
auth <credentials> filter "rspamd"
...
rcctl restart smtpd
Uji server email dengan klien email POP3 atau IMAP. Jika Anda tidak memerlukan webmail, berhenti di sini.
Saat diminta, silakan pilih versi PHP terbaru.
pkg_add php php-curl php-pdo_sqlite php-zip pecl73-mcrypt zip unzip wget curl
Ambil tarbal webmail RainLoop dan ekstrak ke /var/www/htdocs/
.
Gunakan Edisi Standar yang mencakup pembaruan otomatis.
cd /tmp
wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip -d /var/www/htdocs/rainloop
chown -R www:www /var/www/htdocs
/etc/examples/acme-client.conf
ke/etc
Tambahkan baris berikut di bagian bawah file:
domain webmail.example.com {
domain key "/etc/ssl/private/webmail.example.com.key"
domain full chain certificate "/etc/ssl/webmail.example.com.crt"
sign with letsencrypt
}
webmail.example.com
Edit /etc/httpd.conf
mengikuti contoh di bawah ini.
prefork 3
types { include "/usr/share/misc/mime.types" }
server "default" {
listen on egress port 80
root "/htdocs"
directory index index.html
location "/.well-known/acme-challenge/*" {
root "/acme"
request strip 2
}
}
Jalankan pemeriksaan sintaksis httpd.
httpd -n
Aktifkan dan mulai httpd.
rcctl enable httpd
rcctl start httpd
Minta sertifikat Let's Encrypt.
acme-client -v webmail.example.com
Tambahkan definisi server untuk RainLoop ke /etc/httpd.conf
server "webmail.example.com" {
listen on egress port 80
block return 302 "https://$SERVER_NAME$REQUEST_URI"
}
server "webmail.example.com" {
listen on egress tls port 443
root "/htdocs/rainloop"
directory index "index.php"
tcp { nodelay, backlog 10 }
tls {
certificate "/etc/ssl/webmail.example.com.crt"
key "/etc/ssl/private/webmail.example.com.key"
}
hsts {
max-age 31556952
preload
}
# Value below is 25MB in bytes. 1MB = 1048576 bytes
connection max request body 26214400
location "/data*" {
block return 403
}
location "*.php*" {
fastcgi socket "/run/php-fpm.sock"
}
}
Konfigurasikan PHP untuk memungkinkan lampiran hingga 25 megabita. Buat perubahan berikut di /etc/php-7.3.ini
:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 25M
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 29M
Aktifkan modul PHP yang diperlukan dengan menyalin file konfigurasinya /etc/php-7.3/
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Periksa sintaks /etc/httpd.conf
httpd -n
Aktifkan dan mulai httpd dan php-fpm.
rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm
Telusuri ke https://webmail.example.com/?admin
.
Nama pengguna default adalah: admin
Sandi default adalah: 12345 .
Telusuri ke masing-masing bagian konfigurasi dan buat perubahan yang Anda inginkan. Setelah Anda selesai dengan konfigurasi, masuk ke webmail dihttps://webmail.example.com
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.
Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.
Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.
CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?
Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.
Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!
Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.
Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut