IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Iptables, vsftpd, marche pas


Sujet :

Réseau

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut Iptables, vsftpd, marche pas
    Bonjour,
    Nouveau dans le monde de linux, j'essaye de de comprendre ce qui ce passe.
    Jai mis en place, mon firewall, mon serveur samba, et mon serveur FTP, mais la connexion de l'extérieur ne marche pas pour FTP:
    LAN -> FTP : OK
    WAN -> FTP : NON OK
    voici le script de firawall.activate que j'ai pompé, mais j'avou ne pas tout comprendre, pourquoi cela ne marche pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
     
    #!/bin/bash
     
    ################# SECTION CONFIGURABLE #########################
     
    IPTABLES=iptables
    PATH="/sbin"
     
    ## Reseau interne ##
     
    OURNET="192.168.0.0/24"
    OURCAST="192.168.0.255"
    INDEV="eth0"
    INDEVIP="192.168.0.254"
    PROXYPORT="3128"
     
    ## Reseau externe ##
     
    OUTDEV="eth1"
    OUTDEVIP="XXX.XXX.XXX.XXX"
    ANYADDR="0/0"
     
    ## DNS ##
     
    PRIMARYDNS="212.27.32.5"
    DNSINOUTPORT="53"
     
    ## Services TCP AUTORISES ##
     
    TCPIN="53"
    TCPOUT="21 25 53 80 110 443"
     
    ## Services UDP AUTORISES ##
     
    UDPIN="53"
    UDPOUT="53"
     
    ## Services ICMP AUTORISES ##
     
    ICMPIN=""
    ICMPOUT="3 8 11"
     
    ## Journalisation ##
     
    LOGGING=1
     
     
    #################### FIN SECTION CONFIGURABLE ######################
     
     
    #################### INIT des regles + SPOOFING/SMURF + on fixe les LOGS #############################
     
    ## Activation du routage / forwarding
     
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
     
    ## ANTI SPOOFING OPTION 1 ##
     
    if [ -e /proc/sys/net/ipv4/conf/all/rpfilter ]
    then
    for filtre in /proc/sys/net/ipv4/conf/*/rpfilter
    do
    echo 1 > $filtre
    done
    fi
     
    ## ANTI SPOOFING OPTION 2 ##
     
    $IPTABLES -A INPUT $OUNET -i $OUTDEV -j DROP
     
     
    ## PAS DE ICMP ##
     
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
     
    ## on monte quelques modules bien utiles ...
     
    modprobe ip_tables
    modprobe ip_nat_ftp
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
     
    ## ON FLUSH TOUTES LES REGLES !!!
     
    $IPTABLES -F
    $IPTABLES -X
     
    ## On cree 2 nouvelles chaines pour logguer ce qui ce passe
    ## avec des prefixes de maniere a s'y retrouver
    ## D'abord on loggue puis on refuse le paquet
     
    $IPTABLES -N LOG_DROP
    $IPTABLES -A LOG_DROP -j LOG \
    --log-prefix '[IPTABLES DROP] : '
    $IPTABLES -A LOG_DROP -j DROP
     
    ## .... puis on loggue et on accepte le paquet
     
    $IPTABLES -N LOG_ACCEPT
    $IPTABLES -A LOG_ACCEPT -j LOG \
    --log-prefix '[IPTABLES ACCEPT] : '
    $IPTABLES -A LOG_ACCEPT -j ACCEPT
     
     
    ## Politique du DENY ALL => on refuse d'abord tout 
    ## pour ensuite definir ce qui est autorise :-))
     
    $IPTABLES -P INPUT DROP
    $IPTABLES -P OUTPUT DROP
    $IPTABLES -P FORWARD DROP
     
    ## POUR EVITER LES PROBLEMES ON VA TOUT AUTORISER SUR LA MACHINE LOCALE
    ## NE JAMAIS RETIRER CES REGLES SINON GROS PROBLEMES !!!!!!
     
    $IPTABLES -A INPUT -i lo -j ACCEPT
    $IPTABLES -A OUTPUT -o lo -j ACCEPT
     
    ########################## FIN INIT DES REGLES #############################
     
     
     
    ########################### DEBUT REGLES FIREWALL ############################
     
    ## On autorise tout le traffic sur le reseau local
     
    $IPTABLES -A INPUT -s $OURNET -j ACCEPT
    $IPTABLES -A OUTPUT -d $OURNET -j ACCEPT
    $IPTABLES -A FORWARD -s $OURNET -j ACCEPT
     
    ## On autorise le traffic DNS en TCP et UDP ##
     
    $IPTABLES -A INPUT -i $OUTDEV -p udp --sport $DNSINOUTPORT -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEV -p udp --dport $DNSINOUTPORT -j ACCEPT
     
    $IPTABLES -A INPUT -i $OUTDEV -p tcp --sport $DNSINOUTPORT -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEV -p tcp --dport $DNSINOUTPORT -j ACCEPT
     
    ## On autorise le PROXY local à accéder directement à Internet ##
     
    for port in $TCPOUT ; do
    $IPTABLES -A OUTPUT -o $OUTDEV -m state \
    --state NEW,ESTABLISHED -p tcp --dport $port -j ACCEPT
     
    $IPTABLES -A INPUT -i $OUTDEV -m state \
    --state ESTABLISHED -p tcp --sport $port -j ACCEPT
    done
     
    ## Petite astuce pour rendre le proxy transparent au reseau ....
    ## on forward toutes les requetes de dest. port 80 vers le 3128 local
    ## une regle NAT suffit
     
    #$IPTABLES -t nat -A PREROUTING -i $INDEV -p tcp \
    #--dport 80 -j DNAT --to-destination 195.10.10.254:3128
     
    ## on donne le droit aux machines du LAN d'accéder à Internet librement
     
    $IPTABLES -A FORWARD -i $INDEV -o $OUTDEV -j ACCEPT
    $IPTABLES -A FORWARD -o $INDEV -i $OUTDEV -j ACCEPT
     
    ## AUTORISER LE TRANSFERT FTP ##
    #olive#####
    $IPTABLES -A INPUT -i $OUTDEVIP -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEVIP -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
     
    ###########
    	## Le serveur distant peut etablir la connexion en mode ACTIF ##
     
    $IPTABLES -A INPUT -i $OUTDEV -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEV -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
     
    	## Le serveur distant peut etablir la connexion en mode PASSIF ##
     
    $IPTABLES -A INPUT -i $OUTDEV -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEV -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    ## On active le NTP
     
    $IPTABLES -A OUTPUT -o $OUTDEV -p udp --dport 123 -j ACCEPT
    $IPTABLES -A INPUT -i $OUTDEV -p udp -s 66.187.233.4 --dport 123 -j ACCEPT
     
     
    ## ici on va MASQUERADER les IP du LAN sur une IP publique routable
    ## de manière à ce que toute station du LAN puisse être routée sur Internet
     
    $IPTABLES -t nat -A POSTROUTING \
    -s $OURNET -j MASQUERADE
     
    ## pour finir, pour les paquets qui ne matchent pas les regles :
    ## on refuse et on loggue 
     
    $IPTABLES -A FORWARD -j LOG_DROP
    $IPTABLES -A INPUT -j LOG_DROP
    $IPTABLES -A OUTPUT -j LOG_DROP
     
    ######################### FIN REGLES FIREWALL ################################
     
    echo " [ SCRIPT D'APPLICATION DES REGLES DU FIREWALL TERMINE ] "
    echo "  "
    echo "  "
    echo "  "

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 80
    Par défaut
    Bonjour,

    Quand tu dis que le ftp ne marche pas, ca te fait quoi exactement.
    Fait voir ton fichier etc/proftpd.conf ca pourrait peut etre nous aider a trouver une solution.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Salut, je ne pense pas bien comprendre. Je n'utlise pas proftp, mais vsftpd, donc je n'est pas de fichier proftpd.conf dans /etc.
    Sinon cela ne serait il pas un probleme au niveau de vsftpd ?
    Mis à part ça je débute, je pense avoir compris l'ensembles des régles iptables du script joint, mais pour vsftpd je ne comprend rien.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 137
    Par défaut
    avant de débugger le script , verifies déja si ton serveur ftp écoute bien sur le port 21 de ton interface WAN

    sans lancé le script de firewall , scanne ton ip WAN avec nmap ton_ip
    est ce que le port 21 est bien ouvert?

    ensuite lance le firewall et rescanne ton ip WAN , est ce que le 21 est toujours ouvert?

    en tout cas la règle par rapport à ftp me semble un peu bizarre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $IPTABLES -A INPUT -i $OUTDEVIP -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
    moi je comprends comme ceci
    accèpte les paquets entrant sur l'interface WAN(outdevip) avec comme port source le 21

    alors que c'est ton serveur qui est censé écouter sur le port 21, le client ftp lui se connecte avec un port aléatoire

    t'as aussi la variable TCPIN qui est déclarée , initialisée avec 53 (port DNS) et qui ne sert pas une fois dans ton script ....

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Merci pour l'astuce de tester mes ports par NMAP, sinon à la place de OUTDEVIP tu mettrai quoi?
    Et le port 53 de TCPIN devrai être utilisé selon toi ?
    Je fais les test avec NMAP et je te tiens au courrant.
    Merci.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Voilà ce que j'obtiens avec NMAP sur ETH0 avec les régles du script:
    Rappel :
    WAN -> ETH0; LAN -> ETH1

    Starting nmap 3.48 ( http://www.insecure.org/nmap/ ) at 2004-05-31 09:49 CEST
    Interesting ports on mutualite-1-XXX-XXX-XXX-XXX.fbx.proxad.net (XXX.XXX.XXX.XXX):
    (The 1650 ports scanned but not shown below are in state: closed)
    PORT STATE SERVICE
    21/tcp open ftp
    22/tcp open ssh
    23/tcp open telnet
    111/tcp open rpcbind
    139/tcp open netbios-ssn
    445/tcp open microsoft-ds
    32770/tcp open sometimes-rpc3
    Merci.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 137
    Par défaut
    d'aprés nmap ton serveur ftp écoute bien sur le port 21 sur eth0

    à mon avis tu devrais juste modifier la règle iptables , changer --sport en --dport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $IPTABLES -A INPUT -i $OUTDEVIP -p tcp --dport 21 -j ACCEPT
    donc les paquets tcp rentrants avec pour port de destination le 21 sont accept

    teste une connexion ftp sur eth0

    si ça marche , affine avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $IPTABLES -A INPUT -i $OUTDEVIP -p tcp --dport 21 -m state --state ESTABLISHED -j ACCEPT
    et reteste ,

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 137
    Par défaut
    petit oubli , oublie le port 53 puisque d'aprés ton scan il est pas ouvert , de toute facon c'est le port d'ècoute des serveurs dns et t'as pas besoin de faire tourner un serveur dns sur ton interface WAN

    par contre ton samba, il ne devrait pas non plus écouter sur cette interface ,(port 139 et 445 )...

    pour corriger ça , modifies ton smb.conf
    dans la section global ajoutes une ligne
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    interfaces = 192.168.0.1
    (ip de ton eth1)

    et relance samba avec un

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    marche pas avec la ligne : $IPTABLES -A INPUT -i $OUTDEVIP -p tcp --dport 21 -j ACCEPT

    ça m'agace, sinon le serveur samba marche bien, j'avais fais cette modife, mais pour le serveur FTP, comprend pas pourquoi cela ne marche pas ???
    Si je me sers du sereur FTP de ma machine LAN en passant par l'IP LAN, ou WAN, ça marche, mais dès que qunqun externe essaye de ce connecter marche pas, si je flush les rules, on peut ce connecter de l'extérieur, mais si je réactive les régles cela ne marche plus !!!
    MERCI !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Excuse moi Oega, mais j'ai crus comprendre que l'on pouvais deboguer le script ?
    Comment fait on, et qu'es-ce que cela permet de mettre en évidence ?
    Merci!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    moi pas comprendre pourquoi cela ne marche pas, cela devrait marcher, m'enerve, 15 jours que je bloque sur ce truc !!!

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 137
    Par défaut
    mais le client qui se connecte de l'éxterieur à quoi comme message d'erreur en fait?

    ta règle pour ftp est correct à la limitte il faut aussi ouvrir le port 20 , ftp utilise le port 21 et 20

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    'Connexion impossible', je me connecte du WAN par RTC, et mon serveur est connecté par ADSL, en faite pour mes teste je transforme mon LAN en WAN, merci pour tout.
    Là cette semaine je n'aurais pas trop le temps de tester, j'ai des exams, et je veux bien les finirs, à plus , merci !!!

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Salut, merci pour tout, j'ai trouvé la silution, c'était bien sur le prot 20 et 21 :
    ## Port du serveur FTP ##

    FIREWALL_SERVICES_TCP="20 21"

    ## REGLES POUR SERVEUR FTP ##
    for port in $FIREWALL_SERVICES_TCP; do
    $IPTABLES -A INPUT -i $INDEV -p tcp --dport $port -j ACCEPT
    $IPTABLES -A OUTPUT -o $INDEV -p tcp --sport $port -j ACCEPT
    $IPTABLES -A INPUT -i $OUTDEV -p tcp --dport $port -j ACCEPT
    $IPTABLES -A OUTPUT -o $OUTDEV -p tcp --sport $port -j ACCEPT
    done

    Voilà, merci pour tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  2. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum Sécurité
    Réponses: 7
    Dernier message: 03/02/2004, 14h27
  3. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  4. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo