◆サーバの基本的な設定
・ホスト名の変更
HOSTNAME行を変更する
[root@learnin.xyz ~]# vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=learnin.xyz NTPSERVERARGS=iburst [root@learnin.xyz ~]# [root@learnin.xyz ~]#
※システムの再起動が必要
[root@learnin.xyz ~]# w 22:17:14 up 9 min, 1 user, load average: 0.00, 0.01, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.1.158 22:09 0.00s 0.15s 0.15s sshd: root [priv] [root@learnin.xyz ~]# reboot
・ネットワーク設定の変更
①IPアドレスを設定 ※IPADDR行を変更する
②デフォルトゲートウェイの設定 ※GATEWAY行を変更する
[root@learnin.xyz ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none HWADDR=00:0C:29:53:A3:3A ONBOOT=yes TYPE=Ethernet IPADDR=192.168.1.21 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 IPV6INIT=no USERCTL=no [root@learnin.xyz ~]# [root@learnin.xyz ~]#
※設定完了後は、ネットワークの再起動が必要
[root@learnin.xyz ~]# service network restart Shutting down interface eth0: Device state: 3 (disconnected) [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: Active connection state: activated [ OK ]
・SELinux設定の有効/無効 ※SELINUX行を変更する
有効=enforcing
無効=permissive
[root@learnin.xyz ~]# vi /etc/sysconfig/selinux # 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 - SELinux is fully disabled. SELINUX=permissive # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted
※システムの再起動が必要
– 一時的な変更ならば setenforce 0/1 で変更可能
– 状態確認ならば getenforce
[root@learnin.xyz ~]# setenforce 0 [root@learnin.xyz ~]# getenforce Permissive [root@learnin.xyz ~]#
・DNSサーバの設定 ※nameserver行を編集
vi /etc/resolv.conf
・言語の設定 ※LANG行を編集
[root@learnin.xyz ~]# vi /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16" [root@learnin.xyz ~]#
# 英語環境ならC, 日本語にしたかったらja_JP.UTF-8
◆サーバに求められるセキュリティ対策
・常に最新にする
yum update
※カーネルのアップデートを許容したくない場合は”exclude=kernel*
“を入れるといい。
[root@learnin.xyz ~]# vi /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release exclude=kernel* [root@learnin.xyz ~]#
・アップデートを自動化してみる
yum install yum-cron
service yum-cron start
chkconfig yum-cron on
・不要なソフトを削除する
yum remove パッケージ名
・接続の制限
vi /etc/ssh/sshd_config
#Port22 -> Port 2022
#PermitRootLogin Yes -> PermitRootLogin No
service sshd restart
・ポートの確認
[root@learnin.xyz ~]# netstat -atn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:53941 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 96 192.168.1.21:22 192.168.1.158:56726 ESTABLISHED tcp 0 0 :::111 :::* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 :::34107 :::* LISTEN [root@learnin.xyz ~]#
・不要サービスの停止
service パッケージ名 stop
・サービス自動起動の停止
chkconfig パッケージ名 off
◆サーバの情報採取
・ホスト名の確認
[root@learnin.xyz ~]# uname -n learnin.xyz [root@learnin.xyz ~]#
【補足】hostname でもOKだが、ミスタイプでhost名を書き換えてしまうリスクあり。再起動で元に戻るとはいえ、それまでの間は名前解決できず迷子になってしまうため注意。
・CPU情報の確認
[root@learnin.xyz ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz stepping : 3 microcode : 23 cpu MHz : 3491.914 cache size : 3072 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm arat xsaveopt invpcid_single fsgsbase bmi1 avx2 smep bmi2 invpcid bogomips : 6983.82 clflush size : 64 cache_alignment : 64 address sizes : 42 bits physical, 48 bits virtual power management: [root@learnin.xyz ~]#
・パーティション情報の確認
[root@learnin.xyz ~]# parted -l Model: VMware Virtual disk (scsi) Disk /dev/sda: 17.2GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 17.2GB 16.7GB primary lvm Model: Linux device-mapper (linear) (dm) Disk /dev/mapper/vg_fumihen-lv_swap: 1715MB Sector size (logical/physical): 512B/512B Partition Table: loop Number Start End Size File system Flags 1 0.00B 1715MB 1715MB linux-swap(v1) Model: Linux device-mapper (linear) (dm) Disk /dev/mapper/vg_fumihen-lv_root: 14.9GB Sector size (logical/physical): 512B/512B Partition Table: loop Number Start End Size File system Flags 1 0.00B 14.9GB 14.9GB ext4 [root@learnin.xyz ~]#
・ディスクサイズの確認
[root@learnin.xyz ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_learnin-lv_root 14G 5.7G 7.9G 42% / tmpfs 940M 72K 939M 1% /dev/shm /dev/sda1 477M 117M 335M 26% /boot [root@learnin.xyz ~]#
※オプションに -h をつけると、人間が見やすい単位で表示してくれます
・メモリサイズの確認
[root@learnin.xyz ~]# free -m total used free shared buffers cached Mem: 1878 326 1551 1 2 133 -/+ buffers/cache: 190 1687 Swap: 1635 0 1635 [root@learnin.xyz ~]#
※オプションに -m をつけると、MB単位で表示してくれます
・IPアドレスの確認
[root@learnin.xyz ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:53:A3:3A inet addr:192.168.1.21 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2404:7a80:ab00:a900:20c:29ff:fe53:a33a/64 Scope:Global inet6 addr: fe80::20c:29ff:fe53:a33a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3113 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:190845 (186.3 KiB) TX bytes:3264 (3.1 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:232 errors:0 dropped:0 overruns:0 frame:0 TX packets:232 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:20072 (19.6 KiB) TX bytes:20072 (19.6 KiB) [root@learnin.xyz ~]#
引数に、eth●を指定してあげると見やすくなります。
[root@learnin.xyz ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:53:A3:3A inet addr:192.168.1.21 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: 2404:7a80:ab00:a900:20c:29ff:fe53:a33a/64 Scope:Global inet6 addr: fe80::20c:29ff:fe53:a33a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3106 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:190425 (185.9 KiB) TX bytes:3264 (3.1 KiB) [root@learnin.xyz ~]#
※このときは、eth* の数だけ確認
# NICが複数存在する場合、起動のたびに順列が変わってしまいますので、以下のファイルも要確認。
[root@learnin.xyz ~]# cd /etc/udev/rules.d [root@learnin.xyz ~]# pwd /etc/udev/rules.d [root@learnin.xyz rules.d]# cd /etc/udev/rules.d; pwd /etc/udev/rules.d [root@learnin.xyz rules.d]# cat 70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x15ad:0x07b0 (vmxnet3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:53:a3:4e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x15ad:0x07b0 (vmxnet3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:53:a3:44", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x15ad:0x07b0 (vmxnet3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:53:a3:58", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" # PCI device 0x15ad:0x07b0 (vmxnet3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:53:a3:3a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" [root@learnin.xyz rules.d]#
・デフォルトゲートウェイの確認
[root@learnin.xyz ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 1 0 0 eth3 192.168.1.0 * 255.255.255.0 U 1 0 0 eth2 192.168.1.0 * 255.255.255.0 U 1 0 0 eth1 192.168.1.0 * 255.255.255.0 U 1 0 0 eth0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 [root@learnin.xyz ~]#
・OSバージョンの確認
[root@learnin.xyz ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@learnin.xyz ~]#
・パッケージのバージョン確認 ※rpm -q パッケージ名
[root@learnin.xyz ~]# rpm -q libcurl libcurl-7.19.7-53.el6_9.x86_64 [root@learnin.xyz ~]#
◆ログのチェック
(以下、格納先のみ示します。したがって、ログの中身を見たい場合は、cat や view 等を適宜付与してくだされ。)
・システムのメインログ
/var/log/messages
・認証ログ
/var/log/secure
・メールログ
/var/log/maillog
・cron実行ログ
/var/log/cron
・webサーバーのログ
/var/log/httpd/access_log
/var/log/httpd/server_log
◆サーバの基本的な運用
・ユーザ追加
useradd アカウント名
※ユーザ削除は userdel アカウント名、-r で HOME ディレクトリまで削除
・アカウント名のパスワード設定
passwd アカウント名
※パスワード生成コマンド pwgen
・ユーザ情報の確認
cat /etc/passwd
・コマンド履歴の表示
history
・ファイルの場所を検索
locate ファイル名
※ファイルのデータベース更新には updatedb
※事前に root にスイッチしておくこと
・ファイルの詳細検索(ディスク内のリアルタイム検索)
find 検索ディレクトリ 検索条件
・マニュアル
man コマンド名
# 簡潔に調べるならば下記もあり ※ただしコマンドによる
コマンド名 –help
・ログ移送
①かためて圧縮
tar czvf log-‘date “+%Y%m%d”‘.tar.gz 配置先ディレクトリ名
◆Apache Web サーバの設定
vi /etc/httpd/conf/httpd.conf 後に、以下のとおり conf の中身を書き換えてください
・ポートの設定
Listen 80
・LoadModule の設定
LoadModule モジュール名 格納先
・Include の設定
Include conf.d/*.conf
・ServerAdmin の設定
ServerAdmin 管理者メールアドレス
・ServerName の設定
ServerName ホスト名:ポート番号
・DocumentRoot の設定
DocumentRoot “/var/www/html”
・UserDir の設定
UserDir public_html
※非公開にするならば disabled にする
/etc/httpd/conf.d 配下の設定ファイル
ssl.conf
welcome.conf
php.conf
perl.conf
webalizer.conf
◆保守運用トラブル対応
・パスワード忘れ
①ルートになれる場合の対処
su –
passwd アカウント名
②ルートが不明な場合の対処
sudo su –
passwd
③なにをやっても(①や②の実施もNGで)どうにもならない場合の対処
起動画面でなんらかのキーを押下
a
1 を追加
Enter を押下
シングルユーザーモードで root としてログイン
passwd
shutdown -r now
・インターネットに繋がらないときの切り分け
①service network status
– 応答がおかしければ service network restart
– そうでなければ 次の項番へ
②ifconfig
– 様子がおかしければ変なら service network restart
– そうでなければ次の項番へ
③ping -c 10 8.8.8.8
– 疎通ありなら問題なし(対向先はGoogle DNS サーバです)
– 疎通なし(Destination Host Unreachable)なら次の項番へ
④iptables -L
ファイヤウォールを確認、なんならオフったり、いろいろしてください。
◆その他のヒント
・できる人風を演出するなら vi 使え
vimutor がいいよ
http://qiita.com/y-temp4/items/3032d22cb5cc6ae3117a
◆IDS…Intrusion Detection System
・侵入検知システム
-> OSSでの有名どころは Tripwire # ごめん、最近有償臭い。セキュリティ関連で幅利かせてきたね。
=> ディスクの状態のサマリを作成して差分比較を行う
※IPS…Intrusion Protection/Prevention System=侵入防御システム
◆ファイヤウォール
・iptables とか firewalld とか
◆ファイル転送
wget 対象のURL ※ダウンロードのみだったわ、これ。ちな、curl でもできるな。
scp ファイル転送元 ファイル転送先