iptables를 통해 ftp를 허용하는 데 문제가 있었습니다. 이제 내 FTP는 다음과 같습니다.
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp ctstate NEW,RELATED,ESTABLISHED multiport dports http,https,ftp,ftp-data
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
별 문제는 없는데 연결하려고 하면 작동하지 않습니다. (내 FTP 서버가 작동 중이므로 문제가 되지 않습니다.)
답변1
iptables
이러한 규칙이 귀하의 클라이언트에 있는지 아니면 서버에 있는지 완전히 명확하지 않습니다 . 당신의 진술"그것은 작동하지 않습니다연결하려고 하면" 전혀 도움이 되지 않습니다. 이러한 문제를 명확히 하려면 질문을 업데이트하십시오.
이러한 규칙이 서버에 있는 경우이를 허용하는 규칙을 정의하지 않았기 때문에 다른 곳에서 연결할 수 없습니다.
이것이 당신의 고객이라면실패한 이유는 인바운드 관련 데이터 연결을 허용하지 않았기 때문입니다. 기억해~에서서버의 TCP/21도착하다클라이언트의 모든 상위 포트. INPUT 규칙 에 iptables
관련 인바운드 세션이 필요합니다.도착하다TCP/21.
이 규칙은 devops-blog.net에서 가져온 것입니다.출발하는 고객을 위해 작동해야 합니다.
-A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT