LoginSignup
4
0

More than 5 years have passed since last update.

fabricスクリプトを依頼されて修正したけど、謎な理由で検収却下されたので公開します。

Last updated at Posted at 2017-03-28

プロビジョニングを行うfabricスクリプトを、CentOS7に対応してくださいと依頼を受けて修正したのですが、不合格らしくもったいないので公開します。
Vultrでのみ確認しています。

主な変更点

修正元からの主な変更点は下記の通り(CentOS7対応を除く)

  • 先方からの依頼を受けてiptablesからfirewalldへ変更
  • yum実行時に出力されるログを抑止するため-qを追加
  • fail2banの処理を追加
  • EPELが導入されてない場合、インストールするように追加
  • yum updateの実行順を修正
  • swap作成処理を追加
  • sshをipv4のみとする事とX11Forwardの禁止を追加
  • 80,443のポートを開けるタスクを追加
  • 一度納品後、公開鍵を指定できるようにしてほしいとの事で変数を追加

修正したスクリプト


# -*- encoding:utf-8 -*-
#
# CentOSをセキュアにセットアップするFabricスクリプト
#
# This software is released under the MIT License, see LICENSE.txt.
#####################################################################

from fabric.api import env, run, sudo, put
from fabric.colors import green
from fabric.decorators import task

import time

########  基本設定  ########

# 作成する作業用ユーザ
USER_NAME = 'your_name'            # ← 必ず変更する!
# 作業用ユーザのパスワード
PASSWORD  = 'your_password'        # ← 必ず変更する!
# rootのメールアドレス
ROOT_MAIL_ADDLESS = ''             # ← 変更推奨 
# 設定するSSHのポート番号
SSH_PORT  = '50022'                # ← 変更推奨
# 公開鍵の指定
PUBKEY_LOC = '~/.ssh/id_rsa.pub'

# スワップファイルサイズ
SWAP_SIZE = '2048'                 # サーバのメモリサイズが8GBまではメモリサイズか2048のどちらか大きい数字


########  fabric向け設定  ########

# 接続先のVPSサーバのIPアドレス
env.hosts = ["XX.XX.XX.XX"]        # ← 必ず変更する!
# 接続ユーザ名
env.user  = 'root'                 # ← 通常は変更不要


########  デコレータの定義  ########

# 実行時間を計測して標準出力するデコレータ
def measure_time(func):
  def _measure_time(*args, **keyword):
    start_time = time.time()
    task_name = " ".join(func.__name__.split("_"))
    print green('Start %s ...' % (task_name))
    func(*args, **keyword)
    end_time = time.time() - start_time
    print green('End %s : %s sec' % (task_name, end_time))
  return _measure_time


########  タスクの定義  ########

# 標準的なサーバのセットアップ
# 実行方法 : fab setup
@task
def setup():
  @measure_time
  def server_setup():
    required_server_setup()
    recommended_server_setup()

  server_setup()


# 最低限のサーバのセットアップ
# 実行方法 : fab setup_min
@task
def setup_min():
  @measure_time
  def minimum_server_setup():
    required_server_setup()

  minimum_server_setup()


# 標準的なサーバのセットアップとセキュリティ系ツールのインストール
# 実行方法 : fab setup_all
@task
def setup_all():
  @measure_time
  def server_setup_and_install_security_tools():
    required_server_setup()
    recommended_server_setup()
    install_all_security_tools()

  server_setup_and_install_security_tools()


# セキュリティ系ツールのインストールのみ実行
# 実行方法 : fab install_security_tools
@task
def install_security_tools():
  @measure_time
  def install_security_tools_only():
    install_all_security_tools()

  install_security_tools_only()

# web用途ポート(80, 443)を追加する
# 実行方法 : fab webport_open
@task
def webport_open():
  @measure_time
  def setup_port_for_web():
    setup_firewalld_for_web()

  setup_port_for_web()

# さくらのVPS向けの最適化処理
# 実行方法 : fab sakura
@task
def sakura():
  @measure_time
  def optimize_sakura_vps():
    speedup_network_sakura_vps()

  optimize_sakura_vps()


########  タスクから呼ばれるメソッドの定義  ########

