Mengapa saya perlu firewall jika server saya terkonfigurasi dengan baik?


59

Saya admin beberapa server berbasis cloud (VPS) untuk perusahaan tempat saya bekerja.

Server adalah instalasi minimal ubuntu yang menjalankan bit tumpukan LAMP / pengumpulan data masuk (rsync). Data tersebut besar tetapi tidak pribadi, finansial atau semacamnya (yaitu tidak terlalu menarik)

Jelas di sini orang-orang selamanya bertanya tentang mengkonfigurasi firewall dan sejenisnya.

Saya menggunakan banyak pendekatan untuk mengamankan server, misalnya (tetapi tidak terbatas pada)

  • ssh pada port non standar; tidak ada pengetikan kata sandi, hanya kunci ssh yang diketahui dari ips yang diketahui untuk masuk dll
  • https, dan cangkang terbatas (rssh) umumnya hanya dari kunci / ips yang dikenal
  • server minimal, terkini dan ditambal secara teratur
  • gunakan hal-hal seperti rkhunter, cfengine, lynis denyhosts dll untuk pemantauan

Saya memiliki pengalaman luas admin unix sys. Saya yakin saya tahu apa yang saya lakukan di setup saya. Saya mengkonfigurasi / etc file. Saya tidak pernah merasakan kebutuhan mendesak untuk menginstal hal-hal seperti firewall: iptables dll.

Singkirkan sejenak masalah keamanan fisik VPS.

Q Saya tidak dapat memutuskan apakah saya naif atau perlindungan tambahan yang ditawarkan oleh fw layak untuk dipelajari / diinstal dan kompleksitas tambahan (paket, file konfigurasi, kemungkinan dukungan, dll) di server.

Sampai saat ini (menyentuh kayu) Saya tidak pernah memiliki masalah dengan keamanan tetapi saya juga tidak puas dengan hal itu.



Anda harus mencoba di security.stackexchange.com
AviD

6
Berikan saya alamat IP Anda dan saya akan tunjukkan mengapa Anda membutuhkan firewall.
GregD

Jawaban:


87

Saya perhatikan bahwa Anda telah melakukan pekerjaan yang hebat dengan mengikat beberapa daemon yang berbeda, dan dari apa yang Anda katakan, saya pikir tidak mungkin Anda membuat diri Anda mengalami masalah melalui layanan yang telah Anda dapatkan. Ini masih membuat Anda dalam keadaan "semuanya diizinkan kecuali yang telah saya larang", dan Anda tidak dapat keluar dari keadaan itu dengan memburu daemon demi daemon dan mengamankannya satu per satu.

Firewall yang dikonfigurasikan untuk MENYANGKAL APA SAJA APAPUN secara default menggerakkan Anda ke mode operasi "semuanya dilarang kecuali yang diizinkan", dan selama bertahun-tahun saya telah menemukan bahwa mereka lebih baik.

Saat ini, mengingat pengguna yang sah dengan shell yang sah pada sistem Anda, ia dapat memutuskan untuk menjalankan beberapa daemon lokal yang tidak terjangkau untuk mem-proxy-kan permintaan web untuk internet, atau memulai berbagi file di port 4662, atau secara tidak sengaja membuka pendengar dengan menggunakan -g dengan tunneling port ssh, tidak mengerti apa fungsinya; atau instalasi sendmail dapat membuat Anda menjalankan MUA pada port 587 yang tidak terkonfigurasi dengan benar terlepas dari semua pekerjaan yang telah Anda lakukan untuk mengamankan sendail MTA pada port 25; atau seratus satu hal dapat terjadi yang memintas keamanan Anda yang hati-hati dan penuh perhatian hanya karena mereka tidak ada ketika Anda berpikir dengan hati-hati tentang apa yang harus dilarang.

Apakah Anda mengerti maksud saya? Saat ini, Anda telah berupaya keras untuk mengamankan semua hal yang Anda ketahui, dan sepertinya mereka tidak akan menggigit Anda. Yang mungkin menggigit Anda adalah hal-hal yang tidak Anda ketahui, atau bahkan tidak ada di sana, saat ini.

Firewall yang defaultnya untuk MENYANGKAL APA SAJA adalah cara sysadmin untuk mengatakan bahwa jika sesuatu yang baru datang dan membuka pendengar jaringan di server ini, tidak ada yang akan dapat berbicara dengannya sampai saya telah memberikan izin eksplisit .


Itu jawaban yang sangat mendalam, terutama teks tentang membalik dari "semuanya diizinkan ..." ke "semuanya dilarang ..." Poin Anda juga dibuat tentang daemon lokal. Seperti yang sering terjadi - saya yakin Anda akan setuju - bahayanya sering di "dalam"
Aitch

