防火墙

防火墙分类

  • 软件防火墙和硬件防火墙
  • 包过滤防火墙和应用层防火墙

  • centOS 6默认的防火墙是iptables

  • centOS 7默认的防火墙是firewallD(底层使用netfilter)

  • 规则表, 代表着功能

filter nat mangle raw

  • 规则链

INPUT OUTPUT FORWARD
PREROUTING POSTROUTING

iptables的filter表

  1. iptables -t filter 命令 规则链 规则
  2. 命令
  3. -L
  4. -A 在已有的规则后面添加规则 -I 在规则的最头部添加规则
  5. 注意: 相同ip的多个规则是最靠前的生效
  6. -D -F -P
  7. -N 添加自定义规则链 -X 删除自定义规则链 -E 重命名自定义规则链
  8. 示例:
  9. iptables -t filter -vnL 显示filter表的规则, n表示不做域名转换, v表示显示详细信息
  10. iptables -t nat -vnL 显示nat表的规则
  11. iptables -t filter -A INPUT -s 10.0.0.1 -j ACCEPT 添加一个可访问的ip, -t filer可省略
  12. iptables -A INPUT -s 10.0.0.2 -j DROP 添加一个不可访问的ip
  13. lang=c man iptables 显示英文的帮助, lang=c表示当前这个命令使用英文字符
  14. iptables -F 清除人为添加的所有的规则(默认规则不能更改)
  15. iptables -D INPUT -s 10.0.0.2 -j DROP 表示删除这条规则
  16. iptables -P INPUT DROP 更改INPUT的默认规则链为DROP

示例: 红框表示INPUT过滤链的默认规则是允许
一般配置ip规则有两种方式:

  • 默认全部允许, 配置阻止

  • 默认全部阻止, 配置允许

通常规则设置示例:
//

  1. 添加一个可访问的ip, 指定了ech0网卡, tcp的连接方式, 80的端口
  2. iptables -t filter -A INPUT -i ech0 -s 10.0.0.2 -p tcp --aport 80 -j ACCEPT
  3. 拒绝其余所有的ip访问
  4. iptables -t filter -A INPUT -j

image.png

iptables的nat表

  1. iptables -t nat 命令 规则链 规则
  2. PREROUTING 目的地址转换
  3. POSTROUTING 源地址转换
  4. 太复杂了略

firewalld

  1. systemctl start|status|stop|enable|disable firewalld.service
  2. iptablesfirewalld同时运行时会冲突
  3. 因此需要停掉iptables, service iptables stop
  4. 再启动firewalld, systemctl start firewalld.service
  5. firewall-cmd --state 显示firewall.service的运行状态
  6. firewall-cmd --list-all 显示所有配置
  7. firewall-cmd --add-service=https 添加一个可访问的服务给sourcesa限制的ip
  8. firewall-cmd --add-port=81/tcp --permanent 添加个端口, permanent表示永久生效, 不然重启后就不生效了
  9. firewall-cmd --reload 永久添加后需要重新加载, 才能看到
  10. firewall-cmd --remove-source=10.0.0.1 移除一个ip

如下图表示:

  • ech0网卡允许访问的ip有10.0.0.1
  • 这个ip可以访问ssh服务, ssh服务默认22端口; 还有个xxx服务
  • 这个ip可以访问80, 23端口

image.png

SSH

ssh称为安全的shell终端
ssh服务配置文件 cd /etc/ssh/
主要的服务端配置文件sshd_config, 客户端配置文件是ssh_config

  • 默认端口22
  • PermitRootLogin yes
  • AuthorizedKeysFile .ssh/authorized_keys

ssh连接

  1. 密码方式
  2. ssh [-p 端口] 用户@远程ip
  3. 秘钥方式
  4. ssh-keygen -t rsa 生成秘钥对
  5. ssh-copy-id 拷贝公钥

FTP协议

FTP协议是文件传输协议