使用 iptables 仅允许来自指定 IP 地址的流量

使用 iptables 仅允许来自指定 IP 地址的流量

我有一台专用服务器(我仅将其用作实验室/测试环境)。该服务器上运行着 CentOS 5.6,它充当 KVM 主机。

为了稍微安全一点,我想执行以下操作使用“iptables”来仅允许来自特定 IP 地址(我自己的地址)的流量。

我的当前iptables配置如下:

[kvm]# iptables -L -v
Chain INPUT (policy ACCEPT 4927K packets, 6424M bytes)
 pkts bytes target     prot opt in     out     source               destination         
   41  2744 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:domain 
   66 21810 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:bootps 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:bootps 
3573K 3515M fail2ban-SSH  tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 470K  700M ACCEPT     all  --  any    virbr0  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 
 171K 9558K ACCEPT     all  --  virbr0 any     192.168.122.0/24     anywhere            
    0     0 ACCEPT     all  --  virbr0 virbr0  anywhere             anywhere            
    0     0 REJECT     all  --  any    virbr0  anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  virbr0 any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT 3115K packets, 5798M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain fail2ban-SSH (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  any    any     somehost1.net        anywhere            
   19  2176 DROP       all  --  any    any     somehost2.net        anywhere            
   21  1668 DROP       all  --  any    any     somehost3.net        anywhere            
3573K 3515M RETURN     all  --  any    any     anywhere             anywhere

iptables虽然我认为 KVM(virt-manager 或类似的)和 fail2ban对配置做了一些更改,但我自己没有对其进行任何更改。

有人能帮我创建一个iptables脚本,确保 KVM 仍在工作,但只允许来自特定 IP 地址的流量。其余的都可以丢弃。服务器本身对互联网不应该有任何限制。

更新:按照上面的要求,输出现在是-v

答案1

# Set default action to drop anything not explicitly allowed
iptables -P INPUT DROP
# Allow an incoming connection from 192.168.0.1
iptables -I INPUT -s 192.168.0.1 -j ACCEPT
# Allow incoming packets from a self initiated connection to "outside"
itpables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这应该可行。将 192.168.0.1 替换为您想要访问的 IP 地址。
请注意,所有其他连接都将被断开(如果您通过 SSH 或 telnet 连接,则包括您自己的连接)。

答案2

让虚拟机保持在 NAT 链路上会严重影响其性能,使用桥接网络会更快、更高效。更简单的设置是设置桥接,并配置虚拟机自己的防火墙以丢弃任何不需要的内容

相关内容