ルータに 2 台のコンピュータが接続されています。 1 つは PuTTY がある Windows、もう 1 つは sshd がある CentOS 6.4 で、既定の SELinux はまだアクティブです。彼らはすべてお互いに正常にpingすることができます。
使用できるようにpolicycore-pythonパッケージをインストールしたsemanage
後に従いました。この方向。
ステップ4はすでにそのように設定されているため、新しいデフォルト設定のように見えます。
ステップ5は機能します。問題の問題は、~/.ssh/config
他のシステムにSSHクライアントを設定して適用されないことを前提としています。 (PuTTYでも同様のことができます。)
ステップ6最短で最も適用可能なものが3番目のオプションだと思うので、次のようにします。
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
行を切り取り、2つの新しいルールの下で切り捨ててから、書き込んで終了します。
また、ローカルホストで一度だけsshを実行すると、外部で実行できます。