Problème d'accès fpt et partage samba client Win7 avec iptab

Bonjour,
voilà je suis un petit nouveau, je me suis configurer un serveur sous débian squeeze,
j’ai réussi à configurer pas mal de chose comme sécuriser apache2, ssl, …
tout fonctionne bien sans règle de filtrage iptable…
J’ai parcouru pas mal de tuto’s et lorsque j’applique mes règles de filtrage presque tout fonctionne sauf :

  • Accès au partage de fichiers Samba client Win7
  • Accès au serveur ftp par internet (il me demande le log et mot de pass, puis me met qu’il ne peut accéder à la page)
    si j’enlève mes règles de filtrage tout refonctionne…

mon script iptable est le suivant :

[b]#!/bin/sh
IPTABLES="iptables"
IF_NET=“eth0”

Initialisation

modes pour le ftp[/b]

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

Vider les tables actuelles

iptables -t filter -F

Vider les regles personnelles

iptables -t filter -X

Interdire toute connexion entrante et sortante

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

Ne pas casser les connexions etablies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Autoriser loopback

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

ICMP (Ping)

iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

SSH In

iptables -t filter -A INPUT -p tcp --dport 2215 -j ACCEPT

SSH Out

iptables -t filter -A OUTPUT -p tcp --dport 2215 -j ACCEPT

DNS In/Out

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

NTP Out

iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

HTTP + HTTPS Out

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 OUTPUT -p tcp --dport 10000 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 11000 -j ACCEPT

HTTP + HTTPS In

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
iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 11000 -j ACCEPT

FTP Out

iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

FTP In

modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Mail SMTP:25

iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

EPMAP => definit toutes les RPC !

iptables -A INPUT -m state --state NEW -p TCP --dport 135 -j ACCEPT
iptables -A INPUT -m state --state NEW -p UDP --dport 135 -j ACCEPT

NetBios-NS

iptables -A INPUT -m state --state NEW -p TCP --dport 137 -j ACCEPT
iptables -A INPUT -m state --state NEW -p UDP --dport 137 -j ACCEPT

NetBios-DGM => exploration du reseau (base sur SMB browser service)

iptables -A INPUT -m state --state NEW -p UDP --dport 138 -j ACCEPT

NetBios-SSN => partage fichiers, imprimantes par Microsoft

iptables -A INPUT -m state --state NEW -p TCP --dport 139 -j ACCEPT

La commande iptables -L -v :

Chain INPUT (policy DROP 317 packets, 42332 bytes)
pkts bytes target prot opt in out source destination
0 0 fail2ban-ssh tcp – any any anywhere anywhere multiport dports ssh
847 69636 fail2ban-apache-overflows tcp – any any anywhere anywhere multiport dports www,https
847 69636 fail2ban-apache tcp – any any anywhere anywhere multiport dports www,https
50 2266 fail2ban-vsftpd tcp – any any anywhere anywhere multiport dports ftp,ftp-data,ftps,ftps-data
15255 1865K ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
285 25950 ACCEPT all – lo any anywhere anywhere
0 0 ACCEPT icmp – any any anywhere anywhere
1 52 ACCEPT tcp – any any anywhere anywhere tcp dpt:2215
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:domain

0 0 ACCEPT udp – any any anywhere anywhere udp dpt:domain
1 52 ACCEPT tcp – any any anywhere anywhere tcp dpt:www
1 52 ACCEPT tcp – any any anywhere anywhere tcp dpt:https
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:8443
1 52 ACCEPT tcp – any any anywhere anywhere tcp dpt:webmin
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:11000
11 488 ACCEPT tcp – any any anywhere anywhere tcp dpts:ftp-data:ftp
0 0 ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:smtp
0 0 ACCEPT tcp – any any anywhere anywhere state NEW tcp dpt:loc-srv
0 0 ACCEPT udp – any any anywhere anywhere state NEW udp dpt:loc-srv
0 0 ACCEPT tcp – any any anywhere anywhere state NEW tcp dpt:netbios-ns
157 12822 ACCEPT udp – any any anywhere anywhere state NEW udp dpt:netbios-ns
44 9835 ACCEPT udp – any any anywhere anywhere state NEW udp dpt:netbios-dgm
0 0 ACCEPT tcp – any any anywhere anywhere state NEW tcp dpt:netbios-ssn
0 0 ACCEPT tcp – any any anywhere anywhere state NEW tcp dpt:microsoft-ds
0 0 ACCEPT udp – any any anywhere anywhere state NEW udp dpt:microsoft-ds

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

