やす流 Top


Linux(CentOS)関連


Linux(CentOS)関連も覚えることが多く、すぐに忘れる。

基本的なことから、気づいたことをまとめていきたい。

更新日付 項目 内容 備考
2021/02/23 運用管理ツール
ツール 説明
ログチェック ①ログのローテーション
設定ファイル:/etc/logrotate.conf,logrotate.d

②メールのログ
[1]不正中継攻撃・・・「Relay operation rejected」
[2]ポートスキャン・・・/var/log/maillog「port scan」
③システムログ
/var/log/messages
[1]ファイアウォールの禁止・・・「FINAL_REJECT」
④プロキシのログ
/var/log/squid
⑤WWWサーバのログ
/var/log/httpd
⑤セキュリティのログ
/var/log/secure
[1]ssh2の認証許可・・・「Accept publickey for yasryu24」
バックアップ/リストア ①システム全体
[保存]xfsdump -l 0 -f /mnt/USBMemory /
[復元]xfsrestore -f /mnt/USBMemory /
(注1)ファイルシステムで定義されているマウントポイント単位で処理される。
(注2)保存時に/etc/fstab,/etc/mtab,fdiskやdfの表示内容も保存しておくと復元時に便利

②部分バックアップ
[保存]tar -cvzf etc.tar.gz /etc
[復元]tar -xvzf etc.tar.gz /etc
スケジューリング 設定ファイル:/etc/crontab.conf,anacrontab
rootのcrontabは、「crontab -e」で/var/spool/cron/rootに作成する。
ソフトウェアアップデート インターネット接続環境で、yumで行う。
その他 シェルスクリプトの活用必須
2021/02/23 現実のファイアウォール
No. 基本ルール(常に改善していく)
1 デフォはすべて無反応拒絶
2 ループバック・インタフェース経由はすべて許可
(注)ループバック・アドレス偽称を拒絶するため
3 No.1,2以外のループバックアドレス発着信はすべて無反応拒絶。従って、以降の着信は実NCI経由対象となる。
(注)ループバック・アドレス偽称を拒絶するため
4 着信が必要なサーバアプリケーションへのTCP接続確立着信を許可
(注)必要なサーバアプリへの着信は接続確立パケットとしてのみ通す。
5 双方向通信中またはそれに関するパケットはすべて許可する
(注)サーバ発信に対する応答や通信中のパケットに関するICMPやFTP着信なども通す。
6 LAN内からの着信はすべて許可
7 ICMP着信は最低限必要なもののみ許可
(注)ICMPはサーバ発信の応答と外部ルータからの速度調整要求のみ
8 DNSサーバへのUDP着信は許可
(注)必要なUDP着信の許可
9 ルータからのログ(UDP)をsyslogサーバへ着信許可
(注)必要なUDP着信の許可
10 ログはプレフィックス付きで許可あるいは拒絶
(注)許可・拒絶ルールに適宜、追加・除去が必要なログ
11 発信を許可
(注)これ以前に挿入する許可発信の最後としての拒絶
 
2021/02/11 CentOS7の起動 ①ハードウェア起動(BIOS)
②OSローダー(GRUB)
③カーネル
④systemd
┣(local-fs-pre.tartget)無サービス
┃┣(local-fs.tartget)fstabマウントやfsck
┃┣(swap.target)
┃┣(cryptsetup.target)暗号化デバイス
┃┗(sysinit.target.wants)udevd、一時ファイル、乱数、sysctl、API/VFSなど
┣(sysinit.tartget)システム初期化実行、dmraid、iscsi、lvm2、multipathd
┃┣(timers.tartget)
┃┣(paths.target)
┃┣(sockets).target)IPC/network/FIFO
┃┗(rescue.service)-(rescue.target)ベースシステム、レスキューシェル
┣(basic.tartget)microcodeサービス、設定されたマウントポイント/swapデバイス/ソケット/タイマー/バス
┃┣(display-manager.service)ディスプレイ管理
┃┣(GUIサービス)
┃┗(multi-user.target)各種システムサービス、logind
┗(graphical.tartget)GUIログイン設定、アカウントデーモン、RealtimeKitデーモン
 
