방화벽 삼바

방화벽 삼바

현재 저는 Linux 파일 서버에 방화벽을 구현하려고 합니다. 삼바 서버를 제외한 모든 것이 예상대로 작동합니다. 인터넷에서 검색했지만 해결책이 없습니다. 방화벽이 비활성화되어 있으면 Samba가 제대로 작동합니다. 삼바 규칙을 추가하면 Windows를 통해 서버에 액세스할 수 없습니다. 나에게 뭐가 문제 니?

고마워요, 조니

# 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

답변1

규칙 5를 제거합니다. 그것은해야한다:

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

및 관련 연결(새 규칙)

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

또한 긴 규칙 목록을 피하기 위해 이미 설정한 각 규칙에 대한 세션을 기반으로 규칙을 생성 할 필요가 없도록 OUTPUT기본 정책을 설정할 수 있습니다. 시간이 지남에 따라 이를 통해 규칙을 더 빠르게 만들 수 있습니다.ACCEPTINPUT

자신도 모르게 과도한 트래픽 출력을 생성할 수 있는 서비스가 없다면 이는 다소 과잉입니다. 또는 관련 트래픽을 출력하는 특정 규칙을 만듭니다.

iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

관련 정보