# サーバセットアップの必須処理
@measure_time
def required_server_setup():
  print_info()
  add_new_user()
  setup_epel()
  yum_update()
  install_etckeeper()
  setup_su()
  setup_sudo()
  setup_sshd()
  setup_swap()
  setup_firewalld()


# サーバセットアップの推奨処理(必須処理後に実行することを想定)
@measure_time
def recommended_server_setup():
  stop_ipv6()
#  stop_service()
  set_root_address()
  install_logwatch()


# セキュリティ系ツールを全てインストール
@measure_time
def install_all_security_tools():
  install_fail2ban()
#  install_clamd()
  install_rkhunter()
  install_tripwire()


@measure_time
def print_info():
  run('uname -a')
  run('cat /etc/redhat-release')


@measure_time
def add_new_user(user_name=USER_NAME, password=PASSWORD):
  run('useradd %s -G wheel' % (user_name) )
  run("echo '%s:%s' | chpasswd" % (user_name, password) )


@measure_time
def install_etckeeper():
  run('yum -q -y install etckeeper')

  # シャドウファイル関連はバージョン管理対象外に指定
  run('touch /etc/.gitignore')
  run('echo "shadow*"  >> /etc/.gitignore')
  run('echo "gshadow*" >> /etc/.gitignore')
  run('echo "passwd*"  >> /etc/.gitignore')
  run('echo "group*"   >> /etc/.gitignore')

  # /etc配下の初期状態をコミット
  run('etckeeper init')
  run('etckeeper commit "First Commit"')


@measure_time
def setup_su():
  run("sed -i 's/^#auth\(\s\+required\)/auth\\1/' /etc/pam.d/su")


@measure_time
def setup_sudo():
  run("sed -i 's/^# %wheel\(\s\+ALL=(ALL)\s\+ALL$\)/%wheel\\1/' /etc/sudoers")


@measure_time
def setup_sshd(user_name=USER_NAME, ssh_port=SSH_PORT, pubkey_loc=PUBKEY_LOC):
  # SSHのポート番号変更
  run("sed -i 's/^#Port\s\+22/Port %s/' /etc/ssh/sshd_config"  % (ssh_port) )
  # ipv4のみリスン
  run("sed -i 's/^#ListenAddress\s0.0.0.0/ListenAddress 0.0.0.0/' /etc/ssh/sshd_config")
  # rootのSSHログイン禁止
  run("sed -i 's/^#PermitRootLogin\s\+yes/PermitRootLogin no/' /etc/ssh/sshd_config")
  # 公開鍵認証を有効にする
  run("sed -i 's/^#PubkeyAuthentication\s\+yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config")
  # パスワードログインの禁止
  run("sed -i 's/^PasswordAuthentication\s\+yes/PasswordAuthentication no/' /etc/ssh/sshd_config")
  # X11Forwardの禁止
  run("sed -i 's/^X11Forwarding\s\+yes/X11Forwarding no/' /etc/ssh/sshd_config")
  # SSHを許可するユーザの制限
  run('echo "AllowUsers %s" >> /etc/ssh/sshd_config' % (user_name))

  # サーバに登録する公開鍵の事前準備
  sudo('mkdir /home/%s/.ssh' % (user_name), user=user_name)
  sudo('chmod 700 /home/%s/.ssh' % (user_name), user=user_name)
  sudo('touch /home/%s/.ssh/authorized_keys' % (user_name), user=user_name)
  sudo('chmod 600 /home/%s/.ssh/authorized_keys' % (user_name), user=user_name)

  # ローカルの公開鍵をサーバに登録(公開鍵は事前に生成しておくこと)
  put(pubkey_loc, '/home/%s/.ssh/authorized_keys' % (user_name))

  # sshd再起動
  run("sshd -t")
  run("service sshd restart")


@measure_time
def setup_swap(swap_size=SWAP_SIZE):
  run('dd if=/dev/zero of=/swapfile bs=1M count=%s' % (swap_size))
  run("mkswap /swapfile")
  run("chmod 0600 /swapfile")
  run("swapon /swapfile")
  run("echo '/swapfile  swap  swap defaults 0 0' >> /etc/fstab")
  run("swapon -s")

