iptables四表五链及参数详解参考:

https://www.cnblogs.com/miaocunf/p/11386418.html

iptables防火墙设置

停止并屏蔽firewalld:

  1. systemctl stop firewalld
  2. systemctl mask firewalld

安装iptables-services:服务存在则不需安装

yum install iptables-services

设置开机启动:

systemctl enable iptables

停止/启动/重启 防火墙:

systemctl [stop|start|restart] iptables
#or
service iptables [stop|start|restart]

查看iptables防火墙配置文件

vi /etc/sysconfig/iptables

开启6379端口指定 8.135.102.242 ip访问

iptables -I INPUT -s 8.135.102.242 -p tcp --dport 6379 -j ACCEPT

使用 iptables -L -n  --line-number  可以查看到每个规则chain  的序列号,只能这样才能删除指定的规则。

例如删除INPUT的第二条规则用如下命令。

iptables -D INPUT 2

开放一个IP的一些端口,其它都封闭

iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
通过iptables限制9889端口的访问(只允许192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止访问,注意顺序不能乱
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT 

开放redis的6379端口给指定ip及自己本地访问

#注意必须按照如下顺序写入,最后写入的命令会在第一个展示(倒序插入),number为1; 一定在所有规则最后执行 #禁止所有端口访问 ,即第一个输入禁止命令;因为iptables是按顺序判断的,最先命中第一条规则number为1后即(跳过filter表当前命中规则后的所有链规则)终止后续规则判断,后面的规则因此失效,假如 #禁止所有端口访问 最早执行(即number为1),则表示拒绝了所有请求的 6379端口,因此后面设置的规则将全部无效; 假设当前正在操作防火墙的服务器为A服务器
#禁止所有IP访问
6379 端口 (包括127.0.0.1)
iptables -I INPUT -p tcp --dport 6379 -j DROP
#开放本地自己可以访问 6379 端口 ,如果本地服务器项目中的host地址是服务器的真实ip(内网或外网ip),则还需要开放自己对应的ip才能访问
iptables -I INPUT -s 127.0.0.1 -ptcp --dport 6379 -j ACCEPT
#开放 18.125.102.212服务器的外网ip可访问 6379 端口
iptables -I INPUT -s 18.125.102.212 -ptcp --dport 6379 -j ACCEPT
#开放阿里云服务器(外网ip:18.125.102.212)的内网ip/6379端口可访问, 112.18.141.21 为其内网ip,开放之后,该服务器redis-cli可通过A服务器的内网ip来连接A服务器上的redis服务,即 redis-cli -h 112.18.16.126 -p 6379 (注: 112.18.16.126 是A服务器的内网ip)
iptables -I INPUT -s 112.18.141.21 -ptcp --dport 6379 -j ACCEPT

如果是开放mysql的3306端口给指定ip(如果是通过内网ip连接,则该ip是访问端服务器的内网ip)连接,还需要本机的mysql给用户授权,如下:

iptables -I INPUT -s 112.18.141.21 -ptcp --dport 3306 -j ACCEPT

mysql -uroot -p //输入密码进入mysql

grant all privileges on *.* to 'root'@'112.18.141.21' identified by 'fsd@aq0'; //root用户验证密码并授权所有数据库的所有表的访问权限
FLUSH PRIVILEGES;
//刷新数据库配置,不需要重启mysql

保存防火墙配置:

service iptables save
#or
/usr/libexec/iptables/iptables.init save

停止/启动/重启 防火墙:

service iptables [stop|start|restart]

firewall查看当前已经开放的端口:

firewall-cmd --list-ports

开启端口,以8888为例:

firewall-cmd --zone=public --add-port=8888/tcp --permanent

重启防火墙:

firewall-cmd --reload

其他指令:

# 关闭防火墙
firewall systemctl stop firewalld.service

# 关闭防火墙开机启动
firewall sustemctl disable firewalld.service

发表评论

电子邮件地址不会被公开。 必填项已用*标注