Linux iptables 命令用法详解:Linux上常用的防火墙软件 高级网络

Linux iptables 命令用法详解:Linux上常用的防火墙软件

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。 语法 iptables(选项)(参数) 选项 -t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:创建新的用户自定义规则链; -P:定义规则链中的默认目标; -h:显示帮助信息; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源ip地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口。 iptables命令选项输入顺序: iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作 表名包括: raw:高级功能,如:网址过滤。 mangle:数据包修改(QOS),用于实现服务质量。 net:地址转换,用于网关路由器。 filter:包过滤,用于防火墙规则。 规则链名包括: INPUT链:处理输入数据包。 OUTPUT链:处理输出数据包。 PORWARD链:处理转发数据包。 PREROUTING链:用于目标地址转换(DNAT)。 POSTOUTING链:用于源地址转换(SNAT)。 动作包括: accept:接收数据包。 DROP:丢弃数据包。 REDIRECT:重定向、映射、透明代理。 SNAT:源地址转换。 DNAT:目标地址转换。 MASQUERADE:IP伪装(NAT),用于ADSL。 LOG:日志记录。 实例 清除已有iptables规则 iptables -F iptables -X iptables -Z 开放指定的端口 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接口(即运行本机访问本机) iptables -A INPUT...
阅读全文
Linux iptables-save 命令用法详解:备份iptables的表配置 高级网络

Linux iptables-save 命令用法详解:备份iptables的表配置

iptables-save命令用于将linux内核中的iptables表导出到标准输出设备商,通常,使用shell中I/O重定向功能将其输出保存到指定文件中。 语法 iptables-save(选项) 选项 -c:指定要保存的iptables表时,保存当权的数据包计算器和字节计数器的值; -t:指定要保存的表的名称。 实例 [[email protected] ~]# iptables-save -t filter > iptables.bak [[email protected] ~]# cat iptables.bak # Generated by iptables-save v1.3.5 on Thu Dec 26 21:25:15 2013 *filter :INPUT DROP [48113:2690676] :FORWARD accept [0:0] :OUTPUT ACCEPT [3381959:1818595115] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A OUTPUT -o...
阅读全文
Linux ip6tables 命令用法详解:linux中防火墙软件 高级网络

Linux ip6tables 命令用法详解:linux中防火墙软件

