iptables学习笔记

1. 压力测试

ab

host1 ab -n 100000 -c 40 http://192.168.1.112/

host2 netstat -an|grep 80|grep 192.168.1.114 |grep EST -c

w

2. netfilter

linux核心层内部的一个数据包处理模块

3. hook point(INPUT OUTPUT FORWARD PREROUTING POSTROUTING)

数据包在netfilter的挂载点

4. iptables

四张表(filter nat mangle raw)+五条链(hook point)+规则

规则

数据包访问控制 ACCEPT DROP REJECT

数据包改写 SNAT DNAT

信息记录 LOG

table     command    chain        params         target

-t filter    -A        INPUT        -p tcp        -j ACCEPT

nat        -D        FORWARD        -s               DROP

-L        OUTPUT        -d               REJECT

-F        PREROUTING    -m  tcp           DNAT

-P        POSTROUTING        state       SNAT

-I                        multiport

-R

-n

5. iptables配置

iptables -L #列出规则

-F 清除已有规则

-n 不显示主机名

iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT #允许访问22到80端口

iptables -I INPUT -p icmp -j ACCEPT #允许ICMP

iptables -A INPUT -j REJECT #屏蔽其它访问

iptables -D INPUT -p tcp --dport 80 -j ACCEPT #先删除

iptables -I INPUT -p tcp --dport 80 -j REJECT #后拒绝

iptables -nL #不显示主机名列出规则

iptables -I INPUT -i lo -j ACCEPT #本机可以访问自己

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

#本机可以访问其它主机

iptables -D INPUT -p tcp --dport 80 -j ACCEPT #先删除

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

#只允许指定ip访问本机80端口

ftp主动模式(开放20端口) 客户端必须#iptables -F

#vim /etc/vsftpd/vsftpd.conf #配置文件

port_enable=yes

connect_from_port_20=YES

#iptables -I INPUT -p tcp --dport 21 -j ACCEPT #允许访问21端口

ftp被动模式(开放‘任意‘端口)(默认)

#vim /etc/vsftpd/vsftpd.conf

port_enable=NO

pasv_min_port=50000

pasv_max_port=60000

#iptables -I INPUT -p tcp --dport 21 -j ACCEPT #打开21号端口

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

#modprobe nf_conntrack_ftp #临时建立ftp被动

#modprobe -l #查看内核模块

#vim /etc/sysconfig/iptables-config #永久建立ftp被动

IPTABLES_MODULES="nf_conntrack_ftp" #设置参数

常见端口

http 80/tcp

https 443/tcp

smtp 25/tcp

smtps 465/tcp

pop3 110/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

规则设置

iptables -F

iptables -I INPUT -i lo -j ACCEPT

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

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #指定网段

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

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT

iptables -I INPUT -p icmp -j ACCEPT

iptables -A INPUT -j REJECT

/etc/sysconfig/iptables #配置文件

/etc/init.d/iptables save #执行以保存iptables设置

nat表规则配置

SNAT 源地址转换   出口POSTROUTING

DNAT 目标地址转换 进口PREROUTING

iptables -t nat -F

iptables -t nat -A PREROUTING -d 192.168.1.112 -p tcp --dport 80 -j DNAT

--to 192.168.2.112:80

iptables -t nat -L

6. 利用iptables防CC攻击

connlimit模块 #限制每一个客户端ip的并发连接数

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

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit

--connlimit-above 100 -j REJECT

iptables -I INPUT -p tcp --dport 80 -s 192.168.1.112 -m connlimit

--connmlimit-above 10 -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

iptables -A INPUT -p icmp -j DROP

7. 实例脚本

详见 ./iptables.sh

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 04:00:07

iptables学习笔记的相关文章

iptables学习笔记之编译内核和iptables及安装l7proto

            编译内核和iptables及安装l7proto 一.环境介绍 操作系统:Redhat5.8_64bit 需要软件包: linux-2.6.28.10.tar.gz netfilter-layer7-v2.22.tar.gz l7-protocols-2009-05-28.tar.gz iptables-1.4.6.tar.bz2 安装步骤: 1).给内核打补丁,并重新编译内核 2).给iptables源码打补丁,并重新编译iptables 3).安装l7proto 1.给