12
(Aitch, jika saya bisa berasumsi sedikit, profil Anda menunjukkan bahwa Anda baru di serverfault. Etiket lokal adalah bahwa ketika Anda senang dengan jawaban, Anda menerimanya, dengan mengklik pada garis centang centang, jika ingatanku; yang menggerakkan sistem reputasi. Tentu saja, jika Anda sudah mengetahui hal ini, atau Anda menunggu untuk melihat apakah jawaban lain, lebih baik, muncul, maka itu juga sangat benar dan tepat, dan tolong abaikan saya. Komunitas hanya meminta satu kali Anda sepenuhnya puas dengan jawaban atas pertanyaan Anda, Anda menerimanya.)
MadHatter

+1 @MatHatter - deskripsi yang baik tentang bagaimana firewall dapat memberikan keamanan secara default, bukan pilihan.
Coops

Itu risiko yang diperhitungkan. Setidaknya pada OpenBSD, mengaktifkan pf menambahkan 35K baris kode di kernel, yang mungkin memiliki bug. Di sisi lain, penolakan default - dan firewall logging yang tepat - adalah uang IDS terbesar yang dapat dibeli. Berhentilah mencoba menggunakan Snort untuk mencari hal-hal buruk: Setiap kali mesin Anda melakukan sesuatu yang tidak Anda izinkan secara khusus, Anda harus diberi tahu.
Alex Holst

14

Prinsip Least Privilege. Firewall membantu Anda sampai di sana. Prinsip Pertahanan di Kedalaman. Firewall membantu Anda sampai di sana juga. Setiap konfigurasi yang dirancang dengan baik secara eksplisit bergantung pada keduanya dalam satu atau lain cara.

Hal lain adalah bahwa server Anda kemungkinan besar akan menjadi perangkat keras komoditas, atau perangkat keras khusus untuk menangani perangkat lunak server yang berjalan di atas OS server standar (Unix, NT, Linux). Artinya, mereka tidak memiliki perangkat keras khusus untuk menangani dan memfilter lalu lintas masuk secara efisien. Apakah Anda ingin server Anda menangani setiap multicast, paket ICMP atau port scan yang mungkin muncul?

Kemungkinan besar yang Anda inginkan adalah server Anda secara fisik menangani permintaan hanya ke beberapa port (80, 443, port ssl Anda, port oracle 1521 khas Anda, port rsync Anda, dll.) Ya, tentu saja Anda mengatur firewall perangkat lunak pada Anda server untuk mendengarkan port tersebut saja. Tetapi NIC Anda masih akan menanggung beban lalu lintas yang tidak diinginkan (baik itu ganas atau normal di organisasi Anda.) Jika NIC Anda dipalu, begitu juga jalur jaringan melalui server Anda (dan mungkin antara server dan internal klien dan koneksi ke server dan layanan internal lainnya.)

NIC Anda tidak hanya dipalu, firewall perangkat lunak Anda juga akan digunakan karena harus memeriksa setiap paket atau datagram yang didapat.

Firewall di sisi lain, khususnya yang ada di tepi subnet (atau memisahkan subnet Anda dari dunia luar) cenderung merupakan perangkat keras khusus yang dibuat khusus untuk menangani jenis volume itu.

Anda dapat mengelilingi N jumlah server dengan M jumlah firewall (dengan N >> M). Dan Anda mengatur perangkat keras firewall Anda untuk membuang apa pun yang tidak diarahkan ke port tertentu. Pemindaian port, ICMPs dan omong kosong lainnya keluar. Kemudian Anda menyempurnakan firewall perangkat lunak di server Anda sesuai dengan fungsi spesifik mereka.

Sekarang Anda baru saja mengurangi (tetapi tidak menghilangkan) kemungkinan blackout total, menguranginya menjadi partisi jaringan atau sebagian kegagalan terburuk. Dan dengan demikian, Anda telah meningkatkan kemampuan sistem Anda untuk bertahan dari serangan atau kesalahan konfigurasi.

Tidak memiliki firewall karena server Anda memilikinya seperti merasa aman menggunakan sabuk pengaman saat mengemudi di 120mph di bawah visibilitas nol karena kabut. Tidak berfungsi seperti itu.


4

Ada banyak serangan yang bisa Anda lakukan jika Anda tidak memiliki firewall yang melakukan semacam inspeksi tingkat paket:

Contohnya adalah Paket Pohon Natal

http://en.wikipedia.org/wiki/Christmas_tree_packet

Serangan DDOS dapat dijalankan terhadap sistem Anda, firewall (eksternal mungkin, sebelum server Anda) akan menghentikan / memperlambat / membunuh lalu lintas sebelum melumpuhkan server Anda.

Hanya karena Anda tidak memiliki data keuangan, atau data pribadi di server tidak berarti Anda tidak akan 'terluka'. Saya yakin Anda membayar bandwidth, atau penggunaan CPU, atau Anda memiliki tingkat meteran. Bayangkan selama satu malam (ketika Anda sedang tidur) seseorang berlari meteran Anda (saya telah melihat ini terjadi dengan penyedia VOIP Switch, tekan di malam hari untuk JUTAAN MENIT lalu lintas, bahwa mereka harus membayar tagihan untuk).

Jadi cerdaslah, gunakan perlindungan jika ada, Anda TIDAK SEMPURNA, begitu juga perangkat lunak. Ini hanya aman sampai exploit berikutnya ditemukan. ;)


