# Samba blocked by IPtables

## eys_gentoo

Hey

After that I installed iptables I cannot mount my samba shares. If I stop iptables it works. 

I followed the guide  https://forums.gentoo.org/viewtopic.php?p=1038378#1038378 to configure iptables and my internet connection and other stuff work. 

The script used to configure iptables, similar to the guide but I have also opened ports used by Samba:

```

#!/bin/bash

# Set interface values

EXTIF='eth0'

#INTIF1='eth1'

#INTIF2='eth2'

#Loop devices/localhost

LPDIF=lo

LPDIP=127.0.0.1

LPDMSK=255.0.0.0

LPDNET="$LPDIP/$LPDMSK"

#Text tools

IPT='/sbin/iptables'

IFC='/sbin/ifconfig'

G='/bin/grep'

SED='/bin/sed'

# Deny than accept: this keeps holes from opening up

# while we close ports and such

#$IPT -P INPUT DROP

#$IPT -P OUTPUT DROP

#$IPT -P FORWARD DROP

# Flush all existing chains and erase personal chains

CHAINS=`cat /proc/net/ip_tables_names 2>/dev/null`

for i in $CHAINS

do

        $IPT -t $i -F

done

for i in $CHAINS

do

        $IPT -t $i -X

done

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Source Address Verification

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do

   echo 1 > $f

done

# Disable IP source routing and ICMP redirects

for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do

   echo 0 > $f

done

for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do

   echo 0 > $f

done

echo > 1 proc/sys/net/ipv4/ip_forward

#Setting up external interface environment variables

EXTIP="`$IFC $EXTIF|$G addr:|$SED 's/.*addr:\([^ ]*\) .*/\1/'`"

EXTBC="`$IFC $EXTIF|$G Bcast:|$SED 's/.*Bcast:\([^ ]*\) .*/\1/'`"

EXTMSK="`$IFC $EXTIF|$G Mask:|$SED 's/.*Mask:\([^ ]*\)/\1/'`"

EXTNET="$EXTIP/$EXTMSK"

echo "EXTIP=$EXTIP EXTBC=$EXTBC EXTMSK=$EXTMSK EXTNET=$EXTNET" 

# enable ip forwarding in the kernel

#/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

                                                                               

# flush rules and delete chains

#$IPTABLES -F

#$IPTABLES -X

                                                                               

# enable masquerading to allow LAN internet access

$IPT -t nat -A PREROUTING -j ACCEPT

$IPT -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

$IPT -t nat -A POSTROUTING -j ACCEPT

$IPT -t nat -A OUTPUT -j ACCEPT

$IPT -A INPUT -p tcp --dport auth --syn -m state --state NEW -j ACCEPT

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# We are now going to create a few custom chains that will result in

# logging of dropped packets. This will enable us to avoid having to

# enter a log command prior to every drop we wish to log. The

# first will be first log drops the other will log rejects.

                                                                                                                                                 

# Do not complain if chain already exists (so restart is clean) 

$IPT -N DROP1 2> /dev/null

$IPT -A DROP1 -j LOG --log-prefix 'DROP1:'

$IPT -A DROP1 -j DROP

$IPT -N REJECT1 2> /dev/null

$IPT -A REJECT1 -j LOG --log-prefix 'REJECT1:'

$IPT -A REJECT1 -j REJECT

#Accept all packets from loop device if IP matches interface IP address

$IPT -A INPUT   -i $LPDIF -s   $LPDIP  -j ACCEPT

$IPT -A INPUT   -i $LPDIF -s   $EXTIP  -j ACCEPT

#Block broadcasts to avoid DoS attacks

$IPT -A INPUT -i $EXTIF -d $EXTBC -j DROP1

$IPT -A OUTPUT -o $EXTIF -d $EXTBC -j DROP1

$IPT -A FORWARD -o $EXTIF -d $EXTBC -j DROP1

# Block WAN access to internal network

# This also stops nefarious crackers from using our network as a

# launching point to attack other people

# iptables translation:

# "if input going into  our external interface does not originate from our isp assigned

# ip address, drop it like a hot potato  

$IPT -A INPUT -i $EXTIF -d ! $EXTIP -j  DROP1

# An additional Egress check

$IPT -A OUTPUT -o $EXTIF -s ! $EXTNET -j DROP1

# Block outbound ICMP (except for PING)

$IPT -A OUTPUT -o $EXTIF -p icmp --icmp-type ! 8 -j DROP1

$IPT -A FORWARD -o $EXTIF -p icmp --icmp-type ! 8 -j DROP1

# COMmon ports:

# 0 is tcpmux; SGI had vulnerability, 1 is common attack

# 13 is daytime

# 98 is Linuxconf

# 111 is sunrpc (portmap)

# 137:139, 445 is Microsoft

# SNMP: 161,2

# Squid flotilla: 3128, 8000, 8008, 8080

# 1214 is Morpheus or KaZaA

# 2049 is NFS

# 3049 is very virulent Linux Trojan, mistakable for NFS

# Common attacks: 1999, 4329, 6346

# Common Trojans 12345 65535 

COMBLOCK="0:1 13 98 111 161:162 1214 1999 2049 3049 4329 6346 3128 8000 8008 8080 12345 65535 "

# TCP ports:

# 98 is Linuxconf

# 512-5!5 is rexec, rlogin, rsh, printer(lpd)

#   [very serious vulnerabilities; attacks continue daily]

# 1080 is Socks proxy server

# 6000 is X (NOTE X over SSH is secure and runs on TCP 22)

# Block 6112 (Sun's/HP's CDE) 

TCPBLOCK="$COMBLOCK 98 512:515 1080 6000:6009 6112"

# UDP ports:

# 161:162 is SNMP

# 520=RIP, 9000 is Sangoma

# 517:518 are talk and ntalk (more annoying than anything) 

UDPBLOCK="$COMBLOCK 161:162 520 123 517:518 1427 9000"

echo -n "FW: Blocking attacks to TCP port"

for i in $TCPBLOCK;

do

   echo -n "$i "

   $IPT -A INPUT -p tcp --dport $i -j DROP1

   $IPT -A OUTPUT -p tcp --dport $i -j DROP1

   $IPT -A FORWARD -p tcp --dport $i -j DROP1

done

echo ""

echo -n "FW: Blocking attacks to UDP port"

for i in $UDPBLOCK;

do

   echo -n "$i "

   $IPT -A INPUT -p udp --dport $i -j DROP1

   $IPT -A OUTPUT -p udp --dport $i -j DROP1

   $IPT -A FORWARD -p udp --dport $i -j DROP1

done

echo ""

# Opening up ftp connection tracking

MODULES="ip_nat_ftp ip_conntrack_ftp"

for i in $MODULES

do

   echo "Inserting module $i"

   modprobe $i

done

IRC='ircd'

MSN=1863

ICQ=5190

NFS='sunrpc'

#We have to sync

PORTAGE='rsync'

OPENPGP_HTTP_KEYSERVER=11371

#Samba

$IPT -A INPUT -p udp -m udp --dport 137 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 137 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 138 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 138 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 135 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 135 -j ACCEPT

$IPT -A OUTPUT -p udp -m udp --dport 137 -j ACCEPT

# All services ports are read from /etc/services

TCPSERV="domain ssh http https ftp ftp-data mail pop3 pop3s imap3 imaps imap2 time $PORTAGE $IRC $MSN $ICQ $OPENPGP_HTTP_Keyserver netbios-ns netbios-dgm netbios-ssn microsoft-ds epmap"

UDPSERV="domain time netbios-ns netbios-dgm netbios-ssn microsoft-ds epmap"

echo -n "FW: Allowing inside systems to use service: "

for i in $TCPSERV;

do

   echo -n "$i "

   $IPT -A OUTPUT -o $EXTIF -p tcp -s $EXTIP --dport $i --syn -m state --state NEW -j ACCEPT

done

echo ""

echo -n "FW: Allowing inside systems to use service:"

for i in $UDPSERV;

do

   echo -n "$i "

   $IPT -A OUTPUT -o $EXTIF -p udp -s $EXTIP --dport $i -m state --state NEW -j ACCEPT 

done

echo ""

# Allow to ping out

$IPT -A OUTPUT -o $EXTIF -p icmp -s $EXTIP --icmp-type 8 -m state --state NEW -j ACCEPT

$IPT -t nat -A PREROUTING -j ACCEPT

$IPT -t nat -A POSTROUTING -j ACCEPT

$IPT -A INPUT -p tcp --dport auth --syn -m state --state NEW -j ACCEPT

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Log & block whatever is left

$IPT -A INPUT -j DROP1

$IPT -A OUTPUT -j REJECT1

$IPT -A FORWARD -j DROP1

                                                                               

# forward LAN traffic from $INTIF1 to Internet interface $EXTIF

#$IPTABLES -A FORWARD -i $INTIF1 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT

                                                                               

# forward LAN traffic from $INTIF2 to Internet interace $EXTIF

#$IPTABLES -A FORWARD -i $INTIF2 -o $EXTIF -m state --state NEW,ESTABLISHED -j ACCEPT

                                                                               

#echo -e "       - Allowing access to the SSH server"

#$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT

                                                                               

#echo -e "       - Allowing access to the HTTP server"

#$IPTABLES -A INPUT --protocol tcp --dport 80 -j ACCEPT

                                                                               

# block out all other Internet access on $EXTIF

#$IPTABLES -A INPUT -i $EXTIF -m state --state NEW,INVALID -j DROP

#$IPTABLES -A FORWARD -i $EXTIF -m state --state NEW,INVALID -j DROP 

```

