最近搞了个VPS玩,学一下Linux。
想着设置一下防火墙,emm……先把本机的防火墙规则清一下。
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
???怎么ssh掉线登不上去了,完了,把自己也关在家门外了。
解决
登录控制台,加一下ssh的端口
iptables -A INPUT -p tcp -m tcp --dport 234 -j ACCEPT #端口234修改成自己的
service iptables save #保存配置
service iptables restart #重启iptables
改配置文件/etc/sysconfig/iptables也可以
okay 可以接着玩了。
因为我还搭了ss,其他配置参考了http://www.cnblogs.com/3body/p/6140150.html
2018/09/12
半年过去了,平时没有用iptables,又忘记用法,还是来记一笔,供自己以后查看。全部参考的上面的链接。
初始化,清空所有现有的规则:
iptables -F #清空所有链
iptables -X #清空所有自定义链
定义规则:
由于我们的目的是放弃所有无关于shadowsocks的数据,也就是说默认丢弃所有数据,只接受满足条件的数据,无疑是一种很安全的做法。
首先添加ssh端口:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #22自行修改,如我设置的 8888 端口
添加以下六条规则:
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 #允许已经建立和相关的数据包出去
需要注意的是,以上的七条基本上是必须添加的;下面开始添加其他必要端口:
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT #打开DNS需要用到的53端口
iptables -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT #允许80端口tcp协议的第一个数据包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许ESTABLISHED和RELATED状态的包
iptables -A INPUT -p tcp --dport 443 -j ACCEPT #打开https需要用到的443端口
网友评论