我的托管公司说 IPTables 没用,不提供任何保护。这是谎言吗?
TL;DR
我有两台位于同一地点的服务器。昨天我的 DC 公司联系我告诉我,因为我使用的是软件防火墙,我的服务器“容易受到多种关键安全威胁”,而我当前的解决方案提供“无法抵御任何形式的攻击”。
他们说我需要防火墙获得一个专用的思科($ 1000安装则$ 200 /每月每),以保护我的服务器。我一直认为,虽然硬件防火墙更安全,但 RedHat 上的 IPTables 之类的东西为您的普通服务器提供了足够的保护。
两台服务器都只是网络服务器,对它们没有任何重要意义,但我使用 IPTables 将 SSH 锁定到我的静态 IP 地址并阻止除基本端口(HTTP(S)、FTP 和其他一些标准服务)之外的所有内容)。
我不打算安装防火墙,如果服务器的以太被黑客入侵,那将是一个不便,但它们运行的只是一些 WordPress 和 Joomla 站点,所以我绝对认为不值得花钱。
我目前使用 ufw 来强制执行一些基本的防火墙规则。是否也可以使用 ufw 进行端口转发?
特别是我想将传入流量转发到我的服务器(运行 ufw 的同一台机器)在端口 80 到端口 8080 上。(http 流量转发到 tomcat)
钍
我正在使用 iptable 规则来过滤和操作我的 Ubuntu 服务器中的数据包。但我无法理解 mangle 表。
正如我们已经注意到的,这个表应该主要用于处理数据包。换句话说,您可以自由使用可用于更改 TOS(服务类型)字段等的 mangle 匹配等。
强烈建议您不要将此表用于任何过滤;任何 DNAT、SNAT 或伪装也不会在此表中起作用。
任何人都可以向我描述 mangle 表,并提供一些示例来理解我何时应该使用它?
我怎么知道我的 iptables 规则丢弃了多少数据包?
是否有任何调试机制可以查看哪个规则是丢弃我的数据包或接受它?
这是我的 iptables,我该如何制作才能在 ETH1 (10.51.xx) 上允许一系列 ip
# Generated by iptables-save v1.4.4 on Thu Jul 8 13:00:14 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m …Run Code Online (Sandbox Code Playgroud) 任何人都可以提供将 Ubuntu 12.04 的 iptables(防火墙)完全重置为其默认“工厂”设置的命令吗?据我所知,做错了会导致一个人被锁在 linux 盒子之外?
我注意到每个发布的端口都有 docker-proxy 进程在运行。这个过程的目的是什么?为什么需要用户空间 tcp 代理?
$ ps -Af | grep proxy
root 4776 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 22222 -container-ip 172.17.0.2 -container-port 22
root 4829 1987 0 01:25 ? 00:00:00 docker-proxy -proto tcp -host-ip 127.0.0.1 -host-port 5555 -container-ip 172.17.0.3 -container-port 5555
Run Code Online (Sandbox Code Playgroud)
以及 docker 创建的一些相关 iptable 规则:
$ sudo iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 1 packets, 263 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER …Run Code Online (Sandbox Code Playgroud) 我正在尝试在运行 CentOS 7 的机器上跟踪网络活动。
根据 iptables 日志,Google (74.125.133.108) 似乎多次接近我的 VPS。
我可以看到源端口始终为 993。
这是什么原因?
16:22:11 kernel: ipt IN=eth0 OUT= MAC=... SRC=74.125.133.108 DST=... LEN=60 TOS=0x00 PREC=0xA0 TTL=107 ID=4587 PROTO=TCP SPT=993 DPT=47920 WINDOW=62392 RES=0x00 ACK SYN URGP=0
16:22:11 kernel: ipt IN=eth0 OUT= MAC=... SRC=74.125.133.108 DST=... LEN=52 TOS=0x00 PREC=0xA0 TTL=107 ID=4666 PROTO=TCP SPT=993 DPT=47920 WINDOW=248 RES=0x00 ACK URGP=0
16:22:11 kernel: ipt IN=eth0 OUT= MAC=... SRC=74.125.133.108 DST=... LEN=2767 TOS=0x00 PREC=0xA0 TTL=107 ID=4668 PROTO=TCP SPT=993 DPT=47920 WINDOW=248 RES=0x00 ACK PSH URGP=0
16:22:11 kernel: ipt IN=eth0 OUT= …Run Code Online (Sandbox Code Playgroud) 我有一台带有多个接口的机器,我可以根据需要进行配置,例如:
我想通过另一个接口转发发送到这些本地地址之一的所有流量。例如,对位于 192.168.1.1 的 iperf、ftp、http 服务器的所有请求不应仅在内部路由,而是通过 eth2 转发(外部网络将负责将数据包重新路由到 eth1)。
我尝试并查看了几个命令,例如 iptables、ip route 等……但没有任何效果。
我能得到的最接近的行为是:
ip route change to 192.168.1.1/24 dev eth2
Run Code Online (Sandbox Code Playgroud)
它在 eth2 上发送所有 192.168.1.x,除了仍然在内部路由的 192.168.1.1。然后我可以将所有流量定向到 eth1 上的假 192.168.1.2,然后在内部重新路由到 192.168.1.1 吗?我实际上正在与 iptables 斗争,但这对我来说太难了。
此设置的目标是在不使用两台 PC 的情况下进行接口驱动程序测试。
我正在使用 Linux,但如果您知道如何使用 Windows,我会购买它!
外网只是eth1和eth2之间的交叉网线。假设我的机器上有一个 http 服务器。现在我想从同一台机器访问这个服务器,但我想强制 TCP/IP 流量通过这个 eth1/eth2 电缆。我应该如何为此配置我的接口?
iptables ×10
firewall ×2
linux ×2
networking ×2
debugging ×1
docker ×1
ip ×1
redhat ×1
ubuntu-12.04 ×1
ufw ×1