- sshd_configを書き換える(*1)
- sshd再起動
- ssh接続
- Firewallで443番ポートへのアクセスを許可する
- ターミナルで443番ポートでssh接続
# vi /etc/ssh/sshd_config
----------
【変更前】
Port 22
----------
【変更後】
Port 22
Port 443
----------
# /etc/init.d/sshd restart
22番ポートでsshdに接続することはできるが、443番ポートでsshdに接続することが出来ない。原因を調査するために、nmapをダウンロードして自分のサーバに向けてポートスキャンをしてみた。
------------------------------
>nmap -v 192.168.0.4
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
------------------------------
そういえば、Firewallを有効にしていたのを忘れていた。(^^;
# /etc/init.d/iptables stop
で、Firewallを外して、443番ポートでsshdに接続すると接続できるから、やっぱりFirewallが原因っぽい。
Firewallの設定を見る。Firewallの設定は、/etc/sysconfig/iptables に書かれている。しかし、マニュアルでの編集・設定は推奨されていないので、かならず、iptablesコマンドを利用して設定をすること。(*2)(*3)
# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- 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
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 <=== ssh(port 22)接続を許可
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 <=== http(port 80)接続を許可
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
# iptables -P INPUT RH-Firewall-1-INPUT
# iptables -P FORWARD RH-Firewall-1-INPUT
# iptables -P OUTPUT ACCEPT
# iptables -F
# iptables -A INPUT -j RH-Firewall-1-INPUT
# iptables -A FORWARD -j RH-Firewall-1-INPUT
# iptables -A RH-Firewall-1-INPUT -i lo -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p esp -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p ah -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -p tcp --dport 443 -j ACCEPT
# iptables -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
# /etc/init.d/iptables save
# /etc/init.d/iptabels restart
上記、コマンド群を次回、更新するときなどのために/root/iptables.shに保存した。
できた!22番でも接続できた!
【参考】
(*1) O'Reilly - Hack 97. Run Two Services on a Single TCP Port
(*2) iptables・設定・ファイアウォール・セキュリティ
(*3)くわぞうメモ: iptableのルールを追加する
0 件のコメント:
コメントを投稿