20210604のLinuxに関する記事は5件です。

Ubuntuで画面が白っぽいときの対処法

はじめに 業務でUbuntuを使用しており、エディタでダーク系のカラーテーマを使った際、画面表示が少し白っぽい感じがしたので、そのときの対処法をまとめます。 アドバイス等あればお気軽にコメントお願いします。誰かの役に立てば幸いです。 TL;DR Ubuntu(Linux系 OS)、HDMI接続、Intel系オンボードグラフィック環境下で、画面描画のRGB階調がデフォルトで制限されている場合がある。 下記コマンドで画面描画の制限を解除できます。 $ xrandr --output DP-2 --set "Broadcast RGB" "Full" # --outputには設定を変更したいディスプレイ出力を指定 設定の確認方法 下記コマンドで現在使用しているプライマリモニタを調べる。 $ xrandr --props | grep primary # DP-2 connected primary 3840x2160+0+0 上記例であればDP-2がプライマリモニタ。下記コマンドでディスプレイ設定を表示。 $ xrandr --props 先程確認したプライマリモニタのBroadcast RGBを確認します。 HDMI接続、Intel系オンボードグラフィック環境下で設定がAutomaticもしくはLimited 16:235になっている場合は描画が制限されています。 設定を保存する場合 システムを再起動すると設定が元に戻ってしまうので、設定を保存したい場合はホームディレクトリに.xprofileを作成します。 $ cd ~ $ touch .xprofile $ vi .xprofile ここに設定したい内容を記載すれば、再起動した場合も設定が維持されます。 また、以下のように記載することで、モニタを接続している場合のみ設定を有効にすることも可能です。 if xrandr --query | grep 'DP-2 connected'; then xrandr --output DP-2 --set "Broadcast RGB" "Full" fi # DP-2は設定したいディスプレイ出力を指定 設定は以上です。快適なUbuntuライフをお送りください。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS EC2 Linux2 アクセスログを確認してみた

/var/log/secure を確認 $ sudo cat /var/log/secure Accepted publickey 公開鍵でログインした形跡が見つかりました。自分のグローバルIPアドレスが表示されています。 Jun 4 10:40:10 ip-172-31-46-216 sshd[3312]: Accepted publickey for ec2-user from xxx.xxx.xxx.xxx port 60615 ssh2: RSA SHA256:xxxxxxxxxxxxxxxx Invalid user 登録されていないユーザー名でログインしようとしてわざと失敗してみます。アクセスログは残るのでしょうか!?残りました!! Jun 4 11:40:04 ip-172-31-46-216 sshd[32506]: Invalid user test-user from xxx.xxx.xxx.xxx port 55569 error: AuthorizedKeysCommand インスタンス起動時に指定した公開鍵とは異なる鍵でログインを試みた結果がこちら。 Jun 4 11:53:22 ip-172-31-46-216 sshd[32599]: error: AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys ec2-user SHA256:yyyyyyyyyyyyyyyyyyyyy failed, status 22 /var/log/audit/audit.log を確認 $ sudo cat /var/log/audit/audit.log type=USER_LOGIN ログイン履歴が見つかりました。こちらはhostnameもしっかり記載されています。 type=USER_LOGIN msg=audit(1622803210.258:97): pid=3312 uid=0 auid=1000 ses=2 msg='op=login id=1000 exe="/usr/sbin/sshd" hostname=xxx.yyy.net addr=xxx.xxx.xxx.xxx terminal=/dev/pts/0 res=success' 登録されていないユーザー名でログインを試みました。失敗ログが残っています。 type=USER_LOGIN msg=audit(1622807835.252:451): pid=32668 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct="ec2-user" exe="/usr/sbin/sshd" hostname=? addr=xxx.xxx.xxx.xxx terminal=ssh res=failed' type=USER_AUTH op=pubkey_authは鍵認証が成功したログが残っています。hostnameが記載されていませんが、グローバルIPが見えます。 type=USER_AUTH msg=audit(1622803210.014:85): pid=3312 uid=0 auid=4294967295 ses=4294967295 msg='op=pubkey_auth rport=60615 acct="ec2-user" exe="/usr/sbin/sshd" hostname=? addr=xxx.xxx.xxx.xxx terminal=? res=success' こちらは間違った公開鍵でログインを試みました。失敗ログがちゃんと残っています! type=USER_AUTH msg=audit(1622809194.934:525): pid=336 uid=0 auid=4294967295 ses=4294967295 msg='op=pubkey acct="ec2-user" exe="/usr/sbin/sshd" hostname=? addr=xxx.xxx.xxx.xxx terminal=ssh res=failed' コマンド last を実行 $ last 現在ログインしているユーザーが見えています。XXXXXXXにはホスト名が表示されています。 $ last ec2-user pts/1 XXXXXXX Fri Jun 4 11:22 still logged in ec2-user pts/0 XXXXXXX Fri Jun 4 10:40 still logged in -iでグローバルIPに変換できました。 $ last -i ec2-user pts/1 xxx.xxx.xxx.xxx Fri Jun 4 11:22 still logged in ec2-user pts/0 xxx.xxx.xxx.xxx Fri Jun 4 10:40 still logged in ログアウトした後に再度lastコマンドを実行してみます。 ログアウト時間が表示されています。このユーザーは7分ログインしていたことがわかりました! $ last ec2-user pts/1 XXXXXXX Fri Jun 4 11:22 - 11:29 (00:07) 以上です! 中二心をくすぐられますね!(≧▽≦) 参考記事
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

