![iptables는 규칙 수락에도 불구하고 포트 변경 후 SSH를 통한 연결을 차단합니다.](https://linux55.com/image/33712/iptables%EB%8A%94%20%EA%B7%9C%EC%B9%99%20%EC%88%98%EB%9D%BD%EC%97%90%EB%8F%84%20%EB%B6%88%EA%B5%AC%ED%95%98%EA%B3%A0%20%ED%8F%AC%ED%8A%B8%20%EB%B3%80%EA%B2%BD%20%ED%9B%84%20SSH%EB%A5%BC%20%ED%86%B5%ED%95%9C%20%EC%97%B0%EA%B2%B0%EC%9D%84%20%EC%B0%A8%EB%8B%A8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
라우터에 두 대의 컴퓨터가 연결되어 있습니다. 하나는 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를 수행하면 외부에서 수행할 수 있습니다.