Ouvrir les ports samba avec iptables

Bonjour,

J’ai un server qui marche avec chilli portail captif.
je voudrai coupler samba sur le server en controleur de domaine .
j’ai installer et configurer , ça marche j’arrive a joindre le domaine .
Le soucis c’est que mon réseau de consultation est en 10.1.0.0/24
J’ai ouvert les ports de samba dans iptables et j’arrive seulement a joindre mon domaine sur le
loopback et le réseau 192.168.2.0/24 qui est ma carte réseau qui accède a internet

root@srv:~# netstat -tapn | grep smbd
tcp 0 0 127.0.0.1:139 0.0.0.0:* LISTEN 24659/smbd
tcp 0 0 192.168.2.100:139 0.0.0.0:* LISTEN 24659/smbd
tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 24659/smbd
tcp 0 0 192.168.2.100:445 0.0.0.0:* LISTEN 24659/smbd
tcp6 0 0 ::1:139 :::* LISTEN 24659/smbd
tcp6 0 0 fe80::e269:95ff:fe7:139 :::* LISTEN 24659/smbd
tcp6 0 0 ::1:445 :::* LISTEN 24659/smbd
tcp6 0 0 fe80::e269:95ff:fe7:445 :::* LISTEN 24659/smbd
root@srv:~#

root@srv:~# netstat -apn | grep nmbd
udp 0 0 192.168.2.255:137 0.0.0.0:* 24653/nmbd
udp 0 0 192.168.2.100:137 0.0.0.0:* 24653/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 24653/nmbd
udp 0 0 192.168.2.255:138 0.0.0.0:* 24653/nmbd
udp 0 0 192.168.2.100:138 0.0.0.0:* 24653/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 24653/nmbd
root@srv:~#

Je ne vois rien sur le reseau 10.1.0.0/24 pourtant c’est la que sont mes utilisateurs.
Je ne maitrise pas trop iptables voila ce que j’ai bidouillé

###########################################################################################

#!/bin/sh

Firewall script for ChilliSpot

A Wireless LAN Access Point Controller

Uses $EXTIF (eth0) as the external interface (Internet or intranet) and

$INTIF (eth1) as the internal interface (access points).

SUMMARY

* All connections originating from chilli are allowed.

* Only ssh is allowed in on external interface.

* Nothing is allowed in on internal interface.

* Forwarding is allowed to and from the external interface, but disallowed

to and from the internal interface.

* NAT is enabled on the external interface.

IPTABLES="/sbin/iptables"
EXTIF="eth0"
INTIF=“eth1”

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

#Allow related and established on all interfaces (input)
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#Allow releated, established and ssh on $EXTIF. Reject everything else.
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 21 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 20 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT
#Pour la radio local avec icecast
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 8000 --syn -j ACCEPT
#pour le test de webtv local avec red5
$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 5080 --syn -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -j REJECT

#Allow related and established from $INTIF. Drop everything else.
$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p udp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p tcp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p udp --dport 138 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p tcp --dport 139 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p udp --dport 445 -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p tcp --dport 445 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p tcp --dport 135 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT

$IPTABLES -A INPUT -s 10.1.0.0/24 -m state --state NEW -p udp --dport 445 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 53 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 53 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 135 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p udp --dport 445 -j ACCEPT

$IPTABLES -A INPUT -s 192.168.2.0/24 -m state --state NEW -p tcp --dport 5678 -j ACCEPT

$IPTABLES -A INPUT -i $INTIF -j DROP

#Allow http and https on other interfaces (input).
#This is only needed if authentication server is on same server as chilli
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 8000 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 21 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 20 --syn -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 139 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 445 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 137 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 138 -j ACCEPT

#Allow 3990 on other interfaces (input).
$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT

#Allow everything on loopback interface.
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

On autorise les retours de connexions létimes par INPUT

Conntrack on INPUT

#$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#This means that access points can only be managed from ChilliSpot

$IPTABLES -A FORWARD -i $INTIF -j DROP

$IPTABLES -A FORWARD -o $INTIF -j DROP

$IPTABLES -A INPUT -i $INTIF -j DROP
#Enable NAT on output device
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
################################################################################################

iptables n’a rien à voir avec la sortie de netstat. Si samba n’écoute pas sur l’adresse en 10, il faut le configurer pour. Quant au script, je ne l’ai pas lu attentivement, les commentaires ne correspondent pas aux règles.

“Si samba n’écoute pas sur l’adresse en 10, il faut le configurer pour”

