linux iptables 相关设置

首先在使用iptables之前敲入一下两条命令

> iptables -F   #这句话的意思是清空所有的链

> iptables -X  #这句话的意思是清空所有自定义的链

以上两条的含义你可以简单的认为是iptables的初始化命令,无需深入。

下面我们将要开始建立一个iptables防火墙了。我们的做法是,默认所有的数据都丢弃,除非我认为满足条件的我才接受,有针对的打开我们需要的端口,无疑是很安全的一种做法。下面两句话可以定义默认全部丢弃数据包:

> iptables -P INPUT DROP

> iptables -P OUTPUT DROP

-P参数的意思是policy,翻译成策略~那么这两句话就好理解了。

第一句的意思是:

输入(INPUT)的数据包默认的策略(-P)是丢弃(DROP)的

第二句的意思是:

输出(OUTPUT)的数据包默认的策略(-P)是丢弃(DROP)的

其实到这里已经是一个有用的防火墙了,只不过,没有什么意义,和拔掉网线的概念没有什么不同。

首先写下这6句话:

iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
允许icmp包进入

iptables -A INPUT -s localhost -d localhost -j ACCEPT
允许本地的数据包

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

允许已经建立和相关的数据包进入

iptables -A OUTPUT -p icmp --icmp any -j ACCEPT
允许icmp包出去

iptables -A OUTPUT -s localhost -d localhost -j ACCEPT
允许本地数据包

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许已经建立和相关的数据包出去

说明一下,这6句基本上都是要的。

如果我的电脑是一台web服务器的话,别人也没有办法访问,怎样才能让别人能访问我的web呢?很简单,打开80端口。

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

但是这样的话,别人还是没有办法访问我,问什么呢?因为OUTPUT是关闭的,没有数据包能出去,那么就需要下面的一句话:

> iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这样别人就能访问你的web了。

但是如果你想访问别人的web怎么办呢?打开出去的80端口吧!

> iptables -A OUTPUT -p tcp -m state --state NEW --dport 80  -j ACCEPT
同样的这样的一句话还是不能起作用,我们需要打开别人进来的数据包

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

可以了么?试试看~还是不可以???为什么呢???对了,你可能想到了DNS端口没有打开怎么访问域名服务器呢?下面我们打开DNS端口吧!

> iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

> iptables -A INPUT -p udp --dport 53 -j ACCEPT

OK,这样就能访问别人的web站点了,不过如果你要访问https的站点,打开443端口吧

为了方便管理,我们可能还要经常ssh到这台服务器上去,那么打开22号端口吧!

> iptables -A IPUT -p tcp -dport 22 -j ACCEPT

或者我们还可能需要用这台电脑ssh到别的电脑上去

> iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

但是我只允许一个固定的ip能ssh到我的服务器上来怎么办呢?上句改成:

> iptables -A INPUT -p tcp --dport 22 -s 192.168.1.10 -j ACCEPT

上句话的意思是,只允许192.168.1.1的用户通过ssh进到服务器。不过这样还是不安全,我们可以同时绑定访问者的mac,这样就安全多了!

> iptables -A INPUT -p tcp --dport 22 -m mac --mac 00:18:de:a5:83:c7 -s 192.168.1.10 -j ACCEPT

最后脚本话一下:

#!/bin/bash
#DEFINE VARIABLES
HTTP_PORT=80

SECURE_HTTP_PORT=443
ALLOWED_MAC=00:18:de:a5:83:c7
SSH_PORT=22
DNS_PORT=53

ALLOWED_IP=192.168.1.10

#FLUSH IPTABLES
iptables -F
iptables -X

#DEFINE DEFAULT ACTION
iptables -P INPUT DROP
iptables -P OUTPUT DROP

#DEFINE INPUT CHAINS
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -s localhost -d localhost -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --dport $SSH_PORT -j ACCEPT
diptables -A INPUT -p tcp --dport 22 -m mac --mac $ALLOWED_MAC -s $ALLOWED_IP -j ACCEPT

