Ubuntu中iptables的使用
(一) 设置开机启动iptables
# sysv-rc-conf --level 2345 iptables on
(二) iptables的基本命令
1. 列出当前iptables的策略和规则
# iptables -L -n
-n: 用数字形式显示
# iptables -L -v
-v: 打印详细的信息
2. 允许已经建立的连接接收数据
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
3. 开放端口22(SSH的默认端口),您要告诉iptables允许接受到的所有目标端口为22的TCP报文通过
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
注:ssh代表22,可以在/etc/services中查到的服务都可以这样使用。
4. 添加策略。策略也是一种规则,当所有规则都不匹配时,使用链的“策略”
链:INPUT, PREROUTING, FORWARD, POSTROUTING, OUTPUT
链策略的默认值是:ACCEPT。
表:filter (默认),nat,mangle。
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
----------------------------------------------------
root@patrick:~# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
----------------------------------------------------
5. 启动包转发功能
将内网的FTP请求转发到外网的一个主机上。
iptables -t nat -A PREROUTING -p tcp -dport 21 -j DNAT --to-dest 10.25.1.7:21
查看:
# iptables -L -t nat
要实现包转发,还需要编辑内核参数。
# cat /proc/sys/net/ipv4/ip_forward
0
默认包转发是禁止的。于是需要打开。编辑/etc/sysctl.conf,然后执行sysctl -p。
(三)保存iptables的规则
step 1) 保存当前iptables的规则到文件中。
# iptables-save > /etc/iptables.up.rules
step 2) 开机恢复iptables的规则。方法是添加下面这行到文件‘/etc/network/interfaces/’ 的末尾。
pre-up iptables-restore < /etc/iptables.up.rules
(四)禁用防火墙
iptables -F
似乎Ubuntu中没有类似service iptables stop这样的命令来暂停iptables。只能使用这种方法来禁用iptables(防火墙)。
使用前,请保证规则已经备份在文件中。
最新文章
- easycwmp的编译
- 改centos7的网卡名
- Android WebView 向上向下滑动监听
- 【Linux工具】GIT+Gollum在Ubuntu下搭建本地WIKI编辑系统
- Learn clojure in Y minutes
- 《Java程序设计》第3周学习总结
- 我对c++对象内存布局的理解
- Codeforces294B - Shaass and Bookshelf(贪心)
- 接口作为参数,不同的接口调用不同的方法,例如:输出“I love Game”或输出“我喜欢游戏”
- [转] 函数编程之闭包漫谈(Closure)
- HDU 1979 Red and Black
- 【分享】几篇关于Repository 相关的讨论、提问、文章
- 解决Spark filter过滤条件中使用>;=或<;=时不识别的问题
- 洛谷P1582 倒水题解
- Linux预处理、编译、汇编、链接和运行的过程(包括一些基本的命令)
- 详解lastindex,正则test()与全局匹配g偶遇,带来一会true一会false的坑
- 排序算法(4)--Selection Sorting--选择排序[1]--Simple Selection Sort--简单(直接)选择排序
- ubuntu下设置电脑为WiFi热点
- jenkins的docker
- 微信小程序开发4-JSON
热门文章
- LM358资料及引脚图
- grep查看源代码用法
- systemtap 用户态调试3
- 报错:无法将类型";System.Data.EntityState";隐式转换为";System.Data.Entity.EntityState";
- Spring Boot中使用redis的发布/订阅模式
- MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8
- 详解Linux中CentOS6.8下解压安装mysql-5.7.14
- 安装arcgis10.5不能启动服务的解决方案转
- Python3.6学习笔记(三)
- Hibernate @Entity注解配置说明