/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问的,通过它可以允许或禁止某个IP/IP段的客户访问Linux。
sshd:172.25.254. :spawn echo `date` from %c to %s >> /dev/pts/1
Linux的数据包过滤软件。
iptables里面有很多个表格,没个表格都定义出自己的默认策略和规则,且每个表格的用途都不相同。
Filter(过滤器):
主要跟进入Linux本季的数据包有关,是默认的table。
1、INPUT: 主要跟想进入Linux本机的数据包有关。
2、OUPUT: 主要跟Linux本机想要送出去的数据包有关。
3、FORWARD: 与Linux本机没有关系,它可以传递数据包到后端的计算机中,与 NAT的table相关性较高。
NAT(地址转换):
是Network Address Translation的缩写,这表格主要用来进行来源与目的地的IP或port的转换,与Linux本机无关,与要与Linux主机后的局域网内计算机相关。
PREROUTING:在进行路由判断之前所要进行的规则。
POSTROUTING:在进行路由潘多之后所要进行的规则。
OUTPUT:与发送出去的数据包有关。
Mangle(破坏者):
由于这个表格与特殊标志相关性较高,在此环境下,使用率很低。
yum install iptables-services -y
systemctl status iptables.service
systemctl enable iptables.service
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
查看规则
ipatable
-t #后面接table,若省略此项目,则使用默认的filter
-L #列出面前的table的规则
-n #不进行IP与HOSTNAME的反查,显示信息的速度会快很多
-v #列出更多的信息,包括通过该规则的数据包总位数,相关的网络接口等
target:代表进行的操作,ACCEPT(放行)、REJECT(拒绝)、DROP(丢弃)
prot:代表使用的数据包协议,主要有TCP、UDP和IPCM 3种数据包格式。
opt:额外的选项说明
source:代表词规则是针对哪个来源IP进行限制
destination:代表此规则是针对哪个目标IP进行限制。
参数:
-A #新增规则,默认在已有规则之后
-I #插入规则,默认是第一条
-io #网络接口
-p #协定
-s #来源 ip/网络
-d #目标 ip/网络
-j #后面跟操作
固定ftp端口
pasv_max_port=7000>vim/etc/vstpd/vstpd.conf
pasv_min_port=7000>vim/etc/vstpd/vstpd.conf
iptables -I INPUT 3 -m state --state NEW -p tcp --dport 7000 -j ACCEPT
一般来说,c端启用的端口都大于1024,而s端起用的端口都小于1023,所以我们可以丢弃来自远程的小于1023的端口数据的主动连接
POSTROUTING修改源ip,源NAT(SNAT)
PREROUTING修改目标ip,目标NAP(DNAT)
SNAT:
net.ipv4.ip_forward = 1>/etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-suource 172.25.254.130
DNAT:
net.ipv4.ip_forward = 1>/etc/sysctl.conf
sysctl -p
iptables -t nat -A PREROUTING -o eth1 -j DNAT --to-suource 172.25.0.130
其实dnat就是将snat反过来进行,很容易理解。
iptables service在/etc/sysconfig/iptables中储存配置
firewalld将配置存储在
/usr/lib/firewalld(系统配置,尽量不修改)
/etc/firewalld/中的各种xml文件里(用户配置地址)。
硬件防火墙默认一般有三个区,firewalld引入这一概念系统默认存在以下区域
firewalld-cmd –status ##火墙状态
firewalld-cmd - -get-default-zones ##显示当前使用的域
firewalld-cmd - -set-default-zones=trusted ##设置默认域
firewalld-cmd - -list-all ##显示火墙策略
firewalld-cmd - -add-service= ##临时添加火墙策略,立即生效
firewalld-cmd - -permanent - -add-service ##永久添加不reload的话不生效
firewalld-cmd - -permanent - -remove-service=
firewalld-cmd - -permanent - -add-port=8080/tcp
firewalld-cmd - -permanent - -remove-port=8080/tcp
ip授信:
firewalld-cmd - -permanent - -add-source=
firewalld-cmd - -permanent - -remove-source=
firewalld-cmd - -permanent - -add-source= - -zone=
firewalld-cmd - -permanent - -remove-source= - -zone=
这些策略在更改后需reload
网络接口
firewalld-cmd - -permanent - -add-interface= - -zone= ##将网络接口添加至某域
firewalld-cmd - -permanent - -remove-interface= - -zone= ##删除某域的某接口
更新防火墙规则
firewall-cmd --reload
firewall-cmd --complete-reload
两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务
firewall-cmd --zone=work --add-service=添加服务
firewall-cmd --zone=work --remove-service=移除服务
通过firewall-cmd工具,可以使用–direct选项在运行时间里增加或移除链。直接端口模式添加的规则优先应用。
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT ! -s 172.25.254.230 -p tcp --dport 22 -j ACCEPT
firewall-cmd --reload
systemctl restart firewalld
firewall-cdm --direct --get-all-rules
Ps:在direct功能下所写的策略等级都是平行的,没有先后顺序之分
更为高级的一种火墙策略语言,并且可以永久配置。,是iptalbes工具的抽象表示。这种芋圆可以用来配置分区,也仍然支持现行的配置方式。
firewall-cmd --permanent --add-rich-rules="rule family=ipv4 source address=172.25.254.30 forward=port port=22 protocol=tcp to-port=22 to-addr=172.25.0.230"
#dnat
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.254.130 masquerade'#snat
getenforce 0
semanage port -l
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 9527