我对 iptables 相当陌生,并且正在尝试弄清楚我是否正确配置了我的规则集。关于我的问题的-P INPUT ACCEPT部分,我试图确定这在我想要应用的规则的上下文中是否有效。请参阅下文了解更多详情。
我已将iptables-restore与包含以下规则的文件一起使用。本质上,我试图允许环回流量、已建立/相关的连接、SSH 和 HTTP。所有其他流量都应被拒绝。
*filter
:fail2ban-ssh - [0:0]
# Input chain rules
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j …Run Code Online (Sandbox Code Playgroud) 我已经fail2ban设置了以下设置:
bantime = 86400
findtime = 600
maxretry = 2
Run Code Online (Sandbox Code Playgroud)
这很棒,因为它可以阻止任何在 10 分钟内暴力破解 3 次的 IP。但是,有些 IP 每 30 分钟左右尝试一次。为了捕获这些 IP,我将设置更改为:
bantime = 86400
findtime = 3600
maxretry = 2
Run Code Online (Sandbox Code Playgroud)
现在,它每小时检查一次并捕获其中每 20-30 分钟尝试一次的一些 IP。但是,现在我的 VPS 没有捕获可能会在一个小时内进行高级别暴力破解的 IP。
因此,有没有办法设置findtime = 3600并且fail2ban每 10 分钟检查一次?
我正在使用 Firewalld,拖放区是默认区域,并为该区域分配了一个接口。
然后我有丰富的规则来允许一些流量通过放置区,并且我启用了firewall-cmd --set-log-denied=all. 我认为这会记录任何尝试连接到不是来自白名单丰富规则的服务器的内容......但它不会记录。我对服务器运行了端口扫描,并且 /var/log/messages 没有显示任何被拒绝的端口日志。
但是,当我将默认区域设置为 public 并将接口分配给 public 时,它会在我运行另一个端口扫描时记录被拒绝的数据包。
为什么?
我注意到蛮力密码破解程序变得越来越复杂,了解他们的 IP 被禁止的速度,并减缓他们的入侵尝试,以免被 fail2ban 捕获。我想要一种能够手动将 IP 添加到 Fail2Ban 中的禁止列表的方法,这些 IP 将在特定时间段内(但可能比通常时间长)解除禁止。是否有手动命令行方式来告诉fail2ban 阻止某个IP/范围,然后在一段时间后取消禁用它?这是在 CentOS7 下
我想允许来自特定 IP 地址的所有连接,但我失败了。
操作系统:Ubuntu 服务器 16.04。(传入和传出服务器)
我已经执行了这些命令:
iptables -I INPUT -p tcp -s 192.168.0.45 -j ACCEPT
iptables -I OUTPUT -p tcp -d 192.168.0.45 -j ACCEPT
service netfilter-persistent save
/etc/init.d/netfilter-persistent restart
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
这是我的rules.v4样子:
# Generated by iptables-save v1.6.0 on Thu Jun 22 08:48:43 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.0.45/32 -p tcp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport …Run Code Online (Sandbox Code Playgroud) cat /etc/bind/named.conf.options
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk.
Run Code Online (Sandbox Code Playgroud)
我没有找到任何有关名称服务器和我之间的防火墙应用的确切防火墙规则的信息。
我有一个经过良好测试的 bash 脚本,直到几周前它都运行良好。
似乎 certbot 挑战现在默认为 http 而不是 https。我想不通原因。
echo 'rsa-key-size = 2048
renew-hook = /usr/sbin/ipsec reload && /usr/sbin/ipsec secrets
' > /etc/letsencrypt/cli.ini
certbot certonly --non-interactive --agree-tos --email $EMAIL --standalone -d $VPNHOST
Run Code Online (Sandbox Code Playgroud)
防火墙设置:
Firewall stopped and disabled on system startup
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere state NEW recent: UPDATE seconds: 60 hit_count: 12 name: DEFAULT side: source mask: 255.255.255.255
all -- anywhere anywhere state NEW recent: SET name: DEFAULT side: source …Run Code Online (Sandbox Code Playgroud) 我已经在 Ubuntu 18.04 和 Apache 2.4.29 上安装了 Fail2Ban v0.10.2,并在 IP 被阻止时启用了标准的 ssh 和 apache jails 以提供电子邮件通知警告的基本保护。
查看文档,我找不到可以帮助解决以下情况的相关过滤器:
我想禁止命中服务器并由于虚假 URL 请求而产生大量 404 错误的 IP,这可能是典型的垃圾邮件机器人行为。所以理想情况下,一个 IP 被阻止,连续产生三个以上的 404 错误,官方搜索引擎爬虫有一些例外。
这种情况有默认的正则表达式吗?
我将不胜感激您对如何实现这一点的帮助。
我的 Ubuntu 遇到问题,因为我无法使用 wget 或使用当前设置访问任何网站。
我有两个网卡,enp2s0 和 enp2s1。
enp2s0 连接到互联网,但连接到 NAT 路由器(IP 地址:192.168.1.2)
而对于 enp2s1,它连接到另一个没有互联网的路由器,因为它仅用于内部网络(IP 地址:10.0.0.5)
如果唯一连接的网卡是具有互联网的网卡 (enp2s0),则计算机可以访问任何网站。但是,一旦连接第二个网卡(enp2s0 和 enp2s1),计算机就不会加载任何网页、wget,甚至不会加载 apt-get update 或 apt-get install。
这与 iptables 或路由有关吗?帮助我,因为我是新手。
以下是该机器的一些当前详细信息:
$ ip route show
default via 192.168.1.1 dev enp2s0 proto dhcp metric 20100
default via 10.0.0.1 dev enp2s1 proto dhcp metric 20101
169.254.0.0/16 dev enp2s0 scope link metric 1000
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 100
10.0.0.0/24 dev enp2s1 proto kernel scope link src 10.0.0.5 metric 101 …Run Code Online (Sandbox Code Playgroud) 我只想在远程 Ubuntu 服务器上的 csf 防火墙后面本地访问 docker 容器。我将DOCKER设置选项更改为/etc/csf/csf.conf允许1docker 更改 iptable 规则。
如果我使用 启动容器-p 8000:8000,则该端口8000将向全世界公开(我可以mydomain.com:8000按预期使用 访问网站,但不是我想要的)。如果我用 启动容器,则-p 127.0.0.1:8000:8000无法访问它mydomain.com:8000(这很好),但在这两种情况下,调用localhost:8000都会导致ERR_EMPTY_RESPONSEChrome 或curl: (52) Empty reply from server终端中出现错误。
尝试使用不同的容器和不同的端口。禁用csf后,它可以正常工作,不会出现空回复错误,因此它必须与csf相关。
如何配置csf仅在本地通过特定端口公开和访问docker容器?
旁注:我正在使用ssh admin@mydomain.com -L 8000:localhost:8000.
iptables ×10
firewall ×4
fail2ban ×3
linux ×3
ubuntu ×3
networking ×2
security ×2
apache-2.4 ×1
bind ×1
centos7 ×1
certbot ×1
csf ×1
debian ×1
docker ×1
firewalld ×1
lets-encrypt ×1
nic ×1
route ×1
ubuntu-16.04 ×1