カテゴリ:13.実際にやってみる > 13.3 Linux

■Kali linux ダウンロード
https://www.kali.org/downloads/

VMへインストール
VM workstation plyaerをダウンロード
・あとでOSをインストールする
インストールする際、Linuxバージョンは「Debian」系である。version は不明
・HD 30G、メモリ1Gで設定
VMwareツールをインストール
★CTL+ALTで仮想と実環境の切り替え
デフォルトのパスワードはtoor

■起動後
イメージを更新するには
apt-get update
apt-get dist-upgrade

■1.インストール
 yum -y install httpd
ただ、Linuxをインストールすると、デオフォルトでWebサーバが起動していることが多いだろう。入れ方にもよるが。
念のため、再起動してみる。(CentOS6)
$service httpd restart

となりのPCから見てみよう。
http://WebサーバのIPアドレス

もしかすると、見えないかもしれない。
原因は、SELinuxが有効になっているのと、サーバのFirewallなどの設定などが入っているからだろう。($system-config-firewallで設定を解除すればいいだろう)

Firewallを開けるには、以下。
・httpを許可する
firewall-cmd --add-service=http --zone=public --permanent      
 ※--permanent によって、永続的にHTTPを開ける
・再起動
firewall-cmd --reload  
・確認
iptables -L -n | grep 80

■コンテンツ
コンテンツは/var/www/htmlに入れる

■httpsにする場合
設定ファイルは以下
/etc/httpd/conf.d/ssl.conf  

■Webサーバのログ
/var/log/httpd/access_logに保存されている。
ログとしてはこんな感じ。
192.168.1.3 - - [08/Sep/2018:23:36:16 +0900] "GET /  HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Windows NT 6.3;・・・
先頭がアクセス元のIPアドレス
 
■その他
・バージョンの確認
httpd -version
または、
rpm -qa | grep httpd でもいいだろう。

MTAとしてはPostfixMUAとしてはdovecotなのは、長年変わらない。(※dovecotがメールボックスを持っているわけではなく、dovecotはユーザからのメール取得要求を受け付けるサービス)

どんな本でもいいので、一冊購入するといいですよ。
私は 秀和システム「はじめてのFedoraCore5」を買いました。
以下の内容は上記の本を参照してます。

1.sendmailの停止
service sendmail stop

2.Postfixのインストール
rpmpostfixをインストール

3.Postfix環境へスイッチ
alternatives --config mta
ここで、postfixを選択する。

4.main.cfの設定
vi /etc/postfix/main.cf
myhostname = ns1.network-exam.com 
mydomain = network-exam.com
inet_interfaces = all   ←利用するNIC
mydestination = $myhostname, localhost.$mydomain, $mydomain ←受信するドメインとホスト
mynetworks = 192.168.1.0/24, 127.0.0.0/8

postfixの設定で、メールボックスはMaildir方式が最近の主流で、メールが1通1ファイルになっている
home_mailbox = Maildir/ 

POP3サーバの設定
dovecotを利用します。

◆文字列を探す。
192.168.1.10という文字列を/etcディレクトリの中から探す場合。