Chain OUTPUT (policy DROP 60 packets, 7200 bytes)
pkts bytes target prot opt in out source destination
14622 1897K ACCEPT all – any any anywhere anywhere state RELATED,ESTABLISHED
285 25950 ACCEPT all – any lo anywhere anywhere
0 0 ACCEPT icmp – any any anywhere anywhere
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:2215
2 120 ACCEPT tcp – any any anywhere anywhere tcp dpt:domain
435 26145 ACCEPT udp – any any anywhere anywhere udp dpt:domain
15 1140 ACCEPT udp – any any anywhere anywhere udp dpt:ntp
64 3840 ACCEPT tcp – any any anywhere anywhere tcp dpt:www
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:https
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:webmin
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:11000
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpts:ftp-data:ftp
0 0 ACCEPT tcp – any any anywhere anywhere tcp dpt:smtp

Chain fail2ban-apache (1 references)
pkts bytes target prot opt in out source destination
847 69636 RETURN all – any any anywhere anywhere

Chain fail2ban-apache-noscript (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all – any any anywhere anywhere

Chain fail2ban-apache-overflows (1 references)
pkts bytes target prot opt in out source destination
847 69636 RETURN all – any any anywhere anywhere

Chain fail2ban-ssh (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all – any any anywhere anywhere

Chain fail2ban-vsftpd (1 references)
pkts bytes target prot opt in out source destination
50 2266 RETURN all – any any anywhere anywhere

Si quelqu’un à une petite idée elle est la bienvenue…

Merci

Pour Samba, il faudrait peut-être autoriser le port 445.

La connexion de commande FTP utilise bien le port 21, et pas de chiffrement TLS/SSL ?
Le module de suivi de connexion nf_conntrack_ftp (renommé depuis le noyau 2.6.20 mais l’ancien nom ip_conntrack_ftp reste défini comme alias) n’est efficace que sur le port 21 par défaut et en l’absence de chiffrement.

bon j’ai ouvert le port en question:

[code]#!/bin/sh
IPTABLES="iptables"
IF_NET=“eth0”

Initialisation

modes pour le ftp

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

Vider les tables actuelles

iptables -t filter -F

Vider les regles personnelles

iptables -t filter -X

Interdire toute connexion entrante et sortante

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

Ne pas casser les connexions etablies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Autoriser loopback

iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

ICMP (Ping)

iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

SSH In

iptables -t filter -A INPUT -p tcp --dport 2215 -j ACCEPT

SSH Out

iptables -t filter -A OUTPUT -p tcp --dport 2215 -j ACCEPT

DNS In/Out

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

NTP Out

iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

HTTP + HTTPS Out

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 OUTPUT -p tcp --dport 10000 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 11000 -j ACCEPT

HTTP + HTTPS In

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
iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 11000 -j ACCEPT

FTP Out

iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

FTP In

modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Mail SMTP:25

iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

EPMAP => definit toutes les RPC !

iptables -A INPUT -m state --state NEW -p TCP --dport 135 -j ACCEPT
iptables -A INPUT -m state --state NEW -p UDP --dport 135 -j ACCEPT

NetBios-NS

iptables -A INPUT -m state --state NEW -p TCP --dport 137 -j ACCEPT
iptables -A INPUT -m state --state NEW -p UDP --dport 137 -j ACCEPT

NetBios-DGM => exploration du reseau (base sur SMB browser service)

iptables -A INPUT -m state --state NEW -p UDP --dport 138 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

NetBios-SSN => partage fichiers, imprimantes par Microsoft

iptables -A INPUT -m state --state NEW -p TCP --dport 139 -j ACCEPT

SMB/IP => partage fichiers, imprimantes par SaMBa

iptables -A INPUT -m state --state NEW -p TCP --dport 445 -j ACCEPT
iptables -A INPUT -m state --state NEW -p UDP --dport 445 -j ACCEPT
[/code]
aprés modification toujours pareil,
cela quelques jour que je suis dessus et je sature…
je dois passer à coté de quelques chose…
l’accès par ftp://XXXXXXX.fr ne fontionne que si je suprime les règles de filtrage…
Le serveur ftp installé est vsftpd
La connection via putty se fait sans saisi de mot de passse (directement via log avec clé de chiffrage SSL)
de même pour ma connection SSL via cle de chiffrage.
Cela marche pas de problème…

FTP n’a aucun rapport avec SSH.
Tu peux ajouter des règles de LOG en fin de chaînes pour enregistrer les paquets bloqués dans le journal du noyau.

Merci pour le tuyau, mais là je décroche.
si tu pouvais me renseigner avec un petit exemple cela serai sympat.
Merci pour ton aide.

A ajouter en fin de chaîne :

iptables -A OUTPUT -j LOG --log-prefix "OUTPUT: " iptables -A INPUT -j LOG --log-prefix "INPUT: "
Lecture des journaux du noyau par la commande dmesg ou dans le fichier /var/log/kern.log.

le serveur FTP refonctionne…
j’ai rajouter les deux lignes que tu m’a mis …
Je redémarre le serveur et je vais faire de essais…
… après essais toujours pareil revenue au point de départ le partage SAMBA n’est toujours pas accessible et le serveur FPT m’envoi un joli message après m’être loguer " 425 Failed to establish connection."

Il faut examiner les logs créés par les deux règles LOG pour voir quel sont les paquets bloqués.

voilà je te met copie les dernières lignes du log lorsque j’ai voulu accèder au serveur ftp

May 13 21:01:29 serveur-doli kernel: [ 372.549092] INPUT: IN=eth0 OUT= MAC=01:00:5e:00:00:01:c8:cd:72:51:58:41:08:00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2 May 13 21:01:36 serveur-doli kernel: [ 379.282398] OUTPUT: IN= OUT=eth0 SRC=192.168.1.215 DST=192.168.1.255 LEN=248 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=138 DPT=138 LEN=228 May 13 21:01:59 serveur-doli kernel: [ 402.552079] INPUT: IN=eth0 OUT= MAC=01:00:5e:00:00:01:c8:cd:72:51:58:41:08:00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2 May 13 21:02:14 serveur-doli kernel: [ 417.211104] INPUT: IN=eth0 OUT= MAC=00:14:d1:19:6a:3a:14:da:e9:b3:a9:87:08:00 SRC=192.168.1.23 DST=192.168.1.215 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=26891 DF PROTO=TCP SPT=55646 DPT=20191 WINDOW=8192 RES=0x00 SYN URGP=0 May 13 21:02:17 serveur-doli kernel: [ 420.211506] INPUT: IN=eth0 OUT= MAC=00:14:d1:19:6a:3a:14:da:e9:b3:a9:87:08:00 SRC=192.168.1.23 DST=192.168.1.215 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=26898 DF PROTO=TCP SPT=55646 DPT=20191 WINDOW=8192 RES=0x00 SYN URGP=0 May 13 21:02:23 serveur-doli kernel: [ 426.212191] INPUT: IN=eth0 OUT= MAC=00:14:d1:19:6a:3a:14:da:e9:b3:a9:87:08:00 SRC=192.168.1.23 DST=192.168.1.215 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=26900 DF PROTO=TCP SPT=55646 DPT=20191 WINDOW=8192 RES=0x00 SYN URGP=0 May 13 21:02:29 serveur-doli kernel: [ 432.555084] INPUT: IN=eth0 OUT= MAC=01:00:5e:00:00:01:c8:cd:72:51:58:41:08:00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2 May 13 21:02:59 serveur-doli kernel: [ 462.558120] INPUT: IN=eth0 OUT= MAC=01:00:5e:00:00:01:c8:cd:72:51:58:41:08:00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2 May 13 21:03:29 serveur-doli kernel: [ 492.561341] INPUT: IN=eth0 OUT= MAC=01:00:5e:00:00:01:c8:cd:72:51:58:41:08:00 SRC=192.168.1.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2

On peut voir plusieurs paquets de demande de connexion entrants de 192.168.1.23 (client) vers 192.168.1.215 (serveur) avec le port source 55646 et le port destination 20191, a priori une connexion de données en mode passif. Si le module nf_conntrack_ftp est bien chargé, alors ces paquets devraient être classés dans l’état RELATED et acceptés.

Tu as écrit “Accès au serveur ftp par internet”, mais ici le client est dans le même réseau local que le serveur.

le pc que j’utilise pour faire mes essais de connexion via le net est sur le même réseau que le serveur.
EN faite, je me suis monté un serveur avec mon ancien PC, j’ai installer Débian Squeeze, apache2, Mysql, fail2ban, clamav, phpmyadmin, vsftpd, munin, php5, openssl, et d’autres petites chose.
J’ ai ensuite installer mon logiciel Dolibarr (ERP/CRM)sur ce serveur pour pouvoir y avoir accèes via le Net car pour certain moyen de paiement (PayPal…) il faut qu’il soit rediriger vers un page qui se trouve sur le serveur.
Configurer un accès sécurisé en https sur mon logiciel Dolibarr, créer le certificats valide via STARTSLL et configurer le tout.
j’ ai acheter un domaine chez OVH configurer le domaine dyn et apache2 (créer un virtualhost) et configurer la mise à jour de l’adresse IP sur le non du domaine Dyn chez OVH… non sans mal et nuit blanche quand on est débutant…
Mais tout fonctionnait.
Ensuite j’ai installer SAMBA pour un partage de fichiers entre différent poste Win et Mac, un peut galère mais j’y suis arriver…
Installer un serveur ftp pour partager des documents via le Net avec certains collègues, ça à fonctionné.
Depuis que j’essaye de sécurisé le tout avec iptables sa déconne…
Plus d’accès au serveur FTP et plus de partage avec SAMBA…
Peut-être ai je loupé ou manqué une étape… je ne sais pas
Si tu peut m’éclairer cela serai sympa.
En tout cas merci.

Ceci est contradictoire, sauf si c’est via rebond par un proxy un VPN extérieur.