負荷テスト

負荷テストとは 初めて負荷テストに入った! 実際行う人は自分ではないが、手順を作りながら気づいたものを整理 LoadTest時は性能を確認するため、 大量のデータを入れて作ったサービスが落ちなくてうまく行くこと 将来のため、EC siteだったら、毎日平均注文が10万件の場合、bufferを入れて12万件確認する テストする数値については何等かの理由が必要 結構大量のデータを作るのは工数がかかるので 性能テストのため、異常系はなし→つまり、注文したものは全部正常で処理するデータと担保 なるべく本番と同様なスペック・環境で行う 5W1H いつ/なぜ/なにを/どのように 多すぎ忘れた?? 主にバッチ系/画面もあるが(自動化するツールまたは)/ENDPOINTテスト 本番のデータを流用(セキュリティーの問題である程度個人情報はマスキングされている状態)または、真似して作る できれば本番の確認がしたいが、大量のデータにも耐えずにサービスが動くのかを見ることなので、適当(..?)にデータを選ぶ linuxほぼ初心者向けのログ確認 # 1. system.log ex) TestServiceがあるログを抽出 grep "TestService" /path/system.log # 1-1. TestService抽出時、最初行を取得 grep "TestService" /path/system.log | awk 'NR==1' # 1-2. TestService抽出時、最終行を取得 grep "TestService" /path/system.log | awk 'END{print}' # 2. performance.log TestServiceがあるログの中で、時間帯指定 例は2021-06-04の8時から9時のログ grep "TestService" /path/system.log | grep -E '2021-06-04 0(8:|9:)' # 3. performance.log TestServiceがあるログの中で、時間帯指定して、平均処理時間抽出 # 前提条件が行の末尾に処理時間がある...? おそらく?まだawkの動きは。。。わかりません。。。 grep "TestService" /path/system.log | grep -E '2021-06-04 0(8:|9:)'| awk '{sum+=$(NF-1)} END {print sum/NR}' # 4. performance.log TestServiceがあるログの中で、時間帯指定して、一番長い実行時間の確認 # sorting and 何行あるか分からないが、30行まで出力 order by ~ descのように grep "TestService" /path/system.log| grep -E '2021-06-04 0(8:|9:)'| awk '{print $(NF-1)}' | sort -nr | head -30 #5. line count grep "TestService" -c /path/system.log grep | <- orと思うが、後ろに書いたらなんか分からないけどandになるようだった。 おそらく最初にgrouping?(sqlのように)された後にgrepされることでandになったかなと思う *<-これがANDらしいけどうまく行ってなかった
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Raspberry PiのmicroSDをwindows10環境で初期化する手順

どんな人が必要とする情報か Raspberry PiのOSを焼いて実機で使っていたmicroSDに、初期状態のOSイメージを焼き直す際、そのままではWindows10のRaspberry Pi imagerで書き込みエラーになる。 そのため、書き込み前にmicro SDを初期化要。その初期化手順を記す。 初期化手順 raspberry PiのmicroSDをWindows10 PCのどこかに挿す。 ※私のPCはSDカードスロットがあるので、microSD→SDアダプタを利用して、そのスロットに挿してます。 windows 10のコマンドプロンプトを起動する。 コマンドプロンプトから diskpart を実行する。 diskpartのコンソールで以下のコマンドを実行する。    ※以下は"ディスク 3"が初期化したいmicroSDの場合の実行例。間違えるとハードディスクが消える可能性もあるので注意。 DISKPART> list disk   ディスク      状態           サイズ   空き   ダイナ GPT   ###                                          ミック   ------------  -------------  -------  -------  ---  ---   ディスク 0    オンライン           931 GB      0 B        *   ディスク 1    オンライン           238 GB    17 MB        *   ディスク 2    オンライン          2794 GB      0 B        *   ディスク 3    オンライン            59 GB  3072 KB DISKPART> select disk 3 ディスク 3 が選択されました。 DISKPART> clean DiskPart はディスクを正常にクリーンな状態にしました。 DISKPART> list partition このディスクには表示するパーティションがありません。 この後、Raspberry Pi imagerでOS Imageを焼けるようになる。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxで特定のポートを外部に開放する方法

