环境:

uname -a(命令) :

Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

more /etc/redhat-release(命令):

CentOS Linux release 7.5.1804 (Core)

配置iptables防火墙的进站ip白名单和端口

1.确定是否启动了firewall 和iptables

如下是firewall的部分命令

1、重启、关闭、开启firewalld.service服务

service firewalld restart 重启

service firewalld start 开启

service firewalld stop 关闭

2、查看firewall服务状态

systemctl status firewall

3、查看firewall的状态

firewall-cmd --state

如果firewall是启动的 需要关闭掉

2.修改iptables的规则(首先需要确定是不是有iptables服务)

如果没有规则 需要安装:

1.安装iptables防火墙

yum install iptables-services #安装

2.编辑iptables防火墙配置

vi /etc/sysconfig/iptables #编辑防火墙配置文件

这个时候需要修改进站和出站规则

我的修改后iptables配置文件:

[root@localhost log]# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.4.21 on Mon Sep  3 13:04:46 2018

*filter

:INPUT ACCEPT [0:0]    允许所有ip端口访问

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:whitelist - [0:0]  -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT      -A INPUT -p tcp -m state --state NEW -m tcp --dport 11820 -j whitelist  -A INPUT -p tcp -m state --state NEW -m tcp --dport 6122 -j whitelist    -A INPUT -p tcp -m state --state NEW -m tcp --dport 20880 -j whitelist  -A INPUT -p tcp -m state --state NEW -m tcp --dport 20881 -j whitelist  -A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A whitelist -s 10.185.151.20 -j ACCEPT    -A whitelist -s 10.185.151.11 -j ACCEPT    -A whitelist -s 11.8.35.182 -j ACCEPT        -A OUTPUT -o lo -j ACCEPT                      COMMIT

# Completed on Mon Sep  3 13:04:46 2018

配置完成了后使用命令重启

iptables 部分命令如下:

查询防火墙状态    :    service   iptables status

查询防火墙设置的规则 iptables -L -n

停止防火墙   :    service   iptables stop

启动防火墙   :    service   iptables start

重启防火墙   :    service   iptables restart

永久关闭防火墙    :  chkconfig   iptables off

永久关闭后启用    :  chkconfig   iptables on

启动后就成功了。

可以看下这个配置文件,逻辑比较看得懂:

iptables配置文件的详细配置情况

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

#这里开始增加白名单服务器ip(请删除当前服务器的ip地址)

-N whitelist

-A whitelist -s  xxx.xxx.xxx.xxx -j ACCEPT

-A whitelist -s  xxx.xxx.xxx.xxx -j ACCEPT

-A whitelist -s  xxx.xxx.xxx.xxx -j ACCEPT

-A whitelist -s  xxx.xxx.xxx.xxx -j ACCEPT

#这里结束白名单服务器ip

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT  //开放1000到8000之间的所有端口

//上面这些 ACCEPT 端口号,公网内网都可以访问

//下面这些 whitelist 端口号,仅限服务器之间通过内网访问

#这里添加为白名单ip开放的端口

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist

-A INPUT -m state --state NEW -m tcp -p tcp --dport 13009 -j whitelist

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10080 -j whitelist

#这结束为白名单ip开放的端口

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#如果是要关闭 某个端口:

-A INPUT -p tcp --dport port -j REJECT

以下是端口,先全部封再开某些的IP

iptables -I INPUT -p tcp --dport Port-j DROP

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport Port-j ACCEPT

如果用了NAT转发记得配合以下才能生效

iptables -I FORWARD -p tcp --dport Port-j DROP

iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport Port-j ACCEPT

COMMIT

参考文档:

https://www.cnblogs.com/kesimin/p/8535286.html  (白名单和端口设置 )

https://blog.csdn.net/lee528066/article/details/52947980(Centos7.0-iptables linux的出站入站端口维护)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