Output from "iptables -L"

```

iptables -L

Chain INPUT (policy DROP)

target     prot opt source               destination         

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:auth flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

ACCEPT     all  --  gentoolinux.homenetwork  anywhere            

ACCEPT     all  --  192.168.1.100        anywhere            

DROP1      all  --  anywhere             192.168.1.255       

DROP1      all  --  anywhere            !192.168.1.100       

DROP1      tcp  --  anywhere             anywhere            tcp dpts:0:tcpmux 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:daytime 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:sunrpc 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:snmp:snmptrap 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:kazaa 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tcp-id-port 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:nfs 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3049 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:4329 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:gnutella-svc 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3128 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:8000 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:12345 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:65535 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:exec:printer 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:socks 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:x11:6009 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:6112 

DROP1      udp  --  anywhere             anywhere            udp dpts:0:tcpmux 

DROP1      udp  --  anywhere             anywhere            udp dpt:daytime 

DROP1      udp  --  anywhere             anywhere            udp dpt:tacnews 

DROP1      udp  --  anywhere             anywhere            udp dpt:sunrpc 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:kazaa 

DROP1      udp  --  anywhere             anywhere            udp dpt:tcp-id-port 

DROP1      udp  --  anywhere             anywhere            udp dpt:nfs 

DROP1      udp  --  anywhere             anywhere            udp dpt:3049 

DROP1      udp  --  anywhere             anywhere            udp dpt:4329 

DROP1      udp  --  anywhere             anywhere            udp dpt:gnutella-svc 

DROP1      udp  --  anywhere             anywhere            udp dpt:3128 

DROP1      udp  --  anywhere             anywhere            udp dpt:8000 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:12345 

DROP1      udp  --  anywhere             anywhere            udp dpt:65535 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:router 

DROP1      udp  --  anywhere             anywhere            udp dpt:ntp 

DROP1      udp  --  anywhere             anywhere            udp dpts:talk:ntalk 

DROP1      udp  --  anywhere             anywhere            udp dpt:1427 

DROP1      udp  --  anywhere             anywhere            udp dpt:9000 

ACCEPT     udp  --  anywhere             anywhere            udp dpt:netbios-ns 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:netbios-ns 

ACCEPT     udp  --  anywhere             anywhere            udp dpt:netbios-dgm 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:netbios-dgm 

ACCEPT     udp  --  anywhere             anywhere            udp dpt:epmap 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:epmap 

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:auth flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

DROP1      all  --  anywhere             anywhere            

Chain FORWARD (policy DROP)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

DROP1      all  --  anywhere             192.168.1.255       

DROP1      icmp --  anywhere             anywhere            icmp !echo-request 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:0:tcpmux 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:daytime 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:sunrpc 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:snmp:snmptrap 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:kazaa 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tcp-id-port 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:nfs 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3049 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:4329 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:gnutella-svc 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3128 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:8000 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:12345 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:65535 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:exec:printer 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:socks 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:x11:6009 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:6112 

DROP1      udp  --  anywhere             anywhere            udp dpts:0:tcpmux 

DROP1      udp  --  anywhere             anywhere            udp dpt:daytime 

DROP1      udp  --  anywhere             anywhere            udp dpt:tacnews 

DROP1      udp  --  anywhere             anywhere            udp dpt:sunrpc 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:kazaa 

DROP1      udp  --  anywhere             anywhere            udp dpt:tcp-id-port 

DROP1      udp  --  anywhere             anywhere            udp dpt:nfs 

DROP1      udp  --  anywhere             anywhere            udp dpt:3049 

DROP1      udp  --  anywhere             anywhere            udp dpt:4329 

DROP1      udp  --  anywhere             anywhere            udp dpt:gnutella-svc 

DROP1      udp  --  anywhere             anywhere            udp dpt:3128 

DROP1      udp  --  anywhere             anywhere            udp dpt:8000 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:12345 

DROP1      udp  --  anywhere             anywhere            udp dpt:65535 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:router 

DROP1      udp  --  anywhere             anywhere            udp dpt:ntp 

DROP1      udp  --  anywhere             anywhere            udp dpts:talk:ntalk 

DROP1      udp  --  anywhere             anywhere            udp dpt:1427 

DROP1      udp  --  anywhere             anywhere            udp dpt:9000 

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

DROP1      all  --  anywhere             anywhere            

Chain OUTPUT (policy DROP)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

DROP1      all  --  anywhere             192.168.1.255       

DROP1      all  -- !192.168.1.0/24       anywhere            

DROP1      icmp --  anywhere             anywhere            icmp !echo-request 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:0:tcpmux 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:daytime 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:sunrpc 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:snmp:snmptrap 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:kazaa 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tcp-id-port 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:nfs 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3049 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:4329 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:gnutella-svc 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:3128 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:8000 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:http-alt 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:12345 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:65535 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:tacnews 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:exec:printer 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:socks 

DROP1      tcp  --  anywhere             anywhere            tcp dpts:x11:6009 

DROP1      tcp  --  anywhere             anywhere            tcp dpt:6112 

DROP1      udp  --  anywhere             anywhere            udp dpts:0:tcpmux 

DROP1      udp  --  anywhere             anywhere            udp dpt:daytime 

DROP1      udp  --  anywhere             anywhere            udp dpt:tacnews 

DROP1      udp  --  anywhere             anywhere            udp dpt:sunrpc 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:kazaa 

DROP1      udp  --  anywhere             anywhere            udp dpt:tcp-id-port 

DROP1      udp  --  anywhere             anywhere            udp dpt:nfs 

DROP1      udp  --  anywhere             anywhere            udp dpt:3049 

DROP1      udp  --  anywhere             anywhere            udp dpt:4329 

DROP1      udp  --  anywhere             anywhere            udp dpt:gnutella-svc 

DROP1      udp  --  anywhere             anywhere            udp dpt:3128 

DROP1      udp  --  anywhere             anywhere            udp dpt:8000 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:http-alt 

DROP1      udp  --  anywhere             anywhere            udp dpt:12345 

DROP1      udp  --  anywhere             anywhere            udp dpt:65535 

DROP1      udp  --  anywhere             anywhere            udp dpts:snmp:snmptrap 

DROP1      udp  --  anywhere             anywhere            udp dpt:router 

DROP1      udp  --  anywhere             anywhere            udp dpt:ntp 

DROP1      udp  --  anywhere             anywhere            udp dpts:talk:ntalk 

DROP1      udp  --  anywhere             anywhere            udp dpt:1427 

DROP1      udp  --  anywhere             anywhere            udp dpt:9000 

ACCEPT     udp  --  anywhere             anywhere            udp dpt:netbios-ns 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:domain flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:ssh flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:http flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:https flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:ftp flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:ftp-data flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:smtp flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:pop3 flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:pop3s flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:imap3 flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:imaps flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:imap flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:time flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:rsync flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:ircd flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:1863 flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:aol flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:netbios-ns flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:netbios-dgm flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:netbios-ssn flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:microsoft-ds flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     tcp  --  192.168.1.100        anywhere            tcp dpt:epmap flags:FIN,SYN,RST,ACK/SYN state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:domain state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:time state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:netbios-ns state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:netbios-dgm state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:netbios-ssn state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:microsoft-ds state NEW 

ACCEPT     udp  --  192.168.1.100        anywhere            udp dpt:epmap state NEW 

ACCEPT     icmp --  192.168.1.100        anywhere            icmp echo-request state NEW 

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

REJECT1    all  --  anywhere             anywhere            

Chain DROP1 (144 references)

target     prot opt source               destination         

LOG        all  --  anywhere             anywhere            LOG level warning prefix `DROP1:' 

