Ubuntu下iptables使用记录

这里参考了百度百科还有Ubuntu论坛  http://wiki.ubuntu.org.cn/UbuntuHelp:IptablesHowTo/zh

这里参考了博主just_young大湿的文章  http://blog.csdn.net/just_young

1.查看iptables表项

sudo iptables -L -v

默认情况下,ubuntu下的iptables是允许任意流量进入的。所以刚开始时会看到如下的表项。

解释下target,防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,

或是某个专用值,如ACCEPT[通过],DROP[删除],QUEUE[排队],或者 RETURN[返回]。chain是链的意思,INPUT链表示入流量。

2.允许ssh协议通过eth0网卡的ssh端口(默认为22)进入服务器

sudo iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

根据我的理解解释一下命令:

(1)-A应该是append的意思,即在iptables的过滤表项中的末尾添加表项;

(2)INPUT是指的是进入服务器的流量;

(3)-p代表的是protocol,即协议;

(4)-i指定规则应用的网卡;

(5)--dport指定规则应用的端口;

(6)-j代表目标跳转

ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。

3.允许tcp协议通过eth0网卡的80端口进入服务器

sudo iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

4.允许lo协议进行回环

sudo iptables -A INPUT -i lo -j ACCEPT

sudo iptables -A INPUT -p tcp -i eth1 --dport 2181 -j DROP  (禁止2181,且网卡为eth1)

5.阻断其他流量

6. iptables可以方便的配置多个端口。其中根据端口的连续性,又可分为连续端口配置和不连续端口配置。

1、连续端口配置

如:

sudo iptables -A INPUT -p tcp –dport 21:25 -j DROP

注:这里是英文状态下的冒号。

2、使用multiport参数配置不连续端口

如:

sudo iptables -A INPUT -p tcp -m multiport –dport 21:25,135:139 -j DROP

sudo iptables -A INPUT -p tcp -m multiport -i eth1  --dport 2181:2183,18087,56370:56480  -j DROP

sudo iptables -A INPUT -i eth0 -j DROP

这里把除上述规则以外经过eth0进入服务器的IP包都丢弃了。

这时可查看我们的iptables列表如下所示,其中packets表示收到的IP包数量,bytes是字节数。

6.向iptables中插入规则

iptables是从前往后进行规则匹配的,如果有一条规则匹配则不会匹配后面的规则。所以如果我们在添加drop规则后,发现还要accept新的规则,则需要使用插入。

允许https协议的规则插入如下所示,它允许IP包经过eth0网卡和443端口,进入服务器

sudo iptables -I INPUT 3 -p tcp -i eth0 --dport 443 -j ACCEPT

7.插入icmp协议通过规则,即允许ping该主机

sudo iptables -I INPUT 3 -p icmp -i eth0 -j ACCEPT

8.使用如下的命令可以保存iptables的配置

机器重启的时候会将配置好的iptables表项清空,所以要做保存,否则下次不好恢复,可使用如下的命令进行保存操作。

sudo iptables-save > ~/iptables.up.rules

用vi查看该文件如下所示:

然后再修改/etc/network/interfaces文件,添加最后一行代码即可

auto eth0

iface eth0 inet dhcp

pre-up iptables-restore < ~/iptables.up.rules

9.删除一个iptables规则

可通过如下的命令来查看目前iptables的规则,如下所示,多了一行num,一会儿可通过num来指定要删除的规则。

sudo iptables -L -v --line-number

然后使用如下命令删除你想要删除的那一条规则,这里我删除的是第一条规则

sudo iptables -D INPUT 1

10.允许DNS请求

使用如下的命令可允许DNS查询请求和结果通过iptables过滤规则。

sudo iptables -I INPUT 1 -p udp -i eth0 --sport 53 -j ACCEPT

sudo iptables -I INPUT 1 -p udp -i eth0 --dport 53 -j ACCEPT

DNS有时候也会使用tcp因此可再加如下两条命令

sudo iptables -I INPUT 1 -p tcp -i eth0 --sport 53 -j ACCEPT

sudo iptables -I INPUT 1 -p tcp -i eth0 --dport 53 -j ACCEPT

11.允许本机访问HTTP/HTTPS/SSH

sudo iptables -I INPUT 7 -i eth0 -p tcp -m multiport --sports 22,80,443 -j ACCEPT

这条语句的意思是允许远程主机端口号为22,80和443的请求通过过滤规则。

时间: 2025-01-18 10:04:01

Ubuntu下iptables使用记录的相关文章