2021/02/11 ファイル/ディレクトリ属性 -rwxrw-r--
①②③④⑤⑥⑦⑧⑨⑩
①ファイル種別 d:ディレクトリ -:ファイル
②③④rwx 所有者の権限
⑤⑥⑦rwx グループの権限
⑧⑨⑩rwx グループ以外の権限
 
2021/02/11 サービスの停止と再起動 CentOS6のservice及びchkconfigから、CentOS7はsystemctlに変更された。
処理内容 CentOS6 CentOS7
サービス起動 service name start systemctl start name.service
サービス停止 service name stop systemctl stop name.service
サービス再起動 service name restart systemctl restart name.service
設定を再読み込み service name reload systemctl reload name.service
サービス状態の表示 service name status
chkconfig --list name
systemctl status name.service
サービスを有効化 chkconfig name on systemctl enable name.service
サービスを無効化 chkconfig name off systemctl disable name.service
 
2021/02/11 diffの結果について diff yas1.txt yas2.txt
アルファベットを境に左右の行数が表示されている。 c:変更 a:追加 d:削除
10c10・・・10行目に相違あり
10a11,13・・・左ファイルの10行目に、右ファイルは11~13行目が追加されている。
10,20d9・・・右ファイルは、10~20行目が削除されている
 
2021/02/11
2021/02/22
DNSサーバ
(Domain Name System)
サービス名:named
confファイル:/etc/named.conf

TCP/IPネットワークでの名前解決サービス(ホスト名⇔IPアドレス)を提供するサーバアプリケーション
早い話が、/etc/hostsファイルで定義していることをサービス化したもの

ゾーンファイル(/var/named/配下)というものを事前に設定しておき、これを元に変換する。
hostsファイルが優先される。
これらは、h2n自動ツールで作成するか、手動。

サーバなので、しっかりとして動作テストは必須!
①named-checkconfツールでconfファイルを静的チェック
②nslookupツールによる動作テスト
③digツールによる動作テスト
④evalshツールによる動作テスト

【セキュリティ強化】
①DNSアクセス制限・・・ゾーン転送、再帰問い合わせ、問い合わせ、動的更新制限など
②運用によるセキュリティ対策・・・DNSの構築目的に合わせて、制限をかける。広報型とローカル型では制限の考え方が違う
③TSIGによるセキュリティ対策・・・トランザクション署名によるアクセス制限。IPアドレス制限より強固。鍵を持っている同士でないと許可しない。 confファイル:/var/named/chroot/etc/named.conf
④DNSsec・・・ゾーン自体を署名し許可する。TSIGもこの技術が使われている。

・DNSサーバダウンに備え、プライマリとセカンダリを設定する。
・リモート制御(rndc)・・・named.conf,rndc.conf,rndc.keyを引数で、リモートで安全に制御・管理が可能。
・複数のwwwサーバを分散するために複数のIPアドレスを登録可能 → 自動で振り分ける。

【ゾーンファイル例】
①正引き
          
          $TTL 86400
          yasryu24.com.  IN  SOA  web.yasry24.com.  root.yasryu24.com. (
                          1     ; Serial
                          3600  ; Refresh
                          15M   ; Retry
                          1W    ; Expire
                          1D )  ; Minimum
            
          localhost             IN A 127.0.0.1               ←A(Address)IPアドレス
          yasryu24.com.         IN NS web.yasryu24.com.      ←NS(Name Server)そのドメインのネームサーバ
          yasryu24.com.         IN MX 10 mail.yasryu24.com.  ←MX(Mail eXchange)そのドメインのメールサーバ
          yasryu24.com.         IN A 192.168.100.11
          web.yasryu24.com.     IN A 192.168.100.11
          mail.yasryu24.com.    IN A 192.168.100.11
          www.yasryu24.com.     IN CNAME web.yasryu24.com.   ←CNAME(Canonical NAME)別名
          
          (注)MXレコードの右辺に別名を使用しないこと。
        
