ネットワーク
ポート番号
サービスで利用するポートは /etc/services
に記載される。
サービス名 ポート番号 / プロトコル 別名
netstat コマンド
TCP と UDP のサービスポートの状態を表示する。 UNIX ドメインソケット状態、ルーティング情報なども表示する。
netstat [オプション]
- -a, –all: LISTEN も含めてすべてのプロトコル (TCP, UDP, UNIX ソケット) を表示
- -l, –listening: 接続待ちのソケットを表示
- -n, –numeric: ホスト、ポート、ユーザーなどを名前解決せず数字のアドレスで表示
- -p, –program: ソケット、ポートをオープンしているプログラムの PID と名前を表示
- -s, –statistics: 統計情報を表示
- -r, –route: ルーティングテーブルを表示
- -t, –tcp: TCP ソケットを表示
- -u, –udp: UDP ソケットを表示
- -x, –unix: UNIX ソケットを表示
netstat の表示項目
- Proto: 使用するプロトコル
- Recv-Q: プロセスに渡されなかったデータのバイト数
- Send-Q: リモートが受け付けなかったデータのバイト数
- Local Address: ローカルの IP アドレスとポート
- Foreign Address: リモートの IP アドレスとポート
- State: ソケット状態 (ESTABLISHED, LISTEN, CLOSE_WAIT)
ping コマンド
ping [オプション] 送信先ホスト
- -c 回数: 送信するパケット数の個数を指定
- -i 間隔: 送信間隔 (秒) を指定
traceroute コマンド
traceroute [オプション] 送信先ホスト
- -l: ICMP ECHO パケットを送信 (デフォルトは UDP)
- -f TTL 初期値: TTL の初期値 (デフォルトは 1)
lsof コマンド
アクセスしているプロセスを表示する。
lsof [オプション] [ファイル名]
- -i: オープンしているポートとプロセスを表示
- -p プロセス ID: 指定したプロセスがオープンしているファイルを表示
- -P: ポート番号をサービス名に変換せず、数字で表示
- +f フォルダ名: フォルダを指定
ifconfig コマンド
ifconfig [インターフェイス] [アドレス]
ip コマンド
インターフェイスの Up/Down
ip link set {up|down} dev インターフェイス名
IP アドレスの追加や削除
ip addr {add|del} [IP アドレス/プレフィックス] dev インターフェイス名
ネットワークインターフェイスの IP アドレスを表示
ip addr show インターフェイス名
ルーティングテーブルのエントリーの追加と削除
ip route {add|del} 宛先アドレス via ゲートウェイアドレス
ルーティングテーブルのエントリーの追加と削除
ip route add default via ゲートウェイアドレス
ip route del default
route コマンド
ルートテーブルの管理を行うコマンド。
- -n: ルートテーブルの表示
ルートエントリーの追加
route add {-net|-host} 宛先 [netmask ネットマスク] gw ゲートウェイアドレス [インターフェイス]
ルートエントリーの削除
route del {-net|-host} 宛先 [netmask ネットマスク] gw ゲートウェイアドレス [インターフェイス]
デフォルトルートエントリーの追加
route add {-net|-host} default gw ゲートウェイアドレス [インターフェイス]
ルーティングテーブルのフィールド
- Destination: 宛先ネットワークまたは宛先ホスト
- Gateway: ゲートウェイルーター、なしの場合は 0.0.0.0/0
- Genmask: 宛先ネットワークのネットマスク
- Flags: U=経路は有効、H=宛先はホスト、G=ゲートウェイを通過、!=経路を拒否
- Metric: 宛先までの距離
- Ref: 経路の参照数
- Use: 経路の参照回数
- Iface: 経路で使用するインターフェイス
IP 転送を許可する
/proc/sys/net/ipv4/ip_forward
で設定する。
- 0: 拒否
- 1: 許可
Network Manager
ネットワーク関連のモジュールを自動で管理する。
nmcli コマンド
nmcli [オプション] {general|device|connection|networking} [コマンド] [引数]
hostname コマンド
ホスト名の設定変更する。
DNS サーバー
DNS サーバーの設定ファイル
/etc/resolv.conf
- domain: ローカルドメイン名
- search: 検索ドメイン 1、検索ドメイン 2
- nameserver: DNS サーバーの IP アドレス
名前解決の設定ファイル
/etc/nsswitch.conf
- hosts files dns
hosts コマンド
hosts [オプション] [-t 問い合わせタイプ] ドメイン名 [DNS サーバー]
dig コマンド
dig [@DNS サーバー] ドメイン [問い合わせタイプ]
問い合わせタイプ
- A: Address
- NS: Name Server
- SOA: Start of Authority
- MX: Mail Exchange
メールシステム
- MTA (Mail Transfer Agent): メール配送を行うプログラム。(Exim, Postfix, Sendmail, など)
- MDA (Mail Delivery Agent): MTA が受信したメールをローカルのユーザーに配信する
- MUA (Mail User Agent): ユーザーがメール送受信のために使うプログラム
sendmail コマンド
- -bi: 別名データベースの更新
- -bp: maliq と同じ動作
newalias コマンド
エイリアスデータベースを更新する。
メールスプール
- Sendmail:
/var/spool/mail
- Exim, Postfix:
/var/mail
オープンリレー
制限なくメールを他のドメインへ転送する動作。 セキュリティの問題となるので対策をとる。
- 外部からのメールはローカルドメインのみ受け取る
- 内部ネットワークからのメールだけ他のドメインへ送る
メール転送失敗
queue_run_deny で指定した時間だけキューをチェックし、再送を続ける。 それでも失敗したらキューへ送る。
- sendmail:
/var/spool/mqueue
- Exim:
/var/spool/exim/input
- Postfix:
/etc/spool/postfix/deferred
セキュリティ
コマンド実行権限
su コマンド
別のユーザーで新たにシェルを起動する。
su [オプション] [-] ユーザー名
sudo コマンド
特定ユーザーの権限でコマンドを実行する。 省略すると root ユーザーになる。
sudo [オプション] [-u ユーザー名] コマンド
次のファイルで実行可能なユーザーとコマンドを設定する。 /etc/sudoers
- ユーザー:
ユーザー名 ホスト名=(実効ユーザー名) コマンド
- グループ:
%グループ名 ホスト名=(実効ユーザー名) コマンド
リモートからの操作
xinetd: ネットワークからのリクエストを受け付ける。 only_from オプションで特定のホストからのみ受け付ける。
TCP Wrapper
通信を許可する。
- 許可:
/etc/hosts.allow
- 拒否:
/etc/hosts.deny
SSH
.ssh/known_hosts
: サーバーのホスト名、IP アドレス、公開鍵を記録.ssh/ssh_known_hosts
: システムのすべてのユーザーが使えるホスト情報.ssh/config
: ssh コマンド実行時のユーザー名、ポート番号、プロトコル
PermitRootLogin: root ユーザーの権限で ssh アクセス許可があるか。
ssh-keygen コマンド
SSH 公開鍵を生成する。
ssh-keygen -t キータイプ
ssh-agent コマンド
複合された秘密鍵をメモリに保持する。
find コマンド
- -uid ユーザー ID: ファイルの所有者のユーザー ID を指定
- -user ユーザー名: ファイルの所有者のユーザー名またはユーザー ID を指定
- -perm パーミッション: ファオルのパーミッションを指定
find [検索ディレクトリ] [検索オプション]
GPG (GNU Privacy Guard)
gpg コマンド
~/.gnupg
配下に設定。
- -e, –encrypt: 暗号化
- -r, –recipient: 受信者アドレスを指定
- –edit-key: 鍵を管理
last コマンド
最近ログインしたユーザーのリストを表示する (/var/log/wtmp
)。 現在ログインしているユーザーを表示する (/var/log/utmp
)。
ulimit コマンド
プロセスのリソースを制限する。
- -a: 現在のすべての設定を表示
- -c: コアダンプで生成される core ファイルの最大サイズを制限する
- -n: オープンできるファイル (ファイル記述子) の最大個数を制限する
- -v: プロセスの仮想メモリの最大サイズを制限する
コメント