君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

linux

イスラーム過激派のハッカーが知人のサーバをハッキング。マルウェアが6000個検出された話

いきさつ 知人のサイト(WordPress)が見れなくなったということで、 とりあえずsshでログインしてみた。 とりあえず調査 探し方としてはかなり荒っぽいけど、とりあえず phpファイルのうち、evalを含むファイルを検索した。 find . -type f -name "*.php" |…

ファイルのタイムスタンプを保持したまま、scpコマンドで転送する

いきさつ サーバからファイルをダウンロードした後、 日付情報を用いてファイル処理をする必要があった。 コマンド scpコマンドにpオプションを付けるだけ。 scp -rp remote_host:remote_dir local_dir ちなみに ファイル転送時に新しく作られるディレクトリ…

sedコマンドを使って、特定の文字列以降を削除〜ソースコードのコメントを削除したかったの〜

いきさつ sample.txtの内容は以下。 $aa = 'hoge'; // コメントだよ $bb = 'fuga'; // コメントだよ このファイルから、コメントだけ削除したい。 つまり、//以降だけ削除したい。 結論 sed -i '.bak' -e 's/\/\/.*//' sample.txt 解説 iオプション これがな…

カレントディレクトリ以下にファイルがいくつあるか、再帰的に探索して確かめる

結論 ls -lR | grep '^-' | wc -l 解説 ls -lR lオプション…ファイルの情報を表示する Rオプション…ディレクトリ内のファイルも表示する grep '^-' 先頭に「-」が含まれている行を表示。 wc -l 行数をカウントする。 なおオプションを変えると、 バイト数、…

scpでリモートサーバからローカルにファイルを落とす&ローカルからリモートに転送する

↑ test-serverにあるfilesディレクトリの中身を、localに落としてきているところ。 scpコマンドについて ファイルを送信したり、受信したりすることができる。 ファイル送受信時に使用するプロトコルはsshプロトコルなので安全。 また、使用帯域なども絞れる…

bashで特定の文字列を含むファイルの名前を、一括置換する

bashである文字列を含むファイルについて、一括置換したかった カレントディレクトリにあるファイルのうち、 無題を含むものをmudaiに変える、みたいなことがしたかった。 結論 解説 まず、以下のようにファイルを準備します。 $ touch hogeA hogeB fugaC こ…

sshのセキュリティ設定で、なぜポートを22から変えるとよいのか〜サーバとポートと/etc/ssh/sshd_configと〜

サーバのsshdプロセスに対して、1日900回以上の不正アクセスがあった 詳しくはこの記事。 karoten512.hatenablog.com 対応方法の一つ /etc/ssh/sshd_configを編集し、 sshdがlistenしているポートを22→10022に変える。 そもそもポートとは サーバでは、いろ…

user「PPAP」からの不正アクセスを検出しました〜sshdのログ(/var/log/secure)から不正ユーザの名前を取り出し、セキュアじゃないユーザ名について考えてみた〜

存在しないユーザからのアクセスがあった Failed password for invalid user *** from ... これは、 「linux上で登録されていないユーザ *** からのアクセスがありました」 ということ。 今回、攻撃者がどんな名前を用いてアクセスしてくるのか 探ってみる。…

僕が借りているサーバが、世界各国から「1日900回」不正アクセスされている話〜/var/log/secureからみえる攻撃者の影〜

私用で使っているサーバの/var/log/secureをみてみた 見に覚えのないアクセスが大量にある。。。 しかもuserはrootだったりadminだったり。。。 これ、不正アクセスってやつか? 1日どれくらい不正アクセスを試みられているのか 2/4の不正アクセス回数を、…

puttyからsshでログインしようとした時に、Disconnected: No supported authentication methods availableと言われてしまった

puttyを使ってsshでパスワード認証を使ってログインしようとした こんなエラーが表示されました。 Disconnected: No supported authentication methods available とりあえずサーバに入り、/etc/ssh/sshd_configをみてみる いろいろな原因が考えられるが、と…

本番環境にテストデータを入れてしまったときは、deleteではなくtruncateでテーブルからレコードを一掃しよう〜deleteとtruncateの違い〜

いきさつ 社内で使用するシステムの開発が一旦落ち着いたので、 本番環境構築することになった。 といってもすでにテスト環境を構築しているので、 慣れたものである。 種々のインスタンスを立ち上げ、ansible用のユーザを作成し、 playbookの諸々の設定位置…

