セキュリティ設定

更新日2015-08-29 (土) 08:39:10

デーモンとその使用ポートの表示

# lsof -i -n -P
COMMAND     PID   USER   FD   TYPE   DEVICE SIZE NODE NAME
apache2    1027 apache    4u  IPv6     7062       TCP *:80 (LISTEN)
apache2    1027 apache    6u  IPv6     7066       TCP *:443 (LISTEN)
apache2    1585 apache    4u  IPv6     7062       TCP *:80 (LISTEN)
apache2    1585 apache    6u  IPv6     7066       TCP *:443 (LISTEN)
apache2    1752 apache    4u  IPv6     7062       TCP *:80 (LISTEN)

lastb

/var/log/btmpというのは不正ログインの記録される

# lastb | more
root     ssh:notty    103.41.125.27    Fri Mar 20 18:26 - 18:26  (00:00)
root     ssh:notty    103.41.125.27    Fri Mar 20 18:26 - 18:26  (00:00)
root     ssh:notty    182.100.67.114   Fri Mar 20 18:26 - 18:26  (00:00)
root     ssh:notty    103.41.125.27    Fri Mar 20 18:26 - 18:26  (00:00)

/var/log/secureで確認

Mar 20 18:26:08 xenserve2 sshd[8581]: pam_unix(sshd:auth): authentication \
failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.41.125.27  user=root
Mar 20 18:26:08 xenserve2 sshd[8585]: pam_unix(sshd:auth): authentication \
failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=182.100.67.114  user=root

このファイルを削除したら自動作成されないため作成しておく

# touch /var/log/btmp 
# chmod 600 /var/log/btmp

Vine6xでGUI(ディスプレイマネージャ)からrootでログイン

デフォルトではGUIからはrootでログインできないが以下のようにするとloginできる

/etc/pam.d/gdm

#%PAM-1.0
# auth       required    pam_succeed_if.so user != root quiet <=コメントアウト
auth       required    pam_env.so

wgetでApacheのバージョン等確認

オプションは--spiderはページの有無を確認するだけでファイルのダウンロードは行わない

$ wget -S --spider localhost
--11:08:43--  http://localhost/
           => `index.html'
localhost をDNSに問いあわせています... 127.0.0.1
localhost|127.0.0.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
  HTTP/1.1 200 OK
  Date: Wed, 28 Mar 2007 02:08:43 GMT
  Server: Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7l PHP/5.2.0
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(ここに出力)
  X-Powered-By: PHP/5.2.0
  Cache-control: no-cache
  Pragma: no-cache
  Keep-Alive: timeout=5, max=100
  Connection: Keep-Alive
  Content-Type: text/html; charset=EUC-JP
長さ: 特定できません [text/html]
200 OK

Linux kernelパラメータについて

/etc/sysctl.confにはkernelに関するパラメータを設定することが出来る

カーネル・パラメータの現在の設定値を調べる

# /sbin/sysctl -a

sunrpc.nlm_debug = 0
sunrpc.nfsd_debug = 0
sunrpc.nfs_debug = 0
sunrpc.rpc_debug = 0
cpu.0.speed = 0
cpu.0.speed-min = 0
cpu.0.speed-max = 0

(略) 

/etc/sysctl.confを変更したとき設定内容を有効にするには

# /sbin/sysctl -p

いつから再起動していないか表示させないようには

/etc/sysctl.confに

net.ipv4.tcp_timestamps = 0

このような起動時間の表示を表示しないようにする (-OはOSバージョンCheck)

# /usr/local/bin/nmap -v -O 10.xx.1.xxx
(略)
5432/tcp   open        postgres
Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20
Uptime 33.544 days (since Thu Mar 11 09:22:47 2004) <--ここに起動時間が出る
TCP Sequence Prediction: Class=random positive increments
                         Difficulty=3899037 (Good luck!)
IPID Sequence Generation: All zeros

icmpを無視するには

/etc/sysctl.confに

net.ipv4.icmp_echo_ignore_all = 1

Localで開いているポートの確認

たとえばsyslogのポートについて開いていれば以下のようになる

$  netstat -an | grep -i udp | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*

[余談] syslogをリモートで取得するには、/etc/sysconfig/syslogが存在する 時は、このファイルで、ないときは/etc/rc.d/init.d/syslogで

SYSLOGD_OPTIONS="-m 0
を
SYSLOGD_OPTIONS="-m 0 -r"
に変更する。

shutdown,reboot

shutdownのuserを限定

/etc/shutdown.allowというファイルを作成し、

root

と許すユーザを指定

vine2.6r3ではこれを指定しないと一般ユーザで一般ユーザパスワードでリモート (そのユーザがコンソールloginしているとき)からでもshutdown出来た,vine3.0では パスワードなしでshutdown出来た。(怖いよー)

pam認証での制御

vine3.0ではreboot,shutdown,halt(/usr/bin/halt)はconsolehelperにシンボリックリンク等で、consolehelperが動作するようになっている。そして、これらのを動作させるに はrootの権限が必要だが、pam認証を利用してユーザ権限でも実行できるようになって いる。

最終的には/sbin/haltや/sbin/shutdownが実態でこれが動作する

/usr/bin/reboot(起動) -> consolehelper -> /sbin/reboot -> /sbin/halt
/usr/bin/halt(起動) -> consolehelper -> /sbin/halt
/usr/bin/shutdown(起動) -> スクリプト上で/usr/bin/haltや/usr/bin/reboot起動する

ただし、引数が-h,-p-r以外ときは/sbin/shutdown(バイナリ)を実行する。

$ file /usr/bin/shutdownはshellスクリプト

/usr/bin/shutdown: Bourne shell script text executable

$ more /usr/bin/shutdown
#!/bin/sh
# Try to do the right thing for programs that rely on "/usr/bin/shutdown -r now"
# to shut down the machine.
prog=/sbin/shutdown
now=
for flag in $* ; do
        if test ${flag} = "-h" ; then
                prog=/usr/bin/halt
        elif test ${flag} = "-p" ; then
                prog="/usr/bin/halt -p "
        elif test ${flag} = "-r" ; then
               prog=/usr/bin/reboot
        elif test ${flag} = "now" ; then
                now=$flag
        else
                args="$args $flag"
        fi
done
if [ -z "$args" -a "$prog" != /sbin/shutdown ] ; then
        exec $prog $args
else
        exec /sbin/shutdown $args $now
fi

例えば、rebootを行うときrootのパスワードが聞かれるようにするには

/etc/security/console.apps/reboot
FALLBACK=true

USER=root 許可するユーザをrootに限定する。 詳しくはこちら



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-29 (土) 08:39:10 (1082d)