Articles of iptables

为什么我需要默认的接受?

如果我忽略这一行 $IPT -I INPUT -i $WAN_NIC -j ACCEPT 从我的防火墙脚本下面,然后我不能SSH到服务器。 我理解的方式 $IPT -I INPUT -i $WAN_NIC -j ACCEPT 是它将允许$ WAN_NIC的所有stream量和作出 $IPT -A INPUT -i $WAN_NIC -p icmp –icmp-type echo-request -j ACCEPT $IPT -A INPUT -i $WAN_NIC -p tcp –dport ssh -j ACCEPT $IPT -A INPUT -i $WAN_NIC -p tcp –dport www -j ACCEPT $IPT -A INPUT […]

iptables将一个外部端口转发到本地主机上的另一个端口

我有一个设置,我有一个CentOS服务器,充当互联网网关。 这台机器执行我们的主交换机和我们的互联网连接之间的NAT。 我还在这台服务器上托pipe一台虚拟机,可以通过端口3389上的远程桌面进行访问。 我想要做的就是设置iptables,使端口10101从wan端转发到3389端口。 我希望外面的人只能看到端口10101,并将其redirect到PC的本地IP地址上的端口3389。 在我的设置中,我有一个名为lan0(192.168.1.15)的本地适配器,另一个名为wan0的适配器将获得我们分配给它的公共IP地址。 所以我希望它看起来像这样: wan0 xxx.xxx.xxx.xxx:10101 – > lan0 192.168.1.15:3389 我已经尝试了几件事情,而我似乎无法做到。 我所做的和网上的大多数例子之间的区别似乎是,大多数例子涉及一个网关,它将stream量转发到一个不同的pc,而我的networking仍然在同一个系统上。 更新: 为了使事情更清楚,这里是我的整个iptablesconfiguration文件,包括cjc的build议。 根据我的理解,我已经列出了关于这两行的评论。 我对于iptables了解得很less,所以如果我错了,请纠正我的错误。 # Generated by iptables-save v1.3.5 on Fri Jul 8 12:41:58 2011 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [5:316] # route all requests for web traffic through squid on port 3128 -A PREROUTING -i […]

使用Puppet的新防火墙模块,如何在应用规则之前清除iptables?

我目前正在使用Puppet的新防火墙模块 。 我正在尝试让Puppet在应用防火墙规则之前刷新iptables 。 我尝试了以下内容: exec { 'clear-firewall': command => '/sbin/iptables -F', refreshonly => true, } Firewall { subscribe => Exec['clear-firewall'], notify => Exec['persist-firewall'], } 到目前为止,它还没有奏效。 任何人都可以build议或知道另一种方法,我应该尝试?

使用iptables重新路由

当xxxx向端口80请求yyyy时,我希望请求被redirect到zzzz:80。 是否有可能通过在yyyy上添加iptables的规则来做到这一点?

一对一使用Linux IPTable的NAT不工作

我正试图在一个Linux Box上实现一对一的NAT。 设置非常基本,它有两个接口,eth0是外部接口,eth1是内部。 在eth1后面存在隔离的192.168.100.0/24networking,而eth0连接到192.168.0.0/24networking的其余部分(这个networking是不相关的)。 我想要做的是允许隔离networking通过使用不同networking的外部IP地址(192.168.50.0/24)的Linux盒子进行通信。 所以基本上从内部networking192.168.100.10 Linux机箱NAT 192.168.150.10路由出来的Linux机箱。 我已经设置了路由来指向192.168.50.0/24的stream量到所有外部设备上的Linux机箱的eth0接口。 在这一点上,目的地为192.168.50.0/24的stream量到达Linux机箱的eth0,但似乎从来没有翻译过,因为在内部eth1接口上我从来没有看到任何192.168.50.10或192.168.100.10的stream量。 以下是我的基本NATconfiguration。 我的问题是,我需要做别的吗? 我没有打扰在192.168.50.0/24networking的Linux机器上添加路由,因为由于这个NATconfiguration,该机箱从不路由具有该地址的数据包。 出站规则 -A POSTROUTING -o eth0 -s 192.168.100.10 -j SNAT –to-source 192.168.50.10 入站规则 -A PREROUTING -i eth0 -d 192.168.50.10 -j DNAT –to-destination 192.168.100.10 临时规则允许所有stream量 -A INPUT -j ACCEPT -A FORWARD -j ACCEPT 注意所有其他stream量也可以通过iptables进行默认设置,所以它不应该是一个阻塞问题。

