約 4,489,260 件
https://w.atwiki.jp/centos-homeserver/pages/13.html
はじめに 2010.7.10現在、CentOS(x86 64bit版)の最新のバージョンである Ver5.5のCentOS-5.5-x86_64-netinstall.isoを用いてネットワークインストールを行う。 (※ネットワークインストール可能なNICのチップがこのマザーボードに搭載されていたため) もし、ネットワークインストールが不可能ならDVDをもちいてインストールする。 (CentOS-5.5-x86_64-bin-DVD-1of2.iso&CentOS-5.5-x86_64-bin-DVD-2of2.iso) データ用HDDの一時的な取り外し 全てのHDDを接続していると、起動ディスク(のデバイス名)を正しく設定できないので、 一旦データ用HDDを全て取り外した状態でインストールを行う。 CentOSのCD-ROM(or DVD)でインストーラ起動 BIOSでCD-ROM起動を設定後、CentOSのCD-ROM(or DVD)でインストーラを起動 ※なお、インストール全般に関しては、RHEL-5のインストールマニュアルを参照にすると良い。 ネットワーク設定(DVDでも同様。) 後で設定するので、ひとまずデフォルトのDHCPのままにする。 (※DHCPサーバが無い環境であれば設定する。) ただし、IPv6のサポートのチェックだけは外す。 FTPサイトの設定(ネットワークインストールの場合) 例としては、 FTPサイト名:"ftp.iij.ad.jp" FTPディレクトリ:"pub/linux/centos/5.5/os/x86_64" あとはDVDでのインストールと同様。 パーティション設定 自分は起動ディスクを以下の通りにパーティションを設定した。 sda ※WD3200BEVT -------- sda1 swap 4 GiB 基本領域 sda2 /boot 136 MiB 基本領域 sda3 / 8 GiB 基本領域 sda5 /var 200 GiB 拡張領域(sda4)の中 sda6 /tmp 残り全て パーティション編集はREHL-5のインストールマニュアルの該当ページを参考のこと。 (注)インストーラーでパーティションを順番に新規作成していくと意図通りにパーティションを割当できない場合もある。(例えばsdaXが勝手に入れ替わるなど)そこで一旦全領域を削除して、新規作成ではなく編集でシリンダ単位でパーティションを作成していくと良い。また、ubuntuやParted MagicなどのLIVE-CDのGPartedを使用して、事前にパーティションを設定しておいてインストーラー上でマウントポイントの設定だけ行うようにしても良い。 ブートローダの設定 "/dev/sda2"にインストールされるのを確認。(起動パーティションは"/dev/sd3") タイムゾーン デフォルトで「アジア/東京」が選択されているのを確認し、 忘れずに「システムクロックでUTCを使用」のチェックを外す。 インストールパッケージ 日本語のサポートパッケージ以外にチェックを入れて後は全てチェックを外す。 (最小限のパッケージしかインストールしない。) おわりに あとは、インストール処理が終了するまで待つ。 (ディスクのフォーマットからパッケージのインストールまで) インストール処理が正常に終了すればディスクが排出されるはずなので、 それを確認して再起動し、OSが起動することを確認する。 このページを編集
https://w.atwiki.jp/pxy12770/pages/42.html
<<postgresのバージョンの確認>> # rpn -qa | grep postgres → 8.3ではなかった # rpm --test -e postgresql → 依存するモジュールを全て削除 # cd /usr/local/src # wget http //ftp2.jp.postgresql.org/pub/postgresql/source/v8.3.5/postgresql-8.3.5.tar.gz # tar xzvf postgresql-8.3.5.tar.gz # cd postgresql-8.3.5 # ./configure --enable-thread-safety コンパイラが無いと言って怒られた # yum install gcc readlineが無いと言って怒られた # yum install readline-devel zlibが無いと言って怒られた # yum install zlib-devel # make # make install
https://w.atwiki.jp/centos-homeserver/pages/32.html
はじめに 現在の最新版である(Ver 0.12.1)をソースからRPMパッケージを作成してインストールする。 その際にソースにこちらの方が作成されたパッチを当てて、SONYのテレビ(BRAVIA)などで再生可能にする。 インストール ソースのダウンロードとパッチ当て 適当なディレクトリにソースをダウンロードして、展開する。 # wget http //sourceforge.net/projects/mediatomb/files/MediaTomb/0.12.1/mediatomb-0.12.1.tar.gz/download # tar xfvz mediatomb-0.12.1.tar.gz 上記のブラビア用のパッチを当てる # wget http //blog-imgs-30.fc2.com/h/o/r/horip/mediatomb-0_12_1_bravia_support_0_1_patch.txt # cd mediatomb-0.12.1 # patch -p0 ../mediatomb-0_12_1_bravia_support_0_1_patch.txt エラーが発生せずに正常に全ての対象ファイルにパッチがあたったことを確認する。 patching file src/buffered_io_handler.cc patching file src/cds_resource_manager.cc patching file src/common.h patching file src/io_handler_buffer_helper.cc patching file src/tools.cc patching file src/transcoding/transcode_ext_handler.cc patching file src/upnp_xml.cc RPM作成 展開したmediatombのディレクトリの上に移動し、 ダウンロードしたオリジナルの圧縮ファイルを別名に変更。 # cd .. # mv ./mediatomb-0.12.1.tar.gz ./mediatomb-0.12.1.tar.gz.orig mediatombのディレクトリからspecファイルを、所定のフォルダにコピーし、修正する。 # cp ./mediatomb-0.12.1/mediatomb.spec /usr/src/redhat/SPECS/ # vi /usr/src/redhat/SPECS/mediatomb.spec BuildRequires sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file-devel, js-devel, zlib-devel ↓ BuildRequires sqlite-devel, mysql-devel, libexif-devel, taglib-devel, file, js-devel, zlib-devel, expat-devel パッチを当てたmediatombのディレクトリを再度tar gz圧縮して、所定のフォルダにコピー。 # tar cvfz ./mediatomb-0.12.1.tar.gz ./mediatomb-0.12.1 # cp -p ./mediatomb-0.12.1.tar.gz /usr/src/redhat/SOURCES/ RPMを作成し、インストール。 # rpmbuild -bb --clean /usr/src/redhat/SPECS/mediatomb.spec パッケージ依存エラーが出たら、それぞれのパッケージをインストールする。 ちなみに、taglib-devel,js-develは標準のリポジトリに無いので、EPELまたはRPMFORGEからインストールする必要がある。 # rpm -ivh /usr/src/redhat/RPMS/x86_64/mediatomb-0.12.1-1.x86_64.rpm インストールが正常に終了したら、MediaTombの設定を行う。 設定に関しては、EPELから導入編と同じなので、 そちらを参照してください。 参考MediaTombMediaTomb本家 CentOSでMediaTombを利用する方法 このページを編集
https://w.atwiki.jp/sischkg/pages/12.html
LVM PhysicalVoulumeを登録 fdiskでパーティションを作成する。パーティションのタイプは、Linux LVM(8e)にする。 作成したパーティションのデバイスファイルを指定して pvcreate デバイスファイル を実行する。 VolumeGroupを作成 Xen create Domain-U virt-install \ -r ram-size \ -f install-device -n name \ --os-type=linux \ --os-variant=centos5 \ --location= os_url \ --network bridge xenbr0 \ --vnc heartbeat /etc/ha.d/ha.cf crm yes # debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 2 deadtime 30 warntime 10 initdead 60 udpport 694 auto_failback off bcast eth1 node centos01.example.com node centos02.example.com haresources から cib.xmlへの変換 # echo "centos01.example.com IPaddr 172.16.253.190 apache" haresources # /usr/lib64/heartbeat/haresources2cib.py --stdout haresources cib.xml cib.xml 上記cib.xmlを修正する。apacheを使用する場合のcib.xml cib admin_epoch="1" epoch="13" num_updates="1" have_quorum="true" ccm_transition="2" num_peers="2" cib_feature_revision="2.0" cib-last-written="Sat Mar 7 00 00 16 2009" configuration crm_config cluster_property_set id="cib-bootstrap-options" attributes nvpair id="cib-bootstrap-options-symmetric-cluster" name="symmetric-cluster" value="true"/ nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="stop"/ nvpair id="cib-bootstrap-options-default-resource-stickiness" name="default-resource-stickiness" value="0"/ nvpair id="cib-bootstrap-options-default-resource-failure-stickiness" name="default-resource-failure-stickiness" value="0"/ nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/ nvpair id="cib-bootstrap-options-stonith-action" name="stonith-action" value="reboot"/ nvpair id="cib-bootstrap-options-startup-fencing" name="startup-fencing" value="true"/ nvpair id="cib-bootstrap-options-stop-orphan-resources" name="stop-orphan-resources" value="true"/ nvpair id="cib-bootstrap-options-stop-orphan-actions" name="stop-orphan-actions" value="true"/ nvpair id="cib-bootstrap-options-remove-after-stop" name="remove-after-stop" value="false"/ nvpair id="cib-bootstrap-options-short-resource-names" name="short-resource-names" value="true"/ nvpair id="cib-bootstrap-options-transition-idle-timeout" name="transition-idle-timeout" value="5min"/ nvpair id="cib-bootstrap-options-default-action-timeout" name="default-action-timeout" value="20s"/ nvpair id="cib-bootstrap-options-is-managed-default" name="is-managed-default" value="true"/ nvpair id="cib-bootstrap-options-cluster-delay" name="cluster-delay" value="60s"/ nvpair id="cib-bootstrap-options-pe-error-series-max" name="pe-error-series-max" value="-1"/ nvpair id="cib-bootstrap-options-pe-warn-series-max" name="pe-warn-series-max" value="-1"/ nvpair id="cib-bootstrap-options-pe-input-series-max" name="pe-input-series-max" value="-1"/ nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="2.1.3-node 552305612591183b1628baa5bc6e903e0f1e26a3"/ /attributes /cluster_property_set /crm_config nodes node id="3aa4b0b5-f0c6-44d5-a71f-d9038c33193e" uname="centos02.in.local" type="normal"/ node id="d531c038-de37-4588-90a5-1b496edc3e6b" uname="centos01.in.local" type="normal"/ /nodes resources group id="group_1" primitive class="ocf" id="IPaddr_172_16_253_190" provider="heartbeat" type="IPaddr" operations op id="IPaddr_172_16_253_190_mon" interval="5s" name="monitor" timeout="5s"/ /operations instance_attributes id="IPaddr_172_16_253_190_inst_attr" attributes nvpair id="IPaddr_172_16_253_190_attr_0" name="ip" value="172.16.253.190"/ nvpair id="IPaddr_172_16_253_190_attr_1" name="netmask" value="24"/ nvpair id="IPaddr_172_16_253_190_attr_2" name="nic" value="eth0"/ /attributes /instance_attributes /primitive primitive class="ocf" id="apache_2" provider="heartbeat" type="apache" operations op id="apache_2_mon" interval="120s" name="monitor" timeout="60s"/ /operations instance_attributes id="apache_2_inst_attr" attributes nvpair id="apache_2_attr_0" name="configfile" value="/etc/httpd/conf/httpd.conf"/ nvpair id="apache_2_attr_1" name="httpd" value="/usr/sbin/httpd"/ nvpair id="apache_2_attr_3" name="statusurl" value="http //127.0.0.1/server-status"/ /attributes /instance_attributes /primitive /group /resources constraints rsc_location id="rsc_location_group_1" rsc="group_1" rule id="prefered_location_group_1" score="100" expression attribute="#uname" id="prefered_location_group_1_expr" operation="eq" value="centos01.example.com"/ /rule /rsc_location /constraints /configuration /cib iptables の変更 eth1に入ったパケットを許可する -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT httpd.conf heartbeatから監視するときに、 http //127.0.0.1/server-status をGETするので、mod_statusを有効にしアクセスを許可する。 LoadModule status_module modules/mod_status.so Location /server-status SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 /Location サービスの有効化 # chkconfig heartbeat on # service heartbeat start Designated Controller の表示 # crmadmin -D Designated Controller is centos02.example.com cib.xml の登録 # cibadmin -U -x cib.xml
https://w.atwiki.jp/atwikimyj/pages/103.html
bzip2のインストール # yum install bzip2* (bzip2*でbzip2関連のモジュール全部入れる) zlibのインストール # yum install zlib-devel
https://w.atwiki.jp/mash2190/pages/65.html
CentOS 5 インストールメモ CentOSでウェブサーバーを構築したときの個人的な環境設定の覚書きです。 最低限のセキュリティにつき、本運用はユーザーの自己責任で行ってください。 ※この記事はCentOS5.4リリース当時のもので古く 特に記載がない場合はCentOS5.xによる設定です。 現在はCentOS6に移行しています。 初回ローカルX起動での設定 電源設定 スクリーンセーバー設定(解除でロックしない) ホームディレクトリ内を英語表記に戻す LANG=C xdg-user-dirs-gtk-update 初回のソフトウェア更新(アプリで) 初回のyum update(コンソールで) sshサーバーを起動させて自動起動をオン ユーザーアカウントの作成 インストール時にGUIで設定済みの場合は不要 ユーザー名userを作成(GUIでも可能) login root # useradd user ←ユーザー名 ユーザー名userのパスワードを設定 # passwd user ←ユーザー名 New UNUX password 新しいパスワードを入力 Retype new UNIX password もう一度新しいパスワードを入力 passwd all authentication tokens updated successfully. ログイン・サウンドの停止 メニューから「システム」→「管理」→「ログイン画面」を選択し 「アクセシビリティ」タブを開いて「ログイン画面を表示した時」のチェックをオフ 自動ログイン設定 # vi /etc/gdm/custom.conf [daemon] AutomaticLoginEnable=true AutomaticLogin=username ←自動ログインを許可するユーザー名 [security] DisallowTCP=false CentOS 6の場合 # vi /etc/gdm/custom.conf [daemon] TimedLoginEnable=true TimedLogin=username TimedLoginDelay=1 起動時にキーリング解除画面を表示させない 「アクセサリー」>「パスワードと暗号鍵」 パスワード:login→右クリック→パスワードの変更 新しいパスワードを空欄のままOKを押して 安全ではないストレージに保存でOK root昇格とsudoユーザーを限定する $ su - ←suではコマンドが通らないので注意 # usermod -G wheel user ←ユーザー名userをwheelグループに追加 wheelグループのみsudoを許可する # visudo ## Same thing without a password %wheel ALL=(ALL) NOPASSWD ALL ←コメント解除 # vi /etc/pam.d/su wheelユーザーのみroot切り替えができるようにする auth required pam_wheel.so use_uid ←コメント解除 wheelユーザーのみパスワード無しでroot切り替えできるようにする auth sufficient pam_wheel.so trust use_uid ←コメント解除 .bashrcをカスタマイズ(一般ユーザー/root用あり) alias egrep= egrep --color=auto alias fgrep= fgrep --color=auto alias grep= grep --color=auto alias l= ls -CF alias la= ls -A alias ll= ls -al --color=auto このあたりは好みで alias ee= exit alias @@= exit alias cls= clear alias = su - alias vi= vim alias psgrep= ps aux|grep alias hsgrep= history|grep alias h= history 無精者仕様 alias yyup= yum update alias apget= sudo apt-get update ←CentOSでは動きません vim野良ビルド用 PATH="$PATH" /usr/local/bin/vim export EDITOR=/usr/local/bin/vim alias vi= env LANG=ja_JP.UTF-8 /usr/local/bin/vim "$@" alias vim= env LANG=ja_JP.UTF-8 /usr/local/bin/vim "$@" export HISTSIZE=2000 export HISTFILESIZE=5000 export HISTCONTROL=ignoredups インストール後によくあるエラーをこちらにまとめてみたので参照。 システム設定とカスタマイズ 日本語キーボード設定 1. /etc/sysconfig/keyboard KEYTABLE="jp106" # USになってたら訂正 2. /etc/X11/xorg.conf Option "XkbModel" "jp106" # pc105とかになってたら訂正 Option "XkbLayout" "jp" # usになってたら訂正 ホームディレクトリ内を英語表記 LANG=C xdg-user-dirs-gtk-update 「Don t ask me this again」をチェックして「Update Names」をクリック ※ファイルが作成済みの日本語ディレクトリは別ディレクトリとして残ってしまうので デスクトップおよびホーム内ディレクトリにファイルを設置する前に名称を変更する キーボード レイアウトオプション CapsLockキー項目:デフォルトのまま変更なし Controlキー項目:CapsLockキーを追加のCtrlとして扱う(Make CapsLock an addtional Ctrl) X サーバをkillするためのキーシーケンス Control+Alt+Backspaceにチェックを入れる Ctrl+Alt+BackspaceでXを強制終了/再起動 端末を無変換キーで起動する キーボードショートカット [端末を起動する]をクリックして、[無変換]をクリック ショートカット欄にMuhenkanと表示されればOK ibusからscim-anthyに切り替える リポジトリーを追加キー登録 cd /etc/yum.repos.d wget http //centos.karan.org/kbsingh-CentOS-Extras.repo wget http //centos.karan.org/kbsingh-CentOS-Misc.repo rpm -import http //centos.karan.org/RPM-GPG-KEY-karan.org.txt yum update yum install anthy scim scim-anthy システム設定入力メソッドを Anthy + SCIM へ切替える。 設定 >他の個人設定 >入力メソッド 再起動してログインするとCtrl-Space(または半角/全角キー)でローマ字入力できる geditなどGNOMEアプリを端末からrootで起動する場合 suではなく、su -で昇格しないとエラーになるので注意 起動レベルを5(GUI起動)に設定 # vi /etc/inittab id 5 initdefault サーバーのみでXが不要なら id 3 initdefault 起動中に常に詳細を表示する # vi /etc/rc.d/init.d/functions 460行あたり # Inform the graphical boot of our current state update_boot_stage() { if [ "$GRAPHICAL" = "yes" -a -x /usr/bin/rhgb-client ]; then /usr/bin/rhgb-client --update="$1" /usr/bin/rhgb-client --details=yes ←追加する fi return 0 テキストコンソールの解像度を変更する # uname -r 起動中のkernelを確認 2.6.18-128.1.10.el5 grub.confのkernel行の最後にvga=値を追加する vi /etc/grub.conf 現在起動してるkernel行の"rhgb quiet"を削除して 末尾に解像度バラメータとコマンドを追加する kernel /vmlinuz-2.6.18-128.1.10.el5 ro ==/1 vga=773 ←末尾に追加 値と解像度 771 800×600 256色 773 1024×768 256色 775 1280×1024 256色 不要サービスの停止 サービスやデーモン名は環境やバージョンにより異なります 下記以外のサービスを停止 atd autofs crond haldaemon httpd iptables kudzu lvm2-moniter mysqld network nmb microcode_ctl ntpd smb sshd syslog portmap vsftpd sendmail messagebus サービスを一括で停止/自動起動オフにするシェルスクリプト # vi service_off.sh #!/bin/sh while read SERVICE do service $SERVICE stop chkconfig $SERVICE off done __EOL__ anacron ←停止したいサービスを1行づつ指定 avahi-daemon bluetooth cpuspeed cups gpm hidd irda irqbalance mcstrans mdmonitor pcscd rawdevices restorecond yum-updatesd __EOL__ # chmod +x service_off.sh 実行権限 # ./service_off.sh スクリプトを起動 yum-updatesdの代替にyum-cronを使う # yum -y install yum-cron # /etc/rc.d/init.d/yum-cron start サービスを起動 # service yum-cron start ←最近はこっちでもいい 夜間 yum 更新の有効化中 [ OK ] # chkconfig yum-cron on 自動起動をオン 定期的に空きメモリを開放する drop_cachesで同期済みのキャッシュをメモリに開放する ノートや低スペックPCで実装メモリが小さい場合は効果あり スクリプト # vi cron_drop_caches.sh date; echo "total/used/free/shared/buffers/cached"; echo "before"; free -m|grep Mem ; sync; echo 3 /proc/sys/vm/drop_caches; echo 0 /proc/sys/vm/drop_caches; echo "after"; free -m|grep Mem ; 空きメモリの表示とか不要な場合は 以下の3行のみでOK sync; echo 3 /proc/sys/vm/drop_caches; echo 0 /proc/sys/vm/drop_caches; chmod +x cron_drop_caches.sh 実行権限 # ./cron_drop_caches.sh 動作確認 before Mem 64396 52907 11489 0 695 49146 after Mem 64396 1791 62605 0 0 34 ←空きメモリの増加を確認 スクリプトをcronに登録 1日(1周)に1回でよければ、cron.daily(weekly)に設置 起動時間や間隔を指定する場合 # crontab -e 00 0-23/6 * * * /root/cron_drop_caches.sh 6時間毎に起動する場合 実行時のcronメールがウザいときは末尾に /dev/null を追加するとメールは送信されない 00 0-23/6 * * * /root/cron_drop_caches.sh /dev/null ←エラーのみメールする 00 0-23/6 * * * /root/cron_drop_caches.sh /dev/null 2 1 ←エラーもメールしない prelink、makewhatisを無効にする 低スペックではCPUを占有される場合があるので停止 prelinkを無効 vi /etc/sysconfig/prelink 4行目をnoに変更 PRELINKING=no prelinkに改竄されたバイナリを元に戻しておく /usr/sbin/prelink -ua CentOSの場合 sudo prelink -ua Ubuntuの場合 makewhatisを無効 chmod 644 /etc/cron.daily/mlocate.cron chmod 644 /etc/cron.daily/makewhatis.cron chmod 644 /etc/cron.weekly/makewhatis.cron SSHの設定 # service sshd start sshサーバー起動 # chkconfig sshd on 自動起動オン アクセス制限 外部からのアクセスがウザい場合はhostsファイルに追加しておく # echo "sshd 127.0.0.1" /etc/hosts.allow ← サーバー自身からのsshを許可 # echo "sshd 192.168.1." /etc/hosts.allow ← ローカル(例:192.168.1.*)からのsshを許可 # echo "sshd .ppp.asahi-net.or.jp" /etc/hosts.allow ← 特定のホスト(例:xxx.ppp.asahi-net.or.jp)からのsshを許可 # echo "sshd ALL" /etc/hosts.deny ← (上記以外の)全てのsshを禁止 RSA鍵の生成 http //centos.server-manual.com/centos5_ssh_teraterm_rsa.html Tera term、もしくはコマンドラインでRSA鍵ペアを生成して 公開鍵(id_rsa.pub)をユーザーのホームにSCP転送する 公開鍵のサーバー登録 $ cd ~ ←ユーザーのホームで実行(id_rsa.pub転送済み) $ mkdir .ssh $ chmod 700 .ssh $ cat id_rsa.pub .ssh/authorized_keys キー登録 $ chmod 600 .ssh/authorized_keys $ rm -f id_rsa.pub 使用済みキー削除 sshd_config設定 # vi /etc/ssh/sshd_config PubkeyAuthentication yes ←コメント解除 AuthorizedKeysFile .ssh/authorized_keys ←コメント解除 PasswordAuthentication no ←コメント解除 変更(キー認証でのログインを確認してから) ChallengeResponseAuthentication no ←noになっていることを確認 # /etc/rc.d/init.d/sshd reload ←設定ファイルの再読み込み 一旦ログアウトして、Tera termを閉じる TeraTermを再起動して、「ホスト名」を確認して「OK」。 「ユーザ名」と鍵生成に使用した「パスフレーズ」を入力。 「RSA/DSA鍵を使う」にチェックを入れ、「秘密鍵」をクリック 保存した秘密鍵「id_rsa」を選択して「OK」でログイン。 ログインを確認したら、sshd_configを開いて、PasswordAuthentication noにしておく。 ファイアウォールの設定 iptablesフィルターを使って中国(CN) 韓国(KR)を弾く # mkdir /root/iptables # vi /root/iptables/ckfilter_setup.sh #!/bin/bash COUNTRYLIST= CN KR # 中国(CN) 韓国(KR)を弾く設定。他に弾きたい国がある場合はカントリーコードを追加。 wget -q http //ftp.apnic.net/stats/apnic/delegated-apnic-latest for country in $COUNTRYLIST do for ip in `cat delegated-apnic-latest | grep "apnic|$country|ipv4|"` do COUNTRY=`echo $ip | awk -F"|" { print $2 } ` DROP_IP=`echo $ip | awk -F"|" { print $4 } ` TMPCIDR=`echo $ip | awk -F"|" { print $5 } ` FLTCIDR=32 while [ $TMPCIDR -ne 1 ]; do TMPCIDR=$((TMPCIDR/2)) FLTCIDR=$((FLTCIDR-1)) done echo "$DROP_IP/$FLTCIDR" /root/iptables//ckip done done # chmod 700 /root/iptables/ckfilter_setup.sh パーミッション設定 # /root/iptables/ckfilter_setup.sh スクリプトの起動 # rm -f /root/iptables/ckfilter_setup.sh スクリプトを削除 iptablesの設定 # vi /root/iptables/iptables_setup.sh #!/bin/bash ################ ### 初期設定 ### ################ LOCALNET=192.168.1.0/24 ##################### ### IPTABLES STOP ### ##################### /etc/rc.d/init.d/iptables stop #################### ### Default Rule ### #################### iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #################### ### LOCAL ACCEPT ### #################### iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s $LOCALNET -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ##################### ### FRAGMENT DROP ### ##################### iptables -A INPUT -f -j LOG --log-level debug --log-prefix FRAGMENT DROP iptables -A INPUT -f -j DROP #################### ### NetBIOS DROP ### #################### iptables -A INPUT -s ! $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP iptables -A INPUT -s ! $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP iptables -A OUTPUT -d ! $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP iptables -A OUTPUT -d ! $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP ##################### ### PING OF DEATH ### ##################### iptables -N PINGOFDEATH iptables -A PINGOFDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT iptables -A PINGOFDEATH -j LOG --log-level debug --log-prefix PINGDEATH DROP iptables -A PINGOFDEATH -j DROP iptables -A INPUT -p icmp --icmp-type echo-request -j PINGOFDEATH ######################## ### BROAD MULTI DROP ### ######################## iptables -A INPUT -d 255.255.255.255 -j DROP iptables -A INPUT -d 224.0.0.1 -j DROP ################ ### 113IDENT ### ################ iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset ########### ### SSH ### ########### iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##################################################### ### DNS(※ポート53を開放する場合はコメントを外す) ### ##################################################### #iptables -A INPUT -p tcp --dport 53 -j ACCEPT #iptables -A INPUT -p udp --dport 53 -j ACCEPT ############ ### HTTP ### ############ iptables -A INPUT -p tcp --dport 80 -j ACCEPT ########### ### SSL ### ########### iptables -A INPUT -p tcp --dport 443 -j ACCEPT ########### ### FTP ### ########### iptables -A INPUT -p tcp --sport 20 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 4000 4029 -j ACCEPT ############ ### SMTP ### ############ iptables -A INPUT -p tcp --dport 25 -j ACCEPT ############# ### SMTPS ### ############# iptables -A INPUT -p tcp --dport 465 -j ACCEPT ############ ### POP3 ### ############ iptables -A INPUT -p tcp --dport 110 -j ACCEPT ############# ### POP3S ### ############# iptables -A INPUT -p tcp --dport 995 -j ACCEPT ############ ### IMAP ### ############ iptables -A INPUT -p tcp --dport 143 -j ACCEPT ############# ### IMAPS ### ############# iptables -A INPUT -p tcp --dport 993 -j ACCEPT ############# ### Rails ### ############# iptables -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT ############# ###2ch対策 ### ############# iptables -t filter -I INPUT 2 -s 206.223.144.0/20 -p tcp --dport 443 -j REJECT iptables -t filter -I INPUT 3 -s 206.223.144.0/20 -p tcp --dport 995 -j REJECT iptables -t filter -I INPUT 4 -s 206.223.144.0/20 -p tcp --dport 1723 -j REJECT iptables -t filter -I INPUT 5 -s 206.223.144.0/20 -p gre -j REJECT iptables -t filter -I INPUT 6 -s 207.29.224.0/19 -p tcp --dport 443 -j REJECT iptables -t filter -I INPUT 7 -s 207.29.224.0/19 -p tcp --dport 995 -j REJECT iptables -t filter -I INPUT 8 -s 207.29.224.0/19 -p tcp --dport 1723 -j REJECT iptables -t filter -I INPUT 9 -s 207.29.224.0/19 -p gre -j REJECT ################ ### CKFILTER ### ################ if [ -e "/root/iptables/ckip" ]; then iptables -N CKFILTER iptables -A CKFILTER -j DROP for ip in `cat /root/iptables/ckip` do iptables -I INPUT -s $ip -j CKFILTER done fi ############### ### logging ### ############### iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix INPUT DROP iptables -A INPUT -j DROP iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix FORWARD DROP iptables -A FORWARD -j DROP /etc/rc.d/init.d/iptables save /etc/rc.d/init.d/iptables start # chmod 700 /root/iptables/iptables_setup.sh パーミッション設定 # /root/iptables/iptables_setup.sh スクリプトの起動 CentOS 6で/etc/modprobe.confが存在するとエラーになる場合がある WARNING Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/. CentOS6から「/etc/modprobe.d/」以下ファイルで設定するので、modprobe.confは必要ないので削除する。 rm -f /etc/modprobe.conf ckfilterをcronで自動アップデートする # vi /etc/cron.daily/ckfilter_update.sh #!/bin/bash COUNTRYLIST= CN KR wget -q -N http //ftp.apnic.net/stats/apnic/delegated-apnic-latest switch=0 for country in $COUNTRYLIST do for ip in `cat delegated-apnic-latest | grep "apnic|$country|ipv4|"` do COUNTRY=`echo $ip | awk -F"|" { print $2 } ` DROP_IP=`echo $ip | awk -F"|" { print $4 } ` TMPCIDR=`echo $ip | awk -F"|" { print $5 } ` FLTCIDR=32 while [ $TMPCIDR -ne 1 ]; do TMPCIDR=$((TMPCIDR/2)) FLTCIDR=$((FLTCIDR-1)) done echo "$DROP_IP/$FLTCIDR" /root/iptables/ckip_new done done diff /root/iptables/ckip /root/iptables/ckip_new /dev/null 2 1 if [ $? -ne 0 ]; then mv /root/iptables/ckip_new /root/iptables/ckip /root/iptables/iptables_setup.sh /dev/null else rm -f /root/iptables/ckip_new fi # chmod +x /etc/cron.daily/ckfilter_update.sh # /etc/cron.daily/ckfilter_update.sh 動作確認 # chkconfig iptables on 自動起動設定 # chkconfig --list iptables 設定確認 iptables 0 off 1 off 2 on 3 on 4 on 5 on 6 off syslog設定でiptables.logの出力先を指定 # vi /etc/syslog.conf CentOS 5 # vi /etc/rsyslog.conf CentOS 6 #kern.* /dev/console ←コメントアウトを確認 どちらかを追加 kern.debug /var/log/iptables.log ←kernelのdebug(iptablesログ)以上すべてを出力する場合(messages.logと重複あり) kern.=debug /var/log/iptables.log ←kernelのdebug(iptablesログ)のみを出力する場合 ※古いsyslogではセレクターと出力先の区切りに半角スペースを 使うと認識できない場合があります。タブを使うようにしましょう。 # /etc/rc.d/init.d/syslog restart syslogを再起動 CentOS 5 # /etc/rc.d/init.d/rsyslog restart rsyslogを再起動 CentOS 6 iptables.logをsyslogローテーションに追加 # vi /etc/logrotate.d/syslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/iptables.log { sharedscripts ↑ postrotate 末尾に追加 /bin/kill -HUP `cat /var/run/syslogd.pid 2 /dev/null` 2 /dev/null || true /bin/kill -HUP `cat /var/run/rsyslogd.pid 2 /dev/null` 2 /dev/null || true endscript } DOS攻撃の対処 # vi /etc/sysctl.conf ↓下記を追加 net.ipv4.tcp_syncookies = 1 # Syn flood攻撃防御 最近はデフォルトでオンになってる net.ipv4.icmp_echo_ignore_broadcasts = 1 # Smurf攻撃防御 net.ipv4.icmp_ignore_bogus_error_responses = 1 # ICMPエラー無視 # sysctl -p カーネルパラーメータを更新 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 ←[Alt] + [SysRq/(PrtSc)] + [コマンドkey]で制御可能 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 error "net.bridge.bridge-nf-call-ip6tables" is an unknown key ←CentOS6だとunknown keyエラーが出る場合あり error "net.bridge.bridge-nf-call-iptables" is an unknown key error "net.bridge.bridge-nf-call-arptables" is an unknown key kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 kernel.exec-shield = 2 net.ipv4.tcp_syncookies = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 対処法1 キーがunknownにならないように対応bridgeモジュールをロードする # modprobe bridge # lsmod | grep bridge bridge 79078 0 stp 2173 2 bridge,garp llc 5546 3 bridge,garp,stp # sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 1 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 kernel.exec-shield = 2 net.ipv4.tcp_syncookies = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 対処法2 エラーになる設定をコメントアウトする #vi /etc/sysctl.conf # Disable netfilter on bridges. # net.bridge.bridge-nf-call-ip6tables = 0 # net.bridge.bridge-nf-call-iptables = 0 # net.bridge.bridge-nf-call-arptables = 0 カーネルパニック時に自動的に再起動させる # vi /etc/sysctl.conf kernel.panic = 5 ←追加する # sysctl -p カーネルパラメータを更新 # sysctl -n kernel.panic 設定を確認 5 ←設定値が返ればOK fsckによるファイルシステムの修復/デフラグ シングルユーザーモードで起動 起動画面でEキーを押す GRUB画面で Eキーを押す kernel行を選択してEキーを押す 最末尾に半角スペースを空け single と入力してエンター 末尾にsingleが追加されてるのを確認してBキーを押す sh-3.2#_ プロンプトで起動完了(root起動なのでrootパスワード変更も可能) umount -a すべてのデバイスをアンマウント fsck -fpcDv システムを修復、デフラグ、バッドセクタの修復 REBOOT LINUXと表示されれば完了 rebootで再起動 fsckオプション f: ファイルシステムが正常でもチェック p: 自動的にファイルシステムを修復 c: バッドセクタを修復 D: デフラグ v: fsckの詳細に出力 Rescueモードでfsck修復する 同じバージョンのインストールCDもしくはレスキューCDで起動 GRUB画面の boot に続けて linux rescue と入力してEnter システムのインストール時と同じ設定をダイアログで選択して mount選択画面が出たらcontinueでシステムをマウントする /$ _ ←コマンドプロンプトでレスキューモード起動完了 # fsck -f /dev/hda1 ボリュームを修復 WARNING! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)? yes y エンターで修復 rebootで再起動 ブート時のfsckの間隔を変更する # tune2fs -c 512 -i 1m /dev/hda1 オプション -c はマウント回数、-iはインターバル(d 日、w 週、m 月) 512回マウントもしくは1ヶ月毎にチェック
https://w.atwiki.jp/909091wiki/pages/52.html
やること2 とりあえずいくつか入れるzsh git oh-my-zsh emacs httpd停止 sshのポート変更 http //qiita.com/suin/items/5c4e21fa284497782f71を参考にポートを適当に塞ぐ(あとでやる) ↑やったらDNS解決ができなくなったのでめんどくさいのでガバガバにした ANYのところのDNSをアンコメントアウトすればよかった iptables http //ft-lab.ne.jp/cgi-bin/wiki.cgi?page=iptablesが参考になった。 httpサーバ入れてみる nginx入れてみるhttp //nomnel.net/blog/install-nginx-in-centos6-using-yum/(ただしバージョンとかx86_64とかは変えた) ほっといたらapacheが起動してnginxが死んだのでhttpdをremoveしてnginxをchkconfig nginx on Node.js入れてみるyumとか無いんでnvmが良いのではないだろうか・・・http //106n.net/toro/blog/?p=879 WordPressとか入れてみる wordpressインストール【?】参考WordPressのインストール php-fpmインストール参考http //d.hatena.ne.jp/zankey/20120725/1343207998(ただしバージョンとかx86_64とかは変えた) 自動起動させるためにchkconfig php-fpm on RedMineとか入れてみる入れてみたかった入った http //redmine.jp/install/を参考にruby入れる前でyumでinstall rubyもyumで入れればいいじゃんと思って入れたらgemがyumで入ってない(rubyのバージョンも古かった) 結局記述通りrubyをソースコードからビルドすることにした 思った以上に依存関係がめんどくさいので諦めた おもにbundle install --without development testでmysql.hないよ言われて確かめたら↑先のphp-fpmで入れたパッケージが競合してるみたい めんどくさいのでやめた要するにこういうことだった Package mysql-devel-5.1.69-1.el6_4.x86_64 Requires mysql = 5.1.69-1.el6_4 Installed mysql-5.5.34-1.el6.remi.x86_64 (@remi) という訳でインストールされてるmysqlのバージョンは5.5.34なのにインストールするdevelのバージョンが5.1.69だからおかしくねって言われた remiに合わせて yum --enablerepo=remi install mysql-develで解決 RAILS_ENV=production bundle exec rake db migrate で止まる パスワードをダブルクオーテーションの中に書いたら動いた ああpassenger動かすにはnginxリビルドしなきゃいけないのね(寝る) sudo yum remove nginxでリムーブ 設定ファイルは .rpmsave を付け加えられバックアップされる nginx構成は別項で passengerをnginxに組み込んだら動いた(ヤッター) nginx ビルドアンドインストール http //nginx.org/en/download.html からソースコードをダウンロード 現時点の最新版 v1.5.6を使用する wget http //nginx.org/download/nginx-1.5.6.tar.gz よりソースコードをダウンロード tar xvzf nginx-1.5.6.tar.gz で解凍 passenger-install-nginx-module 実行 自分でモジュールを選択したいので2番を選択 nginxソースはどこだって言われるので選択 (今回は /root/nginx-1.5.6 だった) nginxをどこにインストールするのと言われるので標準の /opt/nginx を選択 ここ を参考にモジュールを選択 ./configure --hlep でオプション一覧が見られる 選択スモジュールは特になかったのでEnter 以上の設定でconfigしますかと言われるのでEnter ビルドされるので待つ。 起動スクリプトをhttp //wiki.nginx.org/RedHatNginxInitScript から借りて /etc/init.d/ に nginx と言う名前で保存ただしパスが若干違うので調整nginx="/opt/nginx/sbin/nginx" NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf" sudo service nginx start なんか色々出てくるけど最後に start nginx OKって出たからいいや 自動起動とservice登録sudo chkconfig --add nginx sudo chkconfig nginx on movabletype入れたい 公式サイトに登録してzipをダウンロード http //www.movabletype.jp/documentation/に従う とりあえずフォルダを設置したけど .cgiが動かないね。 http //www.movabletype.jp/documentation/mt5/installation/linux.htmlをちゃんと読む 全然参考にならなかった。(ファイル構成はなんとなくわかったけど) とりあえずperlをnginxで動かしたいhttp //nullpopopo.blogcube.info/2013/07/nginx-perlcgi.htmlを参考に perl-cgi perl-fcgiをインストールして.pl .cgiをperlに渡すようにする。 渡す用のラッパーをhttps //library.linode.com/web-servers/nginx/perl-fastcgi/centos-5を参考に作る Configure FastCGI Wrapper のあたりで2つファイルをつくてchkconfigに入れて終わり。 動いた mt-check.cgiを開くと幾つかperlのmodule入れるといいよみたいなこと表示される(なしでも動くことは動くようだ) 入れようとしたらcpanが動かなかったので yum install perl-CPANした。 あとはブラウザインターフェイスでチャキチャキ進めてmysqlでデータベース作りつつ終了 できた! 使い方はhttp //www.movabletype.jp/documentation/mt5/index.html読んで勉強しよ。
https://w.atwiki.jp/centos-home/pages/35.html
postgresqlインストール postgres(OS)アカウント作成 # /usr/sbin/useradd postgres # /usr/bin/passwd postgres コンパイルに必要なツール gzip/bzip2 GNU make 3.76.1〜 gcc 2.72〜 Flex 2.54〜 Bison 1.875〜 GNU Readlineライブラリ(# yum install readline-devel) GNU zlibライブラリ(# yum install zlib-devel) ソースの展開とインストール(1) 圧縮されたPostgreSQLのソースをpostgresユーザで/usr/local/srcに解凍 /usr/local/src/postgresql-8.4 インストールするディレクトリ /usr/local/pgsql 上のディレクトリの所有権限をpostgresに変更 ソースの展開とインストール(2) postgresユーザになってconfigure $ ./configure 無事makefileができたら $ make all makeのチェックをするために(リグレッションテスト) $ make check 「All 120 tests passed.」と表示されれば完了 ソースの展開とインストール(3) $ make install このページを編集
https://w.atwiki.jp/kapper1224/pages/60.html
CentOS 8.0以降 久々のメジャーアップデートとなるCentOS8.0以降では Kernel4.18を搭載しており、AtomのWindowsタブレットやStickPCでも バグが少なくなり問題なく起動出来る。 Fedoraと同じくUEFI32bitと64bitに両方対応。 インストールは簡単でUSBメモリにISOファイルを焼いてAnacondaから普通にインストール。 一部タッチスクリーンなどドライバが動作しない場合があるので 最新のKernelに入れ替える必要がある。 こちらをご参考に CentOS 7 最新安定版カーネルインストール、及び切り替え https //server.etutsplus.com/centos-7-how-to-update-kernel-to-the-latest-mainline-stable/ CentOS 7.x以前 サーバ用途によく使われているCentOS7.xですが、 Windowsタブレットで動かすにはAtomのバグの影響で、 かなり限定された機種のみ動作確認出来ています。 条件として、 1.Kernel3.10でも起動できるCPU =Bay-Trail以降のAtomを除く 2.CPUでLegacy―BIOS世代(Windows7以前)、 AMDのCPU、CoreM世代 3.UEFIのブートバグに引っかからなかった機種 で、最近のAtom以外なら起動確認出来ています。 Atomのサポートは主にKernel4.4〜4.9以降の機種なので、 もう少し待ちましょう。 最初の1回が起動できたらKernel載せ替えが可能なので使えます。 また、CentOS7.5は既にUEFI32bit、64bit対応していますので UEFIの問題はFedoraと同様に対応済みです。 ISOファイルをDDかRufusかなにかでUSBメモリに焼いて起動しましょう。
https://w.atwiki.jp/fns1556/pages/41.html
Network関連 1.1 インターフェースの設定 簡単ネットワーク設定コマンド(なぜかDNSの設定が反映されない・・・?) root@pc ~# system-config-network 以下を編集 root@pc ~# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.1 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 DNS1=192.168.1.254 1.2 DNSの設定 設定ファイル:/etc/resolv.conf のファイルはネットワークサービス起動時に自動で上書きされるので、このファイルからは設定しない。 参考 1.3 デフォルトゲートウェイの設定(上記のGATEWAYで設定しない場合) root@pc ~# vim /etc/sysconfig/network GATEWAY=192.168.1.254 root@pc ~# service network restart 1.4 ホスト名の設定 1.4.1 CentOS6以前 root@pc ~# vim /etc/sysconfig/network HOSTNAME=centos6.linux root@pc ~# reboot 1.4.2 CentOS7以前 root@pc ~# vim /etc/hostname HOSTNAME=centos7.linux root@pc ~# halt --reboot ファイル関連 2.1 データの16進数ダンプ表示 例 text.txtを10バイト分16進数表示 root@pc ~# hexdump text.txt -n 10 -C 2.2 ブロックデバイスのUUID表示 root@pc ~# blkid 認証関連 3.1 ユーザーのroot昇格権制限 例 user1のroot昇格を制限する 設定ファイルの場所:/etc/group, /etc/pam.d root@pc ~# vi /etc/group wheel x 10 root,user1 root@pc ~# vi /etc/pam.d/su 以下のコメントアウトをはずす auth required pam_wheel.so use_uid コンソール関連 4.1 CUI使用時の画面サイズ変更 GUIを利用せず、CUIのみで使用する場合、初期状態ではPCの画面サイズに一致していない。 そのため、適切なサイズを選択する。 例)1280×800のノートPCでCentOSをCUI運用する場合。 設定ファイル:/etc/grub.conf (シンボリックリンク) - /boot/grub/grub.conf 対象の起動メニューに該当する「kernel /vmlinuz-......」の行の最後に「 vga=ask」を追加し、再起動する。 再起動時に以下の様な利用可能な画面コード一覧が表示される。 使用する液晶に該当するサイズ(1280 × 800)は36Aとなることを確認し、36Aを入力して起動する。 起動後に画面サイズに問題なければ、この設定を再度grub.confに「vga=0x36A」(16進数0xに注意!)として変更することで、次回からこの解像度になる。 フリーズ時にSysRqを使った安全なシステム再起動 うちのLinuxが時々フリーズするので、そんな時のために便利な再起動方法 ことわざの頭文字で覚えると便利 ゾウを育てるって、もうとっても退屈 Raising Elephants Is So Utterly Boring BUSIERの逆 Alt+SysRqを押した状態で6つのキーを順番に押す!(少し時間は空けること) root@pc ~# Alt + SysRq + R root@pc ~# Alt + SysRq + E root@pc ~# Alt + SysRq + I root@pc ~# Alt + SysRq + S root@pc ~# Alt + SysRq + U root@pc ~# Alt + SysRq + B LinuxMania キーボードショートカット集(Fedora,Ubuntu,CentOS)