Linux(CentOS 6) - iptablesの設定を変更し、ftpでのアクセスを許可する

minimal install(ミニマルインストール)したCentOS 6.4は、iptables(ファイアウォール)の設定が自動的に有効になっているため、この設定を変更しない限り、ftpサービスが起動していてもCentOSの外のネットワークからftpでのアクセスができない。

この問題を解決するには、(1)iptablesを無効にするか、(2)iptablesにftp(20、21番ポート)でのアクセスを許可する設定を追加すればよい。

以下は(2)の作業を行った時のメモ。

[root@test ~]# iptables -L -n --line-number   ←iptablesの設定をnum(ファイアウォールのルール番号)およびポート番号付で一覧表示する。
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

ftpのルールは、ルール番号5に挿入して追加することとする。

[root@test ~]# iptables -I INPUT 5 -p tcp --dport 20 -j ACCEPT   ←ftp(20番ポート)へのアクセスは許可する。
[root@test ~]# iptables -I INPUT 5 -p tcp --dport 21 -j ACCEPT   ←ftp(21番ポート)へのアクセスは許可する。
[root@test ~]# iptables -L -n --line-number   ←iptablesの設定をnum(ファイアウォールのルール番号)およびポート番号付で一覧表示する。
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
9    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

[root@test ~]# cat /etc/sysconfig/iptables   ←iptablesの設定ファイル(テキスト)の中身を確認する。
# Generated by iptables-save v1.4.7 on Mon May  6 01:23:59 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [157:40257]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon May  6 01:23:59 2013
[root@test ~]# /etc/rc.d/init.d/iptables save   ←設定したiptablesの情報を保存する。この作業をしないと、iptables再起動時またはOS再起動時に、今回設定したiptablesの内容が消えてしまう。
iptables: ファイアウォールのルールを /etc/sysconfig/iptable[  OK  ]中:
[root@test ~]# /etc/rc.d/init.d/iptables restart   ←iptablesを再起動する。
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]
[root@test ~]# cat /etc/sysconfig/iptables   ←iptablesの設定ファイル(テキスト)に、設定が追記されていることを確認する。
# Generated by iptables-save v1.4.7 on Mon May  6 12:22:06 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [181:16096]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon May  6 12:22:06 2013
[root@test ~]# iptables -L -n --line-number   ←iptablesを再起動しても、設定が失われていないことを確認する。
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
9    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

前へ

アニメ『おまもりひまり』全12話を観終った

次へ

Linux(CentOS 6) - FTP接続時のエラー「500 OOPS: cannot change directory」「500 OOPS: priv_sock_get_cmd」の原因と解決方法