カーネルパラーメタの設定を行う
#vi /etc/sysctr
#pingのブロードキャストに反応しない.
net.ipv4.icmp_echo_ignore_broadcasts = 1
#不正なICMPエラーの無視
net.ipv4.icmp_ignore_bogus_error_responses = 1
#SYN Cookiesの有効化
net.ipv4.tcp_syncookies = 1
#ICMPリダイレクトの無視
net.ipv4.conf.all.accept_redirects = 0
#パケット転送を行わない
net.ipv4.ip_forward = 0
#ソースルーティングパケットの破棄
net.ipv4.conf.default.accept_source_route = 0
上記の設定の有効化.
#sysctl -p
iptablesの設定を考える.
1.pingはローカルエリア内の物のみを受け付ける
2.SSHも同様
3.ローカル外のネットワークからの接続は,HTTP意外は全てDrop
#!/bin/bash
#
#stop iptables
#
service iptables stop
#
#filter reset
#
iptables -F
#
#allow local loop back
#
iptables -A INPUT -i lo -j ACCEPT
#
#1. allow 'ping' command from local net wark
#
iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT
#
#2. allow 'secure shell' from local net word
#
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
#
#3. allow 'http' from word wide web
#
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#
#drop another tcp packets
#
iptables -A INPUT -p tcp --syn -j DROP
#
#save setting
#
service iptables save
#
#start iptables
#
service iptables start
SELinuxの設定
ユーザーを追加して,Apache入れて,CGI許可して,ユーザーディレクトリを許可する
今回は,NFSを使ってディレクトリの共有は行わず,以前の環境のファイル類をrsyncを使って転送した
$rsync -avz -e ssh ~/ server:~/
まあ,こんなことをやったので,.ssh以下もコピーされたりしてちょっと焦ったけどorz
httpdを立ち上げても,403が出て接続不可能.原因はおそらくSELinux,と言うことで一旦無効にしてみる
#setenforce permissive
エラーが解消されることを確認.
# getsebool -a | grep httpd | grep home
httpd_enable_homedirs --> off
# setsebool -P httpd_enable_homedirs 1
# getsebool -a | grep httpd | grep home
httpd_enable_homedirs --> on
最後に,ラベルの張替えを行う
$restorecon -R ~/
これで,接続完了.
SELinuxに関しては(も?)知識が全く足りていない.半分以上「何だかよく分からないけど,動いている」状態.
非常に危険.
今宵は,ここまで.
参考サイト
2done.org Apacheのmod_userdirを使う
----追記----
Wikiのパーミッションの変更に関してちょっと詰まった.
ホームディレクトリのパーミッションを変更しなかったのが原因.
あとは,参考サイトの通りの設定と
/plugin/code
のパーミッションを
755
に,所有者,グループをrootに.
参考サイト
PukiWikiをお引越し