Hatena::ブログ(Diary)

新大阪で働く社長のはてなダイアリー このページをアンテナに追加 RSSフィード

2009-10-25

ライブドアに引っ越します

元々はてなという会社に惹かれてブログを利用していたのですが、足りない機能や技術的な問題が多々あり、ライブドアに引っ越すことにしました。

とにかくJavascriptやiframeが使えないのが難点です。

アクセス解析とかよくわからないファイルアップロード機能よりもこちらを先に何とかして欲しかったのですが、改善されそうな感じもしないのであきらめることにしました。


自作するというのもいいのですが、やるからには弊社でブログサービスごとやりたいですし、そうなると一番の問題はPINGトラックバックなんですよね。

今はトラックバック荒らし等が多いため、新参のサービスは中々、他のブログサービスで認められなかったりするのが難点です。


そんななか、ライブドアブログJavascriptを使えるという話を耳にしまして、実際にアカウントを作成したところあっさり設置できたので切り替えることにしました。

ちなみに新しいURLは下記になりますので、ブックマークされてる方、RSS登録されている方はお手数をおかけしますが切り替えをお願いします。


新大阪で働く社長のlivedoorBlog

2009-10-22

Fedora11でPCルーター構築

PCルーター構築をまとめた情報がみつからなかったのでまとめてみました。


【PCルーターの設計】

グローバルIPアドレス1個で、内部の複数のマシンが同時にインターネットを利用できるようにする(IPマスカレード)

・各種サーバーサービスに必要なポート以外の外部からのアクセスは遮断する(ファイアウォール)


【必要な機器】

ネットワークアダプタ(NIC)×2

ルーターとするサーバーには、インターネット(外部向け)接続用とハブ(内部向け)接続用に2枚必要

ハブ


ネットワーク情報】

ネットワークアドレス:192.168.1.0/24

FedoraサーバーIPアドレス:192.168.1.1固定

クライアントIPアドレス:192.168.1.2〜192.168.1.254


まずPPPoE接続のために「rp-pppoe」が必要になります。

Fedora11ではインストール時にデフォルトで上記がインストールされません。

インストール時に導入するには、インストール中のソフトウェア選択時に「今すぐカスタマイズする」を選択して、「ベースシステム」の「ダイアルアップネットワークサポート」にチェックを入れて下さい。

後からインストールする場合は、下記コマンドでできます。

# su

# yum install rp-pppoe


次にNIC2枚それぞれの設定をします。

まずeth0を外部用に設定します。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=no

次にeth1を内部用に設定します。

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.1.1

NETMASK=255.255.255.0

NETWORK=192.168.1.0

BROADCAST=192.168.1.255

GATEWAY=192.168.1.1

上記を設定したらネットワークを反映させます。

# /etc/rc.d/init.d/network restart

次にインターネット接続用のPPPoE設定を行います。

# pppoe-setup


Welcome to the ADSL client setup. First, I will run some checks on

your system to make sure the PPPoE client is installed properly...


LOGIN NAME

Enter your Login Name (default root): XXXXXXXX プロバイダから通知された接続IDを応答

INTERFACE

Enter the Ethernet interface connected to the ADSL modem

For Solaris, this is likely to be something like /dev/hme0.

For Linux, it will be ethX, where 'X' is a number.

(default eth0): eth0 ← eth0応答

Do you want the link to come up on demand, or stay up continuously?

If you want it to come up on demand, enter the idle time in seconds

after which the link should be dropped. If you want the link to

stay up permanently, enter 'no' (two letters, lower-case.)

NOTE: Demand-activated links do not interact well with dynamic IP

addresses. You may have some problems with demand-activated links.

Enter the demand value (default no):  ← 空ENTER

DNS

Please enter the IP address of your ISP's primary DNS server.

If your ISP claims that 'the server will provide dynamic DNS addresses',

enter 'server' (all lower-case) here.

If you just press enter, I will assume you know what you are

doing and not modify your DNS setup.

Enter the DNS information here:  ← 空ENTER

PASSWORD

Please enter your Password:  プロバイダから通知されたパスワードを応答※表示はされない

Please re-enter your Password:  プロバイダから通知されたパスワードを応答(確認)※表示はされない

USERCTRL

Please enter 'yes' (two letters, lower-case.) if you want to allow

normal user to start or stop DSL connection (default yes): no ← no応答(rootユーザのみインターネット接続操作を許可)

FIREWALLING

Please choose the firewall rules to use. Note that these rules are

