ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux自带防火墙开启IP白名单的的配置详解

Linux自带防火墙开启IP白名单的的配置详解

原创 Linux操作系统 作者:lusklusklusk 时间:2018-01-25 15:59:29 0 删除 编辑
防火墙配置文件名称/etc/sysconfig/iptables

Red Hat Enterprise Linux Server release 6.0开始默认配置如下
[root@DMT-Oracle-server ~]# cat /etc/sysconfig/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]
-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 -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

--iptables文件配置,从上至下生效,参考如上默认配置,如果去掉倒数第三、第二行关于REJECT的内容后service iptables start,相当于放开了所有权限,和没有开启防火墙的结果一样
--默认INPUT、OUTPUT、FORWARD都是ACCEPT的
--不添加规则,则对所有端口的数据来者不拒


[root@DMT-Oracle-server ~]# cat /etc/sysconfig/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]
-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 -p tcp -s 192.168.128.118 --dport 1521 -j ACCEPT
-A INPUT -p tcp -s 192.168.131.0/24 --dport 1521 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
--以上配置表示放开IP192.168.128.118和网段192.168.131的访问服务器1521端口,必须放在两行REJECT之前
--通过命令iptables -L -n 查看设置是否生效


各个参数解释,参考man iptables
-A, --append chain rule-specification,表示添加一条规则
-D, --delete chain rule-specification,表示删除一条规则
-R, --replace chain rulenum rule-specification,表示修改一条规则
-p, --protocol protocol,表示使用什么协议,TCP还是UDP
-s, --source address[/mask][,...],表示来源的IP或网段
-j, --jump target,This specifies the target of the rule  --后面接动作,主要的动作有接受(ACCEPT)、丢弃(DROP)、拒绝(REJECT)及记录(LOG)



INPUT、OUTPUT、dport、sport的区别:
INPUT:进入本机的规则
OUTPUT:本机出去的规则
dport:目的端口
sport:来源端口

例子1:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这条INPUT规则可以这么描述:
        1.这是一条从外部进入内部本地服务器的数据。
        2.数据包的目的(dport)地址是22,就是要访问我本地的22端口。
        3.允许以上的数据行为通过。

例子2:
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
这条INPUT规则可以这么描述:       
        1.这是一条从外部进入内部本地服务器的数据。
        2.数据包的来源端口是(sport)22,就是对方的数据包是22端口发送过来的。
        3.允许以上数据行为。

例子3:
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
这条OUTPUT规则可以这么描述:       
        1.这是一条从内部出去的数据。
        2.出去的目的(dport)端口是22。
        3.允许以上数据行为。

例子4:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
这条OUTPUT规则可以这么描述:   
        1.这是一条从内部出去的数据。
        2.数据包的来源端口是(sport)22,从本服务器的22端口发出数据。
        3.允许以上数据行为。


收集白名单IP(也就是经常连接数据库的IP)的脚本
[root@DMT-Oracle-server ~]# cat /iso/scripts/netstat_37.sh
#!/bin/sh
date>>/iso/scripts/log/netstat37.log
netstat -apnT|grep DW |awk '{print $5}'|sort -u >>/iso/scripts/log/netstat37.log
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" >>/iso/scripts/log/netstat37.log
#其中DW是OracleSID的部分关键字
#要加上-T否则太长的IP会统计不准确  -T, --notrim  stop trimming long addresses

cat /iso/scripts/log/netstat37.log|grep 192|grep -v 37:1521|grep -v ffff|awk -F ":" '{print $1}'
cat /iso/scripts/log/netstat37.log|grep 192|grep -v 37:1521 | awk -F ":"  '{print $4}'|sort -u

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30126024/viewspace-2150527/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 10年DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    348
  • 访问量
    1174986