
FTP 사이트에 연결하려고 하는데 예를 들어 다음과 같습니다 wget
.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /gcrypt/gnutls ... done.
==> SIZE v3.2 ... done.
==> PASV ... couldn't connect to 217.69.76.55 port 40258: Network is unreachable
iptables를 비활성화하면 작동하므로 분명히 그것이 문제입니다. 그러나 나는 모든 것이 올바르게 설정되었다고 확신합니다.
# Accept related, established...
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# ftp/http(s) clients
-A OUTPUT -p tcp -m multiport --dports 21,80,443,8080 -j ACCEPT
-A OUTPUT -p udp --dport 21 -j ACCEPT
뭐가 문제 야?
답변1
Iptables는 "RELATED, ESTABLISHED"가 작동하려면 로드된 일부 커널 모듈이 필요합니다. HTTP 클라이언트가 괜찮다면 분명히 그 중 일부가 있을 것입니다.
> lsmod | grep conntrack
nf_conntrack_ipv4 20258 6
nf_defrag_ipv4 12702 1 nf_conntrack_ipv4
xt_conntrack 12760 6
nf_conntrack 99996 2 xt_conntrack,nf_conntrack_ipv4
그러나 ftp용 항목인 는 nf_conntrack_ftp
추가 항목이며 장치나 파일 시스템 드라이버와 달리 커널에 의해 자동으로 로드되지 않습니다.
> modprobe nf_conntrack_ftp
해야합니다. 부팅 시 모듈을 자동 로드하는 교차 배포판 방법인 AFAIK는 없지만 Fedora에서는 다음을 추가할 수 있습니다.
IPTABLES_MODULES="nf_conntrack_ftp"
에게 /etc/sysconfig/iptables-config
. systemd
이 파일을 사용하지만 없는 다른 시스템에서는 을 참조하세요 man modules-load.d
.