После недолгого копания понял, что уперся в локальный iptables.
Короче говоря шпаргалка...
Создаём новую цепочку (это для красоты и удобства)
iptables -N SMB
Говорим iptables идти через цепочку
iptables -A INPUT -j SMB
Добавляем в созданную цепочку правила для сервера (что бы можно было расшарить каталог)
iptables -A SMB -p tcp -m tcp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
iptables -A SMB -p udp -m udp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
и правила для клиента (что бы можно было смотреть список компьютеров в сети и ходить на шары)
iptables -A SMB -p tcp --sport 137:139 -j ACCEPT
iptables -A SMB -p udp --sport 137:139 -j ACCEPT
Если у вас настройки подгружаются из файла (как сделать читаем тут ), то добавьте следующее:
#создаем новую цупочку (поместите её в рядом с остальными цепочками)
:SMB - [0:0]
#посылаем пакеты в цепочку (вставлять нужно до запрещающего всё правила "-A INPUT -j DROP", если такое есть)
-A INPUT -j SMB
#и, собственно, сама цепочка правил (вставлять нужно до комманды "COMMIT")
#для сервера
-A SMB -p tcp -m tcp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
-A SMB -p udp -m udp -m multiport --dports 137,138,139,445 -s 192.168.156.0/24 -j ACCEPT
#и для клиента
-A SMB -p tcp --sport 137:139 -j ACCEPT
-A SMB -p udp --sport 137:139 -j ACCEPT