General

新しくLinux serverを構築

2009年2月22日

我が家のプライベートwebサーバ構築のため、クローゼットで眠っていたマザーボード+CPU(VIA EMIA-M)に256MBのRAMを挿入し、amazonで購入した40GB(およそ$20)のHDDを接続して、サーバとした。

Debianのインストール時のみCD-ROMを接続し、今ははずしてある。その後の管理にはネットを使えばよいので、CD-ROMは必要ない。ただ、この状態でapt-getするとCD-ROMを読みにいこうとするので、/etc/apt/sources.listファイルを編集して、CD-ROMをリストから除外した。

まずapt-get sshでSSHをインストール。これを行えばサーバを直接触る必要は無い。次に、iptablesをセットした。次の内容でiptables.shを用意し、ファイアウォールの設定変更のたびに実行する形。これを公開するのはあまりよくないのだが、今回は家庭内サーバとしての使用で接続先クライアントが限られているため、ここにメモしておくことにした。

#!/bin/sh
#/root/iptables.sh
#chmod 700

iptables -F

#Forward policy: DROP
iptables -P FORWARD DROP

#Output policy: ACCEPT
iptables -P OUTPUT ACCEPT

#Set time before limitting input
iptables -P INPUT ACCEPT
ntpdate xxxxx
hwclock --systohc

#Input policy: DROP
iptables -P INPUT DROP

#localhost
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#intranet
iptables -A INPUT -s 192.168.0.0/16 -p udp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -p tcp -j ACCEPT

#DNS lookup
iptables -A INPUT -s 192.168.0.0/16 -p udp --sport 53 --dport 1024: -j ACCEPT

#limit ping (accept once every second)
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#accesss from office (http, ssh & ftp)
iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 20 -j ACCEPT

#http server
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p udp --dport 80 -j ACCEPT

#https server
#iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 443 -j ACCEPT

#Samba server
#iptables -A INPUT -s xxx.xxx.xxx.0/24 -p udp --dport 137 -j ACCEPT
#iptables -A INPUT -s xxx.xxx.xxx.0/24 -p udp --dport 138 -j ACCEPT
#iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 139 -j ACCEPT
#iptables -A INPUT -s xxx.xxx.xxx.0/24 -p tcp --dport 445 -j ACCEPT

#cliant
iptables -A INPUT -p tcp ! --syn --dport 1024: -j ACCEPT
#ftp cliant
iptables -A INPUT -p tcp ! --sport 20 --dport 1024: -j ACCEPT

echo "The iptables has been set:"
iptables --list

ここまですれば、ルーターの設定で外に接続するようにしても大丈夫。

コメント

Katsumi (2009年2月28日 23:31:27)

その後、vi /etc/ssh/sshd_config で、
PermitRootLogin no
とし、/etc/init.d/ssh restartとした。

コメント送信