#DEFINE OUTPUT CHAINS
iptables -A OUTPUT -p icmp --icmp any -j ACCEPT
iptables -A OUTPUT -s localhost -d localhost -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p tcp -m state --state NEW --dport $HTTP_PORT  -j ACCEPT
iptables -A OUTPUT -p tcp --dport $SECURE_HTTP_PORT -j ACCEPT
iptables -A OUTPUT -p udp --dport $DNS_PORT -j ACCEPT
iptables -A OUTPUT -p tcp --dport $SSH_PORT -j ACCEPT

时间: 2024-10-01 06:10:39

linux iptables 相关设置的相关文章

linux iptables 防火墙设置

1.启动指令:service iptables start 2.重启指令:service iptables restart 3.关闭指令:service iptables stop http://www.linuxidc.com/Linux/2012-03/56066.htm 开启: chkconfig iptables on 关闭: chkconfig iptables off 即时生效,重启后失效: 开启: service iptables start 关闭: service iptable

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 扩展(selinux了解即可) selinux教程 http://os.51cto.com/art/201209/355490.htm selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK 10.11 linux网络相关 -ifconfig 命令在centos7 是没有的,需要安装yum inst

工作中linux定时任务的设置及相关配置

工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次    0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type f -ctime +60 -exec rm -f {} \; ------------------------------------------------------------------- linux定时任务的设置 Posted on 2010-09-23 23:49 疯狂 阅读(13760

linux网络相关配置文件

linux网络相关配置文件 linux系统一般来说分为两大类:1.RedHat系列:Redhat.Centos.Fedora等:2.Debian系列:Debian.Ubuntu等. linux系统中,TCP/IP网络是通过若干个文本文件来进行配置的,需要配置这些文件来联网,下面对linux两大类系统中基本的TCP/IP网络配置文件做学习总结. 第一类Debian中Ubuntu系统为例 Ubuntu系统的网络配置文件有interfaces,resolv.conf等. 一.网络接口配置文件:/etc

Linux网络管理相关命令

•     OSI七层模型和TCP/IP四层模型•     IP地址分类•     了解常见的网络相关协议•     TCP三次握手和四次挥手•     网络相关的调试命令•     实战tcpdump和tshark抓包 OSI 七层模型物理层    网络:中继器,集线器.网线.HUB数据链路层    网络:网卡,网桥,交换机网络层    网络:路由器,防火墙.多层交换机传输层    计算机:进程和端口会话层    计算机:建立会话,SESSION认证.断点续传表示层    计算机:编码方式,图

转:db2 iptables相关用法

如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source                 destination Chain FORWARD (policy ACCEPT)target       prot opt s

Linux iptables防火墙添加删除端口

一.  Linux 防火墙的启动和关闭1.1 启动命令[[email protected] ~]# service iptables stopFlushing firewall rules:                                   [  OK  ]Setting chains to policy ACCEPT: filter nat                [  OK  ]Unloading iptables modules:                  

linux网络相关 |防火墙 |netfilter5表5链

10.11 linux网络相关 ifconfig 如果没有ifconfig,需要安装包 [[email protected] ~]# yum install net-tools 如果需要显示所有的网卡信息,包括down掉的或者没有IP地址的网络,使用-a命令 [[email protected] ~]# ifconfig -a 有时候会单独针对一个网卡做一些更改(如改网关,或者增加DNS),但是不想把所有的网卡都重启,只需要重启指定的网卡,为了避免down掉后无法启动,我们需要2个命令一起执行

十(3)linux下抓包、linux网络相关,firewalld和netfilter,5表5链

 linux下抓包  tcpdump  tcpdump工具默认没有 (yum install -y tcpdump) tcpdump -nn -i 设备名 tcpdump -nn -i ens33 (抓取本机网卡ens33数据包) -i 后面加设备名,如果抓取网卡则后面加网卡名(如本机的ens33) -nn 作用是让第3列和第4列显示成"ip+端口号"形式 如果不加-nn则会显示成"主机名+服务名称" 图中的">"表示 前面原ip要作用到哪