grep "192.168.1.10" /etc/*

※大文字と小文字を区別する場合は-iオプション
※サブディレクトリ以下も探す場合は -rオプション(recersive再帰的?)

◆フリーのLinux
CentOS

◆php インストール
 
1.yumを使ってapacheのモジュールを追加する
# yum install php-mbstring
2.Apacheを再起動する
# /etc/init.d/httpd restart
3.PHPの設定ファイル /etc/php.iniを設定する。(デフォルトでもよい)
4.phpファイルを/var/www/html/aaa.php配置する。
5.http://192.168.1.100/aaa.phpにて見ることができる。

◆コピー
cp -pでアクセス権などを保持したままコピーする。pはpermanentだと思う。このオプションをつけないと、もともとのアクセス権とコピー先のアクセス権の積が新しいアクセス権である。
cp -r (recursive) ディレクトリごとコピーする。ちなみにmvには-rオプションは存在しない。
 (例) cp -r dirA dirB dirAをdirBという名でコピー

◆移動
mvを使う
ディレクトリでも使える。cpと違って-rオプションは不要
-f 移動先にファイルがあっても上書きする場合は-fオプションをつける。
-i 上書きする場合に警告を出す。


◆削除
rm -f 強制削除 (消しますか?と聞かれない)
rm -rf とすると、フォルダ配下のファイルごと消す

◆LinuxでもRDPを使う。
Linuxの場合は、rdesktop(http://www.rdesktop.org/)というプログラムを使えば、制限はあるものの、Windows XP Professionalのリモートデスクトップ機能にアクセスできる。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/431usexprd.html

◆ファイル比較
diff /etc/a.txt  /etc/b.txt とすることで、a.txtとb.txtの2つのファイルを比較することができる。

◆locate
ファイルの場所を検索できる。(結構使える)

◆ファイル(ディレクトリ)の検索
例えば、カレントディレクトリから pgsqlというファイルやディレクトリを探す。
find -name pgsql
※全ファイルを検索したいのであれば、cdでルート(/)に移動する必要がある。
※ファイル名には*も使える

■言語の状態を確認する
/etc/sysconfig/i18n

LANG= で設定されている言語がわかる

ズや利用率などがわかる。kはキロバイト表示の意味。dfはファイルシステム単位での表示で、duはファイルやディレクトリ単位での表示。
du -s sはsummuryで、合計値を出す。ユーザのホームディレクトリの使用量合計を見る場合などに便利である。
df -hとすると、単位が見やすくなる。
hはhumanのhだと思う。人間が見やすい状態になる。
たとえば 40313964→40G

■ルーティング
・netstat -r ルーティングに関する情報を表示
・スタティックルートの追加
route add -net 10.1.1.0 netmask 255.255.255.0 gw 192.168.1.254 (eth0)
※最後のインターフェース(eth0など)は省略可能。

表示
-a すべての接続を表示
-l Listeningの接続を表示
-s Summery(統計)が表示される。ICMPなどのプロトコルごとに集約される。

◆基礎情報
init=initialize(初期化)
rc.dなどのように、dがついているものは、ディレクトリであることを明示的に示している。

rc=run command

inittab=(initialize table)
/etc/inittabにおいて、デフォルトのランレベルを設定する。

◆起動スクリプトと実行ファイル
(1)起動スクリプト
/etc/rc.d/init.d/sshd
たとえば,start コマンドがわたされた場合にはどうるするか
が記載されている

(2)実行ファイル
/usr/sbin/sshd
バイナリファイルとして存在する.

◆コマンドライン
| パイプ コマンドを続けて実行
> リダイレクト 結果をファイルへ出力
; コマンドを続けて実行
& バックグラウンドで実行
&& コマンドの結果がYesなら次のコマンドを実行 逆が ||

■LinuxにおけるPrintScreen
X window dumpという。コマンドは、頭文字をとってxwd

 xwd -frame out ファイル名 
 
frameオプションは、フレームも含めてキャプチャする。

■crontab
0,7は日曜日 1が月

-e 編集(edit)
-r remove
-l list

■tcpdump
tcpdump src host 192.168.1.10 and port 80
送信元が192.168.1.10の80ポートへの通信をキャプチャする。

◆画面切り替え
Ctrl + Alt + F1~F7によって、コンソール画面を切り替えることが可能になる。これによりXwindowのようなマルチウィンドウ操作が可能である。

■ブラウザの起動
firefox & でブラウザを起動
&をつけておくと、ターミナルで操作を続けることができる

■パス
コマンドが通らない場合
whichで探すといい

# which iptables
/sbin/httpd

■サービスの自動起動
chkconfigを使っていて、一部は使えるが、CentOS7からはsystemctl に変わっている。

・サービスの自動起動の状況を見る
systemctl list-unit-files

・サービスのON/OFFは、従来のchkconfigでも可能

最初は、以下を入れたら80番で受け付けたのに、受け付けなくなった・・・・
# iptables -I INPUT 3 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

■CentOSのバージョン確認方法
cat /etc/redhat-release
※uname -rだと、よくわからない。

■プロキシサーバ(Squid)の設定
(1)基本設定
#yum install squid  →インストール
#service squid start   →サービスの起動

(2)設定ファイルの設定
①設定ファイル
#vi /etc/squid/squid.conf 

②設定内容
・ポート
http_port 3128 のポートを任意に設定(たとえば8080)

・ホスト名を設定しないとエラーがでるときがある
WARNING: Could not determine this machines public hostname ・・・と怒られるので、以下のように、適当に名前を付けましょう。

visible_hostname proxy_server

・許可するサービス(というか、接続先)
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

(3)Squidのログを見てみましょう。
日時、送信元IPアドレス、接続先URLなどが表示される。
ただし、HTTPSの場合はCONNECTメソッドになり、FQDNまで

m/images/cleardot.gif - DIRECT/216.58.196.238 image/gif
1557126956.478     47 192.168.0.8 TCP_MISS/200 10436 GET http://sc.seeeko.com/ - DIRECT/203.104.130.159 text/html
1557126956.874     30 192.168.0.8 TCP_MISS/200 300 GET http://counter2.blog.livedoor.com/c? - DIRECT/125.6.146.22 image/gif

1557126913.361    383 192.168.0.8 TCP_MISS/200 9887 CONNECT direct.bk.mufg.jp:443 - DIRECT/104.87.68.15 -

(4)認証プロキシ
Linuxでやったらうまくいかなかった。時間があまりなかったので、Windowsでやってしまった。そのときのメモ

http://squid.diladele.com/
squid.msiをダウンロード。インストールは、入れるだけ
Squid Server Trayのアイコンかショートカットができるので、これでサービスを起動(設定を変えたらここで停止・起動も必要だと思う。)
設定ファイルは以下
C:\Squid\etc\squid\squid.conf
いろいろとやってみたが、いつもはまった。でも、以下のサイトの通りにやったら成功した。
https://blogs.yahoo.co.jp/dk521123/37224453.html
ログはこちら
C:\Squid\var\log\squid

ユーザ認証をすると、以下のようにユーザ名のログが表示されます。
1558229766.648     71 192.168.0.7 TCP_MISS/200 10573 GET http://nw.seeeko.com/ user1 HIER_DIRECT/203.104.130.159 text/html
1558229766.881     35 192.168.0.7 TCP_MISS/200 3051 GET http://nw.seeeko.com/site.css? user1 HIER_DIRECT/203.104.130.159 text/css

◆chmod パーミッションの変更
・ drwxr-xr-x
最初がディレクトリを表すd
次の3つは所有者のパーミッション
次の3つはグループのパーミッション
最後の3つはOther(その他)のパーミッション
・-R オプション recursive(再帰的)の意味で、ディレクトリ配下のファイルやディレクトリもすべてパーミッションを変更する。
・デフォルトのパーミッションは、ファイルの場合が666 - umaskで、ディレクトリは777 - umask。つまり、ファイルの場合は実行権限が付与されない。例えば、umaskが002であったら、ファイルを作ると664のアクセス権になる。
・umask と入力すると、デフォルトのumask値が表示される。
◆suidとsgid
suidがセットされると、一般ユーザが実行してもrootが実行したことになる。

/etc/passwdファイルはrootにしか実行件が無い。しかし、一般ユーザでもパスワードを変更できる。これは、/usr/bin/passwdにsuidが設定されているから。※/etc/passwdは設定ファイルで、/usr/bin/passwdは実行ファイル。
chmod u+s ファイル名 ※u+sのところを4755のように頭を4にしても同じ。
このように、+sをつけることで、suidを設定できる。

TCP Wrapper
/etc/hosts.allowと/etc/hosts.denyファイルでアクセス制御をする。
/etc/hosts.allowが優先なので、/etc/hosts.allowに許可するユーザを書き、/etc/hosts.denyには全拒否の設定を入れる(ALL:ALL)。

Linuxでのファイアウォール設定
lokkitで簡単に設定できる。
設定後は、サービスを再起動した方が良かったかも。

⇒lokkitを愛用していたが、CentOS6ではコマンドが異なる
$system-config-firewall

が、centos7では入っていない ⇒firewall-config

service iptables restart
複雑な設定はiptables
 
※centos7に入っているfirewalldは使えない(使えるけどイマイチ)iptable を操作するしかない。


iptables
CentOS7からは、iptablesではなくfirewalldに移行。とはいえ、管理IFとしてのfirewalldで裏ではiptables
だから、iptables でもいいだろう

・設定を確認
# iptables -nL
※n(number)はポート番号で表示。例、22 nが無いとsshと表示

# iptables -nL --line-numbers
こうすると、FWのルールの番号も付与される。ルール番号は大事なので。

■firewalld
現状を確認するのは以下

firewall-cmd --list-services --zone=public --permanent
※zoneはpublicとする

http ssh ←こんな感じで、許可されているのが表示される


SELinuxを無効にする
/etc/sysconfig/selinuxファイルの「SELINUX=…」となっている行を,
SELinux=disabled」とする。

SELinux 状態を確認するには
$ getenforce
Enforcing ←有効になっている

変更するには、/etc/selinux/config

disabled (無効)
permissive(有効ではないが、警告が出る)

再起動して有効になる。一時的なものであれば、setenforce Permissiveとコマンドを打てばいい

↑このページのトップヘ