iptables

作者: 做一只乐观的小猴子 | 来源:发表于2019-03-26 17:08 被阅读0次

Linux网络访问黑/白名单服务

编辑/etc/hosts.deny和/etc/hosts.allow文件配合使用完成网络IP的屏蔽.

sshd:10.1.5.*:allow

sshd:10.2.5.*:allow

以上写法表示允许10.1.5和10.2.5两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的

如果管理员集中在一个IP那么这样写是比较省事的

all:10.1.5.10//他表示接受10这个ip的所有请求!

service xinetd restart

首先列出iptables在linux内核中涉及的五个位置:

1.内核空间中:从一个网络接口进来,到另一个网络接口去的

2.数据包从内核流入用户空间的

3.数据包从用户空间流出的

4.进入/离开本机的外网接口

5.进入/离开本机的内网接口

这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。

1.PREROUTING (路由前)

2.INPUT (数据包流入口)

3.FORWARD (转发管卡)

4.OUTPUT(数据包出口)

5.POSTROUTING(路由后)

这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。

$iptables -L -v -n --line-numbers

-L INPUT,PREROUTING(prerouting,input,output,forward,postrouting五张默认链)

-t mangle,filter (查看过滤规则等信息,iptables中有raw,mangle,nat,filter四张表)

如果想要地址不经过域名的转换,那么添加参数-n

每一条规则前添加序号,那么在命令后面添加参数--line

$iptables -L -n 

查看状态:

service iptables status

通过它可以设置linux防火墙,查看过滤规则等信息,iptables中有raw,mangle,nat,filter四张表,prerouting,input,output,forward,postrouting五张默认链,因此,本文将说明如何通过iptables查看系统的规则信息。

给服务器设置iptables防火墙白名单

①清空iptables的配置,即还原到初始状态   //注意:执行以下操作后,所有远程连接都会失效,因此不适用于远程配置

>iptables -F     //删除INPUT,OUTPUT,FORWARD三个链的配置

>iptables -X     //删除所有用户配置的规则

②配置接入、输出、转接三个链

>iptables -P INPUT DROP             //限制接入端

>iptables -P OUTPUT ACCEPT      //开放输出端

>iptables -P FORWARD ACCEPT   //开放中转端

③加入白名单

>iptables -A INPUT -s 192.111.51.45 -p all -j ACCEPT       //开放所有端口给指定ip:192.111.51.45

>iptables -A INPUT -s 192.111.51.44 -p all -j ACCEPT      //开放所有端口给本机 

>iptables -A INPUT -s 192.111.1.51 -p all -j ACCEPT      //开放所有端口给指定ip:192.111.1.51

删除规则,(删除多余的规则)

>iptables -D INPUT 2   //删除INPUTl链的第二条规则

黑名单机制 # iptables -I INPUT  -p tcp --dport 80 -j REJECT

比如:不允许202.110.0.0/24的进行访问。

iptables -t filter -A INPUT -s 202.110.0.0/16 -p udp --dport 53 -j DROP

当然你如果想拒绝的更彻底:

iptables -t filter -R INPUT 1 -s 202.110.0.0/16 -p udp --dport 53 -j REJECT

④查看规则

>iptables -L -n --line-number       //查看当前iptables的规则及所有过滤的条目(白名单显示在这里)

⑤保存有效配置            

>iptables save  //保存设置

>iptables-save /etc/iptables.rule   //保存设置到文件中

>cat /etc/iptables.rule          //查看配置文件

⑥从配置文件中载入配置,iptables生效

>iptables-restore < /etc/iptables.rule

iptables配置文件在系统的/etc/sysconfig/iptables-config

修改完iptables配置文件还需要通过命令: 

service iptables save 进行保存 

service iptables save && service iptables restart 重启iptables


下面是定义某些ip为系统可访问白名单的配置,主要是在INPUT (数据包流入口)这个规则下拦截白名单以外的ip进行具体端口的访问:

# Generated by iptables-save v1.4.7 on Sun Sep 18 11:49:08 2016

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [382404:29851692]

#定义白名单变量名

-N whitelist

#设置白名单ip段

-A whitelist -s 120.25.122.0 -j ACCEPT

-A whitelist -s 120.25.122.1 -j ACCEPT

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

-A INPUT -p icmp -j whitelist

-A INPUT -i lo -j ACCEPT

#开放http/https端口外界访问

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

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

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

#系统远程连接及数据库端口规定白名单ip才可访问

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

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

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

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

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

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

COMMIT

相关文章

网友评论

      本文标题:iptables

      本文链接:https://www.haomeiwen.com/subject/zelnvqtx.html