Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/01/2020, à 16:32

fork

Firewall - Iptables : Samba ne focntionne pas !

Bonjour

J'ai une tour qui me sert de  serveur chez moi, je voulais installer un firewall et j'ai enfin décidé d'apprendre iptables.
Je voulais faire quelque chose de propre et je trouve que ce n'est plus du tout le cas..
Avec les ports de samba je pense avoir fait n'importe quoi .. car j'essayais de trouver une solution à mon problème.
Je précise que j'ai des utilisateurs samba et qu'il faut un authentification pour se connecter. 
Je vois le serveur dans les partages réseaux de nautilus mais lorsque je clique sur l'icone ma connexion est refusée.
Je ne vois pas la fenêtre pour encoder le mot de passe et je ne peux me logger.

J'ai fait le même test avec CentOS 7 et son firewall et là je n'ai eu aucun problème pour autoriser samba.
(Oui je sais, Il suffisait de cocher une case big_smile)
Existe-t'il une bonne application graphique pour gérer le firewall sur Debian/Ubuntu.

Un peu d'aide serait la bienvenue pour résoudre mon problème avec Iptables.

Serveur = Debian 10
Clients = Ubuntu 18.04

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere             udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere             udp dpt:svrloc
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8443
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ipp
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:epmap
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:epmap
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:netbios-ns
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:netbios-ns
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:netbios-dgm
ACCEPT     tcp  --  192.168.1.0/24       anywhere             state NEW tcp dpt:netbios-ssn
ACCEPT     tcp  --  192.168.1.0/24       anywhere             state NEW tcp dpt:microsoft-ds
ACCEPT     udp  --  192.168.1.0/24       anywhere             state NEW udp dpt:microsoft-ds
ACCEPT     all  --  anywhere             anywhere             PKTTYPE = multicast
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-client
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5223
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5280
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5582
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-server
ACCEPT     udp  --  anywhere             anywhere             udp dpt:xmpp-client
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5223
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5280
ACCEPT     udp  --  anywhere             anywhere             udp dpt:5582
ACCEPT     udp  --  anywhere             anywhere             udp dpt:xmpp-server

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ntp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:epmap
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:epmap
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:netbios-ns
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:netbios-ns
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:netbios-dgm
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:netbios-ssn
ACCEPT     udp  --  192.168.1.0/24       anywhere             udp dpt:microsoft-ds
ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:microsoft-ds
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ircd
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ircs-u
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:6881 state NEW
ACCEPT     udp  --  anywhere             anywhere             udp dpt:6881 state NEW
ACCEPT     udp  --  anywhere             anywhere             udp dpt:8881 state NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8881 state NEW
ACCEPT     udp  --  anywhere             anywhere             udp dpt:7881 state NEW

Mon script :

#!/bin/bash

#########################################################
# Pour Effacer :					#
#	iptables -F					#	
#	iptables -X					#
#							#
# Remettre la police par défaut (ACCEPT)		#
#	iptables -P INPUT ACCEPT			#
#	iptables -P FORWARD ACCEPT			#
#	iptables -P OUTPUT ACCEPT			#
#							#
# Pour voir les connexions : netstat --inet -npl	#
#########################################################

echo "Mise en place du Firewall .."
# On vide les règles déjà existantes
iptables -t filter -F
iptables -t filter -X
echo " Nettoyage des règles actuelles		[ OK ] "
# On refuse toutes les connexions
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo " Blocage de tout les ports		[ OK ]"

# On autorise les connexions déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo " Autorisation des connexions établies	[ OK ]"

# ==================== Loop-back ========================
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo " Loop-back				[ OK ]"

# ===================== Ping ===========================
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
echo " Ping					[ OK ]"

## Al=============== Avahi-daemon ======================= 
 
iptables -A INPUT -p udp -m udp --dport 5353 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 427 -j ACCEPT
echo " Avahi-daemon				[ OK ]"

# ======================= SSH ==========================
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
echo " SSH					[ OK ]"

# ====================== DHCP ==========================
iptables -t filter -A INPUT -p udp -m udp --dport 67 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -m udp --dport 67 -j ACCEPT
echo " DHCP					[ OK ]"

# ======================= DNS ==========================
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
echo " DNS					[ OK ]"

# ======= NTP (pour avoir un serveur à l'heure) =========
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
echo " NTP					[ OK ]"

