常用命令:
安装防火墙:yum -y install iptables-services
配置防火墙:vi /etc/sysconfig/iptables
重启防火墙:service iptables restart
重启后永久性生效:
开启:chkconfig iptables on 关闭:chkconfig iptables off
即时生效,重启后失效:
开启:service iptables start 关闭:service iptables stop
在CentOS7系统中,增加开放端口:
# firewall-cmd --permanent –add-port=5911/tcp
# firewall-cmd --reload
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
1、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、设置 iptables serviceyum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
指令用法:
-A:指定链名
-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP
-p:指定协议类型(这里的协议通常有3种,TCP/UDP/ICMP)
-d:指定目标地址
--dport:指定目标端口(destination port 目的端口)
--sport:指定源端口(source port 源端口)
-j:指定动作类型(REJECT:拒绝 ACCEPT:接受 DROP:丢弃 等)
-m multiport:表示启用多端口扩展,之后我们就可以启用比如 --dports 21,23,80
-m state --state:
状态INVALID:无效的封装,例如数据破损的封包状态
ESTABLISHED:已经联机成功的联机状态
NEW:想要新建立联机的封包状态
RELATED:最为常用!表示这个封包是我们主机发送出去的封包有关,可能是响应封包或者是联机成功之后的传送封包,这个状态很常被设定,因为设定他之后,只要未来由本机发送出去的封包。即使我们没有设定封包的INPUT 规则,改有关的封包还是可以进入我们主机,可以简化相当多的设定规则
-i eth0:从这块网卡流入的数据,流入一般用在INPUT和PREROUTING上
-o eth0:从这块网卡流出的数据,流出一般在OUTPUT和POSTROUTING上
修改iptables方法:
1.vi /etc/sysconfig/iptables
2.直接添加规则:
如:
ACCEPT为允许;
DROP为放弃
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 等
(修改完要保存文件:/etc/rc.d/init.d/iptables save)
3.最后重启iptables:service iptables restart
补充:前提是DROP允许loopback!(不然会导致DNS无法正常关闭等问题)
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
在实体机设置禁止ip为192.168.0.102的虚拟机与ssh连接
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j DROP