iptables 学习笔记

1.基本概念 linux内核模块netfilter实现防火墙功能,iptables.etables和firewalld都是用来实现跟内核的交互. 三个工具彼此冲突,同一时间系统只能使用其中一个. iptables是比较经典的工具,功能强大,资料较多.它有三张表nat,filter,mangle和5条链PREROUTING,INPUT,OUTPUT,FORWARD,POSTROUTING. filter是不加参数时的默认表,主要用来实现防火墙的功能:mangle是张自定义表,包含各个链,在数据流向

linux之iptables学习笔记

iptables原理: firewall:防火墙,是一种隔离工具,工作于主机或网络的边缘,对于进出本机或本网络的报文根据事先定义好的检查规则做匹配检测,对于能够被规则所匹配到的报文做出相应处理的组件,因此根据其作用的范围分为两类: 主机防火墙:对进出本主机的数据包进行规制匹配,并作出相应的处理动作. 网络防火墙:对流经本网络的数据包进行规制匹配,并作出相应的处理动作,工作在网络出口处,一般作为网关防火墙. 注意:防火墙规则匹配顺序机制:自上而下,对于中间匹配到的规则则按规则规定的处理动作进行处理

Iptables学习笔记(一)

iptables,即linux上的防火墙,实现了linux上的访问控制功能. 它的实现原理是在TCP/IP协议栈上放置了5个钩子函数(hook function),通过在每个函数设定相应的规则来实现访问控制的目的. 这5个钩子函数分别定义了规则生效的地方,他们分别是 prerouting:路由决策前生效input:由内核空间转至用户空间服务进程生效output:由用户空间进程转至内核空间生效 forward:内核空间转发生效postrouting:路由决策后生效 每个点都可以有多条规则,叫做规则

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为很多应用要解析到本地.oracle没有这个解析可能启动不了. 2.注释掉UUID以及MAC地址,需要绑定网卡的时候,这个可能会有影响. 3.磁盘满了无法启动,  var下木有空间,无法创创建PID等文件,导致文件无法启动,按e   进入single  然后b  重启进入单用户模式. 4.ssh登陆系

[原创] linux课堂-学习笔记-目录及概况

本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分析37:19 课时4 Linux获得帮助_网络配置_合理关机64:23 课时5 Linux文件权限详解45:47 课时6Linux文件权限详解45:47 课时7目录显示个性操作与全局环境变量的使用与注意···43:25 课时8复制与远程复制_文件查找实例_文件内容查看的··57:49 课时9Linu

基于CentOS7上的搭建javaweb环境 - 学习笔记

一, 概述 上一篇记录了安装CentOS7的基本步骤及配置,现在要讲如何搭建基于CentOS7环境的javaweb环境了,我以 mysql + jdk1.8.0_91 + apache tomcat7.0.69 为例进行讲述. 二, 安装步骤 1, 首先在CentOS7下在线安装mysql数据库服务 (1)先查看是否已安装了mysql rpm -qa | grep mysql (2)若安装了,可以卸载,再重新安装 yum -y remove mysqlxxxxx (3)安装 yum -y ins

memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论

附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memcached的服务器客户端通信并不使用XML等格式,而使用简单的基于文本行的协议,因此通过telnet也能在memcached上保存.读取数据. ②基于libevent事件来处理的 libevent是一套垮平台的事件处理接口的封装,能够处理兼容包括这些操作系统: windows/Linux/BSD/So

LVS学习笔记--DR模式部署

一.部署环境: 服务器版本:CentOS6.5(Finnal) 网络拓扑: 二.需求分析:调度服务器与网页服务器均在同一网段局域网环境,用户提交的请求会经过调度器的分配指定到网页服务器,同时保证服务高可用性(任意一台网站服务器宕机后调度器会剔除它直至服务器恢复至正常:主调度器宕机后从调度器会接管它直至其恢复正常.). 三.相关配置: 部署调度器LVS服务脚本: #!/bin/sh mkdir tools cd tools/ # yum install lrzsz # rz # ls wget h