Linux-服务管理

防火墙的概述:

软件防火墙,主要限制 ip,过滤 ip 等

  • 包过滤防火墙,比如 ip,iptables 就是包过滤防火墙
  • 应用层防火墙,比如根据系统用户来控制

硬件防火墙,用来防 dos 攻击等,也兼顾一些软件防火墙的功能

Centos 6 默认使用的防火墙是 iptables, Centos 7 是 firewallD, 但这两者底层都是内核中的 filter 过滤表来进行实际的控制

iptables 的表和链

规则表

  • filter,用来过滤
  • nat,地址转换
  • 其他查看 man iptables

规则链(确定规则的方向)

  • INPUT,外部请求进入当前主机
  • OUTPUT,当前主机发出的数据包
  • FORWARD,数据包经过当前主机转给其他主机
  • PREROUTING,路由前
  • POSTROUTING,路由后

iptables filter 表

  • iptales -t filter 命令 规则链 规则
# -v 显示更详细信息
# -n 不进行反向域名解析
# -L 显示iptables信息
# 所以查看防火墙的配置可以使用iptables -t filter -vnL
[root@iz2zeje77jss3tlyqj8p12z ~]# iptables -t filter -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
 # 增加iptables规则
 # -A 在规则后加入 -I 在规则前加入(靠前的优先级高)
 # -s 源地址 -d 目的地址
 # -j 指定是ACCEPT还是DROP
 [root@iz2zeje77jss3tlyqj8p12z ~]# iptables -t filter -A INPUT -s 10.0.0.1 -j ACCEPT
 # 下面默认规则都是ACCEPT,如果没有匹配到我们指定的规则,最后就会匹配默认规则
[root@iz2zeje77jss3tlyqj8p12z ~]# iptables -nvL
Chain INPUT (policy ACCEPT 49 packets, 3361 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       10.0.0.1             0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 31 packets, 8484 bytes)
 pkts bytes target     prot opt in     out     source               destination

 # 修改默认规则,以下为拒绝所有INPUT的ip连接
 iptables -P INPUT DROP

 # 清空所有自定义规则,不会修改默认规则
 iptables -F

 # 清空某个规则
 iptables -D 序列号

 # 多个规则
 # -i 指定网络接口(网卡)
 # -p 指定协议tcp/udp
 # -dport 指定端口
iptables -t filter -A INPUT -i eth0 -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT

iptables nat 表

  • iptables -t nat 命令 规则链 规则
# 修改目的地址,转发到10.0.0.1上
iptables -t nat -A PREROUTING -i eth0 -d 114.115.116.117 -p tcp -dport 80 -j DNAT --to-destination 10.0.0.1

# 修改源地址,将内网ip都改为出口IP地址
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to-source 111.112.113.114

iptables 自定义的规则默认是存在内存中的,需要持久化 可以直接在 /etc/sysconfig/iptables 中写数据,也可以下载工具将内存中的数据写到文件中 yum install iptables-services

SSH

ssh 服务配置文件 - sshd_config

  • Port 22 默认端口
  • PermitRootLogin yes 是否允许 root 登录
  • AuthorizedKeysFile .ssh/authorized_keys 秘钥认证文件

### 将公钥拷贝到服务器上
  • ssh-copy-id -i /root/.ssh/id_ras.pub root@/xxx

FTP 服务器 vsftpd 介绍与软件包安装

FTP 协议分为两条连接,不同的信息要用不同连接传输

  • 命令链路
  • 数据链路
# 安装
yum install vsftpd ftp

# 启动
systemctl start vsftpd.service

# 开机自启动
systemctl enable vsftpd.service

# 访问,使用ftp账户,则是匿名模式,默认的目录是宿主机的/var/ftp目录。也可以用系统用户,目录则是用户根目录
[root@VM-0-16-centos ~]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||31008|).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Apr 01  2020 pub
226 Directory send OK.

# 要开启ftp服务让别的主机访问,需要开放端口,最简单的用firewall-cmd --add-service ftp

# 下载和上传ftp 139.155.182.202
Connected to 139.155.182.202.
220 (vsFTPd 3.0.2)
Name (139.155.182.202:qq): xx
331 Please specify the password.
Password:
230 Login successful.
ftp> !ls # !可以执行本机命令
a.txt        get_product.py    ipv4        main.go        utils
aa.txt        go.mod        ipv6        result.txt    writefile.py
bfile        go.sum        knowledge.py    test
ftp> put a.txt # 上传文件,既在远程主机上写入文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
7500000 bytes sent in 0.926 seconds (7.72 Mbytes/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000      7500000 Nov 02 14:21 a.txt
drwxrwxr-x    2 1000     1000         4096 Nov 02 14:19 test
226 Directory send OK.
ftp> get aaaa.txt # 下载文件,既在本地主机上写入文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for aaaa.txt (7 bytes).
WARNING! 2 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Transfer complete.
7 bytes received in 0.000211 seconds (32.4 kbytes/s)

Samba 和 NFS 服务

  • samba 服务主要针对于 windows 和 windows 系统
  • NFS 主要针对的的是 linux 和 linux 系统

Nginx 基本配置文件

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty® 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。来自 OpenResty® 官网

# 下载
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install openresty

# 配置文件
/usr/local/openresty/nginx/conf/nginx.conf

# 启动
service openresty start|stop|restart|reload



Published under  on .

pipihua

我是皮皮花,一个前后端通吃的前端攻城狮,如果感觉不错欢迎点击小心心♥(ˆ◡ˆԅ) star on GitHub!