Comment je peux le configurer pour car je pense que c’est ce que j’ai fais mais ça ne donne rien .
Je crois avoir mal fais c’est pour cela je pose le probleme.
Merci

Je ne connais pas bien samba, mais je suppose qu’il a des fichiers de configuration dans /etc.

OUi samba a un fichier de configuration smb.conf mais je ne crois pas que ce soit dedans qu’on regle ce probleme. enfin si je ne me trompe

configue samba :

###############################################################
[global]
workgroup = SOCIETE
netbios name = srv.debian.lan
server string = %h server
wins support = yes
dns proxy = no
name resolve order = lmhosts host wins bcast
interfaces = 10.1.0.1 lo eth0
bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
time server = Yes
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully .
pam password change = yes
domain logons = yes
local master = yes
logon path = \%N\profiles%U
logon drive = H:
logon home = \%N%U
logon script = logon.cmd
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos “” %u
add machine script = /usr/sbin/useradd -g machines -c “%u machine account” -d /var/lib/samba -s /bin/false %u
add group script = /usr/sbin/addgroup --force-badname %g
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
; include = /home/samba/etc/smb.conf.%m
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
; message command = /bin/sh -c ‘/usr/bin/linpopup “%f” “%m” %s; rm %s’ &
domain master = yes
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
; usershare max shares = 100
[homes]
comment = Documents Personnels
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = %S
[netlogon]
comment = Network Logon Service
path = /srv/samba/netlogon
guest ok = yes
read only = yes
browseable = no
[profiles]
comment = Users profiles
path = /srv/samba/profils
guest ok = no
browseable = no
create mask = 0600
directory mask = 0700
;[printers]
; comment = All Printers
; browseable = no
; path = /var/spool/samba
; printable = yes
; guest ok = no
; read only = yes
; create mask = 0700
; write list = root, @lpadmin
[cdrom]
comment = Samba server’s CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
preexec = /bin/mount /cdrom
postexec = /bin/umount /cdrom

linuxplusvalue.be/mylpv.php?id=8
commentcamarche.net/forum/af … able-samba

Souhaitant que cela te sois profitable

# EPMAP => définit 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 réseau (basé 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 * # 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

Pourtant il y a bien une option qui liste les interfaces utilisées :

Je suppose que 10.1.0.1 est l’adresse IP de eth1 ? Pourquoi avoir mis l’adresse au lieu du nom de l’interface comme pour les autres ?

Pascal, apparemment samba est permissif:

[code]# The specific set of interfaces / networks to bind to

This can be either the interface name or an IP address/netmask;

interface names are normally preferred

; interfaces = 127.0.0.0/8 eth0

Only bind to the named interfaces and/or networks; you must use the

‘interfaces’ option above to use this.

It is recommended that you enable this feature if your Samba machine is

not protected by a firewall or is a firewall itself. However, this

option cannot handle dynamic or non-broadcast interfaces correctly.

; bind interfaces only = yes
[/code]
donc pour savoir si le problème vient de là, tu peux commenter la ligne «bind interfaces only = yes» en mettant un ; devant. Si le problème est rtéglé avec ça, c’est que ça vient de là.

Comme le dit Pascal, les noms d’interfaces sont préférés aux IP mais ça devrait marcher tout de même.
Tu as un fait netstat -tpl pour voir ce que ça donnait?

(netstat -pl | grep mbd)

oot@srv# netstat -pl | grep nmbd
udp 0 0 192.168.2.25:netbios-ns : 2641/nmbd
udp 0 0 srv.debian.l:netbios-ns : 2641/nmbd
udp 0 0 *:netbios-ns : 2641/nmbd
udp 0 0 192.168.2.2:netbios-dgm : 2641/nmbd
udp 0 0 srv.debian.:netbios-dgm : 2641/nmbd
udp 0 0 *:netbios-dgm : 2641/nmbd

J’ai commenté les lignes pour l’interfaces .
Mais toujours la meme chose

Tu peux donner le résultat de «ifconfig -a»?

ifconfig -a

root@srv:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr e0:69:95:xxx.xxx.
inet adr:192.168.2.100 Bcast:192.168.2.255 Masque:255.255.255.0
adr inet6: fe80::e269:95ff:ce70:1afa/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:514095 errors:0 dropped:0 overruns:0 frame:0
TX packets:289866 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:722101849 (688.6 MiB) TX bytes:20656697 (19.6 MiB)
Interruption:31 Adresse de base:0x2000