②逆引き
          
          $TTL 86400
          yasryu24.com.  IN  SOA  web.yasry24.com. root.yasry24.com. (
                          1     ; Serial
                          3600  ; Refresh
                          15M   ; Retry
                          1W    ; Expire
                          1D )  ; Minimum
          
                          IN     NS  web.yasry24.com.
          11              IN     PTR web.yasry24.com.        ←PTR(PoinTeR)別名
          
        
 
2021/02/11
2021/02/22
送信メールサーバ
sendmail
smtpサーバ
サービス名:sendmail
設定関連ファイル:/etc/mail/sendmail/

smtpクライアントからの送信メールを相手先のsmtpサーバへ送る。
ここで相手先がローカルなら、メールボックスへ送る。
外部のsmtpサーバから受信した場合もメールボックスへ送る。
smtpプロトコルを使う。

【ネットワークサービスリストの属性変更】
①/etc/serviceのアクセス権を変更する。
【転送制限設定】
①不正中継阻止(/etc/mail/sendmail.localip)
②中継許可ドメイン(/etc/mail/sendmail.localdomain)
③中継許可受信IP(/etc/mail/sendmail.relay.to)
【spam設定】
①拒否リスト(/etc/mail/sendmail.spamlist)

【セキュリティ強化】
①送信者認証(SMTP-AUTH)
SASLプロトコルによるメール送信者を認証してメール送信許可する方法(認証したらすべてOKというメンバシップ中継で実現)
②ORBS(Open Relay Blocking System)
情報サイトのブラックリストで不正なアクセスを防止する。
[1]SpamCop:http://www.spamcop.net/ [2]Spamhaus:http://www.spamhaus.org/
FWでこれらのサイトへのアクセスを許可する必要あり。
③アンチウィルスソフト(ClamAV)
④スパムフィルタソフト(SpamAssassin)
⑤接続遅延による自動プログラムからの攻撃防止
spam/ウィルスメールは、早く多数のサーバに接続したがるという特性を逆に利用している。
【拡張機能】
①自動転送
②自動返信
 
2021/02/11 受信メールサーバ
dovecot
pop3サーバ
サービス名:dovecot
設定関連ファイル:/etc/dovecot/conf.d/10-auth.conf

メーラー(pop3クライアント)からの取得要求 → pop3サーバ
 
2021/02/11
2021/02/22
WWWサーバ
apache
httpd
サービス名:httpd
設定関連ファイル:/etc/httpd/conf/httpd.conf,/etc/httpd/conf.d/userdir.conf

クライアントから要求されたページを返信する。
【セキュリティ強化】
①アクセス制御(allow/denyによる方法、httpd.confによる方法:OSやVerを隠す。同時接続数を減らす。など)
【拡張機能】
①バーチャルホスト(実在する複数のWWWサーバを1つに見せかける。ホスト名を偽るorIPアドレスを偽る方法がある。)
②モバイル・ポータル機能(PC、スマホ、ブラウザなどから、返信するhtmlファイルを振り分ける)
③ユーザ・ホームページ
④WWWアクセス解析・・・webalizeツール。毎日自動実行され、統計を見ることができる。
⑤webメール・・・SquirrelMail+tmpwatch+php-mbstring。
 
 
2021/02/11 プロキシサーバ サービス名:squid
設定関連ファイル:/etc/squid/squid.conf

代理接続、キャッシュ、アクセスログを管理する。他のサーバに比べて、負荷が高い。
 
 
2021/02/11 sambaサーバ
smbd
サービス名:smbd
設定関連ファイル:/etc/samba/smb.conf

Windowsネットワーク(TCP/IP経由のNetBIOS)をエミュレートするもの。
UNIX/Linuxで、共有フォルダが作れ、Windowsの共有フォルダへアクセルが可能。
マウントできない時は、SMBのバージョンをチェック
 
 
2021/02/11 スーパーサーバ
xinetd
サービス名:xinetd
設定関連ファイル:/etc/xinetd.conf

サーバのためのサーバ。telnetやftp(vsftpd)
 
 
2021/02/13 sudo サーバ管理をサブ管理者で分担するためにユーザ毎に権限を制御するためのsudo
設定ファイル:/etc/sudoers
一般利用者が変更できては意味がないので、440になっている。visudoで編集する。
ユーザ毎に権限を与えれる。su無効化も可能。
sudoの操作履歴 → /var/log/secureに残る。
 
