UFW memblokir semua bahkan ketika saya menetapkan aturan untuk diizinkan

14

Saya menggunakan server ubuntu, Sekarang saya mencoba mengaktifkan firewall menggunakan perintah ini:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Saya juga telah mencoba membuat yang ufw default deny incomingterakhir tetapi masih tidak berhasil, ketika saya mengaktifkan firewall memblokir semuanya ketika saya mengatur default untuk menolak, tetapi ketika saya mengaturnya untuk memungkinkan, ia berfungsi dengan baik, seperti aturan yang diabaikan. apa yang bisa menyebabkan ini?

EDIT

Ini adalah hasil saya, iptables -L -v -n saya juga mencoba solusi yang diusulkan tetapi masih tidak berhasil, itu berfungsi dengan baik hanya ketika saya membuatnyadefault allow incoming

Chain INPUT (policy DROP 30 packets, 1764 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 104 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ufw-user-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
    0     0 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251          udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            239.255.255.250      udp dpt:1900
    0     0 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-user-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain ufw-user-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:443

Chain ufw-user-limit (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         
engma
sumber
1
Bisakah Anda membantu saya? Lakukan ufw enable, lalu tempelkan output sudo iptables -L -v -nke pertanyaan Anda. Saya ingin tahu apa yang mendasarinya netfilter/ iptableslakukan dengan aturan ufw. :)
Thomas Ward
Dua perintah pertama tidak perlu. Yang perlu Anda lakukan adalah mengaktifkan UFW dan tolak default pada allow out akan berlaku.
mchid
Oooh, mchid benar, itu defaultnya, kamu tidak butuh itu. Karena itu, saya masih ingin melihat iptablesdata jika, dengan dua baris pertama dikecualikan, Anda masih mengalami masalah ini.
Thomas Ward
Saya menambahkan output dari file iptables saya
engma

Jawaban:

13

Buka terminal dan ketik perintah berikut:

Mulailah dengan melakukan reset, yang akan menghapus semua aturan yang ada:

sudo ufw reset

Lanjut,

sudo ufw app list

Ini akan mencantumkan profil aplikasi yang tersedia, seperti, OpenSSH dan lainnya. Untuk mendapatkan info tentang aplikasi, ketikkan perintah berikut seperti dalam contoh ini:

sudo ufw app info OpenSSH

Inilah hasilnya:

Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

Untuk mengizinkan akses OpenSSH, Anda dapat menggunakan aturan berikut:

sudo ufw allow 22/tcp

Tidak seperti Debian, www dan https biasanya tidak dimasukkan sebagai profil aplikasi, kami tahu ini beroperasi pada port 80 dan 443 jadi gunakan perintah berikut:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jika Anda ingin menambahkan UDP lakukan saja ini juga.

sudo ufw allow 80/udp
sudo ufw allow 443/udp

Nonaktifkan dan aktifkan ufw untuk menerapkan perubahan:

sudo ufw disable
sudo ufw enable

Untuk menunjukkan aturan Anda:

sudo ufw status

Akhirnya, salah satu aspek yang kurang ramah dari ufw adalah bagaimana aturan deny biasanya memungkinkan aturan. Misalnya, Anda tidak dapat mengatur segala sesuatu untuk ditolak dan kemudian mengatur port untuk mengizinkan. Semua port masih akan diblokir. Lihat di sini untuk info lebih lanjut .


Anda dapat menambahkan aturan ini untuk secara global memblokir semua port kecuali 22, 53, 80, dan 443. Saya telah menambahkan port 53 untuk mengizinkan permintaan DNS. Jika Anda tidak perlu membuat permintaan DNS, cukup modifikasi aturannya.

Untuk menetapkan aturan blok ini hanya untuk masuk, Anda akan menggunakan sudo ufw deny in 1:22/tcpmisalnya. Atau, atur keluar sudo ufw deny out 1:22/tcpdan sebagainya.

sudo ufw deny 1:21/tcp
sudo ufw deny 1:21/udp
sudo ufw deny 23:52/tcp
sudo ufw deny 23:52/udp
sudo ufw deny 54:79/tcp
sudo ufw deny 54:79/udp
sudo ufw deny 81:442/tcp
sudo ufw deny 81:442/udp
sudo ufw deny 444:65535/tcp
sudo ufw deny 444:65535/udp
mchid
sumber
Terima kasih banyak atas jawaban Anda, tetapi saya ingin memblokir semua port kecuali yang itu, haruskah saya gunakan ufw default block incomingsetelah menetapkan aturan itu?
engma
@ Developer106 Tidak, ketika Anda mengaktifkan ufw, blok masuk sudah diatur ke default. Anda dapat memverifikasi ini dengan menjalankan perintah berikut di terminal terbuka sudo ufw status verbose. Jika saya tidak salah, menetapkan aturan itu secara eksplisit tidak akan mengizinkan port yang diizinkan. Jika Anda ingin memblokir semua port kecuali itu, saya benar-benar menyarankan Anda memeriksa utas ini karena itulah yang mereka lakukan. Ini sangat menyeluruh, memblokir semua kecuali yang ada dan Anda akan memiliki port terbuka yang Anda inginkan. ubuntuforums.org/showthread.php?t=1893751
mchid
@ Developer106 Saya menambahkan beberapa aturan untuk secara global memblokir semua kecuali 22, 53, 80, dan 443 dan menolak atau memblokir setiap port lainnya.
mchid
ok itu hanya berfungsi ketika tentukan untuk menolak outjika saya mengatakan denytanpa mengatakan bahwa itu untuk keluar secara khusus, itu masih tidak berfungsi. apa yang bisa menjadi penyebabnya?
engma
@ Developer106 apa yang tidak berfungsi, apakah itu tidak memblokir atau tidak mengizinkan?
mchid
7

FYI: kalau-kalau ada yang punya masalah ini.

Dalam output iptables yang terperinci, saya perhatikan aturan ufw tidak ada di rantai INPUT, OUTPUT, dan FORWARD. Sistem saya berakhir seperti ini ketika saya menjalankan iptables -F untuk menghapus aturan FW kustom saya setelah mengaktifkan ufw di beberapa titik. Tampaknya ufw tidak menambahkan aturan tingkat atas kembali jika beberapa rantai sendiri sudah ada di iptables.

Saya akhirnya menghapus instalasi ufw, me-reboot, menjalankan 'iptables -F' (untuk menghapus aturan iptables sebelumnya yang masih aktif), kemudian menginstal ulang dan mengkonfigurasi ufw. Aturan ufw tingkat atas sekarang kembali. Penghapusan / instal ulang mungkin tidak diperlukan. Hanya menghapus semua aturan ufw dari iptables dengan menonaktifkan ufw dan me-reboot mungkin telah melakukan trik.

Beginilah seharusnya rantai tingkat atas (pada Debian 9.4).

Chain INPUT (policy DROP)
target     prot opt source               destination         
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0           
FixItDad
sumber
1
Ini memperbaiki masalah bagi saya juga.
Technophobe01
1
Berjalan iptables -Xuntuk menghapus semua rantai non-builtin dan kemudian memulai ulang ufwjuga bekerja untuk saya.
Tblue
0

Saya mendapat masalah yang sama, semacam konfigurasi kacau dengan ufwdan fail2banfu ** ed rantai iptables. Semuanya diblokir begitu saya mulai ufw - bahkan tanpa aturan dalam ufwrantai itu sendiri. ufwreset tidak membantu. Saya benar-benar menginstalnya kembali, ini berhasil.

sudo apt-get purge ufw
sudo apt-get install ufw
Maso Mato
sumber
Hai Maso. Apakah Anda harus melakukan konfigurasi tambahan setelah menginstal ulang?
Hee Jin
0

Bagi saya masalah ini diselesaikan dengan menetapkan aturan dari

sudo ufw default deny outgoing
sudo ufw default allow outgoing

Itulah satu-satunya hal yang berhasil, tidak mengizinkan port 53, mengizinkan dns, dll.

jamescampbell
sumber