ip6tables命令和iptables一样,都是linux中防火墙软件,不同的是ip6tables采用的TCP/ip协议为IPv6。 语法 ip6tables(选项) 选项 -t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:创建新的用户自定义规则链; -P:定义规则链中的默认目标; -h:显示帮助信息; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源ip地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口。 -c<计数器>:在执行插入操作(insert),追加操作(append),替换操作(replace)时初始化包计数器和字节计数器。 实例 在命令行窗口输入下面的指令就可以查看当前的 IPv6 防火墙配置: ip6tables -nl --line-numbers /etc/sysconfig/ip6tables文件 使用编辑器编辑/etc/sysconfig/ip6tables文件: vi /etc/sysconfig/ip6tables 可能会看到下面的默认 ip6tables 规则: *filter :INPUT accept [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT...
阅读全文
Linux ip 命令用法详解:网络配置工具 高级网络

Linux ip 命令用法详解:网络配置工具

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。 语法 ip(选项)(参数) 选项 -V:显示指令版本信息; -s:输出更详细的信息; -f:强制使用指定的协议族; -4:指定使用的网络层协议是IPv4协议; -6:指定使用的网络层协议是IPv6协议; -0:输出信息每条记录输出一行,即使内容较多也不换行显示; -r:显示主机时,不使用IP地址,而使用主机的域名。 参数 网络对象:指定要管理的网络对象; 具体操作:对指定的网络对象完成具体操作; help:显示网络对象支持的操作命令的帮助信息。 实例 用ip命令显示网络设备的运行状态 [[email protected] ~]# ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:51 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:3e:00:1e:52 brd ff:ff:ff:ff:ff:ff 显示更加详细的设备信息 [[email protected] ~]# ip -s link list 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped...
阅读全文
mail命令_Linux mail 命令用法详解:命令行下发送和接收电子邮件 高级网络

mail命令_Linux mail 命令用法详解:命令行下发送和接收电子邮件

mail命令是命令行的电子邮件发送和接收工具。操作的界面不像elm或pine那么容易使用,但功能非常完整。 语法 mail(选项)(参数) 选项 -b<地址>:指定密件副本的收信人地址; -c<地址>:指定副本的收信人地址; -f<邮件文件>:读取指定邮件文件中的邮件; -i:不显示终端发出的信息; -I:使用互动模式; -n:程序使用时,不使用mail.rc文件中的设置; -N:阅读邮件时,不显示邮件的标题; -s<邮件主题>:指定邮件的主题; -u<用户帐号>:读取指定用户的邮件; -v:执行时,显示详细的信息。 参数 邮件地址:收信人的电子邮箱地址。 实例 直接使用shell当编辑器 mail -s "Hello from linuxde.net by shell" [email protected] hello,this is the content of mail. welcome to www.linuxde.net 第一行是输入的命令,-s表示邮件的主题,后面的[email protected]则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。 使用管道进行邮件发送 echo "hello,this is the content of mail.welcome to www.linuxde.net" | mail -s "Hello from linuxde.net by pipe" [email protected] 使用管道直接敲入这行命令即可完成邮件的发送,其中echo后的是邮件正文。 使用文件进行邮件发送 mail -s "Hello from linuxde.net by file" [email protected] < mail.txt 使用上面的命令后,我们就可以把mail.txt文件的内容作为邮件的内容发送给[email protected]了。 使用上述三种方式都可以给外部邮箱进行邮件发送,但因为前面2中都是直接在shell中敲入邮件内容,因此无法输入中文,即使我们使用粘贴的方式输入了中文,那么收到的邮件也是乱码的。但第3种方式,我们可以在window下编辑好邮件内容后,放到linux下,再进行发送,这样就可以正常发送中文了。不过目前邮件的中文标题暂时没有找到解决办法。 因为mail程序本身就是调用sendmail来进行邮件发送的,因此我们可以在mail命令中使用sendmail的参数进行配置,比如我想使用特定的发件人发送邮件,可以使用如下命令: mail -s "Hello from linuxde.net with sender" [email protected] -- -f [email protected]<mail.txt 上面的命令中,我们使用了–...
阅读全文
Linux tcpreplay 命令用法详解:将PCAP包重新发送,用于性能或者功能测试 高级网络

Linux tcpreplay 命令用法详解:将PCAP包重新发送,用于性能或者功能测试

简单的说,tcpreplay是一种pcap包的重放工具,它可以将用ethreal、wireshark工具抓下来的包原样或经过任意修改后重放回去。它允许你对报文做任意的修改(主要是指对2层、3层、4层报文头),指定重放报文的速度等,这样tcpreplay就可以用来复现抓包的情景以定位bug,以极快的速度重放从而实现压力测试。 选项 -A "<args>" 在使用 tcpdump 风格打印输出信息时,同时再调用tcpdump中的参数, 默认已经带有“-n,-l”,所以一般看到的都是ip地址,而没有主机名的打印,注意这个是在tcpreplay使用了-v参数时才能使用,不带-v不会报错,但是没有实际意义。格式:-vA “nnt”表示以tcpdump风格输出报文信息,并且不打印时间戳、主机名、端口服务名称。注意不要使用-c参数来指定打印的数据报文的个数,这样发送出去的报文也会变少。 -c <cachefile> 双网卡回放报文必选参数,后面紧跟cache文件名,该文件为tcpprep根据对应的pcap文件构造出来。 -D 把应用层的数据,使用dump mode写入到指定文件中去,和-w、-W 参数一起使用。 -e <ip1:ip2> 指定端点的ip,即把发送报文的和接收的报文的ip都修改称对应的参数值中指定的ip,但是这样发送的出的报文不会区分client和server。。 -f <configfile> 指定配置文件。 -F 在发送报文时,自动纠正错误的校验和。对测试DUT的校验和检验。 -h 显示帮助文件。 -i <nic> 双网卡回放报文必选参数,指定主接口。 -I <mac> 重写主网卡发送出报文的目的MAC地址。 -j <nic> 双网卡回放报文必选参数,指定从接口。 -J <mac> 重写从网卡发送出报文的目的MAC地址。 -k <mac> 重写主网卡发送报文的源MAC地址。 -K <mac> 重写从网卡发送报文的源MAC地址。 -l <loop> 指定循环的次数。 -L <limit> 指定最大的发包数量。可以在确认连接的调试时使用。 -m <multiple> 指定一个倍数值,就是必默认发送速率要快多少倍的速率发送报文。 加大发送的速率后,对于DUT可能意味着有更多的并发连接和连接数,特别是对于BT报文的重放, 因为连接的超时是固定的,如果速率增大的话, 留在session表中的连接数量增大,还可以通过修改连接的超时时间来达到该目的。 -M 表示不发送“火星”的ip报文,man文件中的定义是 0/8、172/8、 255/8。 -n 在使用-S参数,不对混杂模式进行侦听。 -N <CIDR1:CIDR2,...> 通过伪造的NAT,重写IP地址。这个参数应该有很重要的应用,目前没有测试使用。 -O 没有测试使用。 -p <packetrate> 指定每秒发送报文的个数,指定该参数,其它速率相关的参数被忽略,最后的打印信息不会有速率和每秒发送报文的统计。 -P 表示在输出信息中打印PID的信息,用于单用户或单帐户模式下暂停和重启程序。 -r <rate> 指定发送的速率。目前-m/-r/-p这3个参数的相互关系。 -R 让网卡极限速度发数据包。 -t <mtu> 指定MTU,标准的10/100M网卡的默认值是1500。 -T Truncate...
阅读全文
Linux tcpdump 命令用法详解:一款sniffer工具 高级网络

Linux tcpdump 命令用法详解:一款sniffer工具

tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。 语法 tcpdump(选项) 选项 -a:尝试将网络和广播地址转换成名称; -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作; -d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出; -dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出; -ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出; -e:在每列倾倒资料上显示连接层级的文件头; -f:用数字显示网际网络地址; -F<表达文件>:指定内含表达方式的文件; -i<网络界面>:使用指定的网络截面送出数据包; -l:使用标准输出列的缓冲区; -n:不把主机的网络地址转换成名字; -N:不列出域名; -O:不将数据包编码最佳化; -p:不让网络界面进入混杂模式; -q :快速输出,仅列出少数的传输协议信息; -r<数据包文件>:从指定的文件读取数据包数据; -s<数据包大小>:设置每个数据包的大小; -S:用绝对而非相对数值列出TCP关联数; -t:在每列倾倒资料上不显示时间戳记; -tt: 在每列倾倒资料上显示未经格式化的时间戳记; -T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型; -v:详细显示指令执行过程; -vv:更详细显示指令执行过程; -x:用十六进制字码列出数据包资料; -w<数据包文件>:把数据包数据写入指定的文件。 实例 直接启动tcpdump将监视第一个网络接口上所有流过的数据包 tcpdump 监视指定网络接口的数据包 tcpdump -i eth1 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。 监视指定主机的数据包 打印所有进入或离开sundown的数据包。 tcpdump host sundown 也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包 tcpdump host 210.27.48.1 打印helios 与 hot 或者与 ace 之间通信的数据包 tcpdump host helios and \( hot or ace \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信 tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包. tcpdump ip host...
阅读全文