前端必须懂的Liunx

Linux系统设置

配置 SSH 服务

ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器ip
复制代码

配置SSH配置文件/etc/ssh/sshd_configmysql

sudo cp /etc/ssh/sshd_config ~     (备份,复原时使用)
	sudo vi /etc/ssh/sshd_config
复制代码
选项 含义
Port 默认22(可修改)
Protocol 2 ssh 协议使用新版的
PermitRootLogin no 不容许 root 登陆
PermitEmptyPasswords no 不容许空密码登陆
PasswordAuthentication no 使用密码受权登陆
RSAAuthentication yes 使用RSA算法进行安全验证
PubkeyAuthentication yes 容许公钥认证
UseDNS no 禁用DNS反向解析 会加快速度
SyslogFacility AUTHPRIV 记录用户登陆信息

设置完成以后,保存退出重启SSHDlinux

sudo service ssh restart
复制代码

或者ios

sudo /etc/init.d/ssh restart
复制代码

建立管理员帐户(可选)

配置登陆用户 ,假如用户名为deploynginx

useradd -d /home/deploy -s /bin/bash -m deploy
复制代码

为新建立的用户,设置密码算法

passwd deplay
复制代码

而后给deploy用户配置权限sql

sudo vi /etc/sudoers
复制代码

找到下面的这一行apache

root ALL=(ALL:ALL) ALl
	deplay ALL=(ALL) NOPASSWD: ALL
复制代码

NOPASSWD表示,在切换sudo的时候不须要输入密码,根据本身喜爱来设置vim

最后保存退出便可。后端

运行环境配置

检查服务器的区域设置。安全

locale
复制代码

若是结果不是 en_US.UTF-8,建议都设成它。

sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
	sudo dpkg-reconfigure locales
复制代码

而后,更新软件

sudo apt-get update
	sudo apt-get upgrade
复制代码

安全设置

ufw 防火墙
sudo ufw allow from [ip] to any port [端口] 仅特定ip能够访问此端口
	sudo ufw allow 80 容许80端口访问
	sudo ufw allow 443 容许443端口访问
	sudo ufw disable 禁用ufw
	sudo ufw enable 启用ufw
复制代码
iptables
iptables -I INPUT -s *.*.*.* -j DROP 封停ip
	 iptables -D INPUT -s *.*.*.* -j DROP 解封ip
复制代码
logwatch
  • 安装logwatch apt-get install logwatch
  • 编辑任务, 发送log到指定邮箱 vim /etc/cron.daily/00logwatch
#!/bin/bash
	# Check if removed-but-not-purged
	test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0
	# execute
	/usr/sbin/logwatch --output mail --mailto [邮箱] --detail high
	# Note: It's possible to force the recipient in above command
	# Just pass --mailto address@a.com instead of --output mail
复制代码
sendmail

安装 sendmail

sudo apt-get install sendmail  
	sudo apt-get install sendmail-cf
复制代码

若是mail命令不存在,安装mailutils

sudo apt-get install mailutils
复制代码

查看是否启动

ps aux | grep sendmail 复制代码

编辑配置文件, sudo vim /etc/mail/sendmail.mc 修改监听地址, DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl</span>

若是提示 hostname 不合格, 修改它

查看 hostname `hostname`
	修改 hostname `hostname [新值]`
复制代码

发送邮件

mail [邮箱地址]
	主题
	内容
	Ctrl-D结束
复制代码
Fail2Ban

对于 Debian / Ubuntu,使用 APT-GET 命令或 APT 命令安装。

sudo apt install fail2ban
复制代码

配置Fail2Ban

默认状况下,Fail2Ban 将全部配置文件保存在 /etc/fail2ban/ 目录中。 主配置文件是 jail.conf,它包含一组预约义的过滤器。 因此,不要编辑该文件,这是不可取的,由于只要有新的更新,配置就会重置为默认值。

只需在同一目录下建立一个名为 jail.local 的新配置文件,并根据您的意愿进行修改。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
复制代码

默认状况下,大多数选项都已经配置的很完美了,若是要启用对任何特定 IP 的访问,则能够将 IP 地址添加到 ignoreip 区域,对于多个 IP 的状况,用空格隔开 IP 地址。

配置文件中的 DEFAULT 部分包含 Fail2Ban 遵循的基本规则集,您能够根据本身的意愿调整任何参数。

# nano /etc/fail2ban/jail.local
	[DEFAULT]
	ignoreip = 127.0.0.1/8 192.168.1.100/24
	bantime = 600
	findtime = 600
	maxretry = 3
	destemail = mhecy98@gmail.com