eth1 Link encap:Ethernet HWaddr 00:a1:b0:xx.xxx
adr inet6: fe80::2a1:b0ff:fec2:f1de/64 Scope:Lien
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:1021446 errors:0 dropped:0 overruns:0 frame:0
TX packets:1089337 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:112062677 (106.8 MiB) TX bytes:927316534 (884.3 MiB)
Interruption:17 Adresse de base:0xd000

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:13405 errors:0 dropped:0 overruns:0 frame:0
TX packets:13405 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:699710 (683.3 KiB) TX bytes:699710 (683.3 KiB)

pan0 Link encap:Ethernet HWaddr 22:ef:61:18:c3:0f
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet adr:10.1.0.1 P-t-P:10.1.0.1 Masque:255.255.255.0
UP POINTOPOINT RUNNING MTU:1500 Metric:1
RX packets:22586 errors:0 dropped:0 overruns:0 frame:0
TX packets:19072 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:100
RX bytes:2499981 (2.3 MiB) TX bytes:6537436 (6.2 MiB)

La c’est bon les ports de samba sont bien ouvert sur le reseau 10.x.y.z
root@srv:~# nmap 10.1.0.1

Starting Nmap 5.00 ( nmap.org ) at 2012-10-31 19:07 CET
Interesting ports on srv.debian.lan (10.1.0.1):
Not shown: 989 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
1935/tcp open rtmp
5080/tcp open unknown
8000/tcp open http-alt
8443/tcp open https-alt

Le soucis j’arrive pas a pinger le server avec son nom netbios a partir du reseau pour les pingues passeent sur les reseaux 10.x.y.z et 192.x.y.z

«en écoute» serait plus approprié que «ouvert» si j’ai bien compris.

Pour le reste je crois que les noms netbios se propage par boadcast et mettent quelques temps à se propager. As tu activer un serveur WINS (wins support = yes), cela débloque souvent les choses (mais ça fait longtemps que je n’ai plus manipulé netbios)

Je n’ai pas installé de server Wins.
je veux juste utiliser le netbios , mais jusque là je ne peux pinguer mon server avec son nom netbios

Le serveur Wins permet aux autres machines de se voir. Par ailleurs un ping ALFRED ne donnera rien même si ALFRED est le nom netbios d’une machine, ça n’a rien à voir.

MAis si j’installe un serveur Wins es ce que cela ne va pas créer un conflit avec mon protail captif ?

La question est: «tes machines se voient elles dans le voisinage réseau?» Si non c’est qu’il y a un souci de propagation et le serveur wins est une solution pour cela.

Toute mes machines se voient dans le reseau. MAis elle ne vois pas le server dans le voisinage de reseau.
Quand je fais dans executer : \ip-server ca marche mais \nom-server marche pas.
de meme pour les pings
C:\Users\newman>ping server
La requête Ping n’a pas pu trouver l’hôte server. Vérifiez le nom et essayez à n
ouveau.

C:\Users\newman>ping ip-server
reponse ok

D’ou peux venir le soucis. Je sais que dans le passé j’ai déjà résolu un problème de ce genre sans installé Wins

Tu peux mettre à jour le fichier lmhosts des machines et vérifier que le braodcast passe bien.

J’avais vu, mais je demandais pourquoi traiter différemment ce réseau. La sortie d’ifconfig répond partiellement à mon interrogation : l’interface qui a l’adresse 10.1.0.1 est en fait l’interface virtuelle tun0, et non eth1 qui est mentionnée dans le script de règles iptables. Je suppose que c’est une particularité du portail chilli. A noter que si samba démarre avant chilli et que c’est ce dernier qui crée et configure l’interface tun0, alors samba peut ne pas la voir.

Ce n’est pas la commande demandée par François. D’autre part, il vaut mieux ne pas résoudre les adresses en noms (-n) pour plus de clarté.

Voila le resultat de la commande

root@debian:~# netstat -pl | grep mbd
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN 2479/smbd
tcp6 0 0 [::]:microsoft-ds [::]:* LISTEN 2479/smbd
udp 0 0 192.168.2.25:netbios-ns : 2411/nmbd
udp 0 0 debian.atday:netbios-ns : 2411/nmbd
udp 0 0 *:netbios-ns : 2411/nmbd
udp 0 0 192.168.2.2:netbios-dgm : 2411/nmbd
udp 0 0 debian.atda:netbios-dgm : 2411/nmbd
udp 0 0 *:netbios-dgm : 2411/nmbd
root@debian:~#