iptables的配置文件|linux防火墙的配置文件在哪

① linux iptables 如何将配置文件中的规则导入当前规则

说的做吧,我尽量解释清楚。/etc/init.d/iptables start 启动iptables初始化iptables,删除之前的规则,iptables -Fiptables -Xiptables -Ziptables -F -t natiptables -X -t natiptables -Z -t nat允许SSH进入,要不然等下就连不上去了iptables -A INPUT -p TCP –dport 22 -j ACCEPT设置默认出入站的规则iptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT载入相应的模块modprobe ip_tablesmodprobe iptable_natmodprobe ip_nat_ftpmodprobe ip_conntrackmodprobe ip_conntrack_ftp配置默认的转发规则iptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPT允许内网连接iptables -A INPUT -i 内网网卡名(比如eth1) -j ACCEPT启用转发功能echo "1" > /proc/sys/net/ipv4/ip_forward配置源NAT,允许内网通过主机nat上网,即所谓的网络共享iptables -t nat -A POSTROUTING -s 内网网卡名 -o 外网网卡名 -j MASQUERADE把FTP服务器映射到外网iptables -t nat -A PREROUTING -p tcp -d 58.222.1.3 –dport 21 -j DNAT –to 192.168.0.211:21结束,别忘了保存service iptables save192.168.0.211的网关应该设成这成主机192.168.0.1。这样就行了。

② linux如何设置iptables

单个IP的命令是iptables -I INPUT -s 124.115.0.199 -j DROP封IP段的命令是iptables -I INPUT -s 124.115.0.0/16 -j DROPiptables -I INPUT -s 124.115.3.0/16 -j DROPiptables -I INPUT -s 124.115.4.0/16 -j DROP封整个段的命令是iptables -I INPUT -s 124.115.0.0/8 -j DROP封几个段的命令是iptables -I INPUT -s 61.37.80.0/24 -j DROPiptables -I INPUT -s 61.37.81.0/24 -j DROP用iptables禁止一个IP地址范围iptables -A FORWARD -s 10.0.0.1-255 -j DROP使iptables永久生效:1、修改配置文件: 配置文件是在/etc/iptables2、使用命令: 命令是/etc/rc.d/init.d/iptables save

③ linux中iptables防火墙怎么设置