复制代码

ignoreip:本部分容许咱们列出 IP 地址列表,Fail2Ban 不会禁止与列表中的地址匹配的主机 bantime:主机被禁止的秒数 findtime:若是在最近 findtime 秒期间已经发生了 maxretry 次重试,则主机会被禁止 maxretry:是主机被禁止以前的失败次数

如何配置服务

Fail2Ban 带有一组预约义的过滤器,用于各类服务,如 ssh、apache、nginx、squid、named、mysql、nagios 等。 咱们不但愿对配置文件进行任何更改,只需在服务区域中添加 enabled = true这一行就能够启用任何服务。 禁用服务时将 true 改成 false 便可。

# SSH servers
	[sshd]
	enabled = true
	port = ssh
	logpath = %(sshd_log)s
	backend = %(sshd_backend)s
复制代码

enabled: 肯定服务是打开仍是关闭。 port:指明特定的服务。 若是使用默认端口,则服务名称能够放在这里。 若是使用非传统端口,则应该是端口号。 logpath:提供服务日志的位置 backend:指定用于获取文件修改的后端。

重启 Fail2Ban

进行更改后,从新启动 Fail2Ban 才能生效。

[For SysVinit Systems]
	# service fail2ban restart
	
	[For systemd Systems]
	# systemctl restart fail2ban.service
复制代码

验证 Fail2Ban iptables 规则

你可使用下面的命令来确认是否在防火墙中成功添加了Fail2Ban iptables 规则。

# iptables -L
	Chain INPUT (policy ACCEPT)
	target prot opt source destination
	f2b-apache-auth tcp -- anywhere anywhere multiport dports http,https
	f2b-sshd tcp -- anywhere anywhere multiport dports 1234
	ACCEPT tcp -- anywhere anywhere tcp dpt:1234
	
	Chain FORWARD (policy ACCEPT)
	target prot opt source destination
	
	Chain OUTPUT (policy ACCEPT)
	target prot opt source destination
	
	Chain f2b-apache-auth (1 references)
	target prot opt source destination
	RETURN all -- anywhere anywhere
	
	Chain f2b-sshd (1 references)
	target prot opt source destination
	RETURN all -- anywhere anywhere

复制代码

查看启用的监狱列表,请运行如下命令。

# fail2ban-client status
	Status
	|- Number of jail: 2 `- Jail list: apache-auth, sshd 复制代码

经过运行如下命令来获取禁止的 IP 地址。

# fail2ban-client status ssh
	Status for the jail: ssh
	|- filter | |- File list: /var/log/auth.log | |- Currently failed: 1 | `- Total failed: 3 `- action
	 |- Currently banned: 1 | `- IP list: 192.168.1.115 `- Total banned: 1
复制代码

要从 Fail2Ban 中删除禁止的 IP 地址,请运行如下命令。

# fail2ban-client set ssh unbanip 192.168.1.115
复制代码
Portsentry

下载源代码

weget https://www.itkylin.com/download/portsentry-1.2.tar.gz
复制代码

解压、编译安装portsentry

tar -xpf portsentry-1.2.tar.gz
	cd portsentry_beta
	make linux 
	make install
复制代码

编辑配置文件

sudo vim /usr/local/psionic/portsentry/portsentry.conf
复制代码

找到RESOLVE_HOST,将其修改成RESOLVE_HOST = 0

启动PortSentry的TCP/UDP高级秘密扫描侦测模式

/usr/local/psionic/portsentry/portsentry -atcp
	/usr/local/psionic/portsentry/portsentry -audp
复制代码

设置随系统启动自动运行

执行以下命令

sudo vim /etc/rc.local
复制代码

将下面这两条命令写进去

/usr/local/psionic/portsentry/portsentry -atcp
	/usr/local/psionic/portsentry/portsentry -audp
复制代码

查询阻止的恶意扫描

portsentry阻档的全部恶意扫描记录会实时写入到/var/log/syslog文件,因此咱们只须要用tail命令就能实时的查询已阻止的恶意扫描,命令以下

tail -f /var/log/syslog
复制代码

被阻止的IP将会放入/etc/hosts.deny,如果有误判,能够编辑此文件删除便可。你也能够编辑/usr/local/psionic/portsentry/portsentry.ignore此文件,将误判的IP或要忽略的IP加入portsentry.ignore文件,它就至关因而白名单。

如今,你会感受你的服务器基本上已经安全了,能够惬意的喝杯咖啡吧!

相关文章
相关标签/搜索