前端必須懂的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文件,它就至關因而白名單。

如今,你會感受你的服務器基本上已經安全了,能夠愜意的喝杯咖啡吧!

相關文章
相關標籤/搜索