Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
iptables
adalah alat yang kuat yang digunakan untuk mengkonfigurasi firewall bersepadu kernel Linux. Ia sudah terpasang pada sebilangan besar pengedaran Ubuntu, namun jika anda menggunakan versi Ubuntu yang disesuaikan atau berjalan di dalam bekas, kemungkinan besar anda harus memasangnya secara manual.
sudo apt-get install iptables iptables-persistent
Selepas pemasangan, jika anda ditanya sama ada menyimpan peraturan semasa anda, tidak menjadi masalah buat masa ini kerana anda akan membuang atau membuat peraturan baru nanti.
Anda boleh menggunakan netcat
perintah (pada komputer yang berbeza daripada pelayan anda) untuk menguji port mana yang terbuka atau ditutup.
nc -z -w5 -v SERVER_IP PORT
nc
adalah arahan netcat.-z
hanya hantar sebungkus tanpa muatan.-w5
tunggu sehingga 5 saat untuk mendapatkan tindak balas.-v
mod verbose.SERVER_IP
dengan alamat pelayan anda.PORT
dengan port yang ingin anda uji jika ia terbuka (contohnya 22
).Di pelayan anda, anda boleh menggunakan netstat
perintah untuk melihat port mana yang sedang mendengar sambungan.
sudo netstat -tulpn
Catatan: Walaupun netstat
mudah untuk mencari port yang ingin anda bekerjasama, anda harus mengetahui aplikasi yang anda pasang pada pelayan anda dan port mana yang sedang mendengar, anda tidak perlu membenarkan setiap port yang anda temukan dalam netstat
output .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
tambahkan peraturan ke INPUT
rantai, rantai adalah sekumpulan peraturan, yang paling sering kita gunakan dalam panduan ini adalah INPUT
, OUTPUT
dan PREROUTING
.-p tcp
ditetapkan tcp
sebagai protokol peraturan ini akan berlaku, Anda juga dapat menggunakan protokol lain seperti udp
, icmp
atau all
.-m tcp
gunakan tcp
modul. iptables
menyokong ciri tambahan melalui modul, beberapa di antaranya sudah diprapasang dengan yang iptables
lain, seperti geoip
modul.--dport 22
perintah yang dimulakan dengan --
menunjukkan pilihan tambahan untuk modul yang digunakan sebelumnya, dalam hal ini kita akan memberitahu tcp
modul tersebut hanya berlaku pada port 22
.-m geoip
gunakan geoip
modul. Ini akan mengehadkan paket berdasarkan negara (lebih banyak maklumat pada langkah 5).--src-cc PE
suruh geoip
modul untuk mengehadkan paket masuk kepada yang datang dari Peru. Untuk lebih banyak kod negara cari ISO 3166 country codes
di internet.-j ACCEPT
yang -j
hujah memberitahu iptables
apa yang perlu dilakukan jika paket sepadan dengan kekangan yang dinyatakan dalam hujahan terdahulu. Dalam kes ini ACCEPT
, paket-paket itu, pilihan lain adalah REJECT
, DROP
dan banyak lagi. Anda boleh mencari lebih banyak pilihan dengan mencari iptables jump targets
di internet.Senaraikan semua peraturan.
sudo iptables -L
Senaraikan semua perintah yang digunakan untuk membuat peraturan yang sedang digunakan, berguna untuk mengedit atau menghapus peraturan.
sudo iptables -S
Untuk menghapus peraturan tertentu pilih peraturan dari sudo iptables -S
dan ganti -A
dengan -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Senaraikan semua peraturan bernombor dalam INPUT
rantai.
sudo iptables -L INPUT --line-numbers
Padamkan peraturan bernombor.
sudo iptables -D INPUT 2
Untuk membersihkan semua peraturan.
sudo iptables -F
Amaran: anda mungkin terputus hubungan jika dihubungkan dengan SSH .
Hanya jelas peraturan dalam OUTPUT
rantai.
sudo iptables -F OUTPUT
Benarkan SSH
pada eth0
antara muka
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
gunakan peraturan ke antara muka tertentu, untuk membenarkan dari antara muka mana-mana menghapus perintah ini.Untuk menghadkan paket masuk ke IP tertentu (iaitu 10.0.3.1/32
).
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32
menentukan IP / subnet untuk membenarkan sambungan dari.Tetapkan peraturan rantai lalai.
Amaran: sebelum meneruskan pastikan anda telah menerapkan peraturan SSH yang betul jika bekerja di pelayan jauh .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
menolak semua paket masuk (iaitu tidak ada yang dapat menyambung ke pelayan anda yang sedang berjalan seperti Apache, SQL, dll).-P FORWARD DROP
menolak semua paket yang diteruskan (iaitu ketika anda menggunakan sistem anda sebagai penghala).-P OUTPUT ACCEPT
membenarkan semua paket keluar (iaitu ketika anda melakukan HTTP
permintaan).Benarkan semua lalu lintas pada antara muka loopback ( disyorkan ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Simpan iptables
peraturan semasa .
sudo netfilter-persistent save
sudo netfilter-persistent reload
Sekiranya anda berjalan di dalam bekas, netfilter-persistent
kemungkinan besar arahan tersebut tidak akan berfungsi, jadi anda perlu mengkonfigurasi semula iptables-persistent
pakej.
sudo dpkg-reconfigure iptables-persistent
Benarkan pertanyaan DNS.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Gunakan state
modul untuk membenarkan RELATED
dan ESTABLISHED
keluar paket.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Benarkan port yang diingini; dalam kes ini, HTTP
pelabuhan.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Lebih banyak port yang mungkin anda mahu gunakan.
FTP
: tcp di port 21HTTPS
: tcp di port 443DHCP
: udp di pelabuhan 67NTP
: udp di pelabuhan 123Catatan: Sekiranya anda mahu membenarkan apt-get
, mungkin perlu untuk membenarkan FTP
danHTTPS
.
Benarkan lalu lintas yang dikembalikan hanya untuk RELATED
dan sudah ada ESTABLISHED
sambungan ( disyorkan kerana kadang-kadang diperlukan komunikasi dua arah).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Benarkan permintaan ping dari luar.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Meneruskan lalu lintas di eth0
port 2200
ke 10.0.3.21:22
(berguna jika anda ingin mendedahkan pelayan SSH yang berjalan di dalam bekas).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Sekiranya anda berjaya masuk ke pelayan anda dengan menggunakan SSH, sambungan berterusan akan dibuat (iaitu tidak ada sambungan baru walaupun anda disambungkan selama lebih dari 1 jam). Sekiranya anda gagal dan cuba masuk semula, sambungan baru akan dibuat. Ini akan menyekat percubaan masuk SSH yang berterusan dengan menghadkan sambungan baru setiap jam.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
Ubah semua permintaan pada port 443
ke port 4430
(berguna jika anda mahu mengikat port 443
tanpa root
).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3
antara muka rangkaian.-m geoip
modul blok negara (lihat langkah 5).Amaran: Jangan gunakan lo
, OS akan membuang semua paket yang diarahkan ke antara muka loopback .
xtables-addons
Anda boleh memasang xtables-addons
modul menggunakan pelbagai kaedah, sila gunakan kaedah pemasangan yang paling sesuai untuk anda.
Pasang menggunakan apt-get
.
sudo apt-get install xtables-addons-common
Pasang menggunakan module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Pasang dari sumber.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
Bina pangkalan data "negara".
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
Nyalakan semula sistem anda.
sudo reboot
Setelah xtables-addons
berjaya dipasang, selepas reboot pertama, jalankan depmod
jika sekatan negara tidak akan berfungsi dengan baik (ini hanya diperlukan untuk kali pertama).
sudo depmod
Buat skrip di /etc/cron.monthly/geoip-updater
untuk mengemas kini geoip
pangkalan data setiap bulan.
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
Menjadikan /etc/cron.monthly/geoip-updater
boleh dilaksanakan.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Catatan: Jika anda menerima iptables: No chain/target/match by that name
ralat ketika mencoba menerapkan geoip
peraturan, kemungkinan itu xtables-addons
belum dipasang dengan betul. Cuba kaedah pemasangan lain.
Sekat semua paket masuk dari China, Hong Kong, Rusia dan Korea.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
Benarkan paket masuk di pelabuhan 80
dari mana-mana sahaja kecuali negara-negara di atas.
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Benarkan paket masuk di ens3
antara muka di port 22
hanya dari Peru (jangan ragu untuk memilih kod negara yang anda mahu terima dari paket, misalnya, US
untuk Amerika Syarikat).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
Benarkan paket masuk di pelabuhan 443
hanya dari Peru.
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
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