DROP       all  --  anywhere             anywhere            

Chain REJECT1 (1 references)

target     prot opt source               destination         

LOG        all  --  anywhere             anywhere            LOG level warning prefix `REJECT1:' 

REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

```

And last a few relevant lines from "kern.log"

```

Jan 25 21:59:28 gentoolinux kernel: ip_tables: (C) 2000-2006 Netfilter Core Team

Jan 25 21:59:29 gentoolinux kernel: nf_conntrack version 0.5.0 (3072 buckets, 12288 max)

Jan 25 21:59:29 gentoolinux kernel: CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Plase use

Jan 25 21:59:29 gentoolinux kernel: nf_conntrack.acct=1 kernel paramater, acct=1 nf_conntrack module option or

Jan 25 21:59:29 gentoolinux kernel: sysctl net.netfilter.nf_conntrack_acct=1 to enable it.

Jan 25 21:59:31 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=47120 DPT=137 LEN=58 

Jan 25 21:59:38 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=96 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=137 DPT=137 LEN=76 

Jan 25 21:59:38 gentoolinux last message repeated 4 times

Jan 25 21:59:48 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=248 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=138 DPT=138 LEN=228 

Jan 25 22:00:03 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=52569 DPT=137 LEN=58 

Jan 25 22:00:03 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=41875 DPT=137 LEN=58 

Jan 25 22:00:48 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=248 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=138 DPT=138 LEN=228 

```