2

Jika Anda dapat menerapkan prinsip hak istimewa tanpa menggunakan firewall, Anda mungkin tidak membutuhkannya. Dari sudut pandang saya membangun sistem yang aman tanpa menggunakan firewall membutuhkan lebih banyak usaha, dan saya cukup malas. Mengapa saya harus repot membatasi koneksi TCP menggunakan alat lain dan mungkin banyak file konfigurasi ketika saya dapat memisahkan hak istimewa pada tingkat transportasi menggunakan konfigurasi tunggal.


1
Poin bagus tentang konfigurasi tunggal, sedikit ruang untuk kesalahan. Saya setuju untuk menjadi malas jika memungkinkan! cfengine memang mengeluarkan beberapa kerumitan ini bagi saya sebagian mengurangi masalah banyak file konfigurasi .... tapi ... itu hanya sebagus aturan yang ditulis saja. Jadi Anda meninggalkan sebagian besar file konfigurasi di "default" (atau sedekat) sebagai penghalang sekunder dan memiliki firewall sebagai (setidaknya dalam arti lapisan) perhatian utama.
Aitch

2
Saya pertama-tama dipilih untuk PoLP, kemudian turun untuk kemalasan. Firewall bukan alat untuk memungkinkan pemiliknya menjadi ceroboh. Anda harus repot-repot memperketat permukaan serangan Anda karena jika penyerang melewati firewall (setelah semua Anda harus memiliki sesuatu yang terbuka), mereka hanya dapat mematikan iptables. Terapkan kemalasan Anda di tempatnya: jadikan sistem ini sebebas mungkin, jadi Anda tidak harus memperbaikinya untuk waktu yang lama.
Marcin

@ Mars saya maksudkan bahwa jika seseorang ingin mengamankan sistem tanpa menggunakan firewall, dia harus membuat model ancaman yang komprehensif terlebih dahulu. Firewall menyiratkan semacam model ancaman yang terkenal dan dijelaskan dengan baik, jadi saya tidak harus membangunnya dari awal untuk setiap host. Tentu saja, jika kita berbicara tentang keamanan tingkat militer, tidak ada pilihan, model ancaman formal harus dibangun.
Alex

1

Firewall juga dapat mencegat paket yang tidak diinginkan dari mencapai server Anda. Alih-alih berurusan dengan mereka di tingkat server individu, Anda dapat menghadapinya di firewall. Anda dapat menyimpan semua aktivitas konfigurasi ini di firewall tunggal alih-alih beberapa server.

Misalnya, jika penyerang telah menguasai IP eksternal dan membanjiri server Anda dengan paket yang tidak diinginkan dan Anda ingin mengurangi efeknya pada server Anda ... Anda bisa mengonfigurasi setiap server Anda yang terkena dampak untuk menjatuhkan paket berbahaya tersebut. atau cukup buat perubahan di firewall Anda dan semua server Anda terlindungi. Memiliki firewall telah mengurangi waktu reaksi Anda.


Selain itu, melakukan ini adalah mengkonfigurasi firewall - kebetulan ada di setiap server.
mfinni

1

Anda atau orang lain mungkin membuat kesalahan pada pengaturan server Anda suatu hari nanti, firewall kemudian memberi Anda kesempatan kedua untuk menghentikan seseorang masuk. Kami tidak sempurna, kami membuat kesalahan, dan karena itu sedikit asuransi "yang tidak dibutuhkan" dapat bermanfaat. .

(Cobalah untuk tidak menjalankan firewall Anda pada OS yang sama dengan server Anda, karena jika tidak satu bug di OS .... Saya menganggap semua versi Unix sebagai OS yang sama, karena mereka memiliki banyak kesamaan)


Sangat baik, mencampur platform (OS dan perangkat keras) adalah kuncinya.
DutchUncle

1

Firewall dilegalkan dalam manipulasi lalu lintas. Mereka melakukannya dengan cepat dan memiliki sumber daya. Dan Anda tidak menyia-nyiakan sumber daya server untuk memfilter lalu lintas (disk io / proc time / etc). Anda harus mengkonfigurasi beberapa keamanan di lingkungan server tetapi semua pemeriksaan lalu lintas dan pemindaian virus dan sebagainya harus melakukan server khusus.


-2

Saya khawatir jika Anda pernah diretas dan tidak memiliki firewall. Peretas dapat membuka port lain di server Anda. Juga, jika seorang konsultan diundang untuk melakukan pembersihan dan audit, hal pertama yang akan mereka katakan adalah, "APA?!?! Anda tidak punya firewall!" Maka Anda bisa dibakar.


-1 Jawaban yang sedikit sensasional + tidak terlalu konstruktif.
Coops

2
Jika server dikompromikan, maka firewall tidak selalu akan membantu ketika bozo yang telah rusak hanya menonaktifkannya! * Penafian, pertanyaan itu menyebutkan menggunakan iptables, bukan firewall perangkat keras yang terpisah.
Bryan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.