一,安装并启动防火墙[[email protected] ~]# /etc/init.d/iptables start当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以CentOS为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。1.加载模块/sbin/modprobe ip_tables2.查看规则iptables -L -n -v3.设置规则#清除已经存在的规则iptables -Fiptables -Xiptables -Z#默认拒绝策略(尽量不要这样设置,虽然这样配置安全性高,但同时会拒绝包括lo环路在内的所#有网络接口,导致出现其他问题。建议只在外网接口上做相应的配置)iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP#ssh 规则iptables -t filter -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPTiptables -t filter -A OUTPUT -o eth0 -p tcp –sport 22 -j ACCEPT#本地还回及tcp握手处理iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPTiptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT#www-dns 规则iptables -I INPUT -p tcp –sport 53 -j ACCEPTiptables -I INPUT -p udp –sport 53 -j ACCEPTiptables -t filter -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPTiptables -t filter -A OUTPUT -o eth0 -p tcp –sport 80 -j ACCEPT#ICMP 规则iptables -A INPUT -p icmp –icmp-type echo-request-j ACCEPTiptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPTiptables -A OUTPUT -p icmp –icmp-type echo-reply -j ACCEPT二,添加防火墙规则1,添加filter表1.[[email protected] ~]# iptables -A INPUT -p tcp -m tcp –dport 21 -j ACCEPT //开放21端口出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。2,添加nat表1.[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE将源地址是 192.168.10.0/24 的数据包进行地址伪装3,-A默认是插入到尾部的,可以-I来插入到指定位置1.[[email protected] ~]# iptables -I INPUT 3 -p tcp -m tcp –dport 20 -j ACCEPT2.[[email protected] ~]# iptables -L -n –line-number3.Chain INPUT (policy DROP)4.num target prot opt source destination5.1 ACCEPT all — 0.0.0.0/0 0.0.0.0/06.2 DROP icmp — 0.0.0.0/0 0.0.0.0/0 icmp type 87.3 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:20 //-I指定位置插的8.4 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:229.5 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:8010.6 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED11.7 DROP all — 0.0.0.0/0 0.0.0.0/0 state INVALID,NEW12.8 ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 //-A默认插到最后13.Chain FORWARD (policy ACCEPT)14.num target prot opt source destination15.Chain OUTPUT (policy ACCEPT)16.num target prot opt source destination三,查下iptable规则1,查看filter表1.[[email protected] ~]# iptables -L -n –line-number |grep 21 //–line-number可以显示规则序号,在删除的时候比较方便2.5 ACCEPT tcp — 192.168.1.0/24 0.0.0.0/0 tcp dpt:21如果不加-t的话,默认就是filter表,查看,添加,删除都是的2,查看nat表1.[[email protected] ~]# iptables -t nat -vnL POSTROUTING –line-number2.Chain POSTROUTING (policy ACCEPT 38 packets, 2297 bytes)3.num pkts bytes target prot opt in out source destination4.1 0 0 MASQUERADE all — * * 192.168.10.0/24 0.0.0.0/0四,修改规则1.[[email protected] ~]# iptables -R INPUT 3 -j DROP //将规则3改成DROP五,删除iptables规则1.[[email protected] ~]# iptables -D INPUT 3 //删除input的第3条规则2.[[email protected] ~]# iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则3.[[email protected] ~]# iptables -F INPUT //清空 filter表INPUT所有规则4.[[email protected] ~]# iptables -F //清空所有规则5.[[email protected] ~]# iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则六,设置默认规则1.[[email protected] ~]# iptables -P INPUT DROP //设置filter表INPUT默认规则是 DROP所有添加,删除,修改后都要保存起来,/etc/init.d/iptables save.上面只是一些最基本的操作,要想灵活运用,还要一定时间的实际操作。iptables配置常规映射及软路由作用:虚拟化云平台服务器网段192.168.1.0/24 通过一台linux服务器(eth0:192.168.1.1、eth1:10.0.0.5)做软路由达到访问10.0.0.5能访问的网络范围,并且通过iptables的NAT映射提供服务。NAT 映射网络端口:效果: 10.0.0.5:2222 —-》 192.168.1.2:22命令:iptable -t nat -A PREROUTING -D 10.0.0.5 -p tcp –dport 2222 -j DNAT –to-destination 192.168.1.2:22service iptables saveservice iptables restart注意:1.在192.168.1.2的网络配置上需要将NAT主机的内网ip即192.168.1.1作为默认网关,如果10.0.0.5具有公网访问权限,dns则设置成公网对应dns2. echo 1 》 /proc/sys/net/ip_forward 在NAT 主机上需要开启转发才能生效软路由192.168.1.0/24通过10.0.0.5访问外网:命令:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT –to-source 10.0.0.5service iptables saveservice iptables restart

④ 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中

⑤ 如何修改linux iptables

