iptables는 규칙 수락에도 불구하고 포트 변경 후 SSH를 통한 연결을 차단합니다.

iptables는 규칙 수락에도 불구하고 포트 변경 후 SSH를 통한 연결을 차단합니다.

라우터에 두 대의 컴퓨터가 연결되어 있습니다. 하나는 PuTTY가 있는 Windows이고 다른 하나는 sshd가 있는 CentOS 6.4이며 기본 SELinux는 여전히 활성화되어 있습니다. 그들은 모두 서로 성공적으로 ping할 수 있습니다.

사용할 수 있도록policycore-python 패키지를 설치한 semanage후 따라갔습니다.이 방향.

4단계는 이미 그런 식으로 설정되어 있으므로 새로운 기본 설정처럼 보입니다.

5단계는 작동합니다. 문제의 문제는 ~/.ssh/config다른 시스템에 SSH 클라이언트를 설정하여 적용되지 않는 것이라고 가정합니다. (PuTTY에서 비슷한 작업을 수행할 수 있습니다.)

6단계 가장 짧고 가장 적용 가능한 것이 세 번째 옵션이라고 생각하므로 다음을 실행합니다.

iptables -A INPUT -p tcp --dport 2345 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 2345 --syn -j DROP
service iptables save
service iptables restart

이때 CentOS 박스에서는 ssh -p 2345 localhost정상적으로 로그인이 가능 ssh -p 2345 192.168.1.4하지만 더 이상 PuTTY를 사용하여 CentOS 박스에 들어갈 수는 없습니다. 연결 창에 올바른 IP와 포트 2345를 입력했지만 연결을 시도하면 녹색 커서가 채워진 검은색 화면이 나타나고 몇 초 후에 GUI 팝업이 나타납니다 Network error: Connection timed out.

만약 내가iptables 서비스 중지, 동일한 방법으로 PuTTY를 사용하여 로그인할 수 있습니다. 따라서 질문은 확실히 iptables유무에 관계가 있는 것 같습니다 sshd(또한 아님 semanage?).

내겐 무슨 일이 일어났나요 iptables?

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:2345 flags:FIN,SYN,RST,ACK/SYN limit: avg 1/min burst 3
DROP       tcp  --  anywhere             anywhere            tcp dpt:2345 flags:FIN,SYN,RST,ACK/SYN

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

답변1

REJECT규칙은 새 규칙 이후에 작성되어야 합니다. 이 작업을 수행:

$ sudo service iptables stop
[sudo] password for kev:
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
$ sudo nano /etc/sysconfig/iptables
$ sudo service iptables start

nano가 열리면 REJECT줄을 자르고 두 개의 새로운 규칙 아래에서 자르지 않은 다음 쓰고 종료하십시오.

또한 로컬 호스트에서 한 번만 ssh를 수행하면 외부에서 수행할 수 있습니다.

관련 정보