# ==================== HTTP ============================
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
echo " HTTP/HTTPS				[ OK ]"

# ===================== CUPS ==========================

iptables -A INPUT -p udp -m udp --dport 631 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT
echo " CUPS					[ OK ]"

# ===================== SAMBA =========================
#135 	TCP et UDP 	Localisateur de services RPC
#137 	TCP et UDP 	NetBIOS Name Service (nbname)
#138 	UDP 	NetBIOS Datagram Service (nbdatagram)
#139 	TCP 	NetBIOS Session Service (nbsession)
#445 	TCP et UDP 	Services de dossiers partagés Windows 

iptables -t filter -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 135 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 135 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 137 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 137 -j ACCEPT
iptables -t filter -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 138 -j ACCEPT
iptables -t filter -A INPUT  -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
iptables -t filter -A INPUT  -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 445 -j ACCEPT
iptables -t filter -A INPUT  -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 445 -j ACCEPT

iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p udp -m udp --dport 135 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 135 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p udp -m udp --dport 137 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 137 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p udp -m udp --dport 138 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 139 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p udp -m udp --dport 445 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 445 -j ACCEPT

#Si tu veux autoriser l’extérieur du réseau, supprime la directive -s des input
echo " SAMBA					[ OK ]"

# =================== FTP ============================
#iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 20 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#On accepte le Multicast. (à vérifier)
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
echo " Multicast				[ Ok ]"

# ====================== IRC ============================
iptables -t filter -A OUTPUT -p tcp --dport 6667 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 6697 -j ACCEPT
echo " IRC					[ OK ]"

# ====================== JABBER =========================
iptables -A INPUT -p tcp --dport xmpp-client -j ACCEPT
iptables -A INPUT -p tcp --dport 5223 -j ACCEPT
iptables -A INPUT -p tcp --dport 5280 -j ACCEPT
iptables -A INPUT -p tcp --dport 5582 -j ACCEPT
iptables -A INPUT -p tcp --dport xmpp-server -j ACCEPT
iptables -A INPUT -p udp --dport xmpp-client -j ACCEPT
iptables -A INPUT -p udp --dport 5223 -j ACCEPT
iptables -A INPUT -p udp --dport 5280 -j ACCEPT
iptables -A INPUT -p udp --dport 5582 -j ACCEPT
iptables -A INPUT -p udp --dport xmpp-server -j ACCEPT
echo " Jabber					[ OK ]"

# ===================== Torrents ========================
iptables -A OUTPUT -p tcp -m tcp  --dport 6881  -m state --state NEW  -j ACCEPT
iptables -A OUTPUT -p udp -m udp  --dport 6881  -m state --state NEW  -j ACCEPT
iptables -A OUTPUT -p udp -m udp  --dport 8881  -m state --state NEW  -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp  --dport 8881  -m state --state NEW  -j ACCEPT
iptables -A OUTPUT -p udp -m udp  --dport 7881  -m state --state NEW  -j ACCEPT
echo " Torrents				[ OK ]"

# ===================== MAIL ============================
## SMTP
#iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
## POP3
#iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
## IMAP
#iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
#echo "trafic IMAP sur le port 143 autorisé"
## POP3S
#iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT  

# ================== Local Network =======================

#Pour accepter tout ce qui se passe sur le réseau local 192.168.1.0 :
#iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
#iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
#iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT

Hors ligne

#2 Le 28/01/2020, à 20:27

fork

Re : Firewall - Iptables : Samba ne focntionne pas !

J'ai encore effectué des tests, mes règles de filtrages pour Samba ne fonctionnent pas ! hmm
Ça fonctionne si j'accepte tout le trafic du réseau local , ce qui est logique.

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT

Donc je suppose qu'il y a un protocole qui est bloqué et qui empêche la communication avec le serveur Samba.
Je crois qu'il y a déjà une erreur avec OUTPUT -s qui devrait être OUTPUT -d.
Quelqu'un peut-il m’aider à y voir plus clair ?
Merci

PS : Sinon j'ai vu que Firewalld est disponible sous Debian aussi, ce qui est une bonne nouvelle.
Mais j'aimerais quand même pouvoir utiliser iptables et comprendre ce que je fais.

Dernière modification par fork (Le 28/01/2020, à 20:31)

Hors ligne