저는 현재 iptables와 samba에 어려움을 겪고 있습니다.
삼바를 사용하려면 tcp 및 udp에서 포트 137-139 및 445를 열어야 한다는 것을 읽었습니다.
이것은 내 iptables 구성의 관련 부분입니다.
...
# forward valid incoming connections from lan to lan-services chain
-A INPUT -i eth1 -s 192.168.17.0/24 -p udp -m conntrack --ctstate NEW -j LANSERV
-A INPUT -i eth1 -s 192.168.17.0/24 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j LANSERV
...
# samba
-A LANSERV -p tcp -m tcp --sport 137:139 --dport 137:139 -j ACCEPT
-A LANSERV -p udp -m udp --sport 137:139 --dport 137:139 -j ACCEPT
-A LANSERV -p tcp -m tcp --sport 445 --dport 445 -j ACCEPT
-A LANSERV -p udp -m udp --sport 445 --dport 445 -j ACCEPT
좋습니다. 192.168.17.*은 eth1에 연결된 로컬 서브넷입니다. 이 규칙에 문제가 있나요? 삼바에는 더 많은 포트가 필요합니까?
-A INPUT -i eth1 -s 192.168.17.0/24 -j ACCEPT
방화벽을 추가하면 삼바가 작동할 수 있으므로 확실히 방화벽입니다 .
편집: Windows 7 컴퓨터에서 연결을 시도하고 있습니다.
답변1
"소스 포트"는 원격 컴퓨터가 서버로 패킷을 보내는 포트를 나타냅니다. 클라이언트-서버 패킷은 도착했던 동일한 원격 포트에서 거의 전송되지 않습니다. 이는 일반 사용자가 특정 제한(Linux에서는 1024 미만의 모든 포트) 아래의 포트를 열지 못하도록 하는 대부분의 운영 체제의 제한 때문입니다.
따라서 컴퓨터로 전달되는 패킷의 소스 포트는 원격 호스트의 임의의 높은 번호 포트에서 나올 가능성이 높습니다. 기본적으로 포트 번호는 중요하지 않으며 지정되지 않을 수도 있습니다.
위의 규칙은 다음에서 패킷을 예상합니다.외딴포트 137-139는 캡처되지 않으면 캡처되지 않습니다. 이를 제거 --sport 137:139
하면 원격 시스템의 임의 상위 포트에서 포트 137-139로의 트래픽을 허용해야 합니다.