very basic. You are strongly encouraged to use a more sophisticated

firewall setup; however, these will provide basic security. If you

are running any servers on your machine, you must choose 'NONE' and

set up firewalling yourself. Otherwise, the firewall rules will deny

access to all standard servers like Web, e-mail, ftp, etc. If you

are using SSH, the rules will block outgoing SSH connections which

allocate a privileged source port.

The firewall choices are:

0 - NONE: This script will not set any firewall rules. You are responsible

for ensuring the security of your machine. You are STRONGLY

recommended to use some kind of firewall rules.

1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation

2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway

for a LAN

Choose a type of firewall (0-2): 1 ← 1応答

Start this connection at boot time

Do you want to start this connection at boot time?

Please enter no or yes (default no):  ← 空ENTER

** Summary of what you entered **

Ethernet Interface: eth1

User name: XXXXXXXX

Activate-on-demand: No

DNS: Do not adjust

Firewalling: MASQUERADE

User Control: no

Accept these settings and adjust configuration files (y/n)? y ← 設定確認してy応答

Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0

Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets

(But first backing it up to /etc/ppp/chap-secrets.bak)

(But first backing it up to /etc/ppp/pap-secrets.bak)



Congratulations, it should be all set up!

Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'to bring it down.

Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'to see the link status.

次に問合せ先DNSサーバーを設定します。

# sed -i '/^nameserver/d' /etc/resolv.conf

# echo "nameserver XXX.XXX.XXX.XXX" >> /etc/resolv.conf ← 問合せ先DNSサーバープロバイダから通知されたDNSサーバー(プライマリ)を設定

# echo "nameserver XXX.XXX.XXX.XXX" >> /etc/resolv.conf ← 問合せ先DNSサーバープロバイダから通知されたDNSサーバー(セカンダリ)を設定

次に下記コマンドでインターネット接続ができますので、無事接続できたか確認をして下さい。

# /etc/rc.d/init.d/network restart

# pppoe-start

無事接続できましたら、IPマスカレード&ファイアウォール設定スクリプトを作成します。

# vi iptables-router.sh

#!/bin/bash


#---------------------------------------#

# 設定開始 #

#---------------------------------------#

# 内部インタフェース名定義

LAN=eth0

# 公開外部インタフェース名定義

PUBLIC_WAN=ppp0

# 公開サーバープライベートIPアドレス定義

SERVER=192.168.1.1


#---------------------------------------#

# 設定終了 #

#---------------------------------------#

# 自ホストプライベートIPアドレス

IPADDR=192.168.1.1

# 内部ネットワークのネットマスク

LOCALNET_MASK=255.255.255.0

# 内部ネットワークアドレス取得

LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|grep 0.0.0.0|cut -f1 -d' '`

LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK

# 外部インタフェース名取

# ※マルチセッション対応

cd /etc/sysconfig/network-scripts

WANLIST=`ls ifcfg-ppp* | LANG=C egrep -v '(ifcfg-lo|:|-range|rpmsave|rpmorig|rpmnew)' | \

LANG=C egrep -v '(~|\.bak)$' | \

LANG=C egrep 'ifcfg-[A-Za-z0-9\._-]+$' | \

sed 's/^ifcfg-//g' |

