主要了解防火墙的基本了解和iptables的使用
一、使用
(常用的参数、命令要记住)
1.iptable参数:
-A:添加一条规则,默认加在最后。
-I :添加规则默认最前
-F:清除规则
-j:加动作
-p 协议
–dport 目的端口 (拒绝别人链接我)
–sport 源端口 (拒绝我链接别人)
-s 源地址,可以是IP地址,SS也可以是网段“192.168.109.10/24”“-s 为空,表示拒绝所有
-d :目的地址
-i:网卡名(报文流入的接口)
-o :网卡名(报文流出的接口)
-m 模块
Usage(用法)
iptables -[ACD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options] 追加
iptables -R chain rulenum rule-specification [options] 修改
iptables -D chain rulenum [options] 删除
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options] 修改默认规则
iptables -h (print this help information)
两个修改规则的用法:
①:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
[root@localhost ~]# iptables -t filter -R INPUT 1 -s 192.168.1.51 -j ACCEPT
②:iptables -t 表名 -P 链名 动作
[root@localhost ~]# iptables -t filter -P FORWARD ACCEPT
2.iptables基本用法:
iptables -t 表 -A 链 匹配的条件 -j 动作
[root@localhost ~]# iptables -t filter -nL //列出规则
[root@localhost ~]# iptables -t filter -D INPUT -p tcp --dport 80 -s 192.168.42.61 -j ACCEPT
-i用法:
增加网卡:
-m:指明要调用的扩展模块机制
常用的扩展匹配条件:
-p tcp -m mutiport --sport用于匹配报文的源端口可以指定离散的多个端口,之间用逗号隔开
-p tcp -m mutiport --sport用于匹配报文的目标端口可以指定离散的多个端口,之间用逗号隔开
(1)容许其他服务访问本机的9000到10000端口。( -p tcp -m tcp :指定连续端口)
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport9000:10000 -j ACCEPT
(9)禁止访问本地21端口和80到500之间的端口。(-p tcp -m multiport :指定多端口)
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m multiport --dport 21,80:500 -j REJECT
基本用法:
-t :指定要操作的表,默认filter表
-L:列出规则,在-L后加上链名时表示查看指定链中的规则
-n:显示出IP地址
-x:显示计算器的精确值
–line-number:显示规则序号
一般用法:
[root@localhost ~]# iptables --line-number -t filter -nvxL OUTPUT
规则保存:
[root@localhost sysconfig]# service iptables save 保存规则到文件/etc/sysconfig/iptables
[root@localhost sysconfig]# iptables-save > /root/iptables #导出iptables模板
[root@localhost ~]# iptables-restore < iptables #导入iptables模板
3.Iptables规则配置
(①注意:一般我们所见到的这些连接,没有特殊说明就是tcp协议,说的也就是80端口,一般80端口就是给web服务的;协议和端口一起指定)
Centos7 :(要安装iptables,因为centos7服务改成了firewall)
安装iptables-service : #yum install iptables-services
停止firewalld: #systemctl stop firewalld
禁止firewalld自动启动 #systemctl disable firewalld
启动iptables: #systemctl start iptables
将iptables设为开机启动 #systemctl enable iptables
4.iptables基本练习:
(1)将来自于192.168.42.61的所有请求drop
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.42.61 -j DROP
(2)将来自于192.168.42.61的80请求drop
[root@localhost ~]# iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.42.61 -j ACCEPT
防火墙的运行顺序是从上往下一次匹配
(3)添加多个地址
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.42.61,192.168.42.128 -j DROP
(4)删除规则
[root@localhost ~]# iptables -t filter -D INPUT 2
(5)容许192.168.42.0/24所有网段访问80端口,容许192.168.42.1访问sshd服务。其他任何请求都拒绝
“白名单” —调整默认规则,一般情况不要调整默认规则。[root@localhost sysconfig]# iptables -t filter -I INPUT -p tcp --dport 22 -s 192.168.42.1 -j ACCEPT
[root@localhost sysconfig]# iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.42.0/24 -j ACCEPT >>>>
[root@localhost sysconfig]# iptables -t filter -A INPUT -j REJECT(6)容许该机器访问192.168.42.0/24网段的机器上的httpd服务。
[root@localhost sysconfig]# iptables -t filter -I INPUT -p tcp --dport 22 -s 192.168.42.1 -j ACCEPT
[root@localhost sysconfig]# iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.42.0/24 -j ACCEPT
[root@localhost ~]# iptables -t filter -I INPUT 2 -p tcp --sport 80 -d 192.168.42.0/24 -j ACCEPT
[root@localhost sysconfig]# iptables -t filter -A INPUT -j REJECT
[root@localhost ~]# iptables -t filter -I INPUT 3 -p tcp --dport 80 -s 192.168.42.61 -i ens32 -j ACCEPT(7)容许其他服务访问本机的9000到10000端口。
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 9000:10000 -j ACCEPT
(8)禁止访问本地的11211(memcache)以及21(ftp)服务。
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m multiport --dport 11211,21 -j REJECT
(9)禁止访问本地21端口和80到500之间的端口。
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m multiport --dport 21,80:500 -j REJECT