iptables 常用命令
-
关闭ubuntu的防火墙
sudo ufw disable
-
开启ubuntu的防火墙
sudo ufw enable
-
查看ubuntu的防火墙状态
sudo ufw status
-
关闭ubuntu中的防火墙的其余命令
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -Fiptables -t nat -F POSTROUTING
-
卸载了iptables
apt-get remove iptables
-
查看所有规则
iptables -L -x -n
-
允许已建立的连接接收数据
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-
开放指定的端口
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT //注意网卡
-
阻断通信
iptables -A INPUT -j DROP
-
进行至此,仍有一个问题,就是环回接口也被阻断了。刚才添加DROP规则的时候其实就可以使用-i eth0来解决这一问题。然而我们也可以为环回接口添加一条新规则来解决这个问题。但是不能将新规则追加到末尾,因为前一条规则已经把所有报文都丢弃了, 而应该把它插到DROP规则前面,即规则表中第四行的位置。
iptables -I INPUT 3 -i lo -j ACCEPT
-
规则表中的最后两行几乎一样,为了看看它们到底有什么不同,我们可以使用
iptables -L -v
-
删除添加的阻断通信第四条
iptables -D INPUT 4
-
删除nat表中postrouting的第一条规则
iptables -t nat -D POSTROUTING 1
-
在规则列表的最后增加1条规则
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
-
在指定的位置插入1条规则
iptables -I INPUT 3 -i lo -j ACCEPT
注意:规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的
sudo iptables -I INPUT -p tcp -m tcp --dport 25550 -j ACCEPT
iptables屏蔽三种ip段
封64.0.0.0—64.255.255.255 ip段的方法是在源ip里输入,64.0.0.0/8;
封64.64.0.0—64.64.255.255 ip段的方法是在源ip里输入,64.64.0.0/16;
封64.64.64.0—64.64.64.255 ip段的方法是在源ip里输入,64.64.64.0/24;
例子 sudo iptables -I INPUT -s 60.181.60.0/16 -j DROP
# iptables-save > /etc/iptables.up.rules #需要sudo su - root切换用户后执行,直接sudo cmd是不行的
查看nat规则
iptables -t nat -L
2、如果想取消上面所加的规则:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
3、阻止一个IP连接本机
iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
4、查看本机的IPTABLES的所填规则
iptables -L -n
使用IPtables 实现数据转发
1、设置为1表示开启数据包转发
echo 1 > /proc/sys/net/ipv4/ip_forward
2、配置转发规则和端口
iptables -t nat -A PREROUTING -d 120.24.4.118 -p tcp --dport 25560 -j DNAT --to 218.67.90.216
3、 数据包返回通道
iptables -t nat -I POSTROUTING -p tcp --dport 3306 -j MASQUERADE
2:rinetd端口转发
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd
sed -i 's/65536/65535/g' rinetd.c
mkdir /usr/man&&make&&make install
创建配置文件
cat >>/etc/rinetd.conf <<end
# allow 192.168.2.*
# deny 192.168.1.*
# bindadress bindport connectaddress connectport
0.0.0.0 3306 xxxx.rds.aliyuncs.com 3306
logfile /var/log/rinetd.log
end
echo rinetd >>/etc/rc.local
使用IPtables 实现数据转发
(2011-07-10 17:46:21)
转载▼
标签: 杂谈 | 分类:iptables |
背景:
某公司需要连接业务平台,但是又不能直接连接,需要一台机器A作为数据跳转。
具体需求:
B机器访问A机器的80端口需要跳转到C机器的80
解决方法:
使用iptables 的DNAT,SNAT实现。
A机器iptables设置:
iptables -t nat -A PREROUTING -s B机器地址 -p tcp -m tcp --dport 80 -j DNAT --to-destination C机器地址:80 (实现数据映射)
iptables -A FORWARD -s B机器地址 -j ACCEPT(允许B机器的数据通过这台机器)
iptables -P FORWARD DROP (设置默认FORWARD规则)
iptables -t nat -A POSTROUTING -j MASQUERADE (设置SNAT地址转换)
开启机器的路由转发:
vi /etc/sysctl.conf
将 net.ipv4.ip_forward = 0 改成:
net.ipv4.ip_forward = 1
sysctl -p
这样就可以实现拉。
记得保存设置
service iptables save
SNAT 指定目的地址的 转换:
iptables -t nat -A POSTROUTING -d xxx.xxx.xxx.xxx -j SNAT --to-source xxx.xxx.xxx.xxx:port
应用于中转机器:
访问A 机器地址的 8080 通过转换估定 IP 转发B 机器的 80
往往这个时候是访问A机器其他端
60.181.60.197
sudo iptables -L
sudo iptables -L -x -n
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F
在CentOS/RHEL 7上开启端口
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。
使用这些命令来永久打开一个新端口(如TCP/80)。
$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
$ sudo firewall-cmd --reload
如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。
在CentOS/RHEL 6上开启端口
在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。
使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则,还需要第二条命令。
$ sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
$ sudo service iptables save
另一种方法是通过一个名为system-config-firewall-tui的命令行用户接口(TUI)的防火墙客户端。
$ sudo system-config-firewall-tui
选择位于中间的“Customize”按钮,按下ENTER键即可
iptables -t nat -A PREROUTING -d 210.83.2.206 -p tcp --dport 21 -j DNAT --to 192.168.1.3 转发规则