sed 's/[0-9]/ &/' | LANG=C sort -k 1,1 -k 2n | sed 's/ //'`

# 読み込み対象モジュール追加

sed -i '/IPTABLES_MODULES/d' /etc/sysconfig/iptables-config

modinfo ip_nat_pptp > /dev/null 2>&1

if [ $? -eq 0 ]; then

echo "IPTABLES_MODULES=\"ip_conntrack_ftp ip_nat_ftp ip_nat_pptp\"" >> /etc/sysconfig/iptables-config

else

echo "IPTABLES_MODULES=\"ip_conntrack_ftp ip_nat_ftp\"" >> /etc/sysconfig/iptables-config

fi

# パケット転送停止

# ※ルール設定中のパケット通過防止

sysctl -w net.ipv4.ip_forward=0 > /dev/null

# ファイアウォール停止(すべてのルールをクリア)

/etc/rc.d/init.d/iptables stop

# デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定

iptables -P INPUT DROP # 受信はすべて破棄

iptables -P OUTPUT ACCEPT # 送信はすべて許可

iptables -P FORWARD DROP # 通過はすべて破棄

# SYN Cookiesを有効にする

# ※TCP SYN Flood攻撃対策

sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null

sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf

echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない

# ※Smurf攻撃対策

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null

sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf

echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ICMP Redirectパケットは拒否

sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf

for dev in `ls /proc/sys/net/ipv4/conf/`

do

sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null

echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf

done

# Source Routedパケットは拒否

sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf

for dev in `ls /proc/sys/net/ipv4/conf/`

do

sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null

echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf

done

# フラグメント化されたパケットはログを記録して破棄

iptables -N LOG_FRAGMENT

iptables -A LOG_FRAGMENT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FRAGMENT] : '

iptables -A LOG_FRAGMENT -j DROP

iptables -A INPUT -f -j LOG_FRAGMENT

iptables -A FORWARD -f -j LOG_FRAGMENT

# 外部からの送信元がプライベートIPアドレスパケットはログを記録して破棄

# ※IP spoofing攻撃対策

iptables -N LOG_SPOOFING

iptables -A LOG_SPOOFING -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES SPOOFING] : '

iptables -A LOG_SPOOFING -j DROP

for WAN in $WANLIST

do

iptables -A INPUT -i $WAN -s 127.0.0.0/8 -j LOG_SPOOFING

iptables -A INPUT -i $WAN -s 10.0.0.0/8 -j LOG_SPOOFING

iptables -A INPUT -i $WAN -s 172.16.0.0/12 -j LOG_SPOOFING

iptables -A INPUT -i $WAN -s 192.168.0.0/16 -j LOG_SPOOFING

iptables -A FORWARD -i $WAN -s 127.0.0.0/8 -j LOG_SPOOFING

iptables -A FORWARD -i $WAN -s 10.0.0.0/8 -j LOG_SPOOFING

iptables -A FORWARD -i $WAN -s 172.16.0.0/12 -j LOG_SPOOFING

iptables -A FORWARD -i $WAN -s 192.168.0.0/16 -j LOG_SPOOFING

done

# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄

for WAN in $WANLIST

do

iptables -A INPUT -i $WAN -p tcp -m multiport --dports 135,137,138,139,445 -j DROP

iptables -A INPUT -i $WAN -p udp -m multiport --dports 135,137,138,139,445 -j DROP

iptables -A OUTPUT -o $WAN -p tcp -m multiport --sports 135,137,138,139,445 -j DROP

iptables -A OUTPUT -o $WAN -p udp -m multiport --sports 135,137,138,139,445 -j DROP

iptables -A FORWARD -i $WAN -p tcp -m multiport --dports 135,137,138,139,445 -j DROP

iptables -A FORWARD -i $WAN -p udp -m multiport --dports 135,137,138,139,445 -j DROP

iptables -A FORWARD -o $WAN -p tcp -m multiport --sports 135,137,138,139,445 -j DROP

iptables -A FORWARD -o $WAN -p udp -m multiport --sports 135,137,138,139,445 -j DROP

done

# 1秒間に4回を超えるpingはログを記録して破棄

iptables -N LOG_PINGDEATH

iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT

iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '

iptables -A LOG_PINGDEATH -j DROP

iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH

iptables -A FORWARD -o ! $WAN -p icmp --icmp-type echo-request -j LOG_PINGDEATH

# 送信元IPアドレスが内部ネットワーク範囲外のアクセスはログを記録して破棄

# ※Ingress対策

iptables -N LOG_INGRESS

iptables -A LOG_INGRESS -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INGRESS] : '

iptables -A LOG_INGRESS -j DROP

iptables -A FORWARD -i $LAN -s ! $LOCALNET -j LOG_INGRESS

# パスMTU問題対処

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# 自ホストからのアクセスをすべて許可

iptables -A INPUT -i lo -j ACCEPT

# 内部からのアクセスをすべて許可

iptables -A INPUT -i $LAN -j ACCEPT

iptables -A FORWARD -i $LAN -j ACCEPT

# 内部からのインターネットへの同時接続を可能にする

# ※IP masquerade(NAPT)

for WAN in $WANLIST

do

iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

done

# 内部から行ったアクセスに対する外部からの返答アクセスを許可

for WAN in $WANLIST

do

iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT

done

# 外部からの必須ICMPパケットを許可

iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT

iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT

iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type destination-unreachable -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type source-quench -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type parameter-problem -j ACCEPT

# 113番ポート(IDENT)へのアクセスには拒否応答

# ※メールサーバ等のレスポンス低下防止

iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

iptables -A FORWARD -p tcp --dport 113 -j REJECT --reject-with tcp-reset

#----------------------------------------------------------#

# 自ホストが各種サービスを公開する場合の設定(ここから) #

#----------------------------------------------------------#

router_eq_server(){

# 外部からの22番ポート(SSH)へのアクセスを許可

# ※SSHサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 22 -j ACCEPT

# 外部からのTCP/UDP53番ポート(DNS)へのアクセスを許可

# ※外部向けDNSサーバーを運用する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -i $PUBLIC_WAN -p udp --dport 53 -j ACCEPT

# 外部からの80番ポート(HTTP)へのアクセスを許可

# ※Webサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 80 -j ACCEPT

# 外部からの443番ポート(HTTPS)へのアクセスを許可

# ※Webサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 443 -j ACCEPT

# 外部からの21番ポート(FTP)へのアクセスを許可

# ※FTPサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 21 -j ACCEPT

# 外部からのPASV用ポート(FTP-DATA)へのアクセスを許可

# ※FTPサーバーを公開する場合のみ

# ※PASV用ポート60000:60030は当サイトの設定例

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 60000:60030 -j ACCEPT

# 外部からの25番ポート(SMTP)へのアクセスを許可

# ※SMTPサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 25 -j ACCEPT

# 外部からの465番ポート(SMTPS)へのアクセスを許可

# ※SMTPSサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 465 -j ACCEPT

# 外部からの110番ポート(POP3)へのアクセスを許可

# ※POP3サーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 110 -j ACCEPT

# 外部からの995番ポート(POP3S)へのアクセスを許可

# ※POP3Sサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 995 -j ACCEPT

# 外部からの143番ポート(IMAP)へのアクセスを許可

# ※IMAPサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 143 -j ACCEPT

# 外部からの993番ポート(IMAPS)へのアクセスを許可

# ※IMAPSサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 993 -j ACCEPT

# 外部からの1723番ポート(PPTP)へのアクセスを許可

# 外部からのGREプロトコルへのアクセスを許可

# ※PPTPサーバーを公開する場合のみ

iptables -A INPUT -i $PUBLIC_WAN -p tcp --dport 1723 -j ACCEPT

iptables -A INPUT -i $PUBLIC_WAN -p gre -j ACCEPT

}

#----------------------------------------------------------#

# 自ホストが各種サービスを公開する場合の設定(ここまで) #

#----------------------------------------------------------#

#----------------------------------------------------------#

# 他ホストが各種サービスを公開する場合の設定(ここから) #

#----------------------------------------------------------#

router_ne_server(){

# 外部からの公開サーバーの22番ポート(SSH)へのアクセスを許可&転送

# ※SSHサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 22 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 22 -j DNAT --to $SERVER

# 外部からの公開サーバーTCP/UDP53番ポート(DNS)へのアクセスを許可&転送

# ※外部向けDNSサーバーを運用する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 53 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 53 -j DNAT --to $SERVER

iptables -A FORWARD -i $PUBLIC_WAN -p udp -d $SERVER --dport 53 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p udp --dport 53 -j DNAT --to $SERVER

# 外部からの公開サーバーの80番ポート(HTTP)へのアクセスを許可&転送

# ※Webサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 80 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 80 -j DNAT --to $SERVER

# 外部からの公開サーバーの443番ポート(HTTPS)へのアクセスを許可&転送

# ※Webサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 443 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 443 -j DNAT --to $SERVER

# 外部からの公開サーバーの21番ポート(FTP)へのアクセスを許可&転送

# ※FTPサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 21 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 21 -j DNAT --to $SERVER

# 外部からの公開サーバーのPASV用ポート(FTP-DATA)へのアクセスを許可&転送

# ※FTPサーバーを公開する場合のみ

# ※PASV用ポート60000:60030は当サイトの設定例

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 60000:60030 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 60000:60030 -j DNAT --to $SERVER

# 外部からの公開サーバーの25番ポート(SMTP)へのアクセスを許可&転送

# ※SMTPサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 25 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 25 -j DNAT --to $SERVER

# 外部からの公開サーバーの465番ポート(SMTPS)へのアクセスを許可&転送

# ※SMTPSサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 465 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 465 -j DNAT --to $SERVER

# 外部からの公開サーバーの110番ポート(POP3)へのアクセスを許可&転送

# ※POP3サーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 110 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 110 -j DNAT --to $SERVER

# 外部からの公開サーバーの995番ポート(POP3S)へのアクセスを許可&転送

# ※POP3Sサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 995 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 995 -j DNAT --to $SERVER

# 外部からの公開サーバーの143番ポート(IMAP)へのアクセスを許可&転送

# ※IMAPサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 143 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 143 -j DNAT --to $SERVER

# 外部からの公開サーバーの993番ポート(IMAPS)へのアクセスを許可&転送

# ※IMAPSサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p tcp -d $SERVER --dport 993 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p tcp --dport 993 -j DNAT --to $SERVER

# 外部からの公開サーバーのUDP1194番ポート(OpenVPN)へのアクセスを許可&転送

# ※OpenVPNサーバーを公開する場合のみ

iptables -A FORWARD -i $PUBLIC_WAN -p udp -d $SERVER --dport 1194 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p udp --dport 1194 -j DNAT --to $SERVER


iptables -A FORWARD -i $PUBLIC_WAN -p udp -d $SERVER --dport 2304 -j ACCEPT

iptables -t nat -A PREROUTING -i $PUBLIC_WAN -p udp --dport 2304 -j DNAT --to $SERVER

}

#----------------------------------------------------------#

# 他ホストが各種サービスを公開する場合の設定(ここまで) #

#----------------------------------------------------------#

# 公開サーバーが自ホストの場合のルール設定を行う

[ "$SERVER" = "$IPADDR" ] || [ $SERVER = 127.0.0.1 ] && router_eq_server

# 公開サーバーが他ホストの場合のルール設定を行う

[ "$SERVER" != "$IPADDR" ] && [ $SERVER != 127.0.0.1 ] && router_ne_server


# 上記のルールにマッチしなかったアクセスはログを記録して破棄

iptables -A INPUT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INPUT] : '

iptables -A INPUT -j DROP

iptables -A FORWARD -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FORWARD] : '

iptables -A FORWARD -j DROP

# 再起動時にも上記設定が有効となるようにルールを保存

/etc/rc.d/init.d/iptables save

# ファイアウォール起動

/etc/rc.d/init.d/iptables start

# パケット転送開始

sysctl -w net.ipv4.ip_forward=1 > /dev/null

sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

設定が完了しましたらスクリプトを起動します。

# ./iptables-router.sh

次にクライアントへ自動でIPが割り当てられるようにDHCPサーバーインストールします。

# yum -y install dhcp

# cp /usr/share/doc/dhcp-*/dhcpd.conf.sample /etc/dhcpd.conf

# vi /etc/dhcpd.conf

ddns-update-style interim;

ignore client-updates;

not authoritative; ← 追加


subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

#option nis-domain "domain.org"; コメントアウト

option domain-name-servers 192.168.1.1;

option time-offset -18000; # Eastern Standard Time

# option ntp-servers 192.168.1.1;

# option netbios-name-servers 192.168.1.1;

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.1.2 192.168.1.254; ← 割当てるIPアドレスを指定(192.168.1.2〜192.168.1.254)

default-lease-time 21600;

max-lease-time 43200;

# we want the nameserver to appear at a fixed address

#host ns {

# next-server marvin.redhat.com;

# hardware ethernet XX:XX:XX:XX:XX:XX;

# fixed-address XXX.XXX.XXX.XXX;

#}

}

あとは下記コマンドでDHCPサーバーを起動すればPCルーターの完成です。

# /etc/rc.d/init.d/dhcpd start

クライアントPCから無事接続できるかご確認ください。

まぁFedora11をルーター化することはあまりないと思いますが、複数PCを固定IPアドレス1つでサーバー運用するときなどにご活用いただければと思います。

2009-10-21

インターネットラジオ放送をはじめました

インターネットラジオ放送 sanosuke.fm

上記でインターネットラジオ放送サイトを開始しました。

現在、番組を募集しております。

そもそも、なぜインターネットラジオをはじめたかと言うと個人的な趣味の延長が大きいです。

職場ではよくインターネットラジオを流しながら仕事をすることが多いのですが、番組を探すのが下手で結局ポータルに近いラジオばかり聞いているので、もっと他に番組を知りたい、どうせならポータルを作って集めてしまおうという考えではじめることにしました。

今のところ、コンテンツが少ないのでサイトの右側がほとんど広告になっていますが、最終的に広告を減らしてラジオ番組それぞれのアクセスが相対的に上がるように修正していきたいです。

基本的に利益は考えていないので、おそらくずっと赤字状態が続くと思いますが、よほどのことがない限り閉鎖しないよう運営していきたいと思っております。

もし興味を持っていただければ、ぜひ番組をご提供いただけるとありがたいです。