linux系统防火墙iptables命令规则及配置的示例

linux系统防火墙iptables命令规则及配置的示例(本机IP为172.16.63.7):

1、允许172.16网段内的主机访问:

#iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.63.7 -j ACCEPT

译:-t表,默认filter -A追加规则 INPUT进入 -s检查源 -d检查目标 -j处理动作 ACCEPT接受;入栈的目标是本机所以-d是本机IP;

2、以数值格式显示详细信息,列出表中链上的规则:

#iptables -vnL 

pkts bytes译:XXX报文,XXXXX个字节

3、以数值格式显示详细信息,列出表中链上的规则,并数字标记规则条数:

#iptables -vnL --line-numbers

4、拒绝172.16.63.66主机访问(目前172.16.63.66可以ping通本机,也可以ssh等):

#iptables -t filter -A INPUT -s 172.16.63.66 -d 172.16.63.7 -j REJECT

注:如果你操作过第一个,那么此时设置完后,发现172.16.63.66依旧可以ping进来,原来是我们刚才已经添加了允许172.16网段访问的规则,所以此规则是后添加的,所以不生效。同一服务规则,小范围放上面,次序很重要。

如果是多个不同的服务,规则排序要根据实际情况,例如web服务每天访问量巨大,而禁止某IP服务属于小范围,如果把某IP禁止服务放在前面,每次web服务都要先检查次IP,所以应该把匹配性较大的规则放在前面。

5、删除刚才添加的“允许172.16网段访问的”规则:

#iptables -D INPUT 1 

注:需要先-vnL --line-numbers查询下,此规则属于第几条,这里第一条则删除第一条。

6、清空规则;

#iptables -F

注:当前策略一定要是ACCEPT,不然会被阻断(你可以试试),任何清空删除规则前,都要保证自己不会被阻断!!!

7、插入一条规则,不让172.16.63.66的主机访问本机:

#iptables -I INPUT -s 172.16.63.66 -d 172.16.63.7 -j REJECT

注:默认插入第一条,如果插入第二条,则:#iptables -I INPUT 2 -s 172.16.63.66 -d 172.16.63.7 -j REJECT

注:这样172.16.63.66进行ping本机时,会直接提示拒绝,当然这样是不友好的(就是拒绝你,呵呵...),所以我们一般建议使用DROP直接丢弃。

#iptables -I INPUT -s 172.16.63.66 -d 172.16.63.7 -j DROP

8、替换第一条规则,不让172.16.63.77的主机访问本机:

#iptables -R INPUT 1 -s 172.16.63.77 -d 172.16.63.7 -j DROP

9、放行本机上的ssh:

#iptables -A INPUT -s 172.16.0.0/16 -d 172.16.63.7 -p tcp --dport 22 -j ACCEPT

#iptables -A OUTPUT -d 172.16.0.0/16 -s 172.16.63.7 -p tcp --sport 22 -j ACCEPT

#iptables -p INPUT DROP

#iptables -p OUTPUT DROP

#iptables -p FORWARD DROP

如果此时还要允许本机ping其它(其它主机不写,表示全部):

#iptables -A OUTPUT -s 172.16.63.7 -p icmp --icmp-type 8 -j ACCEPT 允许ping其他了,但只放出了,进不来

#iptables -A INPUT -d 172.16.63.7 -p icmp --icmp-type 0 -j ACCEPT 所以还要开放进入的

如果此时也要允许其他主机ping本机:

#iptables -A INPUT -d 172.16.63.7 -p icmp --icmp-type 8 -j ACCEPT 8是回显请求

#iptables -A OUTPUT -s 172.16.63.7 -p icmp --icmp-type 0 -j ACCEPT 0是回显应答,此时其他主机也可以ping通本机

注意:此时如果直接使用#iptables -F清空,清空后的后果你懂得,呵呵呵...

所以此时我们要清空规则,则:

#iptables -p OUTPUT ACCEPT

#iptables -p INPUT ACCEPT

#iptables -p FORWARD ACCEPT

#iptables -F

10、iptables只开启ssh、web、telnet访问

先确定ss -lnt端口是否都已打开。

iptables -A INPUT -d 172.16.63.7 -p tcp -m multiport --dports 22:23,80 -j ACCEPT 连续的端口可用:表示XX端口到XX端口

iptables -A OUTPUT -s 172.16.63.7 -p tcp -m multiport --sports 22:23,80 -j ACCEPT

iptables -A INPUT -d 172.16.63.7 -j DROP

iptables -A OUTPUT -s 172.16.63.7 -j DROP

11、(根据上面继续来做)指定ip地址范围可以访问本机mysql

iptables -I INPUT 2 -d 172.16.63.7 -p tcp --dport 3306 -m iprange --src-range 172.16.63.70-172.16.63.100 -j ACCEPT

iptables -I OUTPUT 2 -s 172.16.63.7 -p tcp --sport 3306 -m iprange --dst-range 172.16.63.70-172.16.63.100 -j ACCEPT

mysql 本机添加一个mysql测试

GRANT ALL ON . TO 'root'@'%' IDENTIFIED BY 'whsir';

使用172.16.63.70-172.16.63.100之间的一个主机访问下试试:

mysql -uroot -h172.16.63.7 -pwuhao 可以连接上,没问题
12、(接上面操作)本机html内添加admin字符串,禁止网段内的IP不能访问带admin字符串的页面,但是可以访问其他页面

iptables -I OUTPUT -s 172.16.63.7 -p tcp --sport 80 -m iprange ! --dst-range 172.16.63.70-172.16.63.100 -m string --string "admin" --algo kmp -j REJECT 限制172.16.63.70-172.16.63.100网段