@measure_time
def setup_firewalld(ssh_port=SSH_PORT):
  # ssh port変更のため、一度サービスを削除して再登録
  run("firewall-cmd --permanent --remove-service=ssh")
  run("cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/")
  run("sed -i 's/22/%s/' /etc/firewalld/services/ssh.xml" % (ssh_port))
  run("firewall-cmd --permanent --add-service=ssh")
  # 反映して再起動
  run("firewall-cmd --reload")
  run("systemctl restart firewalld")
  # 現在の状態を出力
  run("iptables -L --line-numbers -n")

@measure_time
def setup_firewalld_for_web():
  run("firewall-cmd --permanent --add-service=http")
  run("firewall-cmd --permanent --add-service=https")
  # 反映して再起動
  run("firewall-cmd --reload")
  run("systemctl restart firewalld")

@measure_time
def setup_epel():
  if run("test -f /etc/yum.repos.d/epel.repo", warn_only=True).failed:
    run("yum install -q -y epel-release")

@measure_time
def yum_update():
  # システムの最新化
  run("yum update -q -y")
  # システムの自動更新
  run("yum -q -y install yum-cron")
  run("service yum-cron start")
  run("systemctl enable yum-cron")


@measure_time
def stop_ipv6():
  # IPv6の無効化
  run('echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf')
  run('echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf')
  run('sysctl -p', warn_only=True)
  # PostfixのIPv6無効化
  run("sed -i 's/^inet_protocols\s\+=\s\+all$/inet_protocols = ipv4/' /etc/postfix/main.cf")


# @measure_time
def stop_service():
   def _stop(service_name):
     run('service %s stop' % (service_name))
     run('systemctl disable %s' % (service_name))

   _stop('ip6tables')


@measure_time
def set_root_address(root_address=ROOT_MAIL_ADDLESS):
  if root_address != '':
    run('echo "root: %s" >> /etc/aliases'  % (root_address))
    run('newaliases')


@measure_time
def install_logwatch():
  run("yum -q -y install logwatch")
  run("logwatch")


@measure_time
def install_fail2ban(ssh_port=SSH_PORT):
  run("yum -q -y install fail2ban fail2ban-systemd")
  run("sed -i 's/ ssh$/%s/' /etc/fail2ban/jail.conf" % (ssh_port))
  run ("echo '[DEFAULT]' > /etc/fail2ban/jail.local")
  run ("echo 'bantime = 3600' >> /etc/fail2ban/jail.local")
  run ("echo 'banaction = iptables-multiport' >> /etc/fail2ban/jail.local")
  run ("echo '' >> /etc/fail2ban/jail.local")
  run ("echo '[sshd]' >> /etc/fail2ban/jail.local")
  run ("echo 'enabled = true' >> /etc/fail2ban/jail.local")
  run('service fail2ban restart')
  run('systemctl enable fail2ban')



@measure_time
def install_clamd():
  run("yum -q -y install clamd")
  run("sed -i 's/^User\s\+clam$/#\\0/' /etc/clamd.conf")
  run('freshclam')
  run('service clamd start')
  run('systemctl enable clamd')
  #run('clamscan --infected --remove --recursive')


@measure_time
def install_rkhunter():
  run("yum -q -y install rkhunter")
  run('rkhunter --update', warn_only=True)
  run('rkhunter --propupd')
  #run('rkhunter --check --skip-keypress', warn_only=True)


@measure_time
def install_tripwire():
  run("yum -q -y install tripwire")

  # サイトキーとローカルキーの生成
  run('tripwire-setup-keyfiles')

  # 全体的な動作設定
  run("sed -i 's/^LOOSEDIRECTORYCHECKING\s\+=false$/LOOSEDIRECTORYCHECKING =true/' /etc/tripwire/twcfg.txt")
  run('twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt')

  # ポリシーファイルの最適化 / 元ネタ:http://centossrv.com/tripwire.shtml
  # メンドウなので、スクリプトはgistに置いておこう。。
  twpolmake_url = 'https://gist.githubusercontent.com/tmknom/035709050cf94ea512ce/raw/d397d9c81c09176413e44da29993841cf4b3bb45/twpolmake.pl'
  run('wget %s -P /etc/tripwire' % (twpolmake_url) )
  run('perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new') 
  run('twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new')

  # テキスト版の設定ファイルの削除
  run('rm -f /etc/tripwire/twcfg.txt*')
  run('rm -f /etc/tripwire/twpol.txt*')

  # ベースラインデータベースの初期化
  run('tripwire --init')
  #run('tripwire --check', warn_only=True)


# さくらのVPSで通信速度を向上させる
# 参考URL: https://help.sakura.ad.jp/app/answers/detail/a_id/1368
def speedup_network_sakura_vps():
    run("ethtool -K eth0 tso off")
    run('echo "ACTION==\"add\", SUBSYSTEM==\"net\", KERNEL==\"eth0\", RUN+=\"/sbin/ethtool -K eth0 tso off\"" > /etc/udev/rules.d/50-eth_tso.rules')

修正元との差分

--- fabfile.py.org  2017-03-13 09:45:43.000000000 +0900
+++ fabfile.py  2017-03-26 20:41:53.000000000 +0900
@@ -21,6 +21,11 @@
 ROOT_MAIL_ADDLESS = ''             # ← 変更推奨 
 # 設定するSSHのポート番号
 SSH_PORT  = '50022'                # ← 変更推奨
+# 公開鍵の指定
+PUBKEY_LOC = '~/.ssh/id_rsa.pub'
+
+# スワップファイルサイズ
+SWAP_SIZE = '2048'                 # サーバのメモリサイズが8GBまではメモリサイズか2048のどちらか大きい数字


 ########  fabric向け設定  ########
@@ -93,6 +98,15 @@

   install_security_tools_only()

+# web用途ポート(80, 443)を追加する
+# 実行方法 : fab webport_open
+@task
+def webport_open():
+  @measure_time
+  def setup_port_for_web():
+    setup_firewalld_for_web()
+
+  setup_port_for_web()

 # さくらのVPS向けの最適化処理
 # 実行方法 : fab sakura
@@ -112,19 +126,21 @@
 def required_server_setup():
   print_info()
   add_new_user()
+  setup_epel()
+  yum_update()
   install_etckeeper()
   setup_su()
   setup_sudo()
   setup_sshd()
-  setup_iptables()
-  yum_update()
+  setup_swap()
+  setup_firewalld()


 # サーバセットアップの推奨処理(必須処理後に実行することを想定)
 @measure_time
 def recommended_server_setup():
   stop_ipv6()
-  stop_service()
+#  stop_service()
   set_root_address()
   install_logwatch()

@@ -133,7 +149,7 @@
 @measure_time
 def install_all_security_tools():
   install_fail2ban()
-  install_clamd()
+#  install_clamd()
   install_rkhunter()
   install_tripwire()

@@ -141,7 +157,7 @@
 @measure_time
 def print_info():
   run('uname -a')
-  run('cat /etc/issue')
+  run('cat /etc/redhat-release')


 @measure_time
@@ -152,7 +168,7 @@

 @measure_time
 def install_etckeeper():
-  run('yum -y install etckeeper')
+  run('yum -q -y install etckeeper')

   # シャドウファイル関連はバージョン管理対象外に指定
   run('touch /etc/.gitignore')
@@ -177,15 +193,19 @@


 @measure_time
-def setup_sshd(user_name=USER_NAME, ssh_port=SSH_PORT):
+def setup_sshd(user_name=USER_NAME, ssh_port=SSH_PORT, pubkey_loc=PUBKEY_LOC):
   # SSHのポート番号変更
   run("sed -i 's/^#Port\s\+22/Port %s/' /etc/ssh/sshd_config"  % (ssh_port) )
+  # ipv4のみリスン
+  run("sed -i 's/^#ListenAddress\s0.0.0.0/ListenAddress 0.0.0.0/' /etc/ssh/sshd_config")
   # rootのSSHログイン禁止
   run("sed -i 's/^#PermitRootLogin\s\+yes/PermitRootLogin no/' /etc/ssh/sshd_config")
   # 公開鍵認証を有効にする
   run("sed -i 's/^#PubkeyAuthentication\s\+yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config")
   # パスワードログインの禁止
   run("sed -i 's/^PasswordAuthentication\s\+yes/PasswordAuthentication no/' /etc/ssh/sshd_config")
