UFW bloque tout même lorsque je fixe des règles pour autoriser

14

J'utilise un serveur ubuntu, maintenant j'essaye d'activer le pare-feu en utilisant ces commandes:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

J'ai également essayé de faire le ufw default deny incomingdernier mais toujours pas de chance, lorsque j'active le pare-feu, il bloque tout lorsque je définis la valeur par défaut à refuser, mais quand je le configure pour autoriser, cela fonctionne bien, comme les règles sont ignorées. Qu'est-ce qui peut causer cela ?

ÉDITER

C'est ma sortie de iptables -L -v -n j'ai aussi essayé la solution proposée mais toujours pas de chance, ça marche très bien seulement quand je la faisdefault 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
la source
1
Peut tu me rendre un service? Faites ufw enable, puis collez la sortie de sudo iptables -L -v -nà votre question. Je suis curieux de savoir ce que le truc sous netfilter- jacent iptablesfait réellement avec les règles ufw. :)
Thomas Ward
Les deux premières commandes sont inutiles. Tout ce que vous avez à faire est d'activer UFW et le refus par défaut dans autoriser s'applique.
mchid
Oooh, mchid a raison, ce sont les valeurs par défaut, vous n'en avez pas besoin. Cela dit, je veux toujours voir les iptablesdonnées si, avec ces deux premières lignes exclues, vous rencontrez toujours ce problème.
Thomas Ward
J'ai ajouté la sortie de mon fichier iptables
engma

Réponses:

13

Ouvrez un terminal et saisissez les commandes suivantes:

Commencez par faire une réinitialisation, ce qui supprimera toutes les règles existantes:

sudo ufw reset

Prochain,

sudo ufw app list

Cela répertorie les profils d'application disponibles, tels que OpenSSH et autres. Pour obtenir des informations sur une application, tapez la commande suivante comme dans cet exemple:

sudo ufw app info OpenSSH

Voici la sortie:

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

Port:
  22/tcp

Pour autoriser l'accès OpenSSH, vous pouvez utiliser la règle suivante:

sudo ufw allow 22/tcp

Contrairement à Debian, www et https ne sont généralement pas inclus en tant que profils d'application, cependant, nous savons que ceux-ci fonctionnent sur les ports 80 et 443, utilisez donc les commandes suivantes:

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

Si vous souhaitez ajouter UDP, faites-le également.

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

Désactivez et activez ufw pour appliquer les modifications:

sudo ufw disable
sudo ufw enable

Pour afficher vos règles:

sudo ufw status

Enfin, l'un des aspects les moins conviviaux d'ufw est la façon dont les règles de refus l'emportent généralement sur les règles d'autorisation. Par exemple, vous ne pouvez pas tout configurer pour refuser, puis définir des ports pour autoriser. Tous les ports seront toujours bloqués. Voir ici pour plus d'informations .


Vous pouvez ajouter ces règles pour bloquer globalement tous les ports sauf 22, 53, 80 et 443. J'ai ajouté le port 53 pour autoriser les requêtes DNS. Si vous n'avez pas besoin de faire de requêtes DNS, modifiez simplement les règles en conséquence.

Pour définir ces règles de blocage pour les appels entrants uniquement, vous utiliseriez sudo ufw deny in 1:22/tcppar exemple. Vous pouvez également définir pour sortant sudo ufw deny out 1:22/tcpet ainsi de suite.

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
la source
Merci beaucoup pour votre réponse, mais je veux bloquer tous les ports sauf ceux-ci, dois-je utiliser ufw default block incomingaprès avoir défini ces règles?
engma
@ Developer106 Non, lorsque vous activez ufw, le bloc entrant est déjà défini par défaut. Vous pouvez le vérifier en exécutant la commande suivante dans un terminal ouvert sudo ufw status verbose. Si je ne me trompe pas, la définition explicite de cette règle n'autorisera pas vos ports autorisés. Si vous souhaitez bloquer tous les ports sauf ceux-ci, je vous suggère vraiment de vérifier ce fil car c'est exactement ce qu'ils font. Il est très complet, bloquant tout sauf ceux-ci et vous aurez les ports ouverts que vous souhaitez. ubuntuforums.org/showthread.php?t=1893751
mchid
@ Developer106 J'ai ajouté quelques règles pour bloquer globalement tous sauf 22, 53, 80 et 443 et refuser ou bloquer tous les autres ports.
mchid
ok cela ne fonctionne que lorsque spécifier de refuser outsi je dis denysans dire que c'est pour sortir spécifiquement, cela ne fonctionne toujours pas. quelle pourrait être la cause de cela?
engma
@ Developer106 ce qui ne fonctionne pas, n'est-ce pas un blocage ou une interdiction?
mchid
7

FYI: au cas où d'autres auraient ce problème.

Dans la sortie détaillée d'iptables, j'ai remarqué que les règles ufw manquaient dans les chaînes INPUT, OUTPUT et FORWARD. Mon système a fini comme ça lorsque j'ai exécuté iptables -F pour supprimer mes règles FW personnalisées après avoir activé ufw à un moment donné. Il semble que ufw n'ajoute pas les règles de niveau supérieur si certaines de ses propres chaînes existent déjà dans iptables.

J'ai fini par désinstaller ufw, redémarrer, exécuter 'iptables -F' (pour supprimer les règles iptables précédentes qui étaient toujours actives), puis réinstaller et configurer ufw. Les règles ufw de niveau supérieur sont maintenant de retour. La désinstallation / réinstallation n'a peut-être pas été nécessaire. La suppression de toutes les règles ufw d'iptables en désactivant ufw et en redémarrant peut avoir fait l'affaire.

Voici à quoi devraient ressembler les chaînes de premier niveau (sur 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
la source
1
Cela a également résolu le problème pour moi.
Technophobe01
1
L'exécution iptables -Xafin de supprimer toutes les chaînes non intégrées, puis le redémarrage ont ufwégalement fonctionné pour moi.
Tblue
0

J'ai eu le même problème, une sorte de config vissée avec ufwet fail2banfu ** ed la chaîne iptables. Tout a été bloqué dès que j'ai commencé ufw - même sans règles dans la ufwchaîne elle-même. ufwréinitialiser n'a pas aidé. Je l'ai complètement réinstallé, cela a fonctionné.

sudo apt-get purge ufw
sudo apt-get install ufw
Maso Mato
la source
Salut Maso. Avez-vous dû effectuer une configuration supplémentaire après la réinstallation?
Hee Jin
0

Pour moi, ce problème a été résolu en définissant la règle à partir de

sudo ufw default deny outgoing
sudo ufw default allow outgoing

C'est la seule chose qui a fonctionné, ne pas autoriser le port 53, autoriser le DNS, etc.

jamescampbell
la source