2021/02/13 SSH
SecureSHell
サービス名:sshd
設定関連ファイル:/etc/ssh/sshd_conf

クライアントとサーバ間で暗号化トンネルを、SSHのパスワード認証して実現。
rootログイン禁止、かつ利用者を限定してもいい。  
 
2021/02/13 SSL
Secure Socket Layer
セキュリティプロトコル
インターネット版:SSL/TLS
設定関連ファイル:/etc/httpd/conf.d/ssl.conf

①暗号化セキュリティ:通信両端間のセキュア接続
②相互運用性:暗号スペックの取り決め可能
③拡張性:暗号・圧縮を変更可能
④効率化:手続き、CPU負荷の低減

プロトコルは、[1]メッセージレイヤと[2]レコードレイヤの2階層構造
[1]メッセージレイヤ:ハンドシェーク、アラート、暗号スペック変更
[2]レコードレイヤ:メッセージレイヤから指示された暗号スペック等でレコード化(暗号・圧縮)する
SSLは、証明書で相手を承認する。
SSL-WEB(HTTP over TLS → HTTPS:443):Apache+SSL
SSLメール(SMTP over TLS → SMTPS:465)、(POP3 over TLS → POP3:995)
 
 
2021/02/14 SSHトンネル
ポート転送
①SSHトンネル経由のvsftpd(SSH-ftp)
デフォのFTPは、サーバからクライアントへ接続するポートが21と決まっている。
FTPのパッシブ(PASV)モードの場合は、空いている範囲内ポート番号(FW貫通)をクライアントへ指示する。
②SSHトンネル経由のVNC(SSH-vnc)
[1]sshで相手と接続する。
[2]sshポート転送設定し、トンネルを通した状態する。
[3]vncクライアントから、vnc接続をする。(vncポート:5900)
 
2021/02/23 SSHトンネル・ゲートウェイ
SSH-VPN
クライアントとサーバ間で、SSHトンネルを作り、それを他システムが利用する方法。
①ゲートウェイポートの設定と利用がすべて
②LAN内のリモートシステムからの接続を許可する → ssh_config設定のGatewayPorts=yesとする。
③ウェルノンポート(0~1023)転送も必要 → ssh_config設定のUsePrivilegedPort=yesとする。
④/etc/servicesの変更も必要
 
2021/02/14 ファイアウォール
FW
~CentOS6サービス名:iptables
設定関連ファイル:/etc/sysconfig/iptables

CentOS7~サービス名:firewalld
設定関連ファイル:/etc/firewalld(XML)

firewalldは、下表のゾーンとサービスという単位で管理していく。
ゾーン名 説明
drop 着信ネットワークパケットはすべて遮断され、返信されない。送信ネットワーク接続のみが可能。
block icmp-host-prohibited(IPv4)、icmp6-adm-prohibited(IPv6)メッセージですべての着信拒否。
public
(デフォ)
公開エリア用。
external マスカレードを特別にルーター用に有効にした外部ネットワーク上での使用向け
dmz 公開アクセスが可能であるものの、内部ネットワークへのアクセスには制限がある非武装地帯にあるPC用。選択された着信接続のみ許可。
work 作業エリア用
home ホームエリア用
internal 内部ネットワーク用
trusted すべて許可

設定は下記の2つの方法で可能。
①GUI設定(firewall-config)
②CUI設定(firewall-cmd)、起動中にも設定を変更可能。複雑な指定は、リッチルールで可能。
・firewall-cmd --list-allでFWの設定を確認できる。
・FWでブロックされたログは、/var/log/messagesで確認できる。
・FWで許可/拒否のログは、tcpdump(-i ens33)で確認できる。
 
2021/02/20 SSH2 サービス名:sshd
設定関連ファイル:/etc/ssh/sshd_conf

