ユカシカド エンジニアブログ

体の栄養状態を把握する検査サービス VitaNoteを開発するエンジニアのブログ

さくらのVPSでFreeBSDセットアップメモ2

引き続きメモ。

目次

  1. ファイアウォール(ipfw)の設定
  2. メール通知設定
  3. sudoとzshを導入
  4. MySQLPostgreSQLを導入

1.ファイアウォール(ipfw)の設定

とりあえず、SSHとHTTPのポートだけあけておく。

有効化

$ vi /etc/rc.conf
firewall_enable="YES"  
firewall_script="/etc/rc.firewall_local" 
firewall_logging="YES"

起動

$ service ipfw start

確認

$  ipfw -a list                 
00010  21478  7063402 allow ip from any to any via lo0
00020      0        0 deny ip from any to 127.0.0.0/8
00021      0        0 deny ip from 127.0.0.0/8 to any
00022      0        0 deny ip from any to 172.16.0.0/12
00023      0        0 deny ip from 172.16.0.0/12 to any
00024      0        0 deny ip from any to 192.168.0.0/16
00025      3      152 deny ip from 192.168.0.0/16 to any
00030      0        0 deny tcp from any to any frag
00050      0        0 check-state
00060  53847  8227515 allow tcp from any to any established
00070  45149 38359346 allow ip from any to any out keep-state
00080     12      484 deny icmp from any to any
00100      8      512 allow tcp from any to any dst-port 20 in
00101      0        0 allow tcp from any to any dst-port 20 out
00110      9      568 allow tcp from any to any dst-port 21 in
00111      0        0 allow tcp from any to any dst-port 21 out
00120   8497   543760 allow tcp from any to any dst-port 80 in
00121      0        0 allow tcp from any to any dst-port 80 out
00130      1       64 allow tcp from any to any dst-port 123 in
00131      0        0 allow tcp from any to any dst-port 123 out
00999 169620 11629975 deny log ip from any to any
65535      0        0 deny ip from any to any

外部からnmapでポートスキャンしてみるとこんな感じ

PORT     STATE  SERVICE
20/tcp   closed ftp-data
21/tcp   closed ftp
80/tcp   open   http

2.メール通知設定

とりあえずSendmailをそのまま使用する

設定

$ vi /etc/rc.conf
sendmail_enable="NO"
sendmail_submit_enable="YES"
sendmail_outbound_enable="YES"
sendmail_msp_queue_enable="YES"    

起動

$ /etc/rc.d/sendmail onestart

rootへのメール通知設定

$ vi /etc/mail/aliases
root: ***@***

aliases.db を更新

$ newaliases

3.sudoとzshを導入

sudo

$ portinstall /usr/ports/security/sudo
$ visudo
%wheel  ALL=(ALL) ALL  # wheelグループのユーザを許可する

zsh

$ portinstall /usr/ports/shells/zsh
$ chsh -s zsh

4.MySQLPostgreSQLを導入

MySQL

portinstall /usr/ports/databases/mysql56-client
portinstall /usr/ports/databases/mysql56-server

初期化

$ vi /etc/rc.conf
mysql_enable="YES"

$ mysql_install_db --verbose --user=mysql --basedir=/usr/local --datadir=/var/db/mysql --tmpdir=/tmp
$ mysql_secure_installation 

設定ファイル

$ cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
[mysqld]
skip-character-set-client-handshake
character-set-server=utf8

[mysql]
default-character-set=utf8

PostgreSQL

インストー

$ sudo portinstall /usr/ports/databases/postgresql92-server

$ vi rc.conf
postgresql_enable="YES"

初期化

$ sudo /usr/local/etc/rc.d/postgresql initdb

設定ファイル

/usr/local/pgsql/data/postgresql.conf
listen_addresses = 'localhost'

起動

$ sudo service postgresql start 

ユーザ追加

$ su # rootになってから
$ su pgsql # pgsqlにスイッチして
$ psql -l # DB一覧    
$ createuser -P ユーザ名 # ユーザ追加

DB作成

$ psql posgres
posgres=> create database lokka
posgres=> \q # コンソール終了