I have without success followed different guides how to configure iptables to get Samba to work.

Any ideas?

All suggestions or ideas that can point me in the correct direction are of course appreciated.

----------

## gsoe

The following *Quote:*   

> Jan 25 21:59:31 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=47120 DPT=137 LEN=58
> 
> Jan 25 21:59:38 gentoolinux kernel: DROP1:IN= OUT=eth0 SRC=192.168.1.100 DST=192.168.1.255 LEN=96 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=137 DPT=137 LEN=76

 seems to indicate that broadcasting fails. Are you sure that you've enabled netbios connection tracking in the kernel:

```
-> Networking support (NET [=y])                                    │

  │       -> Networking options                                             │

  │         -> Network packet filtering framework (Netfilter) (NETFILTER [= │

  │           -> Core Netfilter Configuration                               │

  │             -> Netfilter connection tracking support (NF_CONNTRACK [=m] │

                         NF_CONNTRACK_NETBIOS_NS [=m]
```

----------

## eys_gentoo

Thank you for your reply. I have compiled NETBIOS now as a module. But it didn't solve my problem.

I give the ouput from lsmod

```
 

lsmod

Module                  Size  Used by

nf_conntrack_netbios_ns     2432  0 

nf_nat_ftp              2560  0 

nf_conntrack_ftp        6820  1 nf_nat_ftp

iptable_raw             2176  0 

ipt_REJECT              2816  1 

ipt_LOG                 4868  2 

xt_state                2048  38 

xt_tcpudp               2816  173 

iptable_filter          2688  1 

iptable_mangle          2688  0 

ipt_MASQUERADE          2688  1 

iptable_nat             4744  1 

nf_nat                 13592  3 nf_nat_ftp,ipt_MASQUERADE,iptable_nat

nf_conntrack_ipv4      11148  41 iptable_nat,nf_nat

nf_conntrack           47328  8 nf_conntrack_netbios_ns,nf_nat_ftp,nf_conntrack_ftp,xt_state,ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4

ip_tables               9360  4 iptable_raw,iptable_filter,iptable_mangle,iptable_nat

x_tables               11140  7 ipt_REJECT,ipt_LOG,xt_state,xt_tcpudp,ipt_MASQUERADE,iptable_nat,ip_tables

fuse                   43676  2 

hostap_pci             41616  0 

hostap_cs              46356  0 

hostap_plx             41240  0 

hostap                 84868  3 hostap_pci,hostap_cs,hostap_plx

ieee80211_crypt         4356  1 hostap

i82092                  9272  0 

pd6729                  8008  0 

cifs                  185508  0 

sd_mod                 21144  0 

scsi_wait_scan          1408  0 

snd_pcm_oss            30240  0 

snd_mixer_oss          12160  2 snd_pcm_oss

snd_seq_midi            5792  0 

snd_seq_dummy           2692  0 

snd_seq_oss            24604  0 

snd_seq_midi_event      5632  2 snd_seq_midi,snd_seq_oss

snd_seq                40100  6 snd_seq_midi,snd_seq_dummy,snd_seq_oss,snd_seq_midi_event

orinoco_cs             13316  1 

orinoco                32532  1 orinoco_cs

hermes                  5632  2 orinoco_cs,orinoco

pcmcia                 27796  2 hostap_cs,orinoco_cs

snd_cs46xx             70188  2 

snd_rawmidi            16672  2 snd_seq_midi,snd_cs46xx

snd_seq_device          5900  5 snd_seq_midi,snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi

snd_ac97_codec         87072  1 snd_cs46xx

ac97_bus                1664  1 snd_ac97_codec

yenta_socket           20876  4 

snd_pcm                51460  3 snd_pcm_oss,snd_cs46xx,snd_ac97_codec

rsrc_nonstatic          8320  3 i82092,pd6729,yenta_socket

snd_page_alloc          6792  2 snd_cs46xx,snd_pcm

```

