文章最后更新时间:2024年04月14日
CentOS7默认的防火墙不是iptables,而是firewalle.
一、查看iptables、firewalle、selinux状态
systemctl status iptables systemctl status firewalld getenforce
二、安装 iptables
yum install -y iptables yum install -y iptables-services systemctl status iptables systemctl enable iptables.service
三、iptables 基本命令
systemctl start iptables.service #开启服务 service iptables save #保存 systemctl restart iptables.service #重起服务
四、添加规则
#查看iptables现有规则
iptables -L -n #先允许所有,不然有可能会杯具 iptables -P INPUT ACCEPT #清空所有默认规则 iptables -F #清空所有自定义规则 iptables -X #所有计数器归0 iptables -Z #允许来自于lo接口的数据包(本地访问) iptables -A INPUT -i lo -j ACCEPT #开放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放21端口(FTP) iptables -A INPUT -p tcp --dport 21 -j ACCEPT #开放80端口(HTTP) iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放443端口(HTTPS) iptables -A INPUT -p tcp --dport 443 -j ACCEPT #允许ping iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #其他入站一律丢弃
端口转发
端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。
如果配置好端口转发之后不能用,可以检查下面两个问题:
比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
其次检查是否允许伪装IP,没允许的话要开启伪装IP
————————————————
# 将80端口的流量转发至8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1 # 将80端口的流量转发至192.168.0.1的8080端口 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
文章版权声明:除非注明,否则均为爱分享吧 - 系统安全与免费软件的最佳分享平台原创文章,转载或复制请以超链接形式并注明出处。
如果配置好端口转发之后不能用,可以检查下面两个问题:
比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了
其次检查是否允许伪装IP,没允许的话要开启伪装IP
————————————————
# 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
# 将80端口的流量转发至
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1
# 将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080