WhereToStart

色々手をつけすぎてすぐに忘れるので備忘録

さくらのVPSを借りた時にとりあえずここまではやっておくって事

参考
VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定 | dogmap.jp


基本的には参考URLの焼き直し。
#はrootで実行。$は最初に作成した一般ユーザで実行。

作業用ユーザーの作成

rootユーザのパスワード漏れたりしたら\(^o^)/なので普段の作業はこいつでする。

# useradd futabooo
# passwd futabooo

rootになれるようにwheelグループに追加

$ usermod -G wheel futabooo
$ visudo
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

ssh公開鍵方式でログインできるようにする

ssh公開鍵自体は自分のローカルマシンで作成しておく
パーミッションも変更してセキュリティ向上

$ scp -P 22 sakuraVPS_id_rsa.pub futabooo@割り当てられてるIPアドレス:
$ mkdir .ssh
$ chmod 700 .ssh
$ mv sakuraVPS_id_rsa.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

rootでのログイン、パスワードでのログインをできなくする

# vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

sshポートの変更を変更してsshd再起動

hogeはデフォで2だけど、変更しておく。22だと簡単にアタックされる。
他にもよくあるのは1022とか。

$ vi /etc/ssh/sshd_config
Port hoge
$ /etc/rc.d/init.d/sshd restart

iptablesの設定をする

hogeはさっきsshの時に設定したPort番号と合わせる

# vi /etc/sysconfig/iptables
*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport hoge -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

# /etc/rc.d/init.d/iptables restart
# /sbin/chkconfig iptables on

yumのアップデート

# yum update

denyhostsを導入する

ssh規定回数以上ログインに失敗したアクセス元の IP アドレスをアクセスできないようにするやつ

# yum install -y denyhosts
# /etc/init.d/denyhosts start
# /sbin/chkconfig denyhosts on

logwatchを導入する

サーバー監視ツール。一日一回設定したメアドにメールで内容を送ってくれる。

# yum install -y logwatch
# vi /etc/logwatch/conf/logwatch.conf
MailTo = example@co.j@

コンソールの日本語化

# vi /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"

ここまでは決まった作業として行う。
最低限の設定。