CentOS5에서 iptables에 많은 규칙을 추가한 후 FTP에 액세스하는 것은 절대 불가능합니다.

CentOS5에서 iptables에 많은 규칙을 추가한 후 FTP에 액세스하는 것은 절대 불가능합니다.

FTP를 통해 서버에 접속하려다 최악의 상황에 직면했습니다. 방화벽을 활성화된 상태로 유지하고 싶습니다.

편집하다: iptables 정보가 업데이트되었습니다.

다음 규칙을 활성화했습니다.

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
58398 7869K RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02 state NEW
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 state NEW

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy DROP 5841 packets, 350K bytes)
 pkts bytes target     prot opt in     out     source               destination
 4046  299K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    2   114 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
 2935  196K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53 state NEW
  170 10200 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 ctstate NEW,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20 ctstate NEW,ESTABLISHED

Chain RH-Firewall-1-INPUT (2 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3306
   26 10260 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 255
    0     0 ACCEPT     esp  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     ah   --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251         udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:631
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:631
 8465  774K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
49907 7084K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpts:30000:35000
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:20
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 ctstate NEW,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20 ctstate NEW,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state ESTABLISHED

나는 이것이 필요 이상이라는 것을 알고 있지만 어찌할 바를 모르겠습니다. iptables를 비활성화하면 서버에 제대로 연결할 수 있으므로 이것이 방화벽과 관련이 있다는 것을 알고 있습니다.

포트 21과 수동 연결만 사용하여 연결하고 싶습니다. 수동 연결을 위해 포트 39000~40000을 열고 싶습니다.

나는 무엇을 해야 합니까?


아하! 내가 고쳤어! 나는 규칙을 다시 읽고 어떤 규칙을 거부하고 있는지 확인했습니다. 나는 그것이 규칙을 방해할 것이라는 느낌을 받았고, 실제로 그랬습니다!

그래서 내 연결을 차단한 것은 다음 규칙이었습니다.

49907 7084K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

그래서 제가 해결한 방법은 서버를 다시 시작하고 규칙을 재설정한 다음 포트 21 규칙을 다음과 같이 추가하는 것이었습니다.앞으로거부 규칙:

 sudo iptables -I RH-Firewall-1-INPUT 11 -p tcp -m tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
 sudo iptables -I RH-Firewall-1-INPUT 11 -p tcp -m tcp --dport 39000:40000 -m state --state RELATED,ESTABLISHED -j ACCEPT

그런 다음 vsftpd.conf에 다음을 추가했습니다.

pasv_enable=YES
pasv_max_port=39000
pasv_min_port=40000

이제 연결할 수 있습니다. 만세!

답변1

질문에 대한 나의 답변은 다음과 같습니다.


아하! 내가 고쳤어! 나는 규칙을 다시 읽고 어떤 규칙을 거부하고 있는지 확인했습니다. 나는 그것이 규칙을 방해할 것이라는 느낌을 받았고, 실제로 그랬습니다!

그래서 내 연결을 차단한 것은 다음 규칙이었습니다.

49907 7084K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

그래서 제가 해결한 방법은 서버를 다시 시작하고 규칙을 재설정한 다음 포트 21 규칙을 다음과 같이 추가하는 것이었습니다.앞으로거부 규칙:

 sudo iptables -I RH-Firewall-1-INPUT 11 -p tcp -m tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
 sudo iptables -I RH-Firewall-1-INPUT 11 -p tcp -m tcp --dport 39000:40000 -m state --state RELATED,ESTABLISHED -j ACCEPT

그런 다음 vsftpd.conf에 다음을 추가했습니다.

pasv_enable=YES
pasv_max_port=40000
pasv_min_port=39000

이제 연결할 수 있습니다. 만세!

관련 정보