Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pelayan VPS sering menjadi sasaran pengganggu. Jenis serangan yang biasa muncul dalam log sistem kerana beratus-ratus percubaan masuk ssh yang tidak dibenarkan. Menyiapkan firewall sangat berguna, tetapi dengan sendirinya mungkin tidak dapat mengawal cubaan pencerobohan yang mengganggu.
Tutorial ini menunjukkan cara membina penghalang pencerobohan yang ditingkatkan untuk FreeBSD menggunakan dua program, ipfw
firewall dan sshguard
. SSHGuard adalah program tambahan kecil yang memantau log sistem untuk entri "kasar". Apabila pesalah cuba mendapatkan akses, sshguard
memerintahkan ipfw
untuk menyekat lalu lintas yang berasal dari alamat IP pelanggar. Pesalah kemudian ditutup dengan berkesan.
Setelah difahami bagaimana program ini berfungsi, menguruskan perlindungan pelayan cukup mudah. Walaupun panduan ini difokuskan untuk mengkonfigurasi FreeBSD, sebahagiannya digunakan untuk perisian OS dan firewall yang lain.
FreeBSD menyediakan 3 firewall pada GENERIC
kernel, ( ipfw
,) pf
, dan ipfilter
. Masing-masing mempunyai kelebihan dan peminat, tetapi ipfw
perisian firewall asli FBSD dan cukup mudah digunakan untuk tujuan kami. Perlu diperhatikan bahawa ipfw
melakukan banyak perkara seperti yang ditunjukkan oleh halaman manualnya, namun keupayaan seperti NAT, pembentukan lalu lintas, dan lain-lain, tidak diperlukan untuk situasi VPS yang biasa. Nasib baik, ciri asas firewall dengan mudah memenuhi keperluan kami.
Untuk memulakan firewall pada masa boot, tambahkan yang berikut ke /etc/rc.conf
:
firewall_enable="YES"
firewall_script="/usr/local/etc/IPFW.rules"
firewall_logging="YES"
The service
arahan boleh didapati untuk memulakan / menghentikan firewall secara manual:
[user@vultr ~]$ sudo service ipfw start
Secara semula jadi, ipfw
tidak akan melakukan apa-apa sehingga menambah peraturan, selalunya dari fail, dalam contoh ini yang terletak di /usr/local/etc/IPFW.rules
. Fail peraturan sebenarnya dapat terletak di mana saja atau memiliki nama apa pun, asalkan sesuai dengan parameter "firewall_script". Fail peraturan dijelaskan secara terperinci di bawah.
sshguard
terdapat dalam beberapa perisa untuk digunakan dengan firewall yang berbeza. Gunakan pkg
utiliti untuk mengambil dan memasang sshguard-ipfw
:
[user@vultr ~]$ sudo pkg install sshguard-ipfw
Dalam kebanyakan kes, semua itu perlu dilakukan. Pemboleh ubah yang sesuai dimasukkan secara automatik /etc/rc.conf
untuk memulakan boot up:
sshguard_enable="YES"
Lalai biasanya berfungsi dengan baik. Sekiranya nilai yang berbeza diperlukan, sshguard
halaman manual memberikan maklumat terperinci mengenai parameter:
# sshguard--program defaults, so don't need to be in rc.conf unless assigning different value
# sshguard_pidfile="/var/run/sshguard.pid"
# sshguard_watch_logs="/var/log/auth.log:/var/log/mail"
# sshguard_blacklist="40:/var/db/sshguard/blacklist.db"
# sshguard_safety_thresh="40"
# sshguard_pardon_min_interval="420"
# sshguard_prescribe_interval="1200"
Anda boleh memulakan sshguard
dengan service
permintaan biasa :
[user@vultr ~]$ sudo service sshguard start
Bahagian yang paling sukar ialah membuat peraturan peraturan firewall. ipfw
dapat menggunakan /etc/rc.firewall
skrip yang disediakan , tetapi harus dimodifikasi untuk mengakomodasi SSHGuard, serta senario operasi yang berbeza. Sejumlah halaman web dan Panduan FreeBSD mempunyai maklumat berguna untuk melakukan ini. Walau bagaimanapun, menulis fail peraturan tidak begitu sukar, selain itu, set peraturan khusus dapat lebih mudah difahami dan diubah bila perlu.
Ciri penting ipfw
peraturan adalah bahawa perlawanan pertama menang yang bermaksud urutan peraturan adalah penting. Dalam ipfw
, setiap aturan adalah perintah, dan file aturan adalah skrip shell yang dapat dijalankan. Yang memungkinkan kumpulan peraturan diubah dengan mengubah peraturan kemudian menjalankan file aturan sebagai skrip shell:
[user@vultr /usr/local/etc]$ sudo ./IPFW.rules
Secara umum, file aturan akan menentukan variabel untuk ipfw
perintah, kemudian membersihkan peraturan saat ini, mengeluarkan peraturan umum, kemudian lanjutkan untuk menetapkan peraturan "keluar", diikuti dengan aturan "dalam". Halaman manual ipfw dan sumber lain mengandungi banyak maklumat mengenai struktur peraturan dan pilihan yang paling sedikit.
Sejak versi sshguard FreeBSD telah dikemas kini ke versi 1.6.2, kaedah memasukkan peraturan menyekat untuk pesalah telah berubah. Sekarang alamat pesalah disimpan dalam jadual ipfw (jadual 22 menjadi spesifik), daripada dimasukkan ke dalam peraturan di atas 55000 seperti sebelumnya.
Nasib baik, cukup mudah untuk menyediakan fail peraturan untuk menggunakan jadual. Ini hanya masalah meletakkan peraturan jadual di tempat yang betul, dan memastikan untuk menggunakan sintaks yang betul semasa menulis peraturan.
Apabila sshguard
menjumpai pelaku, ia memasukkan alamat pesalah ke dalam senarai hitamnya, dan juga memasukkan alamat tersebut ke dalam ipfw
jadual sehingga akan "mencetuskan" penolakan akses. Peraturan ini akan memenuhi tujuan ini:
01000 deny ip from table\(22\) to any
Masih perlu untuk meletakkan peraturan yang membenarkan perkhidmatan masuk melebihi 01000 dalam kes ini. Sebagai contoh, katakan alamat 10.20.30.40
adalah pesalah dalam jadual 22, dan kita mempunyai peraturan ipfw ini:
56420 allow tcp from any to me dst-port 22 in via $vif
Sejak ipfw
pertemuan memerintah 01000 sebelum peraturan 56.420 , 10.20.30.40
adalah disekat . Sama sekali tidak akan dapat dilihat oleh peraturan "allow 22 in". Sekiranya peraturan membenarkan mempunyai nombor "biasa" seperti 00420 , lalu lintas yang buruk akan dilepaskan dan tidak akan disekat (kerana 00420 kurang dari 01000 dan "kemenangan pertandingan pertama").
Ciri bagus dari versi yang dikemas kini ialah sekarang apabila sshguard memulakan semua alamat dalam senarai hitam ditambahkan ke meja dan tersedia untuk menyekat pesalah masuk tanpa berlengah. Senarai hitam adalah kumulatif dan disimpan antara sesi.
Pada ketika ini mungkin masuk akal untuk menunjukkan ipfw
set peraturan lengkap yang diubah suai sshguard
. Komen itu semestinya cukup mudah untuk mengikuti logika peraturan:
#!/bin/sh
# ipfw config/rules
# from FBSD Handbook, rc.firewall, et. al.
# Flush all rules before we begin.
ipfw -q -f flush
# Set rules command prefix
cmd="ipfw -q add "
vif="vtnet0"
# allow all for localhost
$cmd 00010 allow ip from any to any via lo0
# checks stateful rules. If marked as "keep-state" the packet has
# already passed through filters and is "OK" without futher
# rule matching
$cmd 00101 check-state
# allow DNS out
$cmd 00110 allow tcp from me to any dst-port 53 out via $vif setup keep-state
$cmd 00111 allow udp from me to any dst-port 53 out via $vif keep-state
# allow dhclient connection out (port numbers are important)
$cmd 00120 allow udp from me 68 to any dst-port 67 out via $vif keep-state
# allow HTTP HTTPS replies
$cmd 00200 allow tcp from any to any dst-port 80 out via $vif setup keep-state
$cmd 00220 allow tcp from any to any dst-port 443 out via $vif setup keep-state
# allow outbound mail
$cmd 00230 allow tcp from any to any dst-port 25 out via $vif setup keep-state
$cmd 00231 allow tcp from any to any dst-port 465 out via $vif setup keep-state
$cmd 00232 allow tcp from any to any dst-port 587 out via $vif setup keep-state
# allow icmp re: ping, et. al.
# comment this out to disable ping, et.al.
$cmd 00250 allow icmp from any to any out via $vif keep-state
# alllow timeserver out
$cmd 00260 allow tcp from any to any dst-port 37 out via $vif setup keep-state
# allow ntp out
$cmd 00270 allow udp from any to any dst-port 123 out via $vif keep-state
# allow outbound SSH traffic
$cmd 00280 allow tcp from any to any dst-port 22 out via $vif setup keep-state
# otherwise deny outbound packets
# outbound catchall.
$cmd 00299 deny log ip from any to any out via $vif
# inbound rules
# deny inbound traffic to restricted addresses
$cmd 00300 deny ip from 192.168.0.0/16 to any in via $vif
$cmd 00301 deny ip from 172.16.0.0/12 to any in via $vif
$cmd 00302 deny ip from 10.0.0.0/8 to any in via $vif
$cmd 00303 deny ip from 127.0.0.0/8 to any in via $vif
$cmd 00304 deny ip from 0.0.0.0/8 to any in via $vif
$cmd 00305 deny ip from 169.254.0.0/16 to any in via $vif
$cmd 00306 deny ip from 192.0.2.0/24 to any in via $vif
$cmd 00307 deny ip from 204.152.64.0/23 to any in via $vif
$cmd 00308 deny ip from 224.0.0.0/3 to any in via $vif
# deny inbound packets on these ports
# auth 113, netbios (services) 137/138/139, hosts-nameserver 81
$cmd 00315 deny tcp from any to any dst-port 113 in via $vif
$cmd 00320 deny tcp from any to any dst-port 137 in via $vif
$cmd 00321 deny tcp from any to any dst-port 138 in via $vif
$cmd 00322 deny tcp from any to any dst-port 139 in via $vif
$cmd 00323 deny tcp from any to any dst-port 81 in via $vif
# deny partial packets
$cmd 00330 deny ip from any to any frag in via $vif
$cmd 00332 deny tcp from any to any established in via $vif
# allowing icmp re: ping, etc.
$cmd 00310 allow icmp from any to any in via $vif
# allowing inbound mail, dhcp, http, https
$cmd 00350 allow udp from any 53 to me in via $vif
$cmd 00360 allow tcp from any 53 to me in via $vif
$cmd 00370 allow udp from any 67 to me dst-port 68 in via $vif keep-state
$cmd 00400 allow tcp from any to me dst-port 80 in via $vif setup limit src-addr 2
$cmd 00410 allow tcp from any to me dst-port 443 in via $vif setup limit src-addr 2
# SSHguard puts offender addresses in table 22. Set up the table rule
# Please note the '\(22\)' syntax, necessary since it's run as shell command
$cmd 01000 deny ip from table\(22\) to any
# allow inbound ssh, mail. PROTECTED SERVICES: numbered ABOVE sshguard blacklist range
$cmd 56420 allow tcp from any to me dst-port 22 in via $vif setup limit src-addr 2
$cmd 56530 allow tcp from any to any dst-port 25 in via $vif setup keep-state
$cmd 56531 allow tcp from any to any dst-port 465 in via $vif setup keep-state
$cmd 56532 allow tcp from any to any dst-port 587 in via $vif setup keep-state
# deny everything else, and log it
# inbound catchall
$cmd 56599 deny log ip from any to any in via $vif
# ipfw built-in default, don't uncomment
# $cmd 65535 deny ip from any to any
Keperluan sistem berbeza-beza dan pilihan pelabuhan yang berbeza untuk disekat atau dibebaskan ditunjukkan dalam peraturan. Setelah peraturan selesai, simpan fail ke /usr/local/etc/IPFW.rules
, dan mulakan perkhidmatan FBSD:
# service ipfw start
# service sshguard start
Firewall tambahan kini harus berjalan! Periksa sshguard
:
[user@vultr ~]$ sudo pgrep -lfa ssh
Sekiranya sshguard
berjalan, baris perintah pid dan penuhnya akan dipaparkan:
720 /usr/local/sbin/sshguard -b 40:/var/db/sshguard/blacklist.db -l /var/log/auth.log -l /var/log/maillog -a 40 -p 420 -s 1200 -w /usr/local/etc/sshguard.whitelist -i /var/run/sshguard.pid
Ini menunjukkan kumpulan peraturan firewall dengan statistik dan kali terakhir paket sesuai dengan peraturan:
[user@vultr ~]$ sudo ipfw -cat list
Selepas berjam-jam atau hari, alamat pesalah ditambahkan ke senarai hitam dan juga jadual 22. Untuk melihat semua alamat dalam jadual, gunakan arahan ini:
ipfw table 22 list
Hasilnya dicetak sebagai:
10.10.10.118/32 0
10.10.10.72/32 0
...
Seperti yang dijelaskan di atas, sambungan dari alamat ini tidak diizinkan. Sudah tentu, pada pertama kali berjalan sshguard
tidak akan ada alamat dalam senarai, tetapi lama-kelamaan ia akan menjadi agak panjang. Salah satu pilihan adalah membuat peraturan penyekat yang berasingan untuk alamat dengan banyak entri dalam jadual dan kemudian menghapusnya dari senarai hitam.
Sebaiknya periksa log sesekali untuk memastikan gangguan dikawal. Secara amnya, /var/log/auth.log
dan /var/log/security
bersifat maklumat. Jurang atau kesalahan dalam meliputi perkhidmatan rangkaian mungkin menjadi jelas. Mengubah set peraturan firewall mengikut keperluan adalah bahagian biasa dalam pentadbiran pelayan.
Dalam versi sshguard sebelumnya, ketika /var/db/sshguard/blacklist.db
file telah berkembang besar, ia dapat mencegah sshguard
dari memulai boot sistem. Membuang atau menamakan semula fail senarai hitam yang dibenarkan sshguard
bermula. Masalah ini nampaknya diperbaiki dalam versi sshguard terkini, jadi penyelesaian ini mungkin tidak diperlukan lagi.
Pastikan untuk menyenaraikan Alamat IP dari mana anda disambungkan ke Sesi SSH. Sekiranya anda mengunci diri secara tidak sengaja, anda sentiasa boleh menyambung ke Konsol noVNC di https://my.vultr.com dan memasukkan IP anda ke dalam senarai putih.
Menyimpulkan, menggunakan kombinasi ipfw
dan sshguard
membantu menjaga sistem FreeBSD anda selamat dan menjalankan tugasnya. Meminimumkan aktiviti rangkaian mengganggu mempunyai faedah tambahan: kurang "bising" menjadikannya lebih mudah untuk mengesan dan menyesuaikan operasi sistem, menyumbang kepada pelayan yang lebih selamat dan berfungsi dengan lebih baik.
Melindungi sistem / pelayan FreeBSD secara berkesan tidak terlalu rumit. Walaupun usaha sederhana diperlukan untuk membuatnya berjalan, ia akan menghasilkan VPS dan keselamatan projek yang jauh lebih besar.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut