| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

CentOS 初期設定

提供: MyMemoWiki
2020年10月22日 (木) 13:51時点におけるPiroto (トーク | 投稿記録)による版 (→‎CentOS7)
ナビゲーションに移動 検索に移動

目次

CentOS 初期設定

CentOS | Linux | Fedora | CentOS7 |

  • 初期設定する手順をまとめておく

インストール

バージョンの確認

# cat /etc/*release                                                                             
CentOS release 6.2 (Final)
CentOS release 6.2 (Final)
CentOS release 6.2 (Final)

ネットワークインストール

ネットワークインストール用 bootイメージ
FTPインストール指定先

Xen ゲストOSとしてインストール

日本語環境の設定

日本語サポートのインストール

# yum groupinstall install "Japanese Support"
# vi /etc/sysconfig/i18n
  LANG="ja_JP.UTF-8"

日本語フォントのインストール

テキストモードでインストールすると、日本語フォントがインストールされない

0302 centos init03.jpg

日本語フォントをインストールする
# yum install fonts-japanese 

0303 centos init04.jpg

=その他

最初の設定

SSH

  • ~/.ssh/config に接続情報を記述しておくとsshのログインパラメータを都度指定する必要がない
Host phraseit.info
        HostName        phraseit.info
        IdentityFile    ~/.ssh/xxxxxx.pem
        User            ec2-user
Host typea.info
        HostName        typea.info
        User            root
        Port            3843

Cygwinでconfigファイルを利用するには以下の手順が必要

$ chgrp Users config
$ chmod 600 config

Cygwinで公開鍵を使う場合以下の手順が必要

chgrp Users ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

ネットワーク設定

IPアドレスの設定

VNCを使えるようにする。

  • GUIを使えると便利な局面も多いので、まずVNCを使えるようにしておく
  • Fedoraと同様まず、コマンドから、5901ポートを開けて、VNCサーバーを使えるようにする。

CentOS 7

<blockquote>以下の手順ではサービスがACTIVEにならず</blockquote>

install
# yum install tigervnc-server
設定編集
# cat /etc/sysconfig/vncservers 
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
  • Copy this file to /etc/systemd/system/vncserver@:<display>.service
# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service            
  • Edit <USER> and vncserver parameters appropriately ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2") [Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l piroto -c "/usr/bin/vncserver -geometry 1024x768 -nolisten tcp -localhost"                                                      
PIDFile=/home/piroto.vnc/%H%i.pid                                                                                 
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

# su piroto                                                                                
[piroto@localhost system]$ vncpasswd
Password:
Verify:
  • Run `systemctl daemon-reload`
# systemctl daemon-reload 
  • Run `systemctl enable vncserver@:<display>.service`
# systemctl enable vncserver@:1.service

ln -s '/etc/systemd/system/vncserver@:1.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:1.service'

Firewall

# firewall-cmd --permanent --zone=public --add-port=5900-5910/tcp
success
# firewall-cmd --reload
success

CentOS 6

install
# yum install tigervnc-server
設定編集(pirotoはユーザー名)
#  vi /etc/sysconfig/vncservers
      :
VNCSERVERS="1:piroto"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -localhost"

Chain(RH-Firewall-1-INPUT) および、インデックス(10) は iptables -L で確認し、適宜値を変える

# iptables -I RH-Firewall-1-INPUT 10 -m state --state NEW -p tcp --dport 5901 -j ACCEPT
# iptables -I INPUT 8 -p tcp --dport 5900:5910 -j ACCEPT          

保存と再起動

# service iptables save
# service iptables restart

確認

# iptables -L
    : 
Chain RH-Firewall-1-INPUT (2 references)
    : 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:5901 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

VNCサーバーの起動

Fedora同様の処理

Twn 以外のウィンドウマネージャーを使えるように switchdesk をインストール

# yum install switchdesk

VNCサーバーの設定を置き換え

# switchdesk gnome
Red Hat Linux switchdesk 4.0
Copyright (C) 1999-2004 Red Hat, Inc
Redistributable under the terms of the GNU General Public License
Desktop now set up to run GNOME.
# cd /root/.vnc
# mv xstartup xstartup.bak
# ln -s /root/.Xclients xstartup

