ふと思いつきで、centOSのファイアウォールを設定(iptables)しようと思い立つ。
(むしろ何で今までしてなかったのか・・・セキュリティがザルすぎる。。)
軽い気持ちで始めたのが運の尽き。長い旅路へと旅立つことになった。(遠い目)
iptablesを設定
SSHのポートを、例えば『88888』とする。
sudo vi /etc/sysconfig/iptables
で、これを書き込む。↓
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SERVICES - [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A INPUT -p icmp -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 88888 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 123 -j ACCEPT
-A INPUT -p udp --dport 123 -j ACCEPT
-A INPUT -p tcp --dport 43 -j ACCEPT
-A INPUT -p tcp --dport 67 -j ACCEPT
-A INPUT -p tcp --dport 68 -j ACCEPT
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 25 -j ACCEPT
COMMIT
※注意※
COMMITの後に余計な改行を入れたりしないように!
『88888』の数字は、自分の環境に合わせて修正。初期状態なら22です。
80:http
443:https
5432:PostgreSQL
3306:MySQL
123:時刻
67:Bootstrap Protocol(※1)
68:Bootstrap Protocol(※1)
43:whois
110:POP(受信メール)の許可
25:SMTP(送信メール)の許可
(※1)Bootstrapで表示している部分がうまく表示されなくて、BootstrapのPortを調べてこれを追記したらちゃんと表示されるようになった。(謎)いらないんじゃね?
で、あとは設定ファイルの再読み込み。
sudo /sbin/service iptables restart
sudo /etc/init.d/httpd restart
chkconfigユーティリティで、サーバ起動時にサービスが開始するよう設定。
chkconfig iptables on
sshの設定ファイルに追記
問題があって、上記の設定内容でSSHもサイトも繋がりはするのだけど、激遅くなった。
・・・なぜ?
DNS逆引きをしに行って遅延しているらしい。
sshの設定ファイルを修正。
sudo vi /etc/ssh/sshd_config
Port 88888
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
AddressFamily inet
UseDNS no
『AddressFamily inet』『UseDNS no』を追加。
sshを再起動。
sudo /etc/init.d/sshd restart
SSHだけは早くなったけど・・・。
vsftpdの設定ファイルに追記
(逆引き設定を無効にする)
DNS逆引きに関する設定でどこでしてるの??と疑問に思いながらググるとあった!!
【vsftpd:接続が遅い場合(30秒かかる)の対処方法】(KAKIMASSE様サイトへリンク)
sudo vi /etc/vsftpd/vsftpd.conf
接続元の逆引き設定を無効にするには、これを追記。↓
reverse_lookup_enable=NO
そして、vsftpdを再起動。
sudo service vsftpd restart
サイトの表示はまだ遅い。
とりあえず今回のところはこれにて終了。
後半へ続く。
【シリーズ】
・iptablesを設定する
・IPv6を無効化する
・iptablesを設定したら、ブラウザでconnection timed out; no servers could be reachedになって困った時の解決法。