关于iptables--基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于iptables--基础知识相关的知识,希望对你有一定的参考价值。

什么是iptables?

常见于linux系统下的应用层防火墙工具


常见人员:

系统管理人员、网络工程师、安全人员


iptables的作用:

一、如何用iptables搭建一套如何企业实际使用的防火墙规则

二、如何用iptables进行防攻击

三、如何利用iptables进行数据包准啊发

四、明白iptables的强大及实际使用意义



什么是Netfilter:

Netfilter是Linux操作系统核心层内部的一个数据包处理模块


什么是Hook point?

数据包在Netfilter中的挂载点

(PRE_ROUTING、INPUT、OUTPUT、FORDWARD、POST_ROUTING)



IPTABLES的四表五链

四张表:filter、nat、mangle、raw表


五条链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING


filter:访问控制,规则匹配


nat:地址转发


iptables的规则组成

数据包访问控制:ACCEPT、DROP、REJECT


数据包改写:SNAT、DNAT


信息记录:LOG


场景模拟

场景一:

规则一、对所有地址开放本机的tcp(80、22、10-21)端口访问

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

iptables -I INPUT -p tcp --dport 22 -j ACCEPT

iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT


规则二、允许所有的地址开放本机的基于ICMP协议的数据包访问

iptables -I INPUT -p ICMP -j ACCEPT


规则三、其他未被允许的端口则禁止访问 

iptables -A INPUT -j REJECT


场景一、存在的问题

1、本机无法访问本机

iptables -I INPUT -i lo -j ACCEPT(允许数据包通过lo地址访问)

2、本机无法访问其他主机

iptables -I INPUT -m state --state  ESTABLISHED,RELATED -j ACCEPT(建立这两种状态的数据监听时则允许)



补充:在场景一的基础上,修改只允许192.168.1.1的主机访问httpd服务

iptables -I INPUT -p tcp -s 192.168.1.1 --dport 80 -j ACCEPT


主动模式和被动模式的区别(数据链路和命令链路)


场景二:

1、ftp主动模式下iptables的规则配置

一、ftp连接的默认模式为被动模式


二、vsftpd服务支持主动模式需要注意配置选项

port_enabled=yes

connect_from_port_20=YES


三、iptables需要开启21端口的访问权限

#iptables -I INPUT -p tcp -dport 21 -j ACCEPT



2、ftp被动模式下iptables的规则配置 

方法1、为vsftpd指定数据端口,并且通过iptables开放相应需要传输的端口段

iptables -I INPUT -p tcp --dport 21 -j ACCEPT


vim /etc/vsftpd/vsftpd.conf

pasv_max_port=60000

pasv_min_port=50000


iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT


方法二、

iptables -I INPUT -i lo -j ACCEPT

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -I INPUT -p tcp -dport 21 -j ACCEPT

modprobe nf_conntrack_ftp


永久修改配置(vim /etc/sysconfig/iptables-config)

IPTABLES_MOUDULES="nf_connectrack_ftp"


场景三:

要求一、员工在公司内部(10.10.155.0/24,10.10.188.0/24)能访问服务器上的任何服务


要求二、当员工出差在上海,通过VPN链接到公司,外网(员工)==拨号到==》VPN服务器==》内网FTP、SAMBA、NFS、SSH


要求三、公司有一个门户网站需要允许公网访问



常见端口梳理

常见允许外网访问的端口

网站 www http 80/tcp

https 443/tcp

邮件 mail smtp 25/tcp

smtps 465/tcp

pop3 110/tcp

pop3s 995/tcp

imap 143/tcp


一些常见不允许外网访问的服务

文件服务器 NFS 123/udp

SAMBA 137,138,139/tcp,445/tcp

FTP 20/tcp,21/tcp

远程管理 SSH 22/tcp

数据库 mysql 3306/tcp

ORACLE 1521/tcp


配置规则的基本思路

ACCEPT 允许本地访问

允许已监听状态数据包通过

允许规则中的允许的数据包通过【注意开放ssh远程登陆端口】


DENY 拒绝未被允许的数据包

iptables 规则保存成配置文件


/etc/init.d/iptables save


利用iptables防cc攻击


connlimit模块


作用:用于限制每一个客户端ip的并发连接数


参数:-connlimit-above n #限制并发个数


例如:iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT


Limit模块


作用:限速,控制流量


例:iptables -A INPUT -m limit --limit 3/hour


--limit-burst 默认值为5


iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT


本文出自 “Linux系统运维” 博客,请务必保留此出处http://mbb97.blog.51cto.com/13129388/1959187

以上是关于关于iptables--基础知识的主要内容,如果未能解决你的问题,请参考以下文章

iptables

防火墙详解

kali linux怎么配置iptables

linux下IPTABLES配置详解

linux下IPTABLES的一些配置

马哥2016全新Linux+Python高端运维班-Iptables 防火墙基础练习,tcp_wrapper