Thanks in advance

----------

## gsoe

It's been a while since I played around with samba/iptables, so my memory isn't very clear. But in your samba section *Quote:*   

> #Samba
> 
> $IPT -A INPUT -p udp -m udp --dport 137 -j ACCEPT
> 
> $IPT -A INPUT -p tcp -m tcp --dport 137 -j ACCEPT
> ...

 you open up 135, which as I remember aren't related to samba. You might be missing a couple of other ports though. In an old script I found, I open 139 and 445 as well:

```
# tcp services: (11371 is GPG/PGP keyservers, 441 is the management port for smoothwall)

# samba/windows are 137-139, 445

TCPSERV="domain http https ssh pop3 smtp 11371 ftp ftp-data wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

# udp services:

UDPSERV="domain ntp pop3 9 wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

#### The following services are opened for inbound connections:

TCP_INBOUND="ssh wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

UDP_INBOUND="wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

```

and as I remember, the script did work flawlessly. Try experimenting with these settings (have a look in /etc/services for translation of port names to numbers). I can PM you the entire script, if you want to see it.

Good luck!

EDIT: Sorry, I just saw that you include these port after the qouted section, but you might need to open them for input as well.

----------

## eys_gentoo

Thanks 'gsoe' for your answer. I tried to open up ports 139 and 445 for INPUT also but it didn't make any change. 

