这节课我们讲iptables在ubuntu干啥子的,还有如果不想做网管的程序员,那么他就不是好的厨子。by the way如果想深入了解linux可以看一下鸟哥的私房菜,那是一本我14年一个人躲在小黑屋看过几页的书。下面是小弟的愚见,如果有什么不对,还请阁下斧正。
什么是iptables
iptables
是用来设置、维护和检查Linux
内核的IP包过滤规则的。就是一个ip防火墙,也就是说我们无论用什么端口访问别人还是别人用什么端口来访问我们,都要经过iptables的名单的ip和端口才能正常访问。比如,我在阿里云买了一台云服务器,在服务器上装了tomcat服务,要给外网访问,这时候你要用到iptables加入8080端口,再云控制台添加该端口到安全组。for example 完成上诉操作后你才能在外网访问,比如访问这个地址http://119.23.108.84:8080/
iptables基本使用
查看当前iptables表 iptables -nvL --line-numbers
命令里面的n代表numeric数字打印ip和端口,这里的v代表verbose打印详细信息,这里的L代表iptables的全部list打印全部链,line-numbers 加数字前缀。
root@iZwz986xashhbt7wugurgkZ:~# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 1640 123K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
2 18115 1078K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
3 1269 95663 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
4 6500 695K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 80332 packets, 7525K bytes)
num pkts bytes target prot opt in out source destination
从上面代码我们看出有端口号8080,22,80,8090都加入了iptables的INPUT ,那么上面的INPUT和FORWADRD和OUTPUT是什么呢。iptables的INPUT链用来过滤进入的数据,比如我有的手机设置了只能手机尾号是091的人打进来,其他尾号的手机就打不进来了
iptables的OUTPUT链用来过滤出去的数据,比如我的手机在锁屏的紧急模式下只能打紧急电话,其他号码的手机就打不出来了
iptables高级使用
开放固定端口号
用下面这条
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
比如我们要开放3690端口号(svn端口号)我们可以这样子写
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT