我正在為我的 EC2 執行個體設定fail2ban,每個執行個體都執行不同的服務。因此,我專門為每個服務配置監獄。我有兩個問題(我在其他地方找不到答案):
- 如果某個 IP 因某個連接埠的驗證失敗而被fail2ban 阻止,該使用者是否仍能透過其他開放連接埠進入?
- 使用此處提到的配置阻止特定連接埠與阻止所有連接埠相比如何?因為最終我不希望駭客進入,所以阻止所有開放連接埠不是更安全嗎?
答案1
(假設作業系統是Linux)
失敗2禁止是一款製作精良的工具,具有高水準的配置。
在 Linux Ubuntu 上,配置位於/etc/fail2ban
問題1
jail.conf
除非您變更配置,否則只會阻止特定服務中提到的連接埠。
問題2
您也可以阻止所有連接埠。這取決於您想要的安全級別,但阻止所有連接埠可能會有缺點。
就我個人而言,我更喜歡只阻止被濫用的連接埠。因為
- 如果其他連接埠也被濫用(並且如果它們在 中聲明
jail.conf
),它們也會被阻止 - 一些IP位址被整個公司或許多人共享;因此,透過阻止所有連接埠的濫用
ssh
,您將阻止該位址上的每個人進行訪問http/s
- 您也可能會受到完全封鎖的影響。例如,您使用 時犯了一些密碼錯誤
ssh
,並且將無法存取另一個允許不同存取的連接埠(例如來自提供者的連接埠)。
若要封鎖更多或所有端口,您可以修改該jail.conf
檔案。
一些預設屬性是,(在[DEFAULT]
)
# "bantime" is the number of seconds that a host is banned.
bantime = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5
# Ports to be banned (Usually should be overridden in a particular jail)
port = 0:65535
即所有連接埠。
例如[sshd]
(和所有服務)port
被重新定義
[sshd]
port = ssh
您可以簡單地註解掉該port
行以恢復預設值,但我會添加一條註釋和一個新的連接埠行以方便維護(其他人/您在 3 年內)
[sshd]
# 25 Aug 2020 Rohit, block all ports
#port = ssh
port = 0:65535
更改預設值
您將在action.d
目錄中看到可能的操作清單。預設值在jail.conf
,
banaction = iptables-multiport
也可以改為
banaction = iptables-allports
這將影響所有不重新定義的服務banaction
。
重新啟動fail2ban
然後重啟服務,對於systemd
systemctl restart fail2ban.service
或者
service fail2ban restart
(僅供參考,filter.d
目錄列出每個服務的方式失敗2禁止偵測到入侵嘗試)
另請查看下面的評論,它們可能提供有價值的資訊。