解像度の変更

  • /usr/bin/vncserver の geometry に解像度を指定
#
# Global variables.  You may want to configure some of these for your site.
#

$geometry = "1360x600";  

起動

# vncserver

New 'krishna.typea.info:1 (root)' desktop is krishna.typea.info:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/krishna.typea.info:1.log

0307 centos vnc01.jpg

終了

#vncserver -kill :1

自動起動

  • /etc/sysconfig/vncservers を編集
  • 以下をコメントイン
VNCSERVERS="1:piroto"                                                                                             
VNCSERVERARGS[2]="-geometry 1366x768 -nolisten tcp -localhost"
  • サービスの設定
# chkconfig --level 3 vncserver on   

SELinux の設定

SELinux の無効化

確認
  • 有効
[root@susanoo vsftpd]# getenforce
Enforcing
  • 無効
[root@susanoo vsftpd]# getenforce
Permissive
無効化
[root@susanoo vsftpd]# setenforce 0
設定ファイル編集
# vi /etc/selinux/config
  • SELINUX=enforcing → disabled に変更
#chroot_list_file=/etc/vsftpd/chroot_list
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
SELinuxコンテキスト
  • ls-al したときに、末尾にピリオドがついているものは、SELinuxコンテキストが付与されている
drwxr-xr-x.  8 root   root    4096  8月 16 19:46 2013 repo
  • -Zで内容を確認できる
drwxr-xr-x. root   root   unconfined_u:object_r:user_home_t:s0 repo


ファイアーウォールの設定

iptables

Chain

iptablesは、指定したルールに当てはまるパケットに対しての、処理内容を定義します。このルールのグループをチェインと言い、このチェインには、最初から定義されている組み込みチェインと、後から定義するユーザー定義チェインの2種類があります。

policy

各チェイン毎のルールのどれにもマッチしない場合は、そのチェインに定義されている「policy」の内容により、パケットを処理します。

  • Chain INPUT (policy ACCEPT):サーバーに入ってくるパケットのうち、設定したどのルールにもマッチしない場合は、パケットを通過させる。
  • Chain OUTPUT (policy DROP):サーバーから出て行くパケットのうち、設定したどのルールにもマッチしない場合は、パケットを破棄する。
target
  • ルールに該当するパケットの処理方法
  • ACCEPT:パケットを通過させる
  • DROP:パケットを破棄する
prot

プロトコル名

  • all:全てのプロトコル
  • tcp:tcpプロトコル
source

送信元IPアドレス

destinatior

送信先IPアドレス

