linux自学笔记--iptables

1.查看规则 iptables -nvL

2.表类型 -t raw,mangle,nat,filter(默认)

3.链管理

(1)新建链接: iptables -N test

(2)删除空链: iptables -X test

(3)启用和禁止: iptables -P INPUT ACCEPT|DROP

(4)重命名: iptables -E test test2

(5)清空: iptables -t nat -F

4.规则管理

(1)末尾追加: -A

(2)起始插入: -I number

(3)删除: -D number

(4)替换: -R number

5.基本匹配

(1)原地址匹配: -s

(2)目标地址匹配: -d

(3)启用禁止和拒绝: -j ACCEPT|DROP|REJECT

(4)协议匹配: -p tcp|udp|icmp

6.扩展匹配

(1)tcp:

-p tcp [-m tcp] --sport|dport 源端口和目标端口

-p tcp -m tcp multiport --sports|dports 22,80

-p tcp -m tcp iprange --src|dst-range x.x.x.x-x.x.x.x

-p tcp -m string --algo bm|kmp --string "xxxx"

-p tcp -m connlimit --connlimit-upto|above 最大最小并发

-p tcp -m stae INVALID|ESTABLISHED|NEW|RELATED|UNTRACKED

INVALID:无法识别的链接

ESTABLISHED:模板中存在记录

NEW:模板中不存在

RELATED:关联链接

UNTRACKED:未追踪的链接

追踪并记录的连接:/proc/net/nf_conntrack

最大连接数:/proc/sys/net/nf_conntrack_max

超时时长:/proc/sys/net/netfilter/xxxx_timeout

(2)udp: -p udp [-m udp] --sport|dport 源端口和目标端口

(3)icmp: -p icmp [-m icmp] --icmp-type 0|8 响应码和请求码

7.nat

(1)使用SNAT和DNAT条件:

开启核心转发:echo ‘1‘ > /proc/sys/net/ipv4/ip_forward

将内网主机网关地址指向转发服务器的内网网卡

(2)SNAT:

iptables -t nat -A POSTROUTING -s 127.0.0.1/24 -j SNAT --to-source x.x.x.x外网网卡地址,或

-j MASQUERADE 自动获取外网地址

(3)DNAT:可让外网主机访问转发器上的80服务,而转发器没有提供该服务,直接交由内网主机处理

iptables -t nat -A PREROUTING -s 0/0 -d x.x.x.x外网网卡地址 -p tcp --dport 80 -j DNAT --to-destination x.x.x.x内网主机地址

8.保存与加载

(1)service iptables save 命令:

它会保存在/etc/sysconfig/iptables这个文件中

(2)iptables-save 命令:

iptables-save > /etc/sysconfig/iptables

(3)iptables-restore 命令:

开机的时候,它会自动加载/etc/sysconfig/iptables

iptables-restore < /etc/sysconfig/iptables.2

(4)开机自起

把命令扔进/etc/rc.d/rc.local内即可

时间: 2024-10-10 06:26:17

linux自学笔记--iptables的相关文章

Linux学习笔记——iptables浅析

最近总结一些知识点越发吃力了,看来还是知识储备不足,用的不熟啊,还是硬着头皮来吧,争取多写点,毕竟好记性不如烂笔头不是么. 防火墙,就是用于实现Linux下访问控制的功能,它分为硬件的或者软件的防火墙两种.对于TCP/IP的模型来讲,第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测.但是对于七层的防火墙,不管你源端口或者目标端口,源地址或者目标地址是什么,都将对你所有的东西进行检查.所以,对于设计原理来讲,七层防火墙更加安全,但是这却带来了效率更低.市面上通常的防火墙方案,都是两者

Linux自学笔记——Centos系统安装

安装程序:anaconda bootloaderàkernel(initrd(rootfs))àanaconda anaconda的两种方式: tui:基于cureses的文本配置窗口: gui:图形界面: centos的安装过程启动流程: 以光盘启动安装为例: MBR:boot.cat stage2:isolinux/isolinux.bin 配置文件:isolinux/isolinux.cfg 每个对应的菜单选项: 加载内核:isolinux/vmlinuz 向内核传递参数:append 

Linux自学笔记——keepalived

本文部分参考博客:http://blog.51cto.com/1992tao/1869869 一.        VRRP协议 1.      技术优点: VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性. VRRP具有如下优点: 1)      简化网络管理.在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,

Linux自学笔记——dhcp,tftp,pxe

DHCP:Dynamic Host Configuration Protocol IP/Nermask Gateway DNS Server bootp:boot protocol --> dhcp 1.      Client:dhcp discover:发现 2.      Server:dhcp offer:(IP/netmask,gw) 3.      Client:dhcp request 4.      Server:dhcp ack 续租: Client:dhcp request

Linux自学笔记--基础命令date,cal等

逆水行舟,不进则退: date命令: 我们可以来man一下date命令,可以在上面看出 date的含义为 - print or set the system date and time,我们从以下几方面对date命令进行阐述. 1.   显示时间 date[OPTION]... [+FORMAT] format:格式符号 %D: %F: %T: 在屏幕中输入单独的date命令可以显示系统的时间: 同时我们也可以显示自己想要的时间显示格式: 2.   设置时间 date[-u|--utc|--un

linux自学笔记——RAID级别特性以及软RAID的实现

RAID,Redundant Arrays of Inexpensive Disks 廉价冗余磁盘阵列,又称为Redundant Arrays of Independent Disks,独立冗余磁盘阵列. 其基本原理就是利用多块较小的磁盘通过不同的组织方式,组成一个大的磁盘组,以提高磁盘的IO能力和耐用性.由于组织方式不同,所以把RAID分为多个级别.而最常用的是RAID0,RAID1,RAID5,RAID6,RAID10,RAID01.下面我们将对以上的级别进行比较分析. 级别:level R

Linux自学笔记——Centos启动流程

Centos启动流程大概为:POST --> Boot Sequence(BIOS)--> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs (readonly)-->switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端.

Linux自学笔记——Selinux简介

SElinux是美国国家安全局(NSA)对于强制访问控制的实现,是linux历史上最杰出的新安全子系统.NSA是在Linux社区的帮助下开发的一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在它的任务中所需要的文件.SElinux默认安装在Fedora和RedHat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到. DAC,自主访问控制,任何程序对其资源享有完全的控制权,每个用户或进程可以随意修改自己的文件的权限,将其他权限授予给其他人而具有任意的访问权

Linux自学笔记——linux文件系统

Linux的文件系统 根文件系统(rootfs),内核挂载的第一个文件系统,在启动流程的这一篇文章里有提到: LSB,FHS(Filesystem  Herirache Standard) 常用的文件系统目录:/etc,/usr,/var,/root/,/home,/dev 目录介绍:(以下截图很多是目录内容的部分截图) /boot:引导文件存放目录,内核文件(vmlinuxz).引导加载器(bootloader,grub)都存放于此目录: /bin:供所有用户使用的基本命令:不能关联至独立分区