Therefore the section you quoted looks like:

```

$IPT -A INPUT -p udp -m udp --dport 445 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 137 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 137 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 138 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 138 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 135 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 135 -j ACCEPT

$IPT -A OUTPUT -p udp -m udp --dport 137 -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 139 -j ACCEPT

```

The rest of the script is as before. Therefore I would appreciate much if you could send me your old script so I maybe can compare it with mine. I can also tell you (and other persons at the forum), that when I try to mount my Samba share using the ip adress of the Windows computer, i.e something like "//192.168.1.102/siemens dokument" in my fstab file it works. But if I am using the name of the computer instead of the ip adress it doesn't work when IP tables is started. With iptables stopped I can mount my Samba share by using the name of the computer.

----------

## gsoe

Well, somehow netbios name service seems to fail. I remember going through a lot of fiddling in order to have computers show up by name in the network browser. I didn't quite understand the microsoft way, but the script did work in the end. I include it here:

```
#!/bin/sh

# net.main_fw: 

####  Initialising section  #############################################

#### The following services are opened up for outbound access.

#### If you want fewer or more services enabled, you can alter

#### the variables here:

# tcp services: (11371 is GPG/PGP keyservers, 441 is the management port for smoothwall)

# samba/windows are 137-139, 445

TCPSERV="domain http https ssh pop3 smtp 11371 ftp ftp-data wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

# udp services:

UDPSERV="domain ntp pop3 9 wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

#### The following services are opened for inbound connections:

TCP_INBOUND="ssh wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

UDP_INBOUND="wins microsoft-ds netbios-ssn netbios-ns netbios-dgm"

#### Various variables:

# Commands:

IPT=/sbin/iptables

IFC=/sbin/ifconfig

IPR=/sbin/ip

CUT=/usr/bin/cut

G=grep

SED=sed

#### Set all policys to DROP and clear all rules:

$IPT -P INPUT DROP

$IPT -P OUTPUT DROP

$IPT -P FORWARD DROP

$IPT -F

# External interface:

EXTIF=eth0

# Internal interface:

# INTIF=eth1

# Loopback interface:

LPDIF=lo

LPDIP=127.0.0.1

LPDMSK=255.0.0.0

LPDNET="$LPDIP/$LPDMSK"

#### Getting IP-addresses for interfaces:

# Beware if using dynamic IP-addrs that

# might change during session !!

# EXTIP="`$IFC $EXTIF|$G addr: | $SED 's/.*addr:\([^ ]*\) .*/\1/'`"

# EXTBC="`$IFC $EXTIF|$G Bcast: | $SED 's/.*Bcast:\([^ ]*\) .*/\1/'`"

# EXTMSK="`$IFC $EXTIF|$G Mask: | $SED 's/.*Mask:\([^ ]*\)/\1/'`"

EXTBC="`$IPR addr show $EXTIF | $G global | $SED -e 's/^.*brd\s\([^ ]*\)\s.*$/\1/'`"

EXTMSK="`$IPR addr show $EXTIF | $G global | $SED -e 's/^.*\/\([0-9]*\).*$/\1/'`"

EXTIP="`$IPR addr show $EXTIF | $G global | $CUT -f 1 -d / | $SED -e 's/^.*inet\s//'`"

echo "Network interface data:"

echo "IP-address:      $EXTIP"

echo "Broadcast address:    $EXTBC"

echo "Network mask:       $EXTMSK"

echo " "

####  Main section   ################################################

#### Loopback enabling rules:

$IPT -A INPUT -i $LPDIF -s $LPDIP -j ACCEPT

$IPT -A OUTPUT -o $LPDIF -s $LPDIP -j ACCEPT

$IPT -A INPUT -i $LPDIF -s $EXTIP -j ACCEPT

# $IPT -A INPUT -i $LPDIF -s $INTIP -j ACCEPT

######## OUTBOUND CONNECTIONS #####################################

echo "Allowing the following outbound tcp services: "

echo -n "    "

for i in $TCPSERV;

do

   echo -n "$i "

   $IPT -A OUTPUT -o $EXTIF -p tcp -s $EXTIP --dport $i \

      --syn -m state --state NEW -j ACCEPT

done

echo " "

echo " "

echo "Allowing the following outbound udp services: "

echo -n "    "

for i in $UDPSERV;

do

   echo -n "$i "

   $IPT -A OUTPUT -o $EXTIF -p udp -s $EXTIP --dport $i \

      -m state --state NEW -j ACCEPT

done

echo " "

echo " "

#### Allow first packet for outbound ping:

$IPT -A OUTPUT -o $EXTIF -p icmp -s $EXTIP --icmp-type 8 -m \

   state --state NEW -j ACCEPT

$IPT -A INPUT -i $EXTIF -p icmp --icmp-type 8 -m state \

   --state NEW -j ACCEPT

######## SERVICES TO LISTEN TO #######################################

echo "Allowing the following inbound tcp services: "

echo -n "    "

for i in $TCP_INBOUND;

do

   echo -n "$i "

   $IPT -A INPUT -i $EXTIF -p tcp --dport $i \

      --syn -m state --state NEW -j ACCEPT

done

echo " "

echo " "

echo "Allowing the following inbound udp services: "

echo -n "    "

for i in $UDP_INBOUND;

do

   echo -n "$i "

   $IPT -A INPUT -i $EXTIF -p udp --dport $i \

      -m state --state NEW -j ACCEPT

done

echo " "

echo " "

#### Allowing inbound/outbound packets for established connections:

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

```

----------

## eys_gentoo

Thank you!

I tried the script and now everything works perfectly!

----------

