centos7之防火墙firewalld配置入门
linux部分
iptables -L 列出当前防火墙策略
iptables -F 清空防火墙策略
iptables -P INPUT DROP 默认设置丢弃进来的流量包(-p指默认策略,该命令设置后不可ping通,无法上网)
iptables -I INPUT -p icmp -j ACCEPT -I指在最前面插入该规则,-p协议类型为icmp,-j方式为接受(INPUT/OUTPUT是指对某条链表进行该操作,该命令即是针对INPUT链表进行的操作)
iptables -D INPUT 1 删掉上一条在最前面的插入的命令
iptables -P INPUT ACCEPT 把上面DROP命令改为ACCEPT
iptables -D INPUT 1 删除INPUT链中第一条规则
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT 设置源目标-s,-dport端口,设置源目标可以访问22端口(即可以使用ssh登录,我试了很多次都无法连接,原来是ssh服务忘了开。默认不能使用root远程登录,如果希望远程用户使用root登录的话,编辑/etc/ssh/sshd_config找到RootLogin那行,把后面的值改为yes)
iptables -A INPUT -p tcp --dport 22 -j REJECT 最末尾添加该规则,拒绝所有访问22端口的请求,因为是在末尾的,所以优先级比上面一条低
service iptables save 永久保存
centos7部分
(想改用iptablse的话,还需要安装iptables-services)
firewall-cmd --get-default-zone #获取当前区域
firewall-cmd --get-zone-of-interface=ens33 #获取网卡ens33区域
firewall-cmd --permanent --zone=external --change-interface=ens33 #永久修改区域为external
firewall-cmd --get--zone-of-interface=ens33 #获取网卡ens33区域
firewall-cmd --reload # 每次修改都要重新载入firewall
firewall-cmd --set-default-zone=public
firewall-cmd --panic-on #切断一切网络连接
firewall-cmd --panic-off #恢复网络连接
firewall-cmd --zone=public --query-service/port=ssh/80 #查询ssh服务/port是否被允许
firewall-cmd --zone=public --add-service=https #增加https服务 --remove-service=https 删除https服务
firewall-cmd --zone=public --add/remove-port=8080-8081/tcp --permanent #允许/禁止8080和8081tcp端口
#允许指定IP访问80端口,如果要限制 accept改为reject
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80" accept"
firewall-cmd --zone=public --list-ports #列出所有开放成功端口
firewall-cmd --permanent --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10 端口转发:需要转发的端口为888,协议类型tcp,转发到某ip
关于--add-rich-rule说明:
当基本firewlld语法规则不能满足要求是,可以采用rich-rules富规则
例如:
拒绝从192.168.0.11的所有流量,当address 选项使用source 或 destination时,必须用family= ipv4 |ipv6
firewall-cmd --permanent --zone=classroom --add-rich-rule='rule
family=ipv4 source address=192.168.0.11/32 reject‘
服务的访问控制列表:
vim /etc/hosts.dny 在里面添加一行sshd:* 保存退出,dny是拒绝的意思,所以所有访问sshd服务的请求都会被会被拒绝
vm /etc/hosts.allow 在里面添加一行sshd:192.168.1. 保存退出,192.168.1.*都可以访问sshd服务
ssh服务
安全秘密验证登录(A机免密码登录B机)
A机: ssh-keygen 生成密钥对
ssh-copy-id B机ip 传送公钥文件到B机
B机: 配置ssh文件 vim /etc/ssh/sshd_config修改PasswordAuthentication 值为no
重启ssh服务器,A机即可无需密码口令也可以直接验证登录成功
scp远程传输命令:
scp /root/readme.txt root@192.168.1.66:/home 以root登录远程ip的方式把本地的readme.txt文件传送到66的主机home目录下 (需要两个都是linux系统)
screen不间断会话服务:
在A机: screen -S bptest 创建一个会话服务,-S是指创建该会话,后面的是会话的名字
在B机: ssh A的ip 因为screen是用ssh连接的,进入后输入密码
screen -ls 列出会话项目
screen -x bptest 执行bptest会话,-x指执行,现在两个屏幕开始同步,退出会话输入exit