CentOS7
コマンド†
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 restart dbus |
[root@localhost ~]# systemctl restart 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 |
設定を確認 | [root@localhost ~]# firewall-cmd --list-all |
設定を反映 | [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サービスが追加されます。
サービス名 | プロトコルとポート番号 |
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" |
特定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†
[root@localhost ~]# usermod -G wheel username |
[root@localhost ~]# visudo |
## Allows people in group wheel to run all commands
[root@localhost ~]# %wheel ALL=(ALL) ALL
↓
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL