FreeBSD 11.1にBlacklistdをインストールする方法
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
このチュートリアルでは、OpenBSD PFファイアウォールを使用してFreeBSDサーバーを保護する方法を示します。ユーザーを追加せずにVultrによってクリーンなFreeBSDインストールが展開されていると想定します。ファイアウォールの設定以外にも、FreeBSDサーバーのセキュリティを強化するいくつかのことを行います。ファイアウォールを設定する前に、いくつかのパッケージをインストールします。デフォルトのFreeBSDインストールには、作業を簡単にするために最小限のツールとパッケージ(正しい)が付属しているためです。
FreeBSDのデフォルトのシェルは/bin/sh
です。これは、オートコンプリート機能のない基本的なシェルです。より良いものを使用します。インストールしzsh
ます。
まず、これらのパッケージをインストールします。
# pkg install zsh gnuls
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
...
GNULSはls
Linux のプログラムです。ls
LinuxとFreeBSDで同じコマンドを使いたいだけです。
システムに通常のユーザーを追加します(johnを自分のユーザー名に置き換えて、wheelグループにユーザーを追加することを忘れないでください)。
# adduser
Username: john
Full name: John Doe
Uid (Leave empty for default):
Login group [john]:
Login group is john. Invite john into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh rzsh nologin) [sh]: zsh
Home directory [/home/john]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : john
Password : *****
Full Name : John Doe
Uid : 1001
Class :
Groups : john wheel
Home : /home/john
Home Mode :
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (john) to the user database.
Add another user? (yes/no): no
Goodbye!
zsh構成ファイルを作成します。
# ee /home/your-username/.zshrc
これを.zshrcファイルにコピーします。
PS1="<%U%m%u>$[%B%1~%b]%(#.#.$) "
bindkey -e
alias su='su -m'
alias du='du -h -d0'
alias df='df -h'
alias l=less
alias ll='gnuls --color=always -l'
alias ls='gnuls --color=always'
alias pkg_ver='pkg version -v -l "<" | > upgrade'
export EDITOR=ee
autoload -U colors && colors
autoload -U promptinit && promptinit
autoload -U compinit && compinit
# History settings
SAVEHIST=1000
HISTSIZE=1000
HISTFILE=~/.history
setopt histignoredups appendhistory
次のコマンドを実行します:(johnをユーザー名に置き換えます)
chown john:john /home/john/.zshrc
次に、ユーザー名でFreeBSDサーバーにログインし、デフォルトのrootパスワードを変更します。
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
sendmailは必要ありません。このサービスを停止して無効にします。
<vultr>[~]# /etc/rc.d/sendmail stop
Stopping sendmail.
Waiting for PIDS: 7843.
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_msp_queue.
Waiting for PIDS: 7846.
次に、rc.confファイルをより自然に見えるように変更します。
# ee /etc/rc.conf
次のように変更します。
#----------- NETWORKING ------------------------------------------------#
hostname="ceph.domain1.com" # replace ceph.domain1.com with your domain
ifconfig_vtnet0="dhcp"
static_routes=linklocal
route_linklocal="-net 169.254.0.0/16 -interface vtnet0"
#--------- SERVICES BSD LOCAL ----------------------------------------#
sshd_enable="YES"
ntpd_enable="YES"
#pf_enable="YES"
#pf_rules="/etc/firewall"
#pf_flags=""
#pflog_enable="YES"
#pflog_logfile="/var/log/pflog"
#pflog_flags=""
sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
/etc/hosts
ファイルを編集:
# ee /etc/hosts
IPアドレスとホスト名を追加します。
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
タイムゾーンを設定します。
# bsdconfig
可能な場合は常に、rootユーザーのリモートアクセスを無効にしてください。SSHに対するほとんどの攻撃は、rootユーザーアカウントを介してアクセスを試みます。常にユーザー名で接続してsu
から、ルートに接続します。rootにwheel
できるのは、グループのユーザーのみですsu
。これが、ユーザーをwheelグループに追加した理由です。
rootログインを無効にします。
# ee /etc/ssh/sshd_config
この行のコメントを外します:
PermitRootLogin no
リブート:
# reboot
再起動が完了すると、Vultrコンソールに次のようなメッセージが表示されます。
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
そのため、手動で時計を修正する必要があります。次のコマンドに従って、最初su
にrootに移動します。
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
次に、ファイアウォールを構成します。OpenBSD PFはFreeBSDカーネルに含まれているため、パッケージをインストールする必要はありません。
ではee
、エディタ、ファイルを作成します/etc/firewall
:
# ee /etc/firewall
これを挿入してください:(IPアドレスをあなたのものに置き換えてください)
#######################################################################
me="vtnet0"
table <bruteforcers> persist
table <trusted> persist file "/etc/trusted"
icmp_types = "echoreq"
junk_ports="{ 135,137,138,139,445,68,67,3222 }"
junk_ip="224.0.0.0/4"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
# ---- First rule obligatory "Pass all on loopback"
pass quick on lo0 all
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
# ---- Second rule "Block all in and pass all out"
block in log all
pass out all keep state
############### FIREWALL ###############################################
# ---- Allow all traffic from my Home
pass quick proto {tcp, udp} from 1.2.3.4 to $me keep state
# ---- block SMTP out
block quick proto tcp from $me to any port 25
# ---- Allow incoming Web traffic
pass quick proto tcp from any to $me port { 80, 443 } flags S/SA keep state
# ---- Allow my team member SSH access
pass quick proto tcp from 1.2.3.5 to $me port ssh flags S/SA keep state
# ---- Block bruteforcers
block log quick from <bruteforcers>
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
# ---- Allow ICMP
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out inet proto icmp all icmp-type $icmp_types keep state
/etc/trusted
ファイルを作成します。このファイルには、「信頼する」IPを入れます。
# ee /etc/trusted
いくつかのIPを追加します。
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
次にいくつかの説明。ジャンクポートとジャンクIPは、ログに表示したくない一部のポート/ IPです。これを次のルールで行いました。
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
これらは単なるデフォルトであり、心配する必要はありません。
icmp_types = "echoreq"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
pass quick on lo0 all
block in log all
pass out all keep state
このルールは、サーバーからの送信SMTPトラフィックをブロックします(これはVultrのデフォルトです)。
# ---- block SMTP out
block quick proto tcp from $me to any port 25
除きbruteforcers
、残りはかなり単純です。
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
Bruteforcersはただ言う:<trusted> IPからポート22までを許可しますが、1つのソースIPからは10の同時接続しか確立できません。10を超える場合は、このIPをブロックして、テーブルブルートフォーサーに配置します。20/60ルールも同様です。これは、60秒で最大20の接続を意味します。
ファイアウォールを有効にする:
# ee /etc/rc.conf
これらの行のコメントを外します:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
リブート:
# reboot
すべてを正しく実行すると、ログインできるようになり、ファイアウォールが有効になります。/etc/firewall
ファイルを変更するたびに再起動する必要はありません。ただやる:
# /etc/rc.d/pf reload
サーバーに接続しようとしているユーザーをリアルタイムで確認します。
# tcpdump -n -e -ttt -i pflog0
履歴を表示:
# tcpdump -n -e -ttt -r /var/log/pflog
ブルートフォーサーのテーブルに誰かいるかどうかを確認します。
# pfctl -t bruteforcers -T show
以上です。FreeBSDサーバーにPFファイアウォールを実装しました!
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。