シェルで文字列を比較したときに、[: =: unary operator expected :というエラーがでる

いきさつ 空行を検出するスクリプトを書いていた 古池や 蛙飛び込む 水の音 をシェルに読み込ませ、空行があったときに 「空行があるよ」というスクリプトを書いた。 ※ 実際の処理を簡略化してます #!/bin/bash while read line do if [ $line = '' ]; then …

1つのファイルを複数のディレクトリにコピーしたい〜UNIXコマンド:xargsとcpについて〜

1つのファイルを複数のディレクトリにコピーしたい dir1, dir2, dir3にfileをコピーしてばらまきたい。 結論 echo dir1 dir2 dir3 | xargs -n 1 cp -v file 読み解いてみる xargs とは 標準出力をコマンドライン引数に変えるコマンド。 今回の例で言えば、e…

社長の家ですき焼きしたら、破壊神シヴァが現れた話。

いきさつ 今年の冬、linuxの資格であるLPICのレベル1を取得した。 資格のレベル自体は大したことないのだけれど、 社長「お祝い何がいい?報酬とは別に、どこかお店つれってったげる」 社長「みんなで高いお店行こー!」 私「それなら」 私「すき焼きやりま…

apt-get updateは何を行っているのか調べてみた〜パッケージインデックスファイルとは何か〜

結論 $ apt-get update は、パッケージリストの更新を行う。 具体的に言うと、 /etc/apt/sources.list にかかれているURLから、 パッケージインデックスファイルを引っ張ってきて、 $ cd /var/lib/apt/lists に格納している。 いきさつ 1. Dockerで構築したu…

【ホワイトハッカー入門】サーバの開いているポートとサービスをnmapで特定する。ついでにOS情報も拾ってくる

ホワイトハッカーとは ハッキングの手法を熟知し、それを防御のために使ういいハッカー。 対義語はブラックハットハッカーとかクラッカーとか言われる。 ハッカーの攻撃手法 ハッカーの攻撃手法は、だいたい以下の用な手順になる。 偵察 スキャニング アクセ…

Dockerで動かしているubuntuにて、apt-getが動かない

以下の手順でDockerでubuntuを動かした イメージ取得&コンテナ起動 $ docker pull ubuntu $ docker run -d -ti --name ubuntu ubuntu /bin/bash コンテナにはいる(bashプロセスの立ち上げ) docker exec -ti ubuntu /bin/bash apt-getが動かない。。。 $ a…

【メモ】linuxのアーキテクチャを確認する方法

linuxのアーキテクチャを確認する方法 dockerで走らせているubuntuのアーキテクチャがわかんなくなったので、 確認したい。 方法1:unameコマンド $ uname -m x86_64 方法2:環境変数で確認 $ getconf LONG_BIT 64 まとめ 64bitということがわかった。

ババァ!ノックしろよッ!ってならないためのlinuxパーミッション入門

思春期あるある 思春期を超えたことがあるみなさんなら 共感していただけると思うのですが、 突然親が部屋に来訪してくるとビビりますよね。 やましいことがあってもなくてもビビりますよね。 今回は、 linuxなら、 親が勝手に部屋に入ってこれなくなるので…

もうPermission deniedなんて怖くない!〜linuxのパーミッションについてかなり丁寧に説明してみる〜

開発中よく目にするエラー Permission denied. 環境構築中、よくこのエラー見ますよね。 よく見る割に「とりあえずsudoで無理やり対応」という雑な対応が多い気がしたので、 まずはパーミッションについて整理してみようと思いました。 前提 そもそも、linux…

rpmコマンドの使い方を整理してみる(LPIC対策)〜yumとの違いも比較してみた〜

rpmとは パッケージ管理システム。 パッケージとは、すごくざっくりいうとwindowsでいう「ソフトウェア」にあたる。 rpmはそれを管理するシステムなので、 linuxに何かパッケージをinstallしたり、 uninstallしたりするときに使用する。 rpmを使用してみる -…

lddコマンドでプログラムが参照している共有ライブラリ一覧を取得する(LPIC対策)〜依存関係とは何か〜

共有ライブラリとは 共有ライブラリとは、 「いろんなプログラムから使えるプログラムの部品」 実際に共有ライブラリをみてみる たとえばvimが使用している共有ライブラリ。 $ ldd /usr/local/bin/vim linux-vdso.so.1 => (0x00007ffcae5e8000) libm.so.6 =>…