RPM関連情報取得
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#navi(../)
#Contents
------------------------
*サーバ管理 [#xecb3e70]
**RPM関連情報取得 [#c6f6d191]
***環境準備 [#p26f4866]
サーバ管理関連の関数として継続利用する為、以下のディレク...
|格納先|用途|
|/root/tools/srv-info|ベースディレクトリ|h
|func|関数格納場所|
|log|最終加工ファイルを格納|
|etc|設定ファイルを格納|
|tmp|一時ファイルを格納|
***rpm-command-info [#p1352a41]
-この関数でできる事~
この関数は今現在サーバ上にインストールされているRPM情報を~
コメント名,RPMバージョン情報,対象Linuxバージョン,Bit~
上記の通り取得し、CSVファイルに出力する関数。
-構文~
function rpmserch ()
{
# ------------------------------------------------------...
#
# RPM Command Version
#
# ------------------------------------------------------...
LO_SRV_NAME="`uname -n`"
LO_SRV_LOG="/root/tools/srv-info/log/${LO_SRV_NAME}-rpm-...
# ------------------------------------------------------...
# 情報収集
# ------------------------------------------------------...
rpm -qa --qf '%{name},%{version},%{release},%{arch}\n' >...
}
-実行結果
gnome-session,2.28.0,18.el6,x86_64
m17n-db-assamese,1.5.5,1.1.el6,noarch
mlocate,0.22.2,4.el6,x86_64
:
abrt,2.0.8,21.el6.centos,x86_64
xorg-x11-server-Xorg,1.13.0,23.el6.centos,x86_64
m17n-db-bengali,1.5.5,1.1.el6,noarch
***rpminstchk [#f3af6b25]
-この関数でできる事~
-プログラム~
# ------------------------------------------------------...
# 任意の RPM パッケージがインストールされているか確認...
# ------------------------------------------------------...
function rpmserch ()
{
TMPFILE=/root/tools/srv-info/tmp/rpmserch.tmp
if [ $# -eq 0 ]; then
echo "使用法: rpmserch [検索キーワード]"
echo ""
else
rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.r...
BIT32=`cat ${TMPFILE} | grep 'i[36]86' | sort`
BIT64=`cat ${TMPFILE} | grep 'x86_64' | sort`
more << EOF
--------------------------------------------------
RPM Serch
Key Word : ${1}
Hit Word : `cat ${TMPFILE} | wc -l`
--------------------------------------------------
32 bit
-------
${BIT32:-none}
64 bit
-------
${BIT64:-none}
--------------------------------------------------
EOF
rm -rf ${TMPFILE}
fi
}
***rpmuninstchk [#waf0d38d]
-この関数でできる事~
-プログラム~
# ------------------------------------------------------...
# 任意の RPM パッケージがアンインストール可能か確認す...
# ------------------------------------------------------...
function rpmuninstchk () {
if [ ! $# -eq 0 ]; then
CMD=`echo ${1} | sed 's/\.\///g' | awk -F. '{print $1...
echo "--- Erase Package ---"
echo ""
echo ${1}
echo ""
echo "--- RPM Before Erase Check ---"
echo ""
rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n...
echo ""
echo "--- RPM Erase CHECK ---"
echo ""
rpm -ev --test ${1}
fi
}
**バックアップ [#g2c61d99]
***環境準備 [#z37ff207]
***backup.sh [#l8aebeba]
-このスクリプトでできる事
-構文
#!/bin/sh
# ------------------------------------------------------...
#
# Remoto Backup Script
#
# ------------------------------------------------------...
LO_BACKUP_SRV="192.168.0.67"
LO_BACKUP_LOG="/root/tools/backup/log/rsync-`date '+%Y%m...
LO_BACKUP_DIR="/backup/`uname -n`"
# ------------------------------------------------------...
# /root ディレクトリバックアップ
# ------------------------------------------------------...
rsync -avz --delete -e ssh /root/tools ${LO_BACKUP_...
# ------------------------------------------------------...
# /etc ディレクトリバックアップ
# ------------------------------------------------------...
rsync -avz --delete -e ssh /etc/ ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/httpd ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/zabbix ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/my.cnf.d ${LO_BACKUP_...
**IPTABLES設定スクリプト [#g045ac82]
***環境準備 [#ne3ca44f]
***iptables.sh [#nc2adbe6]
-このスクリプトでできる事
-構文
#!/bin/bash
# ------------------------------------------------------...
#
# ローカルファイアーウォール設定
#
# ------------------------------------------------------...
# 参考資料:
# URL : http://www.rapidsite.jp/support/manual/rv_custom...
# URL : http://www.virment.com/linux/iptables/183/
# URL : http://www.aconus.com/~oyaji/security/iptables.htm
# URL : https://qiita.com/Tocyuki/items/6d90a1ec4dd8e991...
# ------------------------------------------------------...
# ------------------------------------------------------...
# 全てのルールを初期化(全削除)する場合
# ------------------------------------------------------...
# -F 何も指定されてない場合すべてのフィルタルールを削除...
# -X 何も指定されてない場合デフォルト以外のすべてのチェ...
# ------------------------------------------------------...
iptables -F
iptables -X
# ------------------------------------------------------...
# 基本ポリシー設定
# ------------------------------------------------------...
# チェイン
# INPUT 入ってくるパケットに関して
# OUTPUT 出てゆくパケットに関して
# FORWARD パケットの転送
# PREROUTING 受信時にアドレスを変換
# POSTROUTING 送信時にアドレスを変換
# ------------------------------------------------------...
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# ------------------------------------------------------...
# 個別ポリシー設定(ほかACCEPTやDROPなどユーザによる設定)
# ------------------------------------------------------...
# こちらから求めたパケットは許可する。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -...
# ローカルループバックの接続を許可する。
iptables -A INPUT -i lo -j ACCEPT
# ------------------------------------------------------...
# 個別サーバ登録
# ------------------------------------------------------...
case $(hostname -s) in
wp01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
;;
samba01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
iptables -A INPUT -i eth1 -m multiport -p tcp --dp...
iptables -A INPUT -i eth0 -m multiport -p udp --dp...
iptables -A INPUT -i eth1 -m multiport -p udp --dp...
;;
repo01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
;;
dns01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
iptables -A INPUT -i eth1 -m multiport -p tcp --dp...
;;
esac
iptables -A INPUT -i eth0 -s 192.168.0.25 -p tcp --dport...
iptables -A INPUT -i eth1 -s 192.168.2.25 -p tcp --dport...
iptables -A INPUT -m multiport -p tcp --dports 10050,100...
iptables -A INPUT -m multiport -p udp --dports 10050,100...
### ----------------------------------------------------...
### 特定の国からの接続を許可
### ----------------------------------------------------...
###
###L_DW_PATH=http://nami.jp/ipv4bycc/cidr.txt.gz
###L_DW_FILE=/tmp/cidr.txt.gz
###L_DW_LOG=/tmp/download.log
###L_IP_LIST=/tmp/ip.lst
###
###wget -O ${L_DW_FILE} -o ${L_DW_LOG} ${L_DW_PATH} && z...
###
### 特定の国からのアクセスを許可する
###if [ -s ${L_IP_LIST} ]; then
### iptables -N ACCEPT_JP_FILTER
### sed -n 's/^JP\t//p' ${L_IP_LIST} | while read ad...
### do
### iptables -A ACCEPT_JP_FILTER -s ${address} -m...
### done
###fi
### ----------------------------------------------------...
# ------------------------------------------------------...
# IP Spoofing攻撃対策
# ------------------------------------------------------...
# 外部(WAN側)からプライベートIPアドレスに成りすました...
iptables -N IP_SPOOFING
iptables -A IP_SPOOFING -i eth0 -s 127.0.0.1/8 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 192.168.0.0/24 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 127.0.0.1/8 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 10.0.0.0/8 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 172.16.0.0/12 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 192.168.0.0/16 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 192.168.0.0/24 -j DROP
# ------------------------------------------------------...
# Ping攻撃対策
# ------------------------------------------------------...
iptables -N PING_ATTACK
iptables -A PING_ATTACK -m length --length :85 -j ACCEPT
iptables -A PING_ATTACK -j LOG --log-prefix "[IPTABLES P...
iptables -A PING_ATTACK -j DROP
iptables -A INPUT -p icmp --icmp-type 8 -j PING_ATTACK
# ------------------------------------------------------...
# Ping攻撃対策 + Ping Flood攻撃対策
# ------------------------------------------------------...
iptables -A PING_ATTACK -p icmp --icmp-type 8 -m length ...
# ------------------------------------------------------...
# サーバー攻撃への対処
# syn信号とPING攻撃の無効化(1秒に1回だけ受信)
# ------------------------------------------------------...
iptables -A INPUT -i ppp+ -p tcp --syn -m limit --limit ...
iptables -A INPUT -i ppp+ -p icmp --icmp-type echo-reque...
# ------------------------------------------------------...
# Smurf攻撃対策+不要ログ破棄
# ------------------------------------------------------...
iptables -N SMURF
iptables -A SMURF -d 255.255.255.255 -j DROP
iptables -A SMURF -d 224.0.0.1 -j DROP
iptables -A SMURF -d 192.168.0.255 -j DROP
iptables -A SMURF -d 192.168.2.255 -j DROP
# ------------------------------------------------------...
# SYNflood攻撃と思われる接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp ! --syn -m state --state NEW -j...
# ------------------------------------------------------...
# データを持たないパケットの接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp --tcp-flags ALL NONE -j DROP
# ------------------------------------------------------...
# ステルススキャンと思われる接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp --tcp-flags ALL ALL -j DROP
# ------------------------------------------------------...
# それ以外はログを残す。
# ------------------------------------------------------...
iptables -A INPUT -j LOG --log-prefix "drop_packet:"
# ------------------------------------------------------...
# 設定を登録及び再起動
# ------------------------------------------------------...
/etc/init.d/iptables save
/etc/init.d/iptables restart
# ------------------------------------------------------...
# 設定内容を確認
# ------------------------------------------------------...
iptables -L -n -v --line-number
終了行:
#navi(../)
#Contents
------------------------
*サーバ管理 [#xecb3e70]
**RPM関連情報取得 [#c6f6d191]
***環境準備 [#p26f4866]
サーバ管理関連の関数として継続利用する為、以下のディレク...
|格納先|用途|
|/root/tools/srv-info|ベースディレクトリ|h
|func|関数格納場所|
|log|最終加工ファイルを格納|
|etc|設定ファイルを格納|
|tmp|一時ファイルを格納|
***rpm-command-info [#p1352a41]
-この関数でできる事~
この関数は今現在サーバ上にインストールされているRPM情報を~
コメント名,RPMバージョン情報,対象Linuxバージョン,Bit~
上記の通り取得し、CSVファイルに出力する関数。
-構文~
function rpmserch ()
{
# ------------------------------------------------------...
#
# RPM Command Version
#
# ------------------------------------------------------...
LO_SRV_NAME="`uname -n`"
LO_SRV_LOG="/root/tools/srv-info/log/${LO_SRV_NAME}-rpm-...
# ------------------------------------------------------...
# 情報収集
# ------------------------------------------------------...
rpm -qa --qf '%{name},%{version},%{release},%{arch}\n' >...
}
-実行結果
gnome-session,2.28.0,18.el6,x86_64
m17n-db-assamese,1.5.5,1.1.el6,noarch
mlocate,0.22.2,4.el6,x86_64
:
abrt,2.0.8,21.el6.centos,x86_64
xorg-x11-server-Xorg,1.13.0,23.el6.centos,x86_64
m17n-db-bengali,1.5.5,1.1.el6,noarch
***rpminstchk [#f3af6b25]
-この関数でできる事~
-プログラム~
# ------------------------------------------------------...
# 任意の RPM パッケージがインストールされているか確認...
# ------------------------------------------------------...
function rpmserch ()
{
TMPFILE=/root/tools/srv-info/tmp/rpmserch.tmp
if [ $# -eq 0 ]; then
echo "使用法: rpmserch [検索キーワード]"
echo ""
else
rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.r...
BIT32=`cat ${TMPFILE} | grep 'i[36]86' | sort`
BIT64=`cat ${TMPFILE} | grep 'x86_64' | sort`
more << EOF
--------------------------------------------------
RPM Serch
Key Word : ${1}
Hit Word : `cat ${TMPFILE} | wc -l`
--------------------------------------------------
32 bit
-------
${BIT32:-none}
64 bit
-------
${BIT64:-none}
--------------------------------------------------
EOF
rm -rf ${TMPFILE}
fi
}
***rpmuninstchk [#waf0d38d]
-この関数でできる事~
-プログラム~
# ------------------------------------------------------...
# 任意の RPM パッケージがアンインストール可能か確認す...
# ------------------------------------------------------...
function rpmuninstchk () {
if [ ! $# -eq 0 ]; then
CMD=`echo ${1} | sed 's/\.\///g' | awk -F. '{print $1...
echo "--- Erase Package ---"
echo ""
echo ${1}
echo ""
echo "--- RPM Before Erase Check ---"
echo ""
rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n...
echo ""
echo "--- RPM Erase CHECK ---"
echo ""
rpm -ev --test ${1}
fi
}
**バックアップ [#g2c61d99]
***環境準備 [#z37ff207]
***backup.sh [#l8aebeba]
-このスクリプトでできる事
-構文
#!/bin/sh
# ------------------------------------------------------...
#
# Remoto Backup Script
#
# ------------------------------------------------------...
LO_BACKUP_SRV="192.168.0.67"
LO_BACKUP_LOG="/root/tools/backup/log/rsync-`date '+%Y%m...
LO_BACKUP_DIR="/backup/`uname -n`"
# ------------------------------------------------------...
# /root ディレクトリバックアップ
# ------------------------------------------------------...
rsync -avz --delete -e ssh /root/tools ${LO_BACKUP_...
# ------------------------------------------------------...
# /etc ディレクトリバックアップ
# ------------------------------------------------------...
rsync -avz --delete -e ssh /etc/ ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/httpd ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/zabbix ${LO_BACKUP_...
#rsync -avz --delete -e ssh /etc/my.cnf.d ${LO_BACKUP_...
**IPTABLES設定スクリプト [#g045ac82]
***環境準備 [#ne3ca44f]
***iptables.sh [#nc2adbe6]
-このスクリプトでできる事
-構文
#!/bin/bash
# ------------------------------------------------------...
#
# ローカルファイアーウォール設定
#
# ------------------------------------------------------...
# 参考資料:
# URL : http://www.rapidsite.jp/support/manual/rv_custom...
# URL : http://www.virment.com/linux/iptables/183/
# URL : http://www.aconus.com/~oyaji/security/iptables.htm
# URL : https://qiita.com/Tocyuki/items/6d90a1ec4dd8e991...
# ------------------------------------------------------...
# ------------------------------------------------------...
# 全てのルールを初期化(全削除)する場合
# ------------------------------------------------------...
# -F 何も指定されてない場合すべてのフィルタルールを削除...
# -X 何も指定されてない場合デフォルト以外のすべてのチェ...
# ------------------------------------------------------...
iptables -F
iptables -X
# ------------------------------------------------------...
# 基本ポリシー設定
# ------------------------------------------------------...
# チェイン
# INPUT 入ってくるパケットに関して
# OUTPUT 出てゆくパケットに関して
# FORWARD パケットの転送
# PREROUTING 受信時にアドレスを変換
# POSTROUTING 送信時にアドレスを変換
# ------------------------------------------------------...
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# ------------------------------------------------------...
# 個別ポリシー設定(ほかACCEPTやDROPなどユーザによる設定)
# ------------------------------------------------------...
# こちらから求めたパケットは許可する。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -...
# ローカルループバックの接続を許可する。
iptables -A INPUT -i lo -j ACCEPT
# ------------------------------------------------------...
# 個別サーバ登録
# ------------------------------------------------------...
case $(hostname -s) in
wp01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
;;
samba01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
iptables -A INPUT -i eth1 -m multiport -p tcp --dp...
iptables -A INPUT -i eth0 -m multiport -p udp --dp...
iptables -A INPUT -i eth1 -m multiport -p udp --dp...
;;
repo01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
;;
dns01 )
iptables -A INPUT -i eth0 -m multiport -p tcp --dp...
iptables -A INPUT -i eth1 -m multiport -p tcp --dp...
;;
esac
iptables -A INPUT -i eth0 -s 192.168.0.25 -p tcp --dport...
iptables -A INPUT -i eth1 -s 192.168.2.25 -p tcp --dport...
iptables -A INPUT -m multiport -p tcp --dports 10050,100...
iptables -A INPUT -m multiport -p udp --dports 10050,100...
### ----------------------------------------------------...
### 特定の国からの接続を許可
### ----------------------------------------------------...
###
###L_DW_PATH=http://nami.jp/ipv4bycc/cidr.txt.gz
###L_DW_FILE=/tmp/cidr.txt.gz
###L_DW_LOG=/tmp/download.log
###L_IP_LIST=/tmp/ip.lst
###
###wget -O ${L_DW_FILE} -o ${L_DW_LOG} ${L_DW_PATH} && z...
###
### 特定の国からのアクセスを許可する
###if [ -s ${L_IP_LIST} ]; then
### iptables -N ACCEPT_JP_FILTER
### sed -n 's/^JP\t//p' ${L_IP_LIST} | while read ad...
### do
### iptables -A ACCEPT_JP_FILTER -s ${address} -m...
### done
###fi
### ----------------------------------------------------...
# ------------------------------------------------------...
# IP Spoofing攻撃対策
# ------------------------------------------------------...
# 外部(WAN側)からプライベートIPアドレスに成りすました...
iptables -N IP_SPOOFING
iptables -A IP_SPOOFING -i eth0 -s 127.0.0.1/8 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A IP_SPOOFING -i eth0 -s 192.168.0.0/24 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 127.0.0.1/8 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 10.0.0.0/8 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 172.16.0.0/12 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 192.168.0.0/16 -j DROP
iptables -A IP_SPOOFING -i eth1 -s 192.168.0.0/24 -j DROP
# ------------------------------------------------------...
# Ping攻撃対策
# ------------------------------------------------------...
iptables -N PING_ATTACK
iptables -A PING_ATTACK -m length --length :85 -j ACCEPT
iptables -A PING_ATTACK -j LOG --log-prefix "[IPTABLES P...
iptables -A PING_ATTACK -j DROP
iptables -A INPUT -p icmp --icmp-type 8 -j PING_ATTACK
# ------------------------------------------------------...
# Ping攻撃対策 + Ping Flood攻撃対策
# ------------------------------------------------------...
iptables -A PING_ATTACK -p icmp --icmp-type 8 -m length ...
# ------------------------------------------------------...
# サーバー攻撃への対処
# syn信号とPING攻撃の無効化(1秒に1回だけ受信)
# ------------------------------------------------------...
iptables -A INPUT -i ppp+ -p tcp --syn -m limit --limit ...
iptables -A INPUT -i ppp+ -p icmp --icmp-type echo-reque...
# ------------------------------------------------------...
# Smurf攻撃対策+不要ログ破棄
# ------------------------------------------------------...
iptables -N SMURF
iptables -A SMURF -d 255.255.255.255 -j DROP
iptables -A SMURF -d 224.0.0.1 -j DROP
iptables -A SMURF -d 192.168.0.255 -j DROP
iptables -A SMURF -d 192.168.2.255 -j DROP
# ------------------------------------------------------...
# SYNflood攻撃と思われる接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp ! --syn -m state --state NEW -j...
# ------------------------------------------------------...
# データを持たないパケットの接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp --tcp-flags ALL NONE -j DROP
# ------------------------------------------------------...
# ステルススキャンと思われる接続を破棄する
# ------------------------------------------------------...
iptables -I INPUT -p tcp --tcp-flags ALL ALL -j DROP
# ------------------------------------------------------...
# それ以外はログを残す。
# ------------------------------------------------------...
iptables -A INPUT -j LOG --log-prefix "drop_packet:"
# ------------------------------------------------------...
# 設定を登録及び再起動
# ------------------------------------------------------...
/etc/init.d/iptables save
/etc/init.d/iptables restart
# ------------------------------------------------------...
# 設定内容を確認
# ------------------------------------------------------...
iptables -L -n -v --line-number
ページ名: