방화벽이 활성화된 Linux 클라이언트 PC에서 FTP 액세스 수정
오늘은 Linux에서 FTP 액세스에 대한 개인적인 경험을 공유하고 싶습니다. 일상적인 사용에는 적합하지 않은 Microsoft의 새로운 운영 체제 덕분에 몇 년 전에 Linux로 전환했습니다. 홈 네트워크에서 FTP 서버를 실행 중이며 실행 중인 클라이언트 PC에서 FTP 서버에 액세스할 수 없습니다. 인바운드 연결을 차단하는 방화벽 규칙이 있는 Linux(예: INPUT 정책이 REJECT로 설정됨) iptables. 문제를 해결한 방법은 다음과 같습니다.
클라이언트와 서버 시스템 모두에서 OUTPUT 정책이 ACCEPT라고 가정합니다.
솔루션 #1. 커널 모듈 nf_conntrack_ftp 사용
커널 모듈 nf_conntrack_ftp를 사용하면 연결할 때마다 FTP 서버에 필요한 포트에 대한 액세스 차단을 자동으로 해제할 수 있습니다. 이 모듈의 유일한 요구 사항은 클라이언트 PC의 iptables 규칙(일반적으로 /etc/iptables/iptables.rules)의 다음 줄입니다.
$IPT -A INPUT -i eth0 -m state --state 관련, ESTABLISHED -j ACCEPT
eth0은 네트워크 장치 이름입니다.
다음으로 로드되지 않은 경우 nf_conntrack_ftp를 로드해야 합니다. 클라이언트 PC에서 루트로 다음 명령을 실행합니다.
# modprobe nf_conntrack_ftp
서버가 기본이 아닌 포트(포트 21 제외)를 사용하는 경우 다음 명령을 사용하십시오.
# modprobe nf_conntrack_ftp 포트=your_port
이렇게 하면 FTP 서버와 클라이언트 소프트웨어 간에 필요한 모든 포트가 자동으로 연결됩니다. 이것은 PC를 재부팅할 때까지 작동합니다.
이 변경 사항을 영구적으로 적용하려면 /etc/modules-load.d/conntrack_ftp.conf라는 새 텍스트 파일을 만들고 이 파일에 다음 줄을 추가해야 합니다.
nf_conntrack_ftp
기본이 아닌 서버 포트의 경우 다음 내용으로 /etc/modprobe.d/conntrack_ftp.conf 파일을 추가로 생성해야 합니다.
옵션 nf_conntrack_ftp 포트=
이것으로 충분합니다.
솔루션 #2. 고정 수동 포트 범위 사용
nf_conntrack_ftp 모듈을 사용할 수 없는 경우 FTP 서버 소프트웨어에 대해 고정 포트 범위를 설정하고 클라이언트 PC에서 열 수 있습니다. 예를 들어, 다음은 vsftpd 앱에 대해 수행할 수 있는 방법입니다.
- 일반적으로 /etc/vsftpd.conf인 vsftpd의 구성 파일에서 다음 줄을 추가합니다.
pasv_min_port=5500. pasv_max_port=6500
이것은 서버 측에서 수행되어야 합니다. 그런 다음 vsftpd를 다시 시작해야 합니다.
- 클라이언트 PC의 iptables 규칙(일반적으로 /etc/iptables/iptables.rules)에 다음 규칙을 추가합니다.
$IPT -A 입력 -p tcp -s
--dport 5500:6500 -j 수락 - 다음과 같이 iptables 규칙을 적용합니다.
# iptables-restore < /etc/iptables/iptables.rules
그게 다야