Ubuntu下iptables开放ftp端口的一个坑:227 Entering Passive Mode

事情是这样的,我搭的VSFTP服务器在一次重启后竟然外界连不上了,进去系统查看发现服务在正常运行着:内部也可登上排查发现是防火墙iptables的坑. 原来这个iptables规则是临时的,需要写入并save,不然重启后规则就清空了,造成外界无法登陆. 先说解决办法: iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT iptables -A OUTPUT -p

ubuntu下定时弹窗记录工作日志

背景 记录工作日志,是一个很好的习惯,但不容易坚持,本来打算每天记录,但经常拖延,拖着拖着,有一些事情就忘记了. 等到写周报或月报的时候,才会开始翻邮件,聊天记录,各个仓库的提交log等,回忆都干了些啥. 为了解决这个问题,需要有一个工具来帮助我,提高工作日志的完成度. 最开始的设想是,自动定时发送一个邮件或聊天消息,在其中回复工作记录.但转念一想,公司的系统就是这么做的,每天一封邮件提醒我写工作日志,但没什么实际作用.看来需要更加强力的提醒才行.想来想去,试试就用弹窗吧. 任务管理Taskwa

Ubuntu下使用UFW配置防火墙(简化iptables的操作)

UFW全称为Uncomplicated Firewall,是Ubuntu系统上配置iptables防火墙的工具.UFW提供一个非常友好的命令用于创建基于IPV4,IPV6的防火墙规则. 但是,UFW是没有界面的,就是用命令的那一种,所以,操作起来就不是那么的方便,有人帮它写了个界面,名字就叫做“Gufw”. 由于Ubuntu下的iptables操作起来比较复杂,依赖关系比较多,所以使用UFW时可以简化很多操作.当然Debian同样适用. 无论是桌面版还是服务器版, UFW的命令行用法是一样的.

ubuntu下针对php的thrift 安装折腾记录

此安装针对php开发配置 按照官方的文档做法,会出现各种bug,总结正确的安装方法: STEP1: 安装必要的依赖插件: sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev sudo apt-get install php5-dev php5-cli ph

Ubuntu下配置tftp服务和NFS服务

Ubuntu下配置tftp服务和NFS服务 配置tftp 方法一:(推荐方法)Ubuntu10.04 测试通过 1.安装TFTP软件 sudo apt-get install tftp-hpa tftpd-hpa tftp-hpa是客户端,tftpd-hpa是服务器端 2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)sudo chmod 777 ~/tftpboot 3.配置TFTP服务器

Ubuntu下搭建L2TP VPN Server

这是本人第一篇博客,也算是自己的尝试,以前学习东西,一般都是以文档的方式记录.文档有时候容易丢失,所以开始尝试用博客记录学习历程.毕业在即,在此记录毕设的一部分内容. 内容:Ubuntu下搭建L2TP VNP服务器(校园网Intranet VPN)   1 查看服务器主机网络信息 :$ ifconfig eth0      Link encap:Ethernet  HWaddr fa:16:3e:a0:64:0c             inet addr:172.16.0.61  Bcast:

ubuntu 下telnet服务安装配置

1. sudo apt-get install xinetd telnetd 2. sudo vim /etc/xinetd.conf并加入以下内容进行下一步的Ubuntu Linux telnet设置: # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { # Please note that you need a log_type line to be a

在Ubuntu下进行MongoDB安装步骤

一. 在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作): 1.运行"apt-get install mongo" 如果遇到找不到安装包的话运行"apt-get update" 2.这时装好以后应该会自动运行mongod程序,通过"pgrep mongo -l "查看进程是否已经启动 3.在终端输入"mongo",然后回车进入数据库 (Over) 下面说下如何自己启动mongodb的程序. 二. 重启系统以后mon

关于ubuntu下无线网卡经常连不上网络的问题

自从ubuntu14.04后就经常发现无线网络会经常掉线,重启无线网络后也是要不了几分钟就掉线了,今天装了16.04后发现依然有这个问题,最后上网查到一个方法,是用rfkill list all打开wifi硬件,发现在这里我的蓝牙被禁用了,然后就打开了蓝牙,让所有的硬件全部打开了:然后还是不行.准备放弃,然后切到win10系统,却偶然发现自从装完win10后没有的蓝牙图标又出现了.然后突然想到是不是在win下的无线网卡设置自动休眠后是不是也会影响ubuntu下的无线网卡设置呢?不管它,先禁用掉自