ubuntu 配置文件 iptables ubuntu关闭防火墙iptables
Ubuntu 12.04 64位怎么查看iptables配置文件
本系列的上一篇文章中我们简介了IPTables的工作方式,在本次介绍中我们将通过实例来向大家演示如何在Ubuntu14.04中配置IPTables的规则。IPTables基本命令在向大家介绍复杂防火墙规则之前,还是先上一些简单的料,让大家对IPTables最为基本的命令有一些简单了解。首先要说明的是IPTables命令必需以root权限运行,这意味着你需要使用root身份登录或者能够有权限使用su或sudo-i取得rootShell。下面的内容中我们都使用sudo,这也是Ubuntu系统上的首选方法。最好的起点就是先通过“-L”参数来查看下当前系统的所有IPTables规则:sudoiptables-L我们可以看到Linux中都有的3个常用默认链(INPUT、OUTPUT和FORWARD),同时也可以看到每个链的缺省策略(每个链对默认策略都是接受),在此我们可以看到Ubuntu中
ubuntu怎么进入iptables
(一)设置开机启动iptables
# sysv-rc-conf--level 2345 iptables on
(二) iptables的基本命令
1.列出当前iptables的策略和规则
# iptables-L-n
-n:用数字形式显示
# iptables-L-v
-v:打印详细的信息
2.允许已经建立的连接接收数据
iptables-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT
3.开放端口22(SSH的默认端口),您要告诉iptables允许接受到的所有目标端口为22的TCP报文通过
iptables-A INPUT-p tcp-i eth0--dport ssh-j ACCEPT
注:ssh代表22,可以在/etc/services中查到的服务都可以这样使用。
4.添加策略。策略也是一种规则,当所有规则都不匹配时,使用链的“策略”
链:INPUT, PREROUTING, FORWARD, POSTROUTING, OUTPUT
链策略的默认值是:ACCEPT。
表:filter(默认),nat,mangle。
#iptables-P INPUT DROP
#iptables-P OUTPUT ACCEPT
#iptables-P FORWARD DROP
root@patrick:~# iptables-L-n
Chain INPUT(policy DROP)
target prot opt source destination
ACCEPT icmp-- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD(policy DROP)
target prot opt source destination
Chain OUTPUT(policy ACCEPT)
target prot opt source destination
ACCEPT tcp-- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
----------------------------------------------------
5.启动包转发功能
将内网的FTP请求转发到外网的一个主机上。
iptables-t nat-A PREROUTING-p tcp-dport 21-j DNAT--to-dest 10.25.1.7:21
查看:
# iptables-L-t nat
要实现包转发,还需要编辑内核参数。
# cat/proc/sys/net/ipv4/ip_forward
0
默认包转发是禁止的。于是需要打开。编辑/etc/sysctl.conf,然后执行sysctl-p。
(三)保存iptables的规则
step 1)保存当前iptables的规则到文件中。
# iptables-save/etc/iptables.up.rules
step 2)开机恢复iptables的规则。方法是添加下面这行到文件‘/etc/network/interfaces/’的末尾。
pre-up iptables-restore/etc/iptables.up.rules
(四)禁用防火墙
iptables-F
似乎Ubuntu中没有类似service iptables stop这样的命令来暂停iptables。只能使用这种方法来禁用iptables(防火墙)。
使用前,请保证规则已经备份在文件中。
如何配置Ubuntu 14.04中的IPTables防火墙
本系列的上一篇文章中我们简介了IPTables的工作方式,在本次介绍中我们将通过实例来向大家演示如何在Ubuntu 14.04中配置IPTables的规则。
IPTables基本命令
在向大家介绍复杂防火墙规则之前,还是先上一些简单的料,让大家对IPTables最为基本的命令有一些简单了解。
首先要说明的是IPTables命令必需以root权限运行,这意味着你需要使用root身份登录或者能够有权限使用su或sudo-i取得root Shell。下面的内容中我们都使用sudo,这也是Ubuntu系统上的首选方法。
最好的起点就是先通过“-L”参数来查看下当前系统的所有IPTables规则:
sudo iptables-L
我们可以看到Linux中都有的3个常用默认链(INPUT、OUTPUT和FORWARD),同时也可以看到每个链的缺省策略(每个链对默认策略都是接受),在此我们可以看到Ubuntu中并没有添加任何默认规则集。
如果你希望通过命令来查看每个链的默认规则,可以使用“-S”参数:
sudo iptables-S
如果你看到IPTables里面已经有规则了,并希望取消这些规则后重新更配置话,可以使用“-F”参数来清空已有的规则集:
sudo iptables-F
虽然“-F”参数可以清空并刷新链中所有的现有规则集,但并不会对链的默认策略进行更改。因此,如果你是在更改远程VPS防火墙策略的话需要在“-F”清空所有规则时先将INPUT和OUTPUT链的默认策略恢复到ACCEPT,以免规则清空后SSH连接被阻断。要做到这一点可执行如下命令:
sudo iptables-P INPUT ACCEPT
sudo iptables-P OUTPUT ACCEPT
sudo iptables-F
在配置好允许SSH连接后(下面介绍),再将INPUT和OUTPUT链的默认规则更改为DROP即可。
创建自已的IPTables规则
现在就要开始为我们的VPS创建自定义的防火墙规则啦,正如上篇文章中所说,由于INPUT链会处理所有连接到服务器的入站数据包,因此我们的所有操作都与INPUT链有关。现在先来配置服务器允许SSH连接。
完整命令应该是这样的:
sudo iptables-A INPUT-m conntrack--ctstate ESTABLISHED,RELATED-j ACCEPT
大多朋友可能会觉得看起来怎么这么复杂,那我们来逐一分拆说明下。
-A INPUT:表明我们要将此规则追加到某个链的最后,由于我们要操作INPUT链接,所以这么写。
-m conntrack:iptables除了自己的核心功能外还只有一些实用的扩展和模块,这个参数表明添加conntrack模块提供的能力。(conntrack模块可以根据先前的连接来确定数据包之间的关系)
–ctstate:该参数是conntrack模块提供的,它可以确定如何用现在的数据包去匹配先前获得的数据包。ESTABLISHED值将自动允许现有连接的数据包,RELATED值将允许已建立连接的相关数据包。(这样就与SSH会话特性相匹配上了)
-j ACCEPT:这个参数用于指定匹配的数据包的目标。用在这里表示接受和允许符合上述标准的数据包通过。
配置好后我们来看一下:
sudo iptables-L
现在,你应该已经知道IPTables的基本语法了,下面我们继续添加规则打怪,以期尽快升级为高手。
接受其它必要连接
大家的VPS上一般SSH服务的22端口,Web服务器的80端口及Mysql的3306端口都是需要打开的,不然怎么对外提供服务呢。因此我们也需要通过如下命令在IPTables中打开这些端口:
sudo iptables-A INPUT-p tcp--dport 22-j ACCEPT
sudo iptables-A INPUT-p tcp--dport 80-j ACCEPT
sudo iptables-A INPUT-p tcp--dport 3306-j ACCEPT
为了保证我们的VPS能够正常运行,还需要添加一条允许规则。通常,计算机上的服务都会发送网络数据包以保持彼此之间的通信。而这种通信会利用到一个名叫loopback的伪网卡将流量引导回自己。因此,我们还需要为loopback网卡添加一条允许规则。
sudo iptables-I INPUT 1-i lo-j ACCEPT
-I INPUT 1:与“-A”不同,它可以指定要将规则添加到该链的位置。
实施Drop规则
前面讲的内容其实都是基于一个前提假设的,但事先我们需要先把防火墙的2种常用模式说明一下。一种是明确定义允许通过防火墙的规则,不匹配的都丢弃。另外一种是明确定义拒绝通过防火墙的规则,其余的都允许。我们的前提假设采用的就是第一种方式,这样配置起来相对简单,规则也较少,也更加安全。
前面我们已经为INPUT链接定义了一些允许规则,但默认INPUT链是允许所有包,所以我们现在需要将INPUT链的默认规则更改为“Drop”即丢弃。通过如下命令完成更改:
sudo iptables-P INPUT DROP
查看和保存配置
IPTables的配置是立即生效的,前面已经介绍过,在配置好之后我们可以直接用“-L”参数进行查看,这里再另外增加一个“–line-numbers”参数,它主要用于显示行数,对于规则较多时的查看非常方便。
sudo iptables-L--line-numbers
虽然IPTables的命令执行后会立即生效,但这个生效过程其实是临时的,系统在重启之后便会丢失。因此,我们还需要将这些配置添加到配置文件当中,以保证系统在下次重启后会自动载入我们的IPTables防火墙规则。
sudo apt-get update
sudo apt-get install iptables-persistent
该命令脚本下载执行后会询问我们是否对IPTables配置进行保存,如果确定的话选择“是”即可。保存后下次重启系统也不会造成配置丢失了。