iptablesコマンドのオプション
チェイン 説明
指定したチェインのポリシーを変更
指定したチェインに新しいルールを追加
指定チェインのルールを削除
新しいユーザー定義チェインを作成
指定したユーザー定義チェインを削除
ルールの初期化(※policyの設定は初期化されません)
,-p (--protocol) ,--sport ,--dport
条件 説明
ターゲット 条件に合った際のアクションを指定
プロトコル名 プロトコル名(tcp, udp, icmp, all)を指定
IPアドレス 送信元アドレス(IPアドレスかホスト名)を指定
IPアドレス 送信先アドレス(IPアドレスかホスト名)を指定
送信元ポート番号 送信元ポート番号(80, httpなど)を指定
宛先ポート番号 宛先ポート番号(80, httpなど)を指定
デバイス パケット入力のインターフェースを指定
デバイス パケットを出力するインターフェースを指定
アクション 説明
ACCEPT パケットの通過を許可
DROP 通過しようとするパケットの破棄
LOG ログの取得
REJECT パケットを拒否し、ICMPメッセージを返信
バックアップ
# cd /etc/sysconfig
# cp iptables iptables.old 
cp: `iptables.old' を上書きしてもよろしいですか(yes/no)? y
80,80ポートを許可する例
-A INPUT -p tcp --dport http -j ACCEPT
-A INPUT -p tcp --dport 8080 -j ACCEPT
起動、停止、再起動
# /etc/rc.d/init.d/iptables start
# /etc/rc.d/init.d/iptables stop
# /etc/rc.d/init.d/iptables restart
確認
# iptables -nL

GUIから、ファイアーウォールを設定する。

0304 centos init05.jpg

WWW や FTP のポートを利用可能に

0305 centos init06.jpg


FTPサーバー

インストールされているか確認

# rpm -q vsftpd
package vsftpd is not installed

インストール

# yum install -y vsftpd
Loaded plugins: fastestmirror
         :
Installed:
 vsftpd.i686 0:2.2.2-11.el6_4.1                                                                                

Complete!

vsftpd の確認

# rpm -q vsftpd
vsftpd-2.0.5-16.el5_4.1

設定の編集

/etc/vsftpd/vsftpd.conf
Anonymous ログインを無効にする
#anonymous_enable=YES
ログを出力させる
xferlog_file=/var/log/vsftpd.log
接続制限
  • 以下を確認
tcp_wrappers=YES
  • /etc/hosts.allow に以下を追記(制限をかけるときはここで)
vsftpd : ALL : ALLOW

ユーザーの追加

rootでは ftp サーバーにログインできない。

<blockquote>非推奨だが、root でログインできる様にするためには、/etc/vsftpd/ftpusers、/etc/vsftpd/user_list の両方からroot 行をコメントアウトすることで可能</blockquote>

  • ユーザーを追加して、パスワードを設定して、root グループに所属させる(任意)
  • Linux ユーザ管理
# useradd xxxx
# passwd xxxx
# gpasswd -a xxx root

CentOs6 ランレベル 3 で自動起動するように

# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:on    4:off   5:off   6:off
# runlevel
N 3
# chkconfig --level 3 vsftpd on

CentOs7 OS起動時に起動させる

# systemctl enable vsftpd

テキストモードで起動

CentOS6
  • 常に

id:5:initdefault: -> id:3:initdefault:

# vi /etc/inittab
         :
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
  • 今回のみ
# init 3
CentOS7
  • /etc/systemd/system/default.taget ファイルを入れ替える
$ cd /etc/systemd/system
$ sudo rm default.taget
$ sudo ln -s /lib/systemd/system/multi-user.target default.target

ファイアーウォールの設定

CentOS7
  • Firewall
# firewall-cmd --add-service=ftp --permanent
success
# firewall-cmd --reload
success
CentOS 6
  • /etc/sysconfig/iptables-config に追記
IPTABLES_MODULES="nf_conntrack_ftp"
  • iptables の再起動
# service iptables restart
  • iptables の設定と保存
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport ftp -j ACCEPT
# service iptables save
# service iptables restart

SELinuxによりエラー

  • 以下の様なエラーはSELinuxが出している。SELinuxを無効にするには、setenforce 0 を実行
  • 上記、SELinux の無効化 参照
C:\Users\piroto>ftp 192.168.24.12
192.168.24.12 に接続しました。
220 (vsFTPd 2.2.2) 
ユーザー (192.168.24.12:(none)): root
331 Please specify the password. 
パスワード:
500 OOPS: cannot change directory:/root
500 OOPS: priv_sock_get_cmd
接続がリモート ホストによって閉じられました。


起動設定

Centos7
# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

ウェブサーバー

設定

  • /etc/httpd/conf/httpd.conf を編集
CGIを利用可能に
<Directory "/var/www/html/tips">
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

起動

# service httpd start
httpd を起動中:                                            [  OK  ]

確認

0306 centos init07.jpg

ランレベル 3 で自動起動するように

# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
# runlevel
N 3
# chkconfig --level 3 httpd on


mod_rewrite を利用できるようにする場合

  • コメントを外す
LoadModule rewrite_module modules/mod_rewrite.so
  • AllowOverride を Allに
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride All
  • 再起動
/sbin/service httpd restart

SSL

# yum install epel-release
# yum install certbot python-certbot-apache

テンプレート:Ref SSL.pdf {{ref SSL_CRON.pdf}}

subversion

インストール

# yum install subversion
# yum install mod_dav_svn.so

リポジトリの作成

# mkdir /var/www/svn
# cd /var/www/svn
# svnadmin create repo
# chown -R apache.apache repo

パスワードの設定

# htpasswd /etc/httpd/.passwd svn

設定ファイルの変更

/etc/httpd/conf.d/subversion.conf
<Location /svn>
  DAV svn
  SVNParentPath /var/www/svn
 
  # Limit write permission to list of valid users.
  <LimitExcept GET PROPFIND OPTIONS REPORT>
     # Require SSL connection for password protection.
     # SSLRequireSSL

     AuthType Basic
     AuthName "Authorization Realm"
     AuthUserFile /etc/httpd/.passwd  <- 上で作成したパスワードファイルを指定
     Require valid-user
  </LimitExcept>
</Location>
Location /svn で場所を指定する

再起動

# /sbin/service httpd restart

引っ越し

subversion リポジトリの引越し

GCC

インストール

  • これがないと、ソースからコンパイルできない
# yum install gcc

Python

MySQL

インストール

# yum install mysql-server

起動

# /etc/rc.d/init.d/mysqld start
自動起動
# chkconfig --level 3 mysqld on

設定

root パスワードの変更
# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> set password for 'root'@'localhost' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
mysql> set password for 'root'@'krishna.typea.info' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
mysql> set password for 'root'@'127.0.0.1' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
ユーザーの作成
mysql> create user piroot@"%";
Query OK, 0 rows affected (0.00 sec)
mysql> create user piroot@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> set password for 'piroot'@'localhost' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
mysql> set password for 'piroot'@'%' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
管理権限をユーザーに追加
mysql> grant all privileges on *.* to piroot@localhost identified by 'newpassword' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to piroot@"%" identified by 'newpassword' with grant option;
Query OK, 0 rows affected (0.00 sec)
権限を限定して追加
mysql> grant create,select,insert,update,delete on *.* to piroot@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> grant create,select,insert,update,delete on *.* to piroot@"%" identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> grant create,select,insert,update,delete on *.* to piroot@"%" identified by 'password';
Query OK, 0 rows affected (0.00 sec)
確認
mysql> select host, user from mysql.user;
+--------------------+--------+
| host               | user   |
+--------------------+--------+
| %                  | piroot | 
| 127.0.0.1          | root   | 
| krishna.typea.info |        | 
| krishna.typea.info | root   | 
| localhost          |        | 
| localhost          | piroot | 
| localhost          | root   | 
+--------------------+--------+
7 rows in set (0.00 sec)
データベースの作成
mysql> create database mt character set utf8;
Query OK, 1 row affected (0.10 sec)

Git

ダウンロードとインストール

# wget http://kernel.org/pub/software/scm/git/git-1.7.3.2.tar.bz2
# tar -xvf git-1.7.3.2.tar.bz2
# cd git-1.7.3.2
# make
# make install


Oracle Java SDK のインストール

Jdk 7

JDK Download

インストール

$ su
# rpm -Uvh jdk-7u51-linux-i586.rpm 
準備中...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
 	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...

alternativesの設定

# alternatives --install /usr/bin/java java /usr/java/latest/bin/java 200000
# alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000
# alternatives --install /usr/bin/jar jar /usr/java/latest/bin/jar 200000

alternativesで確認

# alternatives --config java

3 プログラムがあり 'java' を提供します。
 
  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.7.0-openjdk/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
*+ 3           /usr/java/latest/bin/java

起動して確認

java
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing) 
javac
# javac -version
javac 1.7.0_51

Jdk 6

ダウンロード

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html

インストールと設定

jdk-6u25-linux-i586.bin

# mv jdk-6u25-linux-i586.bin /opt/
# cd /opt/
# chmod +x jdk-6u25-linux-i586.bin 
# ./jdk-6u25-linux-i586.bin 
# vi /etc/profile.d/java.sh
export JAVA_HOME=/opt/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$PATH
# source /etc/profile.d/java.sh 
# alternatives --install /usr/bin/java java /opt/jdk1.6.0_25/bin/java 2
# alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /opt/jdk1.6.0_25/bin/java

Enter to keep the current selection[+], or type selection number: 

Windowの設定

パッケージ管理

EPEL(Extra Packages for Enterprise Linux)設定

有効か確認
CentOS 7 用
RPM
ダウンロードとインストール
# wget http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-1.noarch.rpm
# rpm -Uvh epel-release-7-1.noarch.rpm