CentOS7

コマンド

ssh

リモートログイン

[root@localhost ~]# ssh <サーバーIPアドレス> -l <ユーザー名> -p 22 -i /home/<ユーザー名>/key_file

SSHファイル転送 (ローカル→リモート)

[root@localhost ~]# scp -P 22 index.html username@xxx.xxx.xxx.xxx:/home/username/

SSHファイル転送 (リモート→ローカル)

[root@localhost ~]# scp -P 22 username@xxx.xxx.xxx.xxx:/home/username/index.html .

ディレクトリ毎

[root@localhost ~]# scp -P 22 -rq htdocs/ username@xxx.xxx.xxx.xxx:/home/username/

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」を返し、内部からの通信時は戻りの通信も許可される
dmzsshdmz用に定義されたゾーン
dropなし 外部からの通信はすべて遮断設定変更不可
内部からの通信は送信できるが、外部からの戻りの通信は遮断されるため、結果的にすべての通信が出来ない
externalsshIPマスカレード有効でルータなど外部ネットワークとの接続で使用するために定義されたゾーン
homedhcpv6-client
ipp-client
mdns
samba-client
ssh
自宅などで使用するために定義されたゾーン
internaldhcpv6-client
ipp-client
mdns
samba-client
ssh
内部ネットワークで使用するために定義されたゾーン
publicdhcpv6-client
ssh
公共の場所で使用するために定義されたゾーン
trustedすべての通信を許可設定変更不可
workdhcpv6-client
ipp-client
ssh
職場などの業務エリアで使用するために定義されたゾーン

プロトコルとポート番号

サービス名プロトコルとポート番号
httpTCP 80
httpsTCP 443
pop3(メール受信)TCP 110
pop3s(暗号化通信によるメール受信)TCP 995
imap (メール受信などの操作)TCP 143
smtp(メール送信)TCP 25
smtps(暗号化通信によるメール送信)TCP 465
submission-port(op25b)TCP 587
ssh、sftpTCP 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 <パッケージ名>

vi

x1文字削除
dd1行削除(1行カット)
yy1行コピー
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

「ss」コマンドは、ネットワーク通信で利用する「ソケット」についての情報などを出力するコマンドです ※1。従来はnetstatコマンドが使用されていましたが、現在はssコマンドへの移行が進んでいます。

[root@localhost ~]# ss [オプション] [フィルター]
[root@localhost ~]# ss -natu

ssの主なオプション(表示対象関係)

短いオプション長いオプション意味
-fソケット--family ソケット表示するソケットの種類(ファミリー)をunix、inet、inet6、link、netlinkから指定する
-x--unixUNIXドメインソケットを表示(-f unix相当)
-4--ipv4IPv4のソケットだけを表示(-f inet相当)
-6--ipv6IPv6のソケットだけを表示(-f inet6相当)
-0--packetパケットソケットを表示(-f link相当)
-t--tcpTCPソケットを表示
-u--udpUDPソケットを表示
-d--dccpDCCPソケットを表示
-w--rawRAWソケットを表示
-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 ←拒否経路を削除する

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS