時刻更新時に the NTP socket is in use, exiting というエラーメッセージ

時刻の更新を行おうとして ntpdate で更新しようと以下のコマンドを入力しました。

ntpdate ntp1.jst.mfeed.ad.jp

そうすると、以下のエラーが発生しました。

 5 Mar 23:13:28 ntpdate[2322]: the NTP socket is in use, exiting

どうやら更新に利用するソケットが ntp もしくは ntpd によって使用されているので更新に失敗しているようです。
時刻更新用のサーバーが稼働しているので放っておけば勝手に更新されるとは思いますが、強制的に更新させます。

ntp サービスを停止させます。(RedHat や CentOS 系なら ntpd になると思います)

service ntp stop

先ほどのコマンドを実行します。

ntpdate ntp1.jst.mfeed.ad.jp

今度は更新されるはずです。
更新が終わると ntp サーバーを稼働させます。

service ntp start

これで時刻を強制的に更新することができました。

iptables 基礎

ufw 等に逃げてたのでそろそろ基礎的な部分を調べました。

基本的な構文

iptables スイッチ チェーン オプション -j アクション

大まかにですが、こんな感じかと思います。
※オプション、アクション等は私が勝手につけただけです。

チェーン

チェーンは、どこからの通信なのかを指定できます。受信するパケットに適用したり、送信するパケットに適用したりできます。
初めから定義されているチェーンは3つあります。

INPUT 受信するパケットに対して指定の指定です。
OUTPUT 送信するパケットに対して指定の指定です。
FORWARD これは転送を行うパケットに対しての指定です。これは設定するPCをルーターとして利用する場合に利用します。

アクション

アクションは、パケットを許可するのか、破棄するのかを指定します。
許可するには ACCEPT。破棄するには DROP を指定します。

スイッチ

チェーンの前にあるスイッチは、チェーンに追加したり、チェーンに指定がない場合のデフォルトの設定などができます。

-P : 初期設定

iptables -P チェーン アクション

パケットの指定がされていないパケットに対しての、デフォルトの設定を行います。

例えば受信するパケットをデフォルトで破棄するには次のようになります。

iptables -P INPUT DROP

-A : 追加

iptables -A チェーン オプション -j アクション

チェーンに対して新たなルールを追加します。
オプションに当てはまるチェーンのパケットを、アクションで処理する。
のような感じになります。

オプション
オプションは、プロトコル・ポート番号・モジュールを指定することができます。これはパケットの種類を細かく指定して許可するために使用します。

例えば ssh のパケットを受信するには tcp プロトコルの 22 番ポートを開放します

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

-p がプロトコル。続く –dport がポート番号 になります。–dport は -p のオプション的な扱いのようなので –dport だけを指定することはできません。

IPアドレスで直接許可したり、制限をかけたりすることもできます。IPを指定するには -s (source) を使用します。IPアドレスにはマスクを使用することもできます。マスクを利用すると IP アドレスの範囲を一気に指定することができます。
192.168.0.0/16 や 192.168.0.0/255.255.255.0 のどちらの形でも記述可能です。


# 192.168.0.8 の ssh を許可する場合
iptables -A INPUT -s 192.168.0.8 -p tcp --dport 22 -j ACCEPT
# 192.168.0.0 ~ 192.168.0.255 からの ssh を許可する場合
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp --dport 22 -j ACCEPT

モジュール

-m モジュール

これは個別に設定されている機能を有効化してより細かくパケットを制限できます。
例えばローカルネットワーク内限定だと思いますが、macアドレスによって許可することも可能です。
mac アドレスを判定するには mac モジュールを指定します。

-m mac --mac-source 00:50:8D:FD:E6:32

などのように指定できます。

ある程度わかった(かも)ので、いくつか例を作ってみます。

# 受信パケットをデフォルトで破棄
iptables -P INPUT DROP

# ssh のポート開放。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# ローカルに対してのみ ssh 開放
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

# apache の 80 番開放
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# mysql の開放
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# SSL の開放
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

これで、基礎的な部分はできるようになりました…?

参考

http://wiki.centos.org/HowTos/Network/IPTables