1.首先介绍一下指令和相关配置文件启动指令:service iptables start 重启指令:service iptables restart 关闭指令:service iptables stop 然后是相关配置:/etc/sysconfig/iptables 如何操作该配置呢? vim /etc/sysconfig/iptables 然后进去修改即可,修改完了怎么办?这里很多人会想到/etc/rc.d/init.d/iptables save指令,但是一旦你这么干了你刚才的修改内容就白做了。。。 具体方法是: 只修改/etc/sysconfig/iptables 使其生效的办法是修改好后先service iptables restart,然后才调用/etc/rc.d/init.d/iptables save, 因为/etc/rc.d/init.d/iptables save会在iptables服务启动时重新加载,要是在重启之前直接先调用了/etc/rc.d/init.d/iptables save那么你 的/etc/sysconfig/iptables 配置就回滚到上次启动服务的配置了,这点必须注意!!! 2.下面介绍一些指令用法(主要还是man iptables看下相关资料才行)-A:指定链名 -p:指定协议类型 -d:指定目标地址 –dport:指定目标端口(destination port 目的端口) –sport:指定源端口(source port 源端口) -j:指定动作类型 3.如果我不像修改文件直接打命令可以吗,当然没问题,步骤如下:例如我给SSH加放行的语句: 添加input记录: iptables -A INPUT -p tcp –dport 22 -j ACCEPT 添加output记录: iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT 最后注意需要再执行一下 /etc/init.d/iptables save,这样这两条语句就保存到刚才那个/etc/sysconfig/iptables 文件中了。 4.接下来说明一下步骤,如果机器不在我身边,我只能SSH进去做iptables规则,那么我必须注意每一步,千万别搞错了,否则就SSH链接不上都有可能!首先要做的是给咱的SSH进行ACCEPT配置,以免直接无法连接的情况发生: 1.如果SSH端口是22(这里不建议用默认端口最好改掉SSH端口) iptables -A INPUT -p tcp –dport 22 -j ACCEPT iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT 注意要/etc/rc.d/init.d/iptables save,以下每一步都最好执行一遍此语句,以下不再累述。 2.vim /etc/sysconfig/iptables确定是否已经加入配置,可以的话执行service iptables restart重启后生效 3.下面是很危险的操作,如果你第一步没做就会直接可能导致你连不上SSH,此步骤前切记执行第一步!!! iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP 这个步骤是把所有不符合自己配置的规则ACCEPT的连接全部DROP掉,执行完以后如果咱SSH还没掉,那么谢天谢地,安全了,重启下iptables后继续下面的配置! 4.下面咱就不细说了,具体就是看自己服务器要开放哪些端口或者是要访问哪些端口来做具体的配置,下面是我自己的机器的配置: /etc/sysconfig/iptables文件配置如下: # Generated by iptables-save v1.4.7 on Fri Mar 2 19:59:43 2012 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [8:496] -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #ping使用的端口 -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT -A INPUT -s 192.168.2.200/32 -d 192.168.2.200/32 -j ACCEPT #允许服务器自己的SSH(对外部请求来说服务器是目标所以使用–dport) -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT #80端口不用说了吧,服务器网站访问端口 -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT -A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT -A INPUT -p tcp -m tcp –dport 11211 -j ACCEPT -A INPUT -p tcp -m tcp –dport 11212 -j ACCEPT -A FORWARD -j REJECT –reject-with icmp-host-prohibited #53端口是DNS相关,TCP和UDP都要配置 -A INPUT -p tcp -m tcp –dport 53 -j ACCEPT -A INPUT -p udp -m udp –dport 53 -j ACCEPT #ping使用的端口 -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT -A OUTPUT -s 192.168.2.200/32 -d 192.168.2.200/32 -j ACCEPT #允许服务器SSH到其他机器(使用外部端口就使用–dport) -A OUTPUT -p tcp -m tcp –dport 22 -j ACCEPT #允许服务器自己的SSH(自已为源输出就使用–sport) -A OUTPUT -p tcp -m tcp –sport 22 -j ACCEPT #访问外部网站80端口(使用外部端口就使用–dport) -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT #如果服务器需要访问外部网站,那么OUTPUT也需要配置53端口(使用外部端口就使用–dport) -A OUTPUT -p tcp -m tcp –dport 53 -j ACCEPT -A OUTPUT -p udp -m udp –dport 53 -j ACCEPT #如果有访问外部邮箱,那么打开邮箱相关端口(使用外部端口就使用–dport) -A OUTPUT -p tcp -m tcp –dport 465 -j ACCEPT -A OUTPUT -p tcp -m tcp –dport 25 -j ACCEPT -A OUTPUT -p tcp -m tcp –dport 110 -j ACCEPT #服务器网站访问端口(自已为源输出就使用–sport) -A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 3306 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 11211 -j ACCEPT -A OUTPUT -p tcp -m tcp –sport 11212 -j ACCEPT COMMIT # Completed on Fri Mar 2 19:59:43 2012 5.可能有时候需要删除规则,最简单就是修改一下/etc/sysconfig/iptables然后service iptables restart,最后/etc/rc.d/init.d/iptables save即可。当然也可以使用指令完成:在网上找了一下,删除规则的方法: 语法是: iptables -D chain rulenum [options] 其中: chain 是链的意思,就是INPUT FORWARD 之类的 rulenum 是规则的编号。从1 开始。可以使用 –line-numbers 列出规则的编号 所以,例如上面要删除一个INPUT链的规则的话可以这样:iptables -D INPUT 3 意思是删除第3条规则。 还有第二种方法。第二种办法是 -A 命令的映射,不过用-D替换-A。当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。也就是说,你如何用iptables -A…. 语句定义了一个规则,则删除此规则时就用 -D 来代替- A 其余的都不变即可。 ====================== 说一下上面的 –line-numbers 选项,如下面的命令: iptables -L INPUT –line-numbers 列出INPUT 链所有的规则 num target prot opt source destination 1 REJECT tcp — anywhere anywhere tcp dpt:microsoft-ds reject-with icmp-port-unreachable 2 REJECT tcp — anywhere anywhere tcp dpt:135 reject-with icmp-port-unreachable 3 REJECT tcp — anywhere anywhere tcp dpt:netbios-ssn reject-with icmp-port-unreachable … … 删除指定行规则: [[email protected] rc.d]# iptables -D INPUT 4 6.最后补充一下,如果想针对某IP进行单独开放端口可以如下配置:如果我需要对内网某机器单独开放mysql端口,应该如下配置: iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp –dport 3306 -j ACCEPT iptables -A OUTPUT -s 192.168.2.6 -p tcp -m tcp –sport 3306 -j ACCEPT 7.彻底禁止某IP访问:#屏蔽单个IP的命令是 iptables -I INPUT -s 123.45.6.7 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令 iptables -I INPUT -s 123.0.0.0/8 -j DROP #封IP段即从123.45.0.1到123.45.255.254的命令 iptables -I INPUT -s 124.45.0.0/16 -j DROP #封IP段即从123.45.6.1到123.45.6.254的命令是 iptables -I INPUT -s 123.45.6.0/24 -j DROP 指令I是insert指令 但是该指令会insert在正确位置并不像A指令看你自己的排序位置,因此用屏蔽因为必须在一开始就要加载屏蔽IP,所以必须使用I命令加载,然后注意执行/etc/rc.d/init.d/iptables save进行保存后重启服务即可

