この記事は初心者が書いた自分用のメモです。
見づらいですし、他の方の記事を参考にされた方が良いと思います。
申し訳ございません。
selinuxの無効化:$ getenforce selinuxの状態を確認
$ vi /etc/selinux/config
SELINUX=disabled
$ reboot
ユーザーの作成:useradd, passwd
sudoコマンドを使えるようにする:$ visudo , sudoersファイルの最終行にguest1 ALL=NOPASSWD:ALLと追加するとguest1がsudoを使えるようになる
ifcfg-enp0s3ファイルを編集と追記:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
BOOTPROTO=none
ONBOOT=yes
追記 IPADDR=“...”
NETMASK=“...”
GATEWAY=“...”
DNS1=“GATEWAYと同じことが多い”
完了後、systemctl restart network.service からのip addr showでipアドレスが反映されているか確認
ホストネーム変更:$ sudo hostnamectl set-hostname
hostsファイルを変更してホスト名とIPアドレスの対応を設定する:vi /etc/hosts IPAdress 名前
DNSの設定:$ vi /etc/resolv.conf 名前 IPAdress (最初から設定されている)
名前解決の設定:$ vi /etc/nsswitch.conf hosts: files dns (最初から設定されている)
pingの確認:この段階でpingが他のノードと繋がらなければvirtualboxのネットワークの名前を確認する
sshをを設定する:vi /etc/ssh/sshd_config
#Port 22 (確認)
#Protocol 2 (確認)
PermitRootLogin no
PermitEmptyPasswords no 空パスワードを禁止するため#を外す
PasswordAuthentication yes (確認)
AllowUsers guest1 一番下に追記
$ systemctl restart sshd.service
SSHのセキュリティ設定:$ vi /etc/hosts.deny sshd:all
$ vi /etc/hosts.allow sshd:192.168.1.3
PAMでのアクセス制限:$ vi /etc/pam.d/sshd account required pam_access.soと最後に追加する
$ vi /etc/security/access.conf -:ALL EXCEPT sshgrp:ALLと最後に追加する(これでsshgrpというグループに所属するユーザー全員がPAMを通過できるようになった。パーミッション:ユーザー:接続元という順番になっている。「-」は禁止「EXCEPT」は〜を除いて「ALL」はすべて。を意味する)つまり-:ALL EXCEPT sshgrp:ALLとは「パーミッションは禁止する、sshgrp以外は」という意味。
$ vi /etc/ssh/sshd_config UsePAM yesとなっていることを確認
sshgrpグループを作成する:$ groupadd sshgrp
gpasswd -a guest1 sshgrp
grep sshgrp /etc/group
rootユーザの切り替え制限をする:$ gpasswd -a guest1 wheel
$ grep wheel /etc/group
$ vi /etc/pam.d/su auth required pam_wheel.so use_uidのコメントは外す(コメントを外すことでPAM認証に設定する)
$ vi /etc/login.defs SU_WHEEL_ONLY yesと最終行に追加する(wheelグループのみをrootに切り替えられるようになる)
SFTPでファイルを転送する方法(ssh接続できること前提)
ダウンロード:サーバーに接続してダウンロードしたいファイルがある場所まで行って$ sftp guest1@server
$ ls でダウンロードしたいファイルがあるか確認
$ get file1
$ exit
アップロード:アップロードしたいファイルがある場所まで行って$sftp guest1@server アップロード先を入力
$ ls でアップロードしたいファイルがあるか確認
$ put file1
$ exit
SCPでファイルを転送する方法
アップロードのみ: $ ls でダウンロードしたいファイルがあるか確認
$ scp file1 guest1@server:/home/guest1
公開鍵と秘密鍵を作成する方法
作成する:ssh-keygen -t rsa(空白のままエンターを押せばpasswordは設定されない)
公開鍵をアップロードする:$ cd .ssh/
$ sftp guest1@server
$ put id_rsa.pub
$ ls ちゃんとアップロードできたか確認
$ exit
アップロード先でおこなう:$ mkdir .ssh/
$ cat id_rsa.pub > /home/guest1/.ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ chmod 700 .ssh/
公開鍵暗号方式を設定する(接続先で行う):$ vi /etc/ssh/sshd_config
#Port 22 SSHのポート番号
#Protocol 2 SSHのバージョン
PermitRootLogin no rootでログインするのを禁止
PermitEmptyPasswords no 空パスワードの禁止
PubkeyAuthentication yes 公開鍵暗号方式の許可
PasswordAuthentication no パスワード認証の禁止
AllowUsers guest1 特定のユーザーのみ許可
FTPを使用するためにvsftpdをインストールする
$ yum -y install vsftpd
$ systemctl status vsftpd.service
$ systemctl enable vsftpd.service
$ systemctl status vsftpd.service
FTPを設定する
$ vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
(追記はないはず)
$ vi /etc/hosts.denyで最後にvsftpd:allを追加
$ vi /etc/hosts.allowで最後にvsftpd:192.168.1.8(接続許可するIPアドレスを書く)
FTPを使用するためには、Linuxサーバー側で一時的にファイヤウォールを停止しておく。
$ systemctl stop firewalld
$ systemctl disable firewalld
$ systemctl status firewalld
匿名ユーザーにログインさせるのを拒否させ、特定のユーザーのみ上位ディレクトリへ移動できるように設定する
$ vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 匿名ユーザーのログイン許可
local_enable=YES 一般ユーザーのログイン許可
chroot_local_user=YES 一般ユーザーの上位ディレクトリ へのアクセス許可
chroot_list_enable=YES チェンジルートリストを有効にする
chroot_list_file=/etc/vsftpd/chroot_list チェンジルートユーザー リストファイルの指定
リストファイルを有効化したので、「etc/vsftpd」ディレクトリにあるchroot_listファイルにguest1を追加する
$ vi /etc/vsftpd/chroot_list guest1を追加する
$ systemctl restart vsftpd.service
もし、FTPのアクセス制限を行いたい場合はuserlist_denyをYESにする。反対にuser_listファイルに書かれているユーザーのアクセスを許可したい場合は、userlist_denyをNOにする。
userlist_deny=YES
userlist_deny=NO
NOに設定した場合、user_listファイルを開いてguest1をついかするとguest1を許可する。
user_listファイル以外にも/etc/vsftpd/ftpusersファイルに拒否したいユーザーを登録することができる。
user_listファイルftpusersファイルの違いは同じような処理を行うが、user_listに登録されているため、ユーザー名をもとに拒否する。ftpusersはパスワードを受け取った後に拒否。