CentOSサーバー初期化設定の詳細な手順

例としてAli ** [ Cloud Server **](https://cloud.tencent.com/product/cvm?from=10680)を取り上げます

1.ハードディスクをマウントします

1、 ディスクパーティション

fdisk -l#デバイスを表示します。通常、デバイス名は/ dev / xvdbまたは/ dev / vdb(Alibaba Cloud io最適化)であることがわかります。

fdisk / dev / xvdb#ディスクのパーティション、またはfdisk / dev / vdb

nと入力します#新しいパーティションを作成します

p#createプライマリパーティションを入力します

1を入力#最初のプライマリパーティションを作成します

w#を入力して保存し、上記のコマンドを実行してパーティションを作成します

上記のコマンドを実行した後、fdisk -lを使用して表示すると、次のように表示されます。

/ dev / xvdb1パーティション

またはのために

/ dev / vdb1パーティション(次の手順は似ています。xvdb1とvdb1の違いに注意してください)

パーティションは成功しています。

2、 ディスクフォーマット

mkfs.ext4 / dev / xvdb1#パーティションをフォーマットします

注:ext4はCentOS6.xのデフォルトのパーティション形式です。CentOS5.xにはext3を使用してください

mkfs.xfs / dev / vdb1またはmkfs-t xfs / dev / vdb1

CentOS7.xはデフォルトでxfsパーティションを使用します

フォーマットが完了したら(パーティションのサイズによって、フォーマットに必要な時間は異なります。しばらくお待ちください)、パーティションをマウントします。

3、 ディスクをマウントします

例:/ dev / xvdb1を/ dataディレクトリにマウントする

mkdir -p / data#ディレクトリを作成

マウント/ dev / xvdb1 / data #mount

mount -t ext4 / dev / xvdb1 / data #mount

mount -t xfs / dev / vdb1 / data #mount

df -h#マウント結果を表示する

vi / etc / fstab#起動時に自動マウントを設定し、最後の行に次のコードを入力します

/dev/xvdb1 /data ext4 defaults 0 0

: wq!#保存して終了

または、UUIDを使用してマウントします

blkid / dev / xvdb1#ディスクのUUIDを取得します。次に例を示します。

/dev/xvdb1: UUID=”9c991d14-9372-4fd8-97d6-2aa1ac1acf47” TYPE=”xfs“

vi / etc / fstab#起動時に自動マウントを設定し、最後の行に次のコードを入力します

UUID=9c991d14-9372-4fd8-97d6-2aa1ac1acf47 /data xfs defaults 0 0

: wq!#保存して終了

mount -a#パーティション設定をすぐに有効にする

2.SWAPパーティションを作成します

注:デフォルトでは、Alibaba Cloud Serviceにはスワップパーティションがありません。512MクラウドサーバーにPHP5.6をインストールすると、メモリが不足していることを示すプロンプトが表示され、インストールは失敗します。

メモリがいくら大きくても、スワップパーティションを増やすことを強くお勧めします。

512MのAlibabaCloudサービスで1024Mのスワップスペースを増やす

特定の操作:

1、 dd if = / dev / zero of = / home / swap bs = 1M count = 1024#1024Mファイルブロックを作成します

2、 mkswap / home / swap#スワップファイルを作成する

3、 swapon / home / swap#スワップファイルをアクティブ化する

4、 swapon -s #View swap

5、 / etc / fstabファイルを変更し、次のコンテンツを追加して、システムの起動時にシステムが自動的に起動するようにします。

vi / etc / fstab#最後に次のコードを追加します

/home/swap swap swap default 0 0

: wq!#保存して終了

システムの運用と保守www.osyunwei.comウォームリマインダー:qihang01元のコンテンツ©copyright、reprintソースと元のリンクを示してください

3.システムカーネルの最適化

1、 CentOS 5.x CentOS 6.x CentOS 7.x

vi /etc/security/limits.conf#最後の行に次のコードを追加します

: wq!#保存して終了

2、 CentOS 5.x CentOS 6.x CentOS 7.x

vi / etc / profile#最後の行に次のコードを追加します

ulimit -SHn 655350

ulimit -SHu unlimited

ulimit -SHd unlimited

ulimit -SHm unlimited

ulimit -SHs unlimited

ulimit -SHt unlimited

ulimit -SHv unlimited

: wq!#保存して終了

source / etc / profile#構成をすぐに有効にする

ulimit -a#View設定

3、 CentOS 6.x(CentOS5.xおよびCentOS7.xはこれを設定する必要はありません)

vi /etc/security/limits.d/90-nproc.conf#最後の行に次のコードを追加します

root soft nofile 655350

root hard nofile 655350

root soft core unlimited

root hard core unlimited

: wq!#保存して終了

4、 CentOS 5.x

sed -i “s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g” ‘/etc/sysctl.conf’

echo -e “net.core.somaxconn = 65535” >> /etc/sysctl.conf

echo -e “net.core.netdev_max_backlog = 262144” >> /etc/sysctl.conf

echo -e “net.core.wmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.core.wmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.route.max_size = 5242880” >> /etc/sysctl.conf

echo -e “net.ipv4.route.gc_timeout = 20” >> /etc/sysctl.conf

echo -e “net.ipv4.ip_local_port_range = 1025 65535” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_retries2 = 5” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_fin_timeout = 30” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_syn_retries = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_synack_retries = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_timestamps = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_recycle = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_reuse = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_time = 120” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_probes = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_intvl = 15” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_tw_buckets = 200000” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_orphans = 3276800” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_syn_backlog = 262144” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_wmem = 8192 131072 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_rmem = 32768 131072 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_mem = 94500000 915000000 927000000” >> /etc/sysctl.conf

echo -e “net.ipv4.ip_conntrack_max = 25000000” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_max = 25000000” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60” >> /etc/sysctl.conf

echo -e “net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120” >> /etc/sysctl.conf

echo -e “net.unix.max_dgram_qlen = 655360” >> /etc/sysctl.conf

echo -e “kernel.msgmax = 655360” >> /etc/sysctl.conf

echo -e “kernel.msgmni = 20480” >> /etc/sysctl.conf

CentOS 6.x 7.x

sed -i “s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g” ‘/etc/sysctl.conf’

echo -e “net.core.somaxconn = 65535” >> /etc/sysctl.conf

echo -e “net.core.netdev_max_backlog = 262144” >> /etc/sysctl.conf

echo -e “net.core.wmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_default = 8388608” >> /etc/sysctl.conf

echo -e “net.core.rmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.core.wmem_max = 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.route.max_size = 5242880” >> /etc/sysctl.conf

echo -e “net.ipv4.route.gc_timeout = 20” >> /etc/sysctl.conf

echo -e “net.ipv4.ip_local_port_range = 1025 65535” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_retries2 = 5” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_fin_timeout = 30” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_syn_retries = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_synack_retries = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_timestamps = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_recycle = 0” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_tw_reuse = 1” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_time = 120” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_probes = 3” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_keepalive_intvl = 15” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_tw_buckets = 200000” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_orphans = 3276800” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_max_syn_backlog = 262144” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_wmem = 8192 131072 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_rmem = 32768 131072 16777216” >> /etc/sysctl.conf

echo -e “net.ipv4.tcp_mem = 94500000 915000000 927000000” >> /etc/sysctl.conf

echo -e “net.nf_conntrack_max = 25000000” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_max = 25000000” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_established = 180” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_time_wait = 1” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60” >> /etc/sysctl.conf

echo -e “net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120” >> /etc/sysctl.conf

echo -e “net.unix.max_dgram_qlen = 655360” >> /etc/sysctl.conf

echo -e “kernel.msgmnb = 655360” >> /etc/sysctl.conf

echo -e “kernel.msgmax = 655360” >> /etc/sysctl.conf

echo -e “kernel.msgmni = 20480” >> /etc/sysctl.conf

/ sbin / sysctl -p#構成をすぐに有効にする

cat / var / log / secure#システム設定が正しいかどうかを確認します。設定が正しいことを示すエラープロンプトは表示されません

エラー:

error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key

error: “net.bridge.bridge-nf-call-iptables” is an unknown key

error: “net.bridge.bridge-nf-call-arptables” is an unknown key

解決:

modprobe bridge

lsmod|grep bridge

modprobe ip_conntrack

**備考: **

CentOS5.xのモジュール名はip_conntrackです。

CentOS 6.x7.xのモジュール名はnf_conntrackです

CentOS 6.x 7.xで/etc/sysctl.confを最適化する場合、

net.ipv4.netfilter.ip_conntrack_maxこのパラメーター

net.netfilter.nf_conntrack_maxに変更します

4、システムセキュリティ設定

1、 通常のアカウントを作成する

useradd osyunwei#通常のアカウントを作成する

passwd osyunwei#プロンプトに従ってパスワードを設定します。2回入力する必要があります

2、 ルート直接ログインを無効にする

vi / etc / ssh / sshd_config #Edit

PermitRootLoginを見つけ、yesをnoに変更します

: wq!#保存して終了

3、 システムファイルをロックして、不正な削除や追加を防ぎます

chattr +ia /etc/passwd

chattr +ia /etc/shadow

chattr +ia /etc/group

chattr +ia /etc/gshadow

chattr +ia /etc/services

lsattr / etc / passwd / etc / shadow / etc / group / etc / gshadow / etc / services#ファイルの属性を表示します

注:上記の権限変更を行った後は、ユーザーを追加または削除することはできません。

ユーザーを追加または削除する場合は、最初に上記の設定をキャンセルし、ユーザーの追加と削除後に上記の操作を実行する必要があります。

chattr -ia /etc/passwd

chattr -ia /etc/shadow

chattr -ia /etc/group

chattr -ia /etc/gshadow

chattr -ia /etc/services

4、 ファイアウォールをオンにします

yum install iptables#installファイアウォールyuminstallwget最初にダウンロードツールをインストールします

#Setブートアップのchkconfigiptables

vi / etc / sysconfig / iptables#編集、次のコードを追加

Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

: INPUT ACCEPT [0:0]

: FORWARD ACCEPT [0:0]

: OUTPUT ACCEPT [0:0]

COMMIT

Iptables For OsYunWei.Com Date 2015/05/22

service iptables start#ファイアウォールを開始します

備考:-s 192.168.1.1/24は、このipセグメントのみがポート3306にアクセスできることを意味し、必要に応じて変更できます。

5、 SELINUXを閉じる

vi /etc/selinux/config

SELINUX = Enforcing #Comment out

SELINUXTYPE = target#コメントアウト

SELINUX =無効#increase

: wq!#保存して終了

setenforce 0#構成をすぐに有効にする

6、 sshのデフォルトポートを変更する

sshのデフォルトのリモート接続ポート22を222に変更します

vi /etc/ssh/sshd_config

ポート#ポート22の下にポート222を追加します

: wq!#保存して終了

vi /etc/ssh/ssh_config

ポート#ポート22の下にポート222を追加します

: wq!#保存して終了

/etc/init.d/sshd restart #sshdサービスを再起動します

vi / etc / sysconfig / iptables #Edit

ポート22を222に変更します

: wq!#保存して終了

service iptables restart#ファイアウォールを再起動して、構成を有効にします

7、 一時ディレクトリ/ tmp、/ var / tmp、/ dev / shmセキュリティ強化

7.1、 / tmpディレクトリ

7.1.1、 / tmpが独立したパーティションである場合は、/ tmpに対応するマウント属性を変更し、nosuid、noexec、nodevオプションを追加します。

vi / etc / fstab#編集および変更

LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodev 0 0

: wq!#保存して終了

パラメータの説明:

nosuid、noexec、nodev:suidプログラムなし、スクリプト実行なし、デバイスファイルなし

mount -o remount /tmp

mount -a#パーティションを再マウントします

7.1.2、 / tmpがルートディレクトリの下のディレクトリである場合、/ tmpをマウントするためのループバックファイルシステムを構築できます。

dd if=/dev/zero of=/mnt/tmpfs bs=1M count=5120

mke2fs -j /mnt/tmpfs

cp -ap /tmp /tmp.old

mount -o loop,noexec,nosuid,rw /mnt/tmpfs /tmp

chmod 1777 /tmp

mv -f /tmp.old/* /tmp/

rm -rf /tmp.old

vi / etc / fstab#編集および変更

/mnt/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

: wq!#保存して終了

mount -o remount /tmp

mount -a#パーティションを再マウントします

7.2、 / var / tmpディレクトリ

7.2.1、 / var / tmpが独立したパーティションである場合は、/ var / tmpに対応するマウント属性を変更し、nosuid、noexec、nodevオプションを追加します。

vi / etc / fstab#編集および変更

LABEL=/var/tmp /var/tmp ext3 rw,nosuid,noexec,nodev 0 0

: wq!#保存して終了

7.2.2、 / var / tmpが/ varパーティションの下のディレクトリである場合は、/ var / tmpディレクトリ内のデータを/ tmpパーティションに移動し、/ varの下の/ tmpへのソフトリンクを作成します。

cp -ap /var/tmp/* /tmp/

rm -rf /var/tmp

ln -sf /tmp /var/tmp

7.3、 / dev / shmディレクトリ

/ dev / shmのマウント属性を変更します

vi / etc / fstab#編集および変更

tmpfs /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0

: wq!#保存して終了

mount -o remount /dev/shm

mount -a#パーティションを再マウントします

5、ホスト名を変更します

ここでホスト名を設定します:www.osyunwei.com

1、 hostname“ www.osyunwei.com”#ホスト名をwww.osyunwei.comに設定します

2、

vi / etc / sysconfig / network#構成ファイルを編集するCentOS 5.x CentOS 6.x

HOSTNAME = www.osyunwei.com#localhost.localdomainをwww.osyunwei.comに変更します

: wq!#保存して終了

vi / etc / hostname#構成ファイルの編集CentOS 7.x

www.osyunwei.com#localhost.localdomainをwww.osyunwei.comに変更します

: wq!#保存して終了

3、 vi / etc / hosts#設定ファイルの編集

127.0.0.1 www.osyunwei.com localhost#localhost.localdomainをwww.osyunwei.comに変更します

: wq!#保存して終了

6.システム時間を同期します

yum install -y ntp #install ntp

ntpdate time1.aliyun.com#時間同期の実行

hwclock --systohc#システムクロックとハードウェアクロックの同期

CentOS 5.x

echo -e "0 0 * * * / sbin / ntpdate time1.aliyun.com&> / dev / null" >> / var / pool / cron / root#スケジュールされたタスクを追加します

CentOS 6.x 7.x

echo -e "0 0 * * * / usr / sbin / ntpdate time1.aliyun.com&> / dev / null" >> / var / pool / cron / root#スケジュールされたタスクを追加します

service crond restart#サービスを再起動します

セブン、基本的なソフトウェアパッケージをインストールします

yum install -y apr* autoconf automake bison cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext

gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng* libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool*

libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* libxml* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet

t1lib t1lib* nasm nasm* wget zlib-devel

**この時点で、CentOSサーバーの初期化設定は完了です。 ****

Recommended Posts

CentOSサーバー初期化設定の詳細な手順
CentOS8.1ビルドGitlabサーバーの詳細なチュートリアル
CentOS 7.3+サーバーJRE1.8 + Hadoop-2.8.0
CentOSサーバー展開(YUM)
セントス初期化スクリプト
vmwareでのCentOS7ネットワーク設定チュートリアルの詳細な説明
CentOS7.6サーバー展開VNC
CentOSでGitサーバーをセットアップするための詳細な手順
CentOS7でOpenV **サーバーを構築する
CentOS7でOpenLDAPサーバーを構築する
CentOS 7.2デプロイメールサーバー(Postfix)
グラフィカルなcentosインストールの詳細なプロセス
vmwareインストールCentOS7詳細チュートリアル
centosサーバーにvirtualboxをインストールする
CentOS7にNginxサーバーをインストールします
CentOS6.Xシステム初期化スクリプト