su / sudo 権限の設定
≪suコマンドの実行可能ユーザーを制限≫
suコマンドは system グループに所属するユーザーのみが実行出来るように設定する。
system グループを作成する
groupadd system
作成された事を確認
grep "system" /etc/group
system グループに kmurakoshi ユーザーを追加
usermod -G system kmurakoshi
grep "system" /etc/group
/etc/login.defsの編集
/etc/login.defsに以下の行を追記してsuコマンドの制限を有効にする。
vim /etc/login.defs
SU_WHEEL_ONLY yes
/etc/pam.d/suの編集
suコマンド実行可能なグループ(system)を設定
vim /etc/pam.d/su
#auth required pam_wheel.so use_uid
↓
auth required pam_wheel.so use_uid group=system
/etc/groupの編集
/etc/groupの system に、suコマンドの実行を許可するユーザー(kmurakoshi)を追加。
vim /etc/group
system:x:1001:root,kmurakoshi
変更した設定を有効にするために、システムを再起動。
shutdown -r now
設定確認用のテストユーザー作成
useradd hoge
passwd hoge
suコマンド実行可能なユーザー(kmurakoshi)
[kmurakoshi@localhost ~]$ su -
Password:
[root@localhost ~]#
suコマンド実行不可能なユーザー(hoge)
Password:
su: incorrect password
≪sudo 権限の設定≫
sudoコマンドは system,manager グループに所属するユーザーのみが実行出来るように設定する。
manager グループを作成する
groupadd manager
作成された事を確認
grep "manager" /etc/group
manager ユーザーを作成
useradd manager
passwd manager
manager グループに manager ユーザーを追加
usermod -G manager manager
grep "manager" /etc/group
/etc/sudoers を visudo コマンドから編集
%manager ALL=(ALL) ALL
%system ALL=(ALL) ALL
su権限を禁止した場合には以下のような設定を施す
Cmnd_Alias NOTSU = /bin/su
%manager ALL=(ALL) ALL,!NOTSU
変更した設定を有効にするために、システムを再起動。
shutdown -r now
ユーザーにPATH を通しておく。
su - kmurakoshi
PATH=$PATH:$HOME/bin/
↓
PATH=$PATH:$HOME/bin:/sbin:/usr/sbin/
source .bash_profile
sudo コマンドの実行確認
su - kmurakoshi
[kmurakoshi@localhost ~]$ sudo service httpd restart
Password: (passwd で設定したパスワードを入力)
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
imagemagick インストール
PHPでimagemagickを使用できるようにする。
imagemagick をインストール
yum -y install ImageMagick ImageMagick-devel
yum -y install php-pear php53-devel
yum --enablerepo=remi,remi-php54 install php-devel
pecl install imagick
imagick.soファイルがある場所を検索
find / -name imagick.so
/usr/lib/php/modules/imagick.so
php.ini の設定 (追記)
extension_dir=/usr/lib/php/modules/
extension=imagick.so
apache 再起動
service httpd restart
phpinfo で imagick が使用可能になっていることを確認
imagick
imagick module => enabled
imagick module version => 3.1.2
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
infophp で imagick が表示されない場合には、以下コマンドを実行
restorecon /usr/lib/php/modules/imagick.so
DBサーバ ( MySQL) 外部ホストから接続設定
DBサーバ ( MySQL) へ外部ホストから接続するための設定方法を記載する。
(例) DBサーバ : 192.168.154.128
WEBサーバ : 192.168.154.130
DBサーバに ssh 接続後 mysql コンソールで DB 接続を行う。
mysql -u root -p
WEBサーバ : 192.168.154.130 から接続するための、
アプリケーション用 スキーマとユーザを作成。
create database apps_db default character set utf8;
grant all privileges on apps_db.* to apps_user@localhost identified by 'apps_password';
flush privileges;
apps_userユーザ確認を実施
use mysql;
select user, host from user;
+-----------+-----------------------+
| user | host |
+-----------+-----------------------+
| repl | % |
| repl | 127.0.0.1 |
| root | 127.0.0.1 |
| | localhost |
| apps_user | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+-----------+-----------------------+
apps_user ユーザ が WEBサーバ (192.168.154.130) から apps_db へアクセスできるように設定。
grant all privileges on apps_db.* to apps_user@"192.168.154.130" identified by 'apps_password' with grant option ;
DBサーバ (192.168.154.128) の iptables にWEBサーバ(192.168.154.130) から
3306 ポートへ接続できるようにポート解放の設定を追加。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -s 192.168.154.130 -p tcp --dport 3306 -j ACCEPT
service iptables restart
WEBサーバ (192.168.154.130) から DBサーバ (192.168.154.128) に接続テスト。
WEBサーバに ssh 接続し以下コマンドを実行。
mysql -h 192.168.154.128 --port=3306 -u apps_user -p;
Snort インストール
不正アクセス検知システムとしてネットワーク型IDSのSnortを導入。
Snortが抽出した不正アクセスログをWebブラウザ上で確認できるようにするためにSnortSnarfも導入。
Snortが不正アクセスの判断をするために参照するルールファイルの最新化は、
Oinkmasterを導入して自動化。
(参考サイト:http://www1.matsue-torisen.co.jp/~naruse/Estab/CentOS/snort.html)
yum -y install libpcap libpcap-devel pcre-devel libdnet-devel
libpcapのバージョンを確認
(libpcapが下記のようにバージョン1.0以下の場合、
daqがインストールできないのでアップデート作業を行う必要がある)
rpm -q libpcap
libpcap-0.9.4-15.el5
libpcapをバージョン1.0以上にアップデートする
cd /usr/local/src
wget http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz
tar zxvf libpcap-1.5.3.tar.gz
cd libpcap-1.5.3
./configure
make
make install
yum update libpcap
daq ダウンロード
wget http://www.snort.org/downloads/2776
SRPMファイルのインストール
rpm -ivh rpm -ivh daq-2.0.2-1.src.rpm\?AWSAccessKeyId\=AKIAJ65S5YX6KA26VRJQ\&Expires\=1393062503\&Signature\=xCmpA0q62EN%2Fq2nyCI8rGWJ6UkU\=
rpmファイルの作成
rpmbuild -bb --clean /usr/src/redhat/SPECS/daq.spec
Snort ダウンロード
wget http://www.snort.org/downloads/2785
SRPMファイルのインストール
rpm -ivh snort-2.9.6.0-1.src.rpm\?AWSAccessKeyId\=AKIAJ65S5YX6KA26VRJQ\&Expires\=1393059983\&Signature\=w5JA7RljNsRQSNTjHLFyVhrQATM\=
rpmファイルの作成
rpmbuild -bb --clean /usr/src/redhat/SPECS/snort.spec
rpmファイルのインストール
rpm -ivh /usr/src/redhat/RPMS/i386/snort-2.6.1.3-1.i386.rpm
ダウンロードしたファイルを削除
SRPMからRPMへのビルドにより作成されたファイル群を削除
rm -f /usr/src/redhat/RPMS/i386/snort-*
Snortのソースを削除
rm -f /usr/src/redhat/SOURCES/snort-2.6.1.3.tar.gz
SPECファイルの削除
ssh 公開鍵認証
sshd_config 設定 ( ssh接続で鍵の利用を許可する)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin no
PasswordAuthentication no
resolv.conf 設定 (yumコマンドが使えるように設定)
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.1
ログインユーザーのホームディレクトリ(~/.ssh)に
# RSA1鍵を作成(ssh version1)
ssh-keygen -t rsa1
#DSA鍵を作成(ssh version2)
ssh-keygen -t dsa
permissionの設定
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
作成済みの秘密鍵のパスワードを変更する場合
ssh-keygen -p -f ~/.ssh/id_rsa
Enter old passphrase: (旧パスワード)
Key has comment '~/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase): (新パスワード)
Enter same passphrase again: (新パスワード)
Your identification has been saved with the new passphrase.
sshpass インストール
sshpass とは?
sshpass( Non-interactive ssh password authentication ) を使うと
コマンドラインにてssh接続のパスワードを指定することができ、ログインできるようになる。
sshpass リポジトリ登録
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sshpass インストール
yum -y install sshpass
sshpass コマンド書式
sshpass -p 'パスワード' ssh -i 秘密鍵 ユーザ名@ホスト名( IPアドレス)
参考サイト
http://server-setting.info/centos/sshpass-ssh-auto-connect.html
CandyCane インストール
DocumentRoot作成
mkdir /var/www/www.candycane.co.jp
cd /var/www/www.candycane.co.jp
CandyCaneをダウンロード
wget https://github.com/yandod/candycane/archive/master.zip
unzip candycane-master.zip
rm -rf candycane-master.zip
mv candycane-master htdocs
cd htdocs
chmod -R 777 app/tmp/
chmod -R 777 app/Config
chmod -R 777 app/files
chmod -R 777 app/Plugin
chown -R apache:apache /var/www/www.candycane.co.jp
Apacheの設定
vim /etc/httpd/conf.d/www.candycane.co.jp.conf
********************************************************************
#
# httpd configuration settings for use with mailman.
#
# Listen for virtual host requests on all IP addresses
#NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/www.candycane.co.jp/htdocs"
ServerName www.candycane.co.jp
DirectoryIndex index.html index.php
ErrorLog logs/www.candycane.co.jp_error_log
CustomLog logs/www.candycane.co.jp_access_log common
<Directory "/var/www/www.candycane.co.jp/htdocs">
# AuthType Basic
# AuthUserFile /etc/httpd/.htpasswd
# AuthName "Basic Certification"
# require valid-user
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
********************************************************************
candycane用のDBを構築
**********************************************************
mysel -u root -p
create database candycane default character set utf8;
grant all privileges on candycane.* to candy_user@localhost identified by 'candy_password';
flush privileges;
exit;
**********************************************************
hosts 設定
vim /etc/hosts
127.0.0.1 localhost.localdomain localhost www.candycane.co.jp
Apache再起動
service httpd configtest
service httpd restart
httpd -S