CentOS7
コマンド†
使用しているシェルが利用している言語を確認†
[root@localhost ~]# echo $LANG |
環境変数LANGを「ja_JP.utf8」に変更†
[root@localhost ~]# export LANG=ja_JP.utf8 |
ホスト名の確認†
[root@localhost ~]# less /etc/sysconfig/network |
OSのバージョン確認†
[root@localhost ~]# less /etc/redhat-release |
カーネルバージョンの確認†
[root@localhost ~]# uname -a |
CPUの確認†
[root@localhost ~]# less /proc/cpuinfo |
メモリの確認†
[root@localhost ~]# less /proc/meminfo |
内臓ハードディスクの確認†
[root@localhost ~]# fdisk -l |
RAID確認†
[root@localhost ~]# ls -al /dev/md0 |
ディスクパーティション確認†
[root@localhost ~]# less /proc/partitions |
GRUBローダのインストール先確認†
[root@localhost ~]# less /etc/grub.conf |
MBRのFilesystemのマウントポイント /boot†
[root@localhost ~]# df /boot |
タイムゾーンの確認†
[root@localhost ~]# less /etc/sysconfig/clock |
NIC(eth0)設定確認†
[root@localhost ~]# less /etc/sysconfig/network-scripts/ifcfg-eth0 |
ホスト名前解決の確認†
[root@localhost ~]# less /etc/resolv.conf |
名前解決の順序指定†
[root@localhost ~]# less /etc/nsswitch.conf |
kdump OS起動時の動作確認†
[root@localhost ~]# chkconfig kdump --list |
ntpd OS起動時の動作確認†
[root@localhost ~]# chkconfig ntpd --list |
ローカルタイムソースを確認†
[root@localhost ~]# less /etc/sysconfig/clock |
ssh†
リモートログイン
[root@localhost ~]# ssh <サーバーIPアドレス> -l <ユーザー名> -p 22 -i /home/<ユーザー名>/key_file |
- -lでユーザー名を指定する。
- -pでポート番号を指定する。
- -4でIPv4を使用する。
- -6でIPv6を使用する。
- -iで秘密鍵ファイルを指定する。
SSHファイル転送 (ローカル→リモート)
SSHファイル転送 (リモート→ローカル)
ディレクトリ毎
Slabの内訳表示†
[root@localhost ~]# slabtop --once --sort=c | head -n 12 |
sar†
sarコマンドに-vオプションを付けると「ディレクトリ・キャッシュ内の未使用キャッシュ・エントリの数」であるdentunusdが確認できる。dentunusdがnegative dentryの数になる。
[root@localhost ~]# sar -v 0 |
12:00:00 AM dentunusd file-nr inode-nr pty-nr 12:00:00 AM 8637647 768 40414 1 |
slabキャッシュ解放†
ページキャッシュの解放
[root@localhost ~]# sync; echo 1 > /proc/sys/vm/drop_caches |
slabオブジェクト(dentryとinodeを含む)の解放
[root@localhost ~]# sync; echo 2 > /proc/sys/vm/drop_caches |
slabオブジェクトとページキャッシュの解放
[root@localhost ~]# sync; echo 3 > /proc/sys/vm/drop_caches |
firewall-cmd†
[root@localhost ~]# systemctl start firewalld |
起動中の確認 | [root@localhost ~]# firewall-cmd --state |
有効サービス | [root@localhost ~]# firewall-cmd --list-all |
起動 | [root@localhost ~]# systemctl start firewalld |
停止 | [root@localhost ~]# systemctl stop firewalld |
再起動 | [root@localhost ~]# systemctl restart firewalld |
zoneの設定を確認 | [root@localhost ~]# firewall-cmd --get-active-zones |
設定を反映 | [root@localhost ~]# firewall-cmd --reload |
サービス名称の一覧 | [root@localhost ~]# firewall-cmd --get-services |
プロトコルとポート番号 | [root@localhost ~]# firewall-cmd --info-service=pop3 |
許可サービス追加 | [root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=pop3 |
許可サービス削除 | [root@localhost ~]# firewall-cmd --permanent --zone=public --remove-service=pop3 |
許可ポート追加 | [root@localhost ~]# firewall-cmd --add-port=10000/tcp --zone=public --permanent |
許可ポート削除 | [root@localhost ~]# firewall-cmd --remove-port=10000/tcp --zone=public --permanent |
–permanent は、変更を継続的に適用するためのオプションです。OS再起動後も設定内容は持続します。
–zone=public は、ゾーンとしてpublicを使う設定です。指定できるゾーンについてはdmzやexternalなど何種類かありますが、デフォルトのpublicだけでとりあえずは事足りますので、このまま決まったお約束のオプションだと思って差し支えないでしょう。最後の –add-service=pop3 で、pop3サービスが追加されます。
ゾーンについて†
初期状態で9つのゾーンが用意されています。(※自分でもゾーンを新規に作成することもできます。)
下記は初期に定義されてるゾーンの一覧です。
ゾーン | 通信許可サービス | 説明 |
block | なし 外部からの接続はすべて遮断 | 設定変更不可 遮断時は「CIMP Pohibited」を返し、内部からの通信時は戻りの通信も許可される |
dmz | ssh | dmz用に定義されたゾーン |
drop | なし 外部からの通信はすべて遮断 | 設定変更不可 内部からの通信は送信できるが、外部からの戻りの通信は遮断されるため、結果的にすべての通信が出来ない |
external | ssh | IPマスカレード有効でルータなど外部ネットワークとの接続で使用するために定義されたゾーン |
home | dhcpv6-client ipp-client mdns samba-client ssh | 自宅などで使用するために定義されたゾーン |
internal | dhcpv6-client ipp-client mdns samba-client ssh | 内部ネットワークで使用するために定義されたゾーン |
public | dhcpv6-client ssh | 公共の場所で使用するために定義されたゾーン |
trusted | すべての通信を許可 | 設定変更不可 |
work | dhcpv6-client ipp-client ssh | 職場などの業務エリアで使用するために定義されたゾーン |
プロトコルとポート番号†
サービス名 | プロトコルとポート番号 |
http | TCP 80 |
https | TCP 443 |
pop3(メール受信) | TCP 110 |
pop3s(暗号化通信によるメール受信) | TCP 995 |
imap (メール受信などの操作) | TCP 143 |
smtp(メール送信) | TCP 25 |
smtps(暗号化通信によるメール送信) | TCP 465 |
submission-port(op25b) | TCP 587 |
ssh、sftp | TCP 22 |
特定アドレスからのSSHを許可する
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.xxx" port protocol="tcp" port="22" accept" |
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="xxx.xxx.xxx.0/24" port protocol="tcp" port="22" accept" |
信頼するアドレスを追加する
[root@localhost ~]# firewall-cmd --zone=trusted --permanent --add-source=xxx.xxx.xxx.xxx/24 |
信頼するアドレスを削除する
[root@localhost ~]# firewall-cmd --zone=trusted --permanent --remove-source=xxx.xxx.xxx.xxx/24 |
特定IPアドレスからのアクセスをドロップする
[root@localhost ~]# firewall-cmd --zone=drop --permanent --add-source=181.214.206.233 |
一度拒否したIPアドレスの設定を解除する
[root@localhost ~]# firewall-cmd --zone=drop --permanent --remove-source=192.168.0.0/24 |
systemctl (systemd)†
[root@localhost ~]# systemctl start |
[root@localhost ~]# systemctl stop |
[root@localhost ~]# systemctl reload |
[root@localhost ~]# systemctl status |
[root@localhost ~]# systemctl enable |
[root@localhost ~]# systemctl disable |
現在起動しているサービスの一覧を表示 (--all を付けると全サービスがリストされる)
[root@dlp ~]# systemctl -t service |
サービスの起動設定の一覧を表示
[root@localhost ~]# systemctl list-unit-files -t service |
nmcli†
NetworkManager を参照
yum†
[root@localhost ~]# yum install | パッケージのインストール |
[root@localhost ~]# yum update | パッケージのアップデート |
[root@localhost ~]# yum remove | パッケージのアンインストール |
[root@localhost ~]# yum list installed | インストール済パッケージ |
[root@localhost ~]# yum list updates | アップデート可能なパッケージ |
[root@localhost ~]# yum list available | 利用可能なパッケージ |
[root@localhost ~]# yum list extras | 利用できないパッケージ |
[root@localhost ~]# yum search --enablerepo=remi,remi-php73 php | grep php73-php-xmlrpc | パッケージの検索 |
rpm†
[root@localhost ~]# rpm -qa | grep php |
インストールされているパッケージの確認
[root@localhost ~]# rpm -qa <パッケージ名> |
x | 1文字削除 |
dd | 1行削除(1行カット) |
yy | 1行コピー |
p | ペースト |
1G | 文頭 |
G | 文末 |
0 | 行頭 |
$ | 行末 |
/ | 前方検索 |
? | 後方検索 |
n | 次の候補 |
N | 前の候補 |
find†
[root@localhost ~]# find /etc -name php.ini |
[root@localhost ~]# find /etc -name \*.dat |
[root@localhost ~]# find ./etc/ *.dat |
今日アクセスしたファイル
[root@localhost ~]# find ./etc/ -atime 0 |
3日以内にアクセスされたファイルやディレクトリ
[root@localhost ~]# find ./etc/ -atime -3 |
ファイル容量が0の物を検索
[root@localhost ~]# find / -empty |
ファイル名に「01」が含まれるファイルのみを検索
[root@localhost ~]# find /*01* -type f |
ファイル名に「01」が含まれるディレクトリのみを検索
[root@localhost ~]# find /*01* -type d |
nc(netcat)コマンド:ポートスキャン†
[root@localhost ~]# nc -z -v ホスト名 0-1024 |
lsof†
リッスンしているサービスやポートを表示
[root@localhost ~]# lsof -i -n -P |
オプション -i でIPアドレスとバインドされているプロセスを表示できます。-n はIPアドレスの名前解決(逆引き)をしない、-P はポート番号の変換をしない、という意味です。
ssh は *:22 と表示されていますが、これは全てのNICインタフェースのIPアドレスでLISTENする、という意味です。
例えば2つのNICがあり、1つはWebサービス用IP(10.1.1.1/24)、もう1つは管理用IP(192.168.10.1/24)がアサインされていた場合、本来であれば SSH アクセスは管理用IPのみで LISTEN すればよいところを、色々なクライアントがアクセス可能な Webサービス用IP(10.1.1.1) でもSSHが許可されてしまいます。
「ss」コマンドは、ネットワーク通信で利用する「ソケット」についての情報などを出力するコマンドです ※1。従来はnetstatコマンドが使用されていましたが、現在はssコマンドへの移行が進んでいます。
[root@localhost ~]# ss [オプション] [フィルター] |
[root@localhost ~]# ss -natu |
ssの主なオプション(表示対象関係)†
短いオプション | 長いオプション | 意味 |
-fソケット | --family ソケット | 表示するソケットの種類(ファミリー)をunix、inet、inet6、link、netlinkから指定する |
-x | --unix | UNIXドメインソケットを表示(-f unix相当) |
-4 | --ipv4 | IPv4のソケットだけを表示(-f inet相当) |
-6 | --ipv6 | IPv6のソケットだけを表示(-f inet6相当) |
-0 | --packet | パケットソケットを表示(-f link相当) |
-t | --tcp | TCPソケットを表示 |
-u | --udp | UDPソケットを表示 |
-d | --dccp | DCCPソケットを表示 |
-w | --raw | RAWソケットを表示 |
-a | --all | 接続待ち状態(LISTEN)のソケットと接続待ち状態にないソケットの両方を表示する |
-l | --listening | 接続待ち状態のソケットだけを表示する |
-N | ネームスペース | --net=ネームスペース 指定したネームスペースに切り替える |
-A | クエリ | --query=クエリ, --socket=クエリ 対象をカンマ区切りで指定する(all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、unix_seqpacket、packet_raw、packet_dgramから選択) |
-F | ファイル名 | --filter=ファイル名 フィルターの指定をファイルから読み込む |
ssの主なオプション(表示内容関係)†
短いオプション | 長いオプション | 意味 |
-n | --numeric | サービス名の名前解決を行わない(ポート番号を表示) |
-r | --resolve | 名前解決を行う |
-e | --extended | 詳細情報を表示 |
-o | --options | タイマー情報も表示する |
-m | --memory | 各ソケットのメモリの使用量も表示する |
-p | --processes | ソケットを使用しているプロセスも表示する |
-Z | --context | -pオプションに加えてセキュリティコンテキストも表示(SELinux) |
-z | --contexts | -Zオプションに加えてソケットコンテキストも表示(SELinux) |
-i | --info | 内部TCPの情報も表示する |
-s | --summary | ソケットの種類ごとに本数を表示する |
-D | ファイル名 | --diag=ファイル名 RAW情報をファイルに出力する(画面には何も出力しない) |
sudo†
ユーザーをwheelグループに追加†
[root@localhost ~]# usermod -G wheel <username> |
visudoで/etc/sudoersを開き、下記の行のコメントアウトを外す。†
[root@localhost ~]# visudo |
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL |
sudoの実行をパスワードなしで許可する場合は、下記のほうのコメントアウトを外す。†
[root@localhost ~]# visudo |
## Allows people in group wheel to run all commands %wheel ALL=(ALL) NOPASSWD:ALL |
特定のユーザーのみsudoを許可する†
[root@localhost ~]# visudo |
<username> ALL=(ALL) NOPASSWD: ALL |
route†
ルーティングテーブルの内容を表示する†
[root@localhost ~]# route ←IPv4のルーティングテーブルを表示 |
[root@localhost ~]# route -6 ←IPv6のルーティングテーブルを表示 |
経路を追加する†
[root@localhost ~]# route add -net 192.168.1.0/24 gw 192.168.2.1 eth0 ←インタフェースを指定して経路を追加する |
[root@localhost ~]# route add -net 192.168.1.0/24 gw 192.168.2.1 ←経路を追加する |
経路を削除する†
[root@localhost ~]# route del -net 192.168.1.0/24 gw 192.168.2.1 eth0 ←インタフェースを指定して経路を削除する |
[root@localhost ~]# route del -net 192.168.1.0/24 gw 192.168.2.1 ←経路を削除する |
拒否経路を追加する†
[root@localhost ~]# route add -net 192.168.1.0/24 gw 192.168.2.1 eth0 reject ←インタフェースを指定して拒否経路を追加する |
[root@localhost ~]# route add -net 192.168.1.0/24 gw 192.168.2.1 reject ←拒否経路を追加する |
拒否経路を削除する†
[root@localhost ~]# route del -net 192.168.1.0/24 gw 192.168.2.1 eth0 reject ←インタフェースを指定して拒否経路を削除する |
[root@localhost ~]# route del -net 192.168.1.0/24 gw 192.168.2.1 reject ←拒否経路を削除する |