【学习背景】
Linux CentOS 6.5版本以前,默认防的火墙是iptables,CentOS6.5版本及以后版本,防火墙都由
iptables
升级为了firewall,不过底层还是基于iptables的指令,因此还是有必要了解了解。
本文主要介绍iptables的基本命令以及如何开放和阻止iptables防火墙常用端口
,如22、80、8080、3306等常用端口号。
目录
一、iptables安装
查看是否安装
iptables -V
安装(已安装的跳过)
yum install iptables-services
二、iptables基本操作
2.1 防火墙服务
#查看防火墙的服务
chkconfig --list | grep iptables
#永久关闭防火墙
chkconfig iptables off
#永久开启防火墙
chkconfig iptables on
2.2 systemctl基本命令
#查看防火墙的状态
systemctl status iptables.service
#停止防火墙
systemctl stop iptables.service
#启动防火墙
systemctl start iptables.service
#重启防火墙
systemctl restart iptables.service
#重载防火墙等价于restart
systemctl reload iptables.service
#禁止开机启动防火墙
systemctl disable iptables.service
#开机启动防火墙
systemctl enable iptables.service
2.3 service基本命令
#查看防火墙状态
service iptables status
#启动防火墙
service iptables start
#停止防火墙
service iptables stop
#重启防火墙
service iptables restart
#尝试重启防火墙
service iptables try-restart
#重载防火墙
service iptables reload
#强制重载防火墙
service iptables force-reload
三、防火墙端口(开放/阻止)
3.1 查询防火墙开放端口
iptables -L -n
或
iptables -L -n --line-number
3.2 开放防火墙指定端口
3.2.1 允许所有服务器访问指定端口
例如放开常用端口22/80/8080/3306
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
–参数说明
参数 | 说明 |
---|---|
-A | 添加一条INPUT的规则 |
-p | 指定是什么协议(TCP/UDP) |
--dport | 就是目标端口,当数据从外部进入服务器为目标端口 |
--sport | 数据从服务器出去,则为数据原端口 |
-j | 就是指定是ACCEPT 接受或阻止DROP |
重启服务
service iptables restart
或
systemctl restart iptables.service
保存配置
service iptables save
或
/etc/rc.d/init.d/iptables save
3.2.2 防火墙指定IP(允许/禁止)访问
# 允许ip访问
iptables -A INPUT -p tcp -s 192.168.xx.x -j ACCEPT
# 禁止ip访问
iptables -A INPUT -p tcp -s 192.168.xx.x -j DROP
–参数说明
参数 | 说明 |
---|---|
-s | 来源 |
3.2.3 防火墙指定IP(允许/禁止)访问指定端口
# 允许访问3306
iptables -A INPUT -s 192.168.xx.x -p tcp -m tcp --dport 3306 -j ACCEPT
# 禁止访问3306
iptables -A OUTPUT -s 192.168.xx.x -p tcp -m tcp --sport 3306 -j DROP
重启服务
service iptables restart
或
systemctl restart iptables.service
保存配置
service iptables save
或
/etc/rc.d/init.d/iptables save
四、删除防火墙端口
先查看防火墙端口规则
iptables -L -n
或
iptables -L -n --line-number
再根据序号删除指定端口的防火墙规则
iptables -D INPUT 1
iptables -D INPUT 2
iptables -D INPUT 3
iptables -D INPUT 4