iptables misconfiguration阻塞了传出连接

这是我设置的规则 iptables -P INPUT DROP iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT iptables -A INPUT -i eth0 -p tcp –dport 443 -j ACCEPT 当我试图build立一个传出连接时,它被阻止。 less了什么东西? 这是iptables -n -L的输出 Chain INPUT (policy DROP) target prot opt source destination DROP tcp — 0.0.0.0/0 0.0.0.0/0 source IP range 93.0.0.0-93.255.255.255 tcp — 0.0.0.0/0 0.0.0.0/0 tcp […]

CentOS端口即使在iptables停止时也是closures的

我最近得到了运行CentOS 6.X的VPS,我安装了Gnome并configuration了VNC。 vncserver运行良好,但我无法连接到它。 我从外面检查了端口,发现端口5901已经closures。 我编辑了iptables并重新启动了iptables服务,但没有任何反应。 我甚至停止了iptables服务,但端口似乎closures。 这是怎么回事? 提前致谢。 [ 编辑 ]好的,说实话,我不知道如果vncserver是否正确运行。 它没有给出任何错误,但是在它的日志中有一些与gnome相关的错误。 但是这可能与港口被closures有什么关系? [ 编辑 ]这是我尝试的2个vncconfiguration(xstartup): #!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & # xterm -geometry […]

阻止IP地址最好的办法做到这一点(在安全性方面)?

我有一个用户试图入侵我的服务器,muieblackcatpopup在我的服务器上,不止一次。 我只是想得到一些build议,以防止这种最好的方法,即我应该通过htaccess阻止用户,或者我应该阻止他们通过iptables或者有更好的方法吗? 请注意,我运行的服务器是Centos 5.7 64位

用iptables改变目的地址

我使用Debian(Linux),并尝试更改从端口80传入数据包的目的地。这里的设置:我有我的防火墙有两个地址和Web服务器有两个地址。 例: 防火墙 Internal adress: 10.3.3.13 External adresss: 206.167.200.213 networking服务器 Internal adress: 10.3.3.6 External adress: 206.167.200.206 我需要将传入的连接从防火墙上的端口80redirect到Web服务器上的端口80。 这里是我在Debian中使用的命令行: iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.3.3.6 –dport 80 -j DNAT –to 10.3.3.6 iptables -A INPUT -p tcp -m state –state NEW –dport 80 -i eth0 -j ACCEPT 为什么这个命令不工作? 当我input防火墙的外部地址时,redirect不起作用,最终导致防火墙的默认网页。

以ssh'ing作为特定用户运行根脚本,而不是在标准login时运行

我想要做以下事情: 如果我通过login屏幕以用户ABClogin,则什么也不做。 但是,如果我ssh作为美国广播公司,然后我想运行一个根脚本,而不会提示root密码,而不必在磁盘上的某处存储根密码。 Linux的文章概述了这个动机:在应用程序的基础上限制传出 。 基本上,从文章的启发https://unix.stackexchange.com/questions/21650/how-to-restrict-internet-access-for-a-particular-user-on-the-lan-using-iptables ,什么我想要做的是以下几点: 1)以用户EFGlogin并使用Firefox访问网页。 2)ssh进入ABC。 3)在ssh到ABC,我想运行一个脚本,模拟“sudo iptables -t mangle -A OUTPUT -o eth0 -m owner –uid-owner 1234 -j DROP”,其中1234是用户的UID ABC 4)然后开始在ABC的ssh'edterminal下使用我不想上网的所有应用程序,同时仍以EFG用户身份login,因此允许我以EFG的身份上网。 注意我尝试了/ etc / network / interfaces文件,但是如果计算机没有连接到networking,我的计算机无法正常启动。 谢谢