Bagaimana cara mengatur firewall sederhana di Ubuntu?
18
Bisakah seseorang memberikan beberapa langkah sederhana dengan contoh konfigurasi cara mengatur firewall sederhana di Ubuntu (hanya menggunakan konsol)? Hanya akses ssh, http, dan https yang boleh.
Jika saya akan memanggil perintah ini secara berurutan melalui ssh, apakah itu akan merusak koneksi saya?
Klew
Saya tidak percaya begitu, tetapi Anda harus memeriksa untuk memastikan. Ini juga menyimpan statusnya di antara restart, jadi Anda hanya perlu melakukannya sekali.
Nerdfest
Saya akan memeriksanya ketika saya akan dekat dengan komputer ini ...
klew
Anda bisa memasukkannya ke dalam skrip dan menjalankannya dan kemudian bahkan jika Anda terputus Anda akan dapat menyambung kembali setelah itu. Lihat jawaban saya di bawah untuk skrip.
Hamish Downer
2
Komentar sebelumnya benar. Pada dasarnya, jalankan perintah pertama di script di atas lalu.
Nerdfest
14
Gunakan skrip ini.
Putuskan apakah Anda ingin mengizinkan ICMP masuk (ping) atau tidak.
# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
Seperti disebutkan dalam komentar untuk jawaban lain, Anda tidak ingin kehilangan koneksi sebelum Anda mengizinkan port ssh. Dari halaman manual:
"MANAJEMEN JARAK JAUH
Saat menjalankan ufw, aktifkan atau mulai ufw melalui skrip initnya, ufw akan membilas rantainya. Ini diperlukan agar ufw dapat mempertahankan status yang konsisten, tetapi mungkin menjatuhkan koneksi yang ada (misalnya ssh). ufw mendukung penambahan aturan sebelum mengaktifkan firewall, sehingga administrator dapat melakukan:
ufw allow proto tcp from any to any port 22
sebelum menjalankan 'ufw aktifkan'. Aturan masih akan dihapus, tetapi port ssh akan terbuka setelah mengaktifkan firewall. Harap perhatikan bahwa sekali ufw 'diaktifkan', ufw tidak akan membilas rantai saat menambahkan atau menghapus aturan (tetapi akan ketika memodifikasi aturan atau mengubah kebijakan default). "
Jadi di sini adalah pendekatan yang menggunakan skrip untuk mengaturnya. Anda akan keluar saat menjalankan skrip ini, tetapi setelah menjalankan skrip Anda dapat masuk kembali melalui ssh.
Masukkan yang berikut ini dalam sebuah skrip dan sebut itu start-firewall.sh
Jika Anda membiasakan diri dengan skrip iptables, Anda akan memiliki kontrol penuh atas semua kemampuan firewall. Ini sama sekali tidak ramah seperti Firestarter, tetapi dapat dilakukan di konsol dengan nano/ vieditor. Lihatlah tutorial ini yang ditujukan untuk Ubuntu.
Quicktables membantu saya mempelajari aturan iptables. Jalankan saja skripnya dan itu akan menghasilkan skrip iptables untuk Anda ... maka Anda dapat membukanya dan melihat perintah terkait yang dihasilkan oleh pertanyaan yang diajukan kepada Anda. Ini sumber belajar yang bagus.
Untuk membuat aturan pengaturan yang Anda suka, Anda perlu mengedit file / etc / default / firehol dan mengubah START_FIREHOL = YA
Dan Anda ingin membuat /etc/firehol/firehol.conf Anda terlihat seperti ini.
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
Salah satu hal hebat tentang firehol adalah perintah 'coba'. Anda dapat menyesuaikan file konfigurasi Anda dan melakukan 'firehol try', jika Anda terhubung melalui ssh, dan sesuatu tentang apa yang Anda ubah membunuh akses jaringan Anda maka firehol akan mengembalikan perubahan. Agar perubahan benar-benar diberlakukan, Anda harus mengatakan komit.
Firehol sangat pintar untuk memanipulasi aturan iptables. '$ firehol try' "Mengaktifkan firewall, tetapi menunggu sampai pengguna mengetik kata commit. Jika kata ini tidak diketik dalam 30 detik, firewall sebelumnya dipulihkan."
Gareth
Sooo Anda dapat menambah / mengedit / menghapus aturan dan kemudian mengujinya. Jika Anda melakukan ini melalui SSH dari jarak jauh maka itu tidak akan mengunci Anda dari server Anda sendiri!
Gareth
1
Saya lebih suka Shorewall . Mudah untuk setup tetapi fleksibel pada saat bersamaan.
Ahh, kesalahanku. Kalau tidak. admin masih dapat ssh -X ke server dan menjalankan firestarter dari jarak jauh.
spoulson
1
Saya juga perlu menginstal beberapa server X untuk memulai ssh -X :).
Klew
@ tuh, Anda tidak perlu menginstal X server penuh untuk menjalankan aplikasi X lewat ssh. Anda memang membutuhkan beberapa perpustakaan, tetapi Anda tidak perlu semuanya. Untuk minimum, Anda hanya perlu paket xauth dan xbase-clients.
Jawaban:
sudo ufw tolak default
sudo ufw memungkinkan http
sudo ufw memungkinkan https
sudo ufw izinkan ssh
sudo ufw aktifkan
sumber
Gunakan skrip ini.
Putuskan apakah Anda ingin mengizinkan ICMP masuk (ping) atau tidak.
sumber
Seperti disebutkan dalam komentar untuk jawaban lain, Anda tidak ingin kehilangan koneksi sebelum Anda mengizinkan port ssh. Dari halaman manual:
"MANAJEMEN JARAK JAUH
Saat menjalankan ufw, aktifkan atau mulai ufw melalui skrip initnya, ufw akan membilas rantainya. Ini diperlukan agar ufw dapat mempertahankan status yang konsisten, tetapi mungkin menjatuhkan koneksi yang ada (misalnya ssh). ufw mendukung penambahan aturan sebelum mengaktifkan firewall, sehingga administrator dapat melakukan:
sebelum menjalankan 'ufw aktifkan'. Aturan masih akan dihapus, tetapi port ssh akan terbuka setelah mengaktifkan firewall. Harap perhatikan bahwa sekali ufw 'diaktifkan', ufw tidak akan membilas rantai saat menambahkan atau menghapus aturan (tetapi akan ketika memodifikasi aturan atau mengubah kebijakan default). "
Jadi di sini adalah pendekatan yang menggunakan skrip untuk mengaturnya. Anda akan keluar saat menjalankan skrip ini, tetapi setelah menjalankan skrip Anda dapat masuk kembali melalui ssh.
Masukkan yang berikut ini dalam sebuah skrip dan sebut itu start-firewall.sh
Dan kemudian membuatnya dapat dieksekusi dan menjalankannya dengan melakukan
Untuk mempelajari lebih lanjut, baca halaman manual .
sumber
Jika Anda membiasakan diri dengan skrip
iptables
, Anda akan memiliki kontrol penuh atas semua kemampuan firewall. Ini sama sekali tidak ramah seperti Firestarter, tetapi dapat dilakukan di konsol dengannano
/vi
editor. Lihatlah tutorial ini yang ditujukan untuk Ubuntu.sumber
Quicktables membantu saya mempelajari aturan iptables. Jalankan saja skripnya dan itu akan menghasilkan skrip iptables untuk Anda ... maka Anda dapat membukanya dan melihat perintah terkait yang dihasilkan oleh pertanyaan yang diajukan kepada Anda. Ini sumber belajar yang bagus.
Sayangnya, tidak lagi dipertahankan.
http://qtables.radom.org/
sumber
Saya sangat suka menggunakan firehol ( paket ).
Untuk membuat aturan pengaturan yang Anda suka, Anda perlu mengedit file / etc / default / firehol dan mengubah START_FIREHOL = YA
Dan Anda ingin membuat /etc/firehol/firehol.conf Anda terlihat seperti ini.
Salah satu hal hebat tentang firehol adalah perintah 'coba'. Anda dapat menyesuaikan file konfigurasi Anda dan melakukan 'firehol try', jika Anda terhubung melalui ssh, dan sesuatu tentang apa yang Anda ubah membunuh akses jaringan Anda maka firehol akan mengembalikan perubahan. Agar perubahan benar-benar diberlakukan, Anda harus mengatakan komit.
sumber
Saya lebih suka Shorewall . Mudah untuk setup tetapi fleksibel pada saat bersamaan.
sumber
Mungkin Anda harus melihat di http://iptables-tutorial.frozentux.net/iptables-tutorial.html . Anda juga dapat menemukan informasi lebih lanjut di lartc.org
sumber
sudo apt-get install firestarter
Kemudian, lihat di menu System-> Administration.
sumber