このドキュメントでできること 特定のポートを外部ネットワークに解放する 内部で開いているポートとは別のポート番号で外部ネットワークに開放する 緒言 WebサーバーやDBサーバーなどがインストールされたマシンに外部ネットワークからアクセスできるようにするためには、プログラムが開いているポートを外部に開放する必要があります。 ところが、通常Linuxではファイアウォールが動いており、外部ネットワークからのアクセスが遮断されています。 従って、ファイアウォールの設定を変更し、特定のポートを外部に開放する必要があります。 また、このとき、内部で開いているポートとは違うポートで外部に開放したい場合もあります。 例えば、一般ユーザー権限で動いているプログラムを1024番以下のポートで外部に開放したい場合です。 1024番以下のポートはrootでしか開けないため、一般ユーザーがこのポートを使って外部にサービスを提供することはできません。 この問題を解決する方法はいくつかありますが、一番簡単なのはポートフォワードを使うことです。 この文章では、このような2つのケースに対応した、設定方法について解説していきます。 ※なお、実行するコマンドは全てrootユーザーで実行します。 事前確認 クラウド環境の場合 最初に、クラウド環境の場合は、コンテナの設定でポートが解放されているか確認してください。 そもそもここが解放されていないと、マシン側でいくら設定してもアクセスできるようになりません。 (筆者もハマりましたwww) 例えば、Microsoft Azureの場合は以下のような画面で設定ができます。 FirewallDが動いているか FirewallDが動いていることを確認します。 もちろん、ファイアウォールを動かさなければ何のセキュリティの設定もされないので、ポートは開放されているわけですがwww # service firewalld status Redirecting to /bin/systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) Activeのところがdeadになっている場合は起動します。 # service firewalld start または # systemctl start firewalld.service なお、ポートフォワードはiptablesを使っても行えます。 この場合はFirewallDは必要ありません。 iptablesを使った方法については最後に記述しました。 内部と同じポートを解放する方法 内部ポートと外部ポートが同じ場合は、firewall-cmdを使って、特定のポートを解放するだけです # firewall-cmd --add-port 1080/tcp 設定を確認します # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: cockpit dhcpv6-client ssh ports: 1080/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: これで外部からアクセスできるようになりました。 この設定は一時的なもので、マシンをシャットダウンするとクリアされます。 設置を恒久的にするには以下のように--permanentオプションをつけてもう一度コマンドを打ちます。 # firewall-cmd --add-port=1080/tcp --permanent --permanentを指定した場合は、逆に起動中のFireWallDには反映されないんですね。もし二度打ちが面倒だったら、最初に--permanentを指定して以下のようにリロードするという方法もあります。 # firewall-cmd --reload ま、回数的に二度打ちには変わりはありませんがwww 設定を戻すには以下のように--remove-portを使います # firewall-cmd --remove-port=1080/tcp --permanent # firewall-cmd --remove-port=1080/tcp 内部とは異なるポートを解放する方法 例えば、内部で1080番ポートで開いているが、外からは80番でアクセスさせたい場合、以下のようにポートフォワードの設定をします # firewall-cmd --add-forward-port=port=80:proto=tcp:toport=1080 設定を確認します。 # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: port=80:proto=tcp:toport=1080:toaddr= source-ports: icmp-blocks: rich rules: これで、外部からアクセスできるようになりました。 先ほと同様、変更を恒久的にするには--permanentを指定してもう一度実行します # firewall-cmd --add-forward-port=port=80:proto=tcp:toport=1080 --permanent 設定を元に戻す場合は--remove-forward-portを使います # firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=1080 --permanent # firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=1080 (おまけ)iptablesで設定する方法 FirewallDを起動せずにポートフォワードを使用する場合は、iptablesを使います。 # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 1080 ただ、FirewallDを動かしたときこの設定がどうなるかよくわからないので、お勧めはしませんがw 結言 このドキュメントでは、内部のポートを外部に開放する方法について2種類説明しました 内部のポートをそのまま開放する方法 ポート番号を変えて開放する方法 Enjoy!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む