Firewall do Samba

1

no momento estou tentando implementar o firewall para o meu servidor de arquivos linux. Tudo está funcionando como esperado, exceto pelo servidor samba. Eu já pesquisei pela internet, mas as soluções não funcionam para mim. Se o firewall está desativado, o samba funciona bem. Se eu adicionar minhas regras do samba, não consigo acessar o servidor pelo Windows. Qual é o meu erro?

Muito obrigado, Jonny

# 1. Delete all existing rules
iptables -F

# 2. Set default chain policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Allow traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#dhcp
iptables -I INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

#samba server
iptables -A INPUT -i eth0 -s 192.168.178.0/24 -p udp --dport 137:138 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.178.0/24 -p udp --sport 137:138 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.178.0/24 -p tcp --dport 139 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.178.0/24 -p tcp --sport 139 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -d 192.168.178.0/24 -p tcp --dport 445 -m state --state ESTABLISHED -j ACCEPT

#ntp date
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --sport 123 -j ACCEPT

#apt get and wget
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

#incoming ssh 
iptables -A INPUT -i eth0 -p tcp --dport 50555 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 50555 -m state --state ESTABLISHED -j ACCEPT

#outgoing ssh
iptables -A OUTPUT -o eth0 -p tcp --dport 22  -d 192.168.178.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#Allow Incoming HTTP and HTTPS
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

#Allow Ping from Inside to Outside
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

#Allow outgoing dns
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

#Logging
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
iptables -A LOGGING -j DROP
    
por Jonny Schubert 29.12.2015 / 16:39

1 resposta

1

Apague o seu número de regra 5. Deve ser:

iptables -A INPUT -i eth0 -s 192.168.178.0/24 -p tcp --dport 445 -m state --state NEW,ESTABLISHED -j ACCEPT

E a conexão relacionada (nova regra)

iptables -A OUTPUT -o eth0 -d 192.168.178.0/24 -p udp --sport 445 -m state --state ESTABLISHED -j ACCEPT

E, para evitar listas de regras muito longas, você pode definir a política OUTPUT padrão como ACCEPT , portanto, não é necessário criar uma regra com base nas sessões estabelecidas para cada regra INPUT que você possui. Depois de algum tempo, isso fará com que você crie regras mais rapidamente.

De alguma forma, é um exagero se você não tiver nenhum serviço que possa gerar tráfego excessivo sem você saber. Ou crie uma regra específica para gerar tráfego relacionado:

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
    
por 29.12.2015 / 17:54