+  # X11Forwardの禁止
+  run("sed -i 's/^X11Forwarding\s\+yes/X11Forwarding no/' /etc/ssh/sshd_config")
   # SSHを許可するユーザの制限
   run('echo "AllowUsers %s" >> /etc/ssh/sshd_config' % (user_name))

@@ -196,7 +216,7 @@
   sudo('chmod 600 /home/%s/.ssh/authorized_keys' % (user_name), user=user_name)

   # ローカルの公開鍵をサーバに登録(公開鍵は事前に生成しておくこと)
-  put('~/.ssh/id_rsa.pub', '/home/%s/.ssh/authorized_keys' % (user_name))
+  put(pubkey_loc, '/home/%s/.ssh/authorized_keys' % (user_name))

   # sshd再起動
   run("sshd -t")
@@ -204,51 +224,48 @@


 @measure_time
-def setup_iptables(ssh_port=SSH_PORT):
-  # 接続済の通信は全て許可(必須)
-  run("iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT")
-  # ローカルループバックアドレスを許可(必須)
-  run("iptables -A INPUT -i lo -j ACCEPT")
-  # ICMPを許可(任意) ←  pingできなくても良い場合はコメントアウトしよう
-  run("iptables -A INPUT -p icmp -j ACCEPT")
-
-  # 各種攻撃対策
-  run("iptables -A INPUT -s 10.0.0.0/8     -j DROP")
-  run("iptables -A INPUT -d 10.0.0.0/8     -j DROP")
-  run("iptables -A INPUT -s 172.16.0.0/12  -j DROP")
-  run("iptables -A INPUT -d 172.16.0.0/12  -j DROP")
-  run("iptables -A INPUT -s 192.168.0.0/16 -j DROP")
-  run("iptables -A INPUT -d 192.168.0.0/16 -j DROP")
-  run("iptables -A INPUT -f -j DROP")
-  run("iptables -A INPUT -p tcp -m state --state NEW ! --syn -j DROP")
-  run("iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset")
-  run("iptables -A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit 1/s --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name input_icmp  --hashlimit-htable-expire 300000 -j DROP")
-
-  # SSHの許可設定
-  run("iptables -A INPUT -p tcp -m tcp --dport %s -j ACCEPT"  % (ssh_port))
-  # SSH以外の許可設定
-  # 例えばWebサーバの場合、80番を許可する
-  #run("iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT")
-
-  # デフォルトポリシーの設定
-  run("iptables -P INPUT   DROP")
-  run("iptables -P OUTPUT  ACCEPT")
-  run("iptables -P FORWARD DROP")
-
-  # 現在の状態を出力して、設定を保存・反映
+def setup_swap(swap_size=SWAP_SIZE):
+  run('dd if=/dev/zero of=/swapfile bs=1M count=%s' % (swap_size))
+  run("mkswap /swapfile")
+  run("chmod 0600 /swapfile")
+  run("swapon /swapfile")
+  run("echo '/swapfile  swap  swap defaults 0 0' >> /etc/fstab")
+  run("swapon -s")
+
+@measure_time
+def setup_firewalld(ssh_port=SSH_PORT):
+  # ssh port変更のため、一度サービスを削除して再登録
+  run("firewall-cmd --permanent --remove-service=ssh")
+  run("cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/")
+  run("sed -i 's/22/%s/' /etc/firewalld/services/ssh.xml" % (ssh_port))
+  run("firewall-cmd --permanent --add-service=ssh")
+  # 反映して再起動
+  run("firewall-cmd --reload")
+  run("systemctl restart firewalld")
+  # 現在の状態を出力
   run("iptables -L --line-numbers -n")
-  run("service iptables save")
-  run("service iptables restart")