⑥ linux防火墙的配置文件在哪

一、Linux下开启/关闭防火墙命令1、永久性生效,重启后不会复原。开启: chkconfig iptables on关闭: chkconfig iptables off2、 即时生效,重启后复原开启: service iptables start关闭: service iptables stop需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。在当开启了防火墙时,做如下设置,开启相关端口,修改/etc/sysconfig/iptables 文件,添加以下内容:-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT二、UBuntu关闭防火墙iptables -A INPUT -i ! PPP0 -j ACCEPT三、CentOS Linux 防火墙配置及关闭执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将”安全级别”设为”禁用”,然后选择”确定”即可.或者用命令:#/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT#/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT#/etc/rc.d/init.d/iptables save这样重启计算机后,防火墙默认已经开放了80和22端口这里应该也可以不重启计算机:#/etc/init.d/iptables restart关闭防火墙服务即可:查看防火墙信息:#/etc/init.d/iptables status关闭防火墙服务:#/etc/init.d/iptables stop

⑦ 如何查看linux的iptables配置

1、用iptables命令直接查看[[email protected]~]#iptables-nv-L#-L是–list的简写,作用是列出规则2、直接查看iptables的配置文档[[email protected]~]#more/etc/sysconfig/iptables

⑧ 在linux 下如何设置iptables 防火墙

Linux系统内核内建了netfilter防火墙机制。Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制。Netfilter提供了iptables这个程序来作为防火墙数据包过滤的命令。Netfilter是内建的,效率非常高。我们可以通过iptables命令来设置netfilter的过滤机制。iptables里有3张表:> Filter(过滤器),进入Linux本机的数据包有关,是默认的表。> NAT(地址转换),与Linux本机无关,主要与Linux主机后的局域网内计算机相关。> Mangle(破坏者),这个表格主要是与特殊的数据包的路由标志有关(通常不用涉及到这个表的修改,对这个表的修改破坏性很大,慎改之)。每张表里都还有多条链:Filter:INPUT, OUTPUT, FORWARDNAT:PREROUTING, POSTROUTING, OUTPUTMangle:PREROUTING, OUTPUT, INPUT, FORWARDiptables命令的使用基本格式:iptables [-t table] -CMD chain CRETIRIA -j ACTION-t table:3张表中的其中一种filter, nat, mangle,如果没有指定,默认是filter。CMD:操作命令。查看、添加、替换、删除等。chain:链。指定是对表中的哪条链进行操作,如filter表中的INPUT链。CRETIRIA:匹配模式。对要过滤的数据包进行描述ACTION:操作。接受、拒绝、丢弃等。查看格式:iptables [-t table] -L [-nv]修改添加格式:iptables [-t table] -A chain CRETIRIA -j ACTION将新规则加入到表table(默认filter)的chain链的最后位置插入格式:iptables [-t table] -I chain pos CRETIRIA -j ACTION将新规则插入到table表(默认filter)chain链的pos位置。原来之后的规则都往后推一位。pos的有效范围为:1 ~ num+1替换格式:iptables [-t table] -R chain pos CRETIRIA -j ACTION用新规则替换table表(默认filter)chain链的pos位置的规则。pos的有效范围为:1 ~ num删除格式:iptables [-t table] -D chain pos删除table表(默认filter)chain链的pos位置的规则。pos的有效范围为:1 ~ num包匹配(CRETIRIA)上面没有介绍CRETIRIA的规则,在这小节里详细介绍。包匹配就是用于描述需要过滤的数据包包头特殊的字段。指定网口:-i :数据包所进入的那个网络接口,例如 eth0、lo等,需与INPUT链配合-o: 数据包所传出的那么网络接口,需与OUTPUT链配合指定协议:-p:tcp, udp, icmp或all指定IP网络:-s:来源网络。可以是IP或网络IP: 192.168.0.100网络: 192.168.0.0/24 或 192.168.0.0/255.255.255.0 均可可以在前加 ! 表示取反-d:目标网格。同 -s指定端口:–sport:指定来源端口。可以是单个端口,还可以是连续的端口,例如:1024:65535。–dport:指定目标端口。同–sport注意:要指定了tcp或udp协议才会有效。指定MAC地址:-m mac –mac-source aa:bb:cc:dd:ee:ff指定状态:-m state –state STATUSSTATUS可以是:> INVALID,无效包> ESTABLISHED,已经连接成功的连接状态> NEW,想要新立连接的数据包> RELATED,这个数据包与主机发送出去的数据包有关,(最常用)例如:只要已建立连接或与已发出请求相关的数据包就予以通过,不合法数据包就丢弃-m state –state RELATED,ESTABLISHEDICMP数据比对ping操作发送的是ICMP包,如果不想被ping到,就可以拒绝。–icmp-type TYPETYPE如下:8 echo-request(请求)0 echo-reply(响应)注意:需要与 -p icmp 配合使用。操作(ACTION)DROP,丢弃ACCEPT,接受REJECT,拒绝LOG,跟踪记录,将访问记录写入 /var/log/messages保存配置将新设置的规则保存到文件格式:iptables-save [-t table]将当前的配置保存到 /etc/sysconfig/iptables其它格式:iptables [-t table] [-FXZ]-F :请除所有的已制订的规则-X :除掉所有用户“自定义”的chain-Z :将所有的统计值清0

⑨ 如何配置Ubuntu 14.04中的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 ACCEPTsudo iptables -P OUTPUT ACCEPTsudo 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 ACCEPTsudo iptables -A INPUT -p tcp –dport 80 -j ACCEPTsudo 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 updatesudo apt-get install iptables-persistent该命令脚本下载执行后会询问是否对IPTables配置进行保存,如果确定的话选择“是”即可。保存后下次重启系统也不会造成配置丢失了。


赞 (0)