13、仅允许周2、4、6,9点到18点访问本机telnet

iptables -I INPUT -d 172.16.63.7 -p tcp --dport 23 -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays Tue,Thu,Sat -j ACCEPT

14、限制客户端对本机telnet服务并发连接数小于等于3

iptables -A INPUT -d 172.16.63.7 -p tcp --dport 23 -m connlimit --connlimit-upto 3 -j ACCEPT 同一主机最大同时能连接3个

iptables -A INPUT -d 172.16.63.7 -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -d 172.16.63.7 -j DROP

iptables -A OUTPUT -s 172.16.63.7 -j DROP

15、允许客户端对本机连续ping5个包,然后每三秒钟ping一个

iptables -I INPUT -d 172.16.63.7 -p icmp --icmp-type 8 -m limit --limit-burst 5 --limit 20/minute -j ACCEPT

每分钟ping20个,也就是3秒一个,这样可以防止客户端对本机的大量ping操作

时间: 2024-10-29 00:44:20

linux系统防火墙iptables命令规则及配置的示例的相关文章

linux系统防火墙iptables命令规则及配置

防火墙概述: 在互联网上我们的主机随时都有被攻击的可能,因此我们需要用到防火墙机制来保护我们互联网上的主机,在我们主机上面,防火墙主要是通过一些规则来限制一些不安全因素的网络信息传输,准确的说,防火墙就是制定一些有顺序的规则,来管理所负责的范围内的主机数据封包的一种机制,通过防火墙我们能够分析和过滤进出主机或者网络的封包数据,从而将一些不安全因素的包隔离开. iptables与netfilter: Linux上的防火墙是由iptables/netfilter组成,iptables是基于netfi

MySQL在Linux系统中隐藏命令行中的密码的方法

  这篇文章主要介绍了MySQL在Linux系统中隐藏命令行中的密码的方法,作者利用简单的C程序实现,需要的朋友可以参考下 在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?,类似MySQL在ps命令下隐藏密码. 假设我这里系统里两个用户,一个是root ,一个是dabu .测试系统为centos 6.5在按照下面的步骤做: ? 1 2 3 4 [r

Linux系统下apachectl命令使用说明

  linux中的apachectl命令其设计意图是帮助管理员控制Apache httpd后台守护进程的功能.apachectl脚本有两种操作模式.第一,作为简单的httpd的前端程序,设置所有必要的环境变量,然后启动httpd ,并传递所有的命令行参数.第二,作为SysV初始化脚本,接受简单的一个单词的参数,如:start, restart, stop ,并把他们翻译为适当的信号发送给httpd .下面就和小编一起看看Linux系统apachectl命令使用说明的详细版本吧! 功能说明:可用来

解析Linux系统安全的命令

  虽然Linux和Windows NT/2000系统一样是一个多用户的系统,但是它们之间有不少重要的差别.对于很多习惯了Windows系统的管理员来讲,如何保证Linux操作系统安全.可靠将会面临许多新的挑战.本文将重点介绍Linux系统安全的命令. passwd 1.作用 passwd命令用来修改账户的登陆密码,使用权限是所有用户. 2.格式 passwd [选项] 账户名称 3.主要参数 -l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用. -u:解开账户锁定状态,只有具备

详解Linux系统中md5sum命令的用法

  这篇文章主要介绍了详解Linux系统中md5sum命令的用法,用来处理MD5验证的相关操作,需要的朋友可以参考下 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相 同的报文摘要的可能性是非常非常之小的. 在linux或Unix上,

linux系统中ls命令的用法

普通文件: -,f目录文件: d链接文件(符号链接): L设备文件:字符设备:c块设备:b命名管道: p套接字文件: s linux文件时间戳 时间分为三种类型:创建时间,修改时间:open访问时间:读写改变时间:源数据发生改变时间   4. ls -s 在每个文件的后面打印出文件的大小. size(大小,以K为单位)5. ls -t 按时间进行文件的排序 Time(时间)6. ls -A 列出除了"."和".."以外的文件.7. ls -R 将目录下所有的子目录的

Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法

Linux系统中'dmesg'命令处理故障和收集系统信息的7种用法 'dmesg'命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构.cpu.挂载的硬件,RAM等多个运行级别的大量的系统信息.当计算机启动时,系统内核(操作系统的核心部分)将会被加载到内存中.在加载的过程中会显示很多的信息,在这些信息中我们可以看到内核检测硬件设备. dmesg Command Examples dmesg 命令的使用范例 'dmesg'命令设备故障的诊断是非常重要的.在'dmesg'命令的帮助下

如何使用GUI来配置Linux系统防火墙

随着带宽的飞速扩宽,互联网上的信息交流日益增大,毫无疑问,互联网上的安全,操作系统平台的安全也逐渐成为人们所关心的问题.而许多网络服务器,工作站所采用的平台为Linux/UNIX平台.Linux平台作为一个安全性.稳定性比较高的操作系统也被应用到了商业或者民用的网络服务领域. 尽管Linux是安全系数比较高的操作系统,但是由于它作为一种动态的.还在不断发展的操作系统,它自身仍然不可避免的存在着这样那样的问题.加之 Linux的发行版本十分的多,版本的升级换代频繁,市面上仍然存在着许多存在缺陷,没

Linux下防火墙iptables设置

基础知识 Linux系统内核内建了netfilter防火墙机制.Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制.Netfilter提供了iptables这个程序来作为防火墙数据包过滤的命令.Netfilter是内建的,效率非常高. 我们可以通过iptables命令来设置netfilter的过滤机制. iptables里有3张表: > Filter(过滤器),进入Linux本机的数据包有关,是默