SSHのパスワード認証からプライベートキーと公開キーで認証する方法になったSSH2
クライアント側でプライベートキーと公開キーを生成し、OpenSSHサーバ側に送り、鍵管理ファイルにセット。
キー生成には、PuTTY、TeraTerm、WinSCPで作れる。
 
2021/02/20 IPsec
IPセキュリティ
Libreswan
サービス名:ipsecd
設定関連ファイル:/etc/ipsec.conf
認証鍵ファイル:/etc/ipsec.secrets

IPレベルで暗号化通信を行うプロトコルで、大きく下記の2つの技術で実現。
①IPパケットのヘッダ部の認証
②ペイロード部(データ部の正式名称)の暗号化
 ②-1トランスポートモード(データ部のみを暗号化)
 ②-2トンネルモード(IPパケット全体を暗号化)→ IPsec-VPNで使用される
IPsecでは、最初に必ずNSS(Network Security Services)データベースを初期化する。
【自動鍵交換】
①事前共有鍵方式(お互い同じ秘密鍵文字列をsectesファイルに記載)
②RSA公開キー認証方式(お互いコマンドで作成した公開キーを持ち寄り、双方の公開キーを設定ファイル(/etc\ipsec.d/shared.secrets)に記載)
 
2021/02/21 自動侵入検出システム
NIDS
(NetworkIntrusionDetection)
①snort
②tripwire
①snort(ポートスキャンなど)
サービス名:snortd
設定関連ファイル:/etc/snort/snort.conf
white/blackリストルールファイルは、サイトからダウンロード。
ログ解析用のSnortSnarfを利用するとログが見える化できる。

②tripwire(ファイルシステムの改ざん検出ツール)
cronで毎日レポートをメールで送信するような使い方をする。
設定関連ファイル:/etc/tripwire/twpol.txt→tw.pol(ポリシー),twcfg.txt→tw.cfg(設定)
 
2021/02/21 データベースサーバ
MySQL
サービス名:mysqld
設定関連ファイル:/etc/my.conf
 
2021/02/23 システムの仮想化 分類すると下表の通り
技術形態 説明 製品例
ハイパーバイザ型
(サーバ仮想化)
物理システム(ホスト-仮想マシンハードウェアモニタ)上で、複数の仮想マシンを稼働する Hyper-V,VMware ESXi,XEN(Citrix XenServer,Oracle VM),KVM
ホスト型
(ワークステーション仮想化)
クライアントPCのOS上で仮想マシンを稼働する
WMware Player,VirtualBox,Virtual PC(win7),Client Hyper-V
ネスト型ハイパーバイザ型
(ゲスト仮想化)
ゲストOSからさらにゲストOSを起動する → 高い物理スペック要。 KVM,Vmware ESXi/Player,Hyper-V,XEN
 
2021/02/23 ネットワークの仮想化
バーチャルクラスタリング
LVS
各種の機能を持つリアルサーバを複数グループ化して、負荷分散や高可用性を実現する技術
①LVS
稼働監視をアクティブとバックアップの2つサービスで行い、相互に調整しながら、ベストな負荷分散と可用性と信頼性を維持する。
使用する回線も複数の別種類を設けたり、NICのボンディング(チーミング)、複数のIPアドレスを分散パケット通信するルーティング、RAIDなど信頼性を上げる工夫も必要。
②netns(Linux Network Namespace)
簡単に仮想ネットワークが構築できる。
 
2019/11/10 awk(オーク) 文字列を加工、処理することが得意なコマンド。
1レコード(行)単位で パターンに該当したら {アクション}を行う。

【例1】1~100までの奇数の合計を求める
$ seq 1 100 | awk '$1%2==1 {s=s+$1;print $1,s}'
1 1
:
99 2500
※$1は1項目目。sは勝手に初期化される。

【例2】ls -l で表示されるものから、実行権限のあるものを表示する
$ls -l | awk '$1~/ x/ {print $0}'
drwxr-xr-x 1 yas yas 4096 9月 29 20:28 .
drwxr-xr-x 1 root root 4096 9月 24 21:05 ..
drwx------ 1 yas yas 4096 9月 24 22:42 .config

※$0はレコード全体(行)を示す。
シェル芸

ワンライナー

一行野郎