+@measure_time
+def setup_firewalld_for_web():
+  run("firewall-cmd --permanent --add-service=http")
+  run("firewall-cmd --permanent --add-service=https")
+  # 反映して再起動
+  run("firewall-cmd --reload")
+  run("systemctl restart firewalld")
+
+@measure_time
+def setup_epel():
+  if run("test -f /etc/yum.repos.d/epel.repo", warn_only=True).failed:
+    run("yum install -q -y epel-release")

 @measure_time
 def yum_update():
   # システムの最新化
-  run("yum -y update")
+  run("yum update -q -y")
   # システムの自動更新
-  run("yum -y install yum-cron")
+  run("yum -q -y install yum-cron")
   run("service yum-cron start")
-  run("chkconfig yum-cron on")
+  run("systemctl enable yum-cron")


 @measure_time
@@ -257,19 +274,17 @@
   run('echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf')
   run('echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf')
   run('sysctl -p', warn_only=True)
-  run('ifconfig')
-
   # PostfixのIPv6無効化
   run("sed -i 's/^inet_protocols\s\+=\s\+all$/inet_protocols = ipv4/' /etc/postfix/main.cf")


-@measure_time
+# @measure_time
 def stop_service():
-  def _stop(service_name):
-    run('service %s stop' % (service_name))
-    run('chkconfig %s off' % (service_name))
-
-  _stop('ip6tables')
+   def _stop(service_name):
+     run('service %s stop' % (service_name))
+     run('systemctl disable %s' % (service_name))
+ 
+   _stop('ip6tables')


 @measure_time
@@ -281,32 +296,38 @@

 @measure_time
 def install_logwatch():
-  run('yum -y install logwatch')
-  run('logwatch --print')
-  run('logwatch')
+  run("yum -q -y install logwatch")
+  run("logwatch")


 @measure_time
 def install_fail2ban(ssh_port=SSH_PORT):
-  run('yum -y install fail2ban')
-  run("sed -i 's/port=ssh/port=%s/' /etc/fail2ban/jail.conf" % (ssh_port))
-  run('service fail2ban start')
-  run('chkconfig fail2ban on')
+  run("yum -q -y install fail2ban fail2ban-systemd")
+  run("sed -i 's/ ssh$/%s/' /etc/fail2ban/jail.conf" % (ssh_port))
+  run ("echo '[DEFAULT]' > /etc/fail2ban/jail.local")
+  run ("echo 'bantime = 3600' >> /etc/fail2ban/jail.local")
+  run ("echo 'banaction = iptables-multiport' >> /etc/fail2ban/jail.local")
+  run ("echo '' >> /etc/fail2ban/jail.local")
+  run ("echo '[sshd]' >> /etc/fail2ban/jail.local")
+  run ("echo 'enabled = true' >> /etc/fail2ban/jail.local")
+  run('service fail2ban restart')
+  run('systemctl enable fail2ban')
+


 @measure_time
 def install_clamd():
-  run('yum -y install clamd')
+  run("yum -q -y install clamd")
   run("sed -i 's/^User\s\+clam$/#\\0/' /etc/clamd.conf")
   run('freshclam')
   run('service clamd start')
-  run('chkconfig clamd on')
+  run('systemctl enable clamd')
   #run('clamscan --infected --remove --recursive')


 @measure_time
 def install_rkhunter():
-  run('yum -y install rkhunter')
+  run("yum -q -y install rkhunter")
   run('rkhunter --update', warn_only=True)
   run('rkhunter --propupd')
   #run('rkhunter --check --skip-keypress', warn_only=True)
@@ -314,7 +335,7 @@

 @measure_time
 def install_tripwire():
-  run('yum -y install tripwire')
+  run("yum -q -y install tripwire")

   # サイトキーとローカルキーの生成
   run('tripwire-setup-keyfiles')

先方がサーバ作成時に設定していたスクリプト

次のようなスクリプトをサーバ作成時にスタートスクリプトとして登録していた。

  • ユーザの作成およびパスワードの設定
  • 作成したユーザの公開鍵の設定
  • 作成したユーザのsudo設定
  • rootユーザのSSHログイン拒否設定
  • SSH公開鍵ログイン設定
  • firewalldの削除、iptablesサービスのインストール
  • sshサービスの再起動
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0