「Linux関連」の版間の差分
(→LDAPでユーザー管理していない計算機にアカウントを追加する) |
|||
行133: | 行133: | ||
</pre> | </pre> | ||
とかやる。 | とかやる。 | ||
+ | |||
+ | =ウェブサーバー関連= | ||
+ | == 特定のIPアドレスをアクセス禁止にする == | ||
+ | Scientific Linux 6の場合。 | ||
+ | |||
+ | ターミナルでログインし、/etc/sysconfig/iptables をroot権限で開き、以下の書式でIPを追記する。 | ||
+ | <pre> | ||
+ | -A INPUT -s <IP address>/<subnet bit数> -p tcp -j REJECT | ||
+ | </pre> | ||
+ | 例えば192.0.2.xxx からのアクセスを禁止するには、192.0.2.0/24 と書く。udpアクセスを禁止する場合はtcpの代わりにudpと書く。 | ||
+ | |||
+ | 上記を編集した後、以下によりiptablesをリロードして設定を反映させる。 | ||
+ | <pre> | ||
+ | service iptables restart | ||
+ | </pre> | ||
+ | iptablesを再起動すると、ごくわずかな時間だがiptablesによるアクセス管理が無効になるようで、その間アクセスが多くなったりする。 |
2020年5月3日 (日) 04:11時点における版
目次
ファイルサーバー関連
autofsを有効化する
/netが存在しない、または/net内でファイルサーバーのディレクトリに入ろうとしてもエラーが出る場合、autofsが動いていない。
以下の作業は管理者権限で実施する。
step1: /etc/auto.masterを編集する
- root権限でエディタで/etc/auto.masterを開き、以下の行がコメントアウトされていればコメントアウトを外す。
/net -hosts
step2: autofsサービスを有効化して起動する
systemctl enable --now autofs
step3: 確認
ls /net/fs09/
work01, work02などが見えればok。fs09以外にも、研究室内でNFSエクスポートをかけてあるリモートファイルシステムはすべてアクセス可能になる。
step4: ホームディレクトリのリンクを張る
研究室計算機のアカウントはホームディレクトリを /home/people/<アカウント名> としていて、その実体は /net/fs09/homes/people/<アカウント名> にある(2020/4/28現在)ので、以下の様にシンボリックリンクを張る。
cd /home ln -s /net/fs09/homes/people .
ユーザー管理関連
LDAPでユーザー管理していない計算機にアカウントを追加する
<前提>
- LDAPサーバーに研究室アカウントを登録済みであること
- アカウントを追加したい計算機で管理者権限を使えること
- アカウントを追加したい計算機でautofsが有効になっており、LDAPアカウントのホームディレクトリにアクセス可能なこと
<想定状況>
- LDAPでユーザー管理していない計算機(rc, DL-Boxなど)において、LDAPに登録してあるユーザー所有のファイルやディレクトリに同じ権限でアクセスできるようなアカウントを作りたい。ホームディレクトリも共有したい。
- LDAPを有効化しようにも既存ユーザーとLDAPユーザー名やグループ名などがバッティングしていてLDAP有効化できない場合とか、宗教上の理由によりその計算機でLDAPを使いたくない場合など。
step1: LDAPユーザーのUIDとGIDを確認する
LDAPでユーザー管理している計算機上で、idコマンドにより確認する。
例えばユーザー名がkttnである場合、
[13:36:52 kttn@cs05 ~] > id kttn uid=12118(kttn) gid=1001(yasunaga-lab) groups=1001(yasunaga-lab),10(wheel)
※ cs06ではgid=1001はLDAP有効化以前の既存グループwcsに持っていかれているので、yasunaga-labではなくwcsと表示される。
上記より、UIDは12118, GIDは1001であると確認できる。Linuxではユーザー識別にユーザー名とグループ名は関係なくて、UIDとGIDが同じであるか否かでユーザー識別がされる。したがって、UIDとGIDが上記で確認したLDAPユーザーのそれらと同じアカウントを作りさえすれば目的は達成できる。
step2: 既存アカウントおよびグループの確認
ユーザー名 kttn, uid 12118, グループ名 yasunaga-lab, gid 1001 でアカウントを追加したいものとして説明する。
アカウントを追加したい計算機にログインし、まず同じユーザー名をもつユーザーが存在しないか調べる。
[kttn@rc ~]$ id -u kttn 1007
遺憾ながらすでにkttnという名前のアカウントを作ってしまっていて、同じアカウント名を使えないため、ユーザー名はkttn2として作ることにする。
同様にグループ名を調べる。
[kttn@rc ~]$ id -g yasunaga-lab id: yasunaga-lab: no such user
yasunaga-labという名前の既存グループは存在しないため、yasunaga-labという名前のグループを新たに作成しても良い。
次に同じUIDを持つユーザーが存在しないか調べる。
[kttn@rc ~]$ id -un 12118 id: 12118: no such user
存在しない。
同様にGID
[kttn@rc ~]$ id -gn 1001 wcs
残念ながらwcsというグループがすでにGID 1001を割り当てられている。yasunaga-labというグループは作らずに、wcsというグループでアカウントを作ることにする。
まとめると、ユーザー名 kttn2 (uid=12118), 所属グループ wcs (gid=1001) でアカウントを作成することにする。
step3: アカウント作成
管理者権限で実施。
[root@rc ~]# useradd --home-dir /home/people/kttn --gid 1001 --groups wheel --no-create-home --shell /usr/bin/bash --uid 12118 kttn2
--shellはLDAPユーザーのそれと同じにする。--shellのパスはOSによって違うかもしれないが、centos7の場合bashは/usr/bin/bashである。
--groupsは追加のグループを指定していて、centos7ではwheelを追加するとsudoコマンド使用が可能になる。
--home-dirは、LDAPユーザーで使っているホームディレクトリを指定すること!
次にパスワードの設定。
[root@rc ~]# passwd kttn2 Changing password for user kttn2. New password: Retype new password: passwd: all authentication tokens updated successfully.
LDAPユーザーのそれと同じにしとくが吉。
step4: 確認
suコマンドで追加したユーザーになってみる。
[root@rc ~]# su kttn2 [14:32:31 kttn2@rc /root] > cd [14:32:31 kttn2@rc ~] > ls ビデオ デスクトップ docker pyenv-init.sh scripts tmp 画像 ダウンロード ドキュメント Downloads R softwares web 音楽 テンプレート Desktop perl5 repos thinclient_drives 公開
問題なくホームディレクトリが見れている。あとは念のためファイル作れるかとか消せるかとかをチェックすればよい。
もちろん外側からsshするときは新たに作成したユーザー名で、
ssh kttn2@rc
とかやる。
ウェブサーバー関連
特定のIPアドレスをアクセス禁止にする
Scientific Linux 6の場合。
ターミナルでログインし、/etc/sysconfig/iptables をroot権限で開き、以下の書式でIPを追記する。
-A INPUT -s <IP address>/<subnet bit数> -p tcp -j REJECT
例えば192.0.2.xxx からのアクセスを禁止するには、192.0.2.0/24 と書く。udpアクセスを禁止する場合はtcpの代わりにudpと書く。
上記を編集した後、以下によりiptablesをリロードして設定を反映させる。
service iptables restart
iptablesを再起動すると、ごくわずかな時間だがiptablesによるアクセス管理が無効になるようで、その間アクセスが多くなったりする。