A1、登錄安全加固
1、密碼策略
最小密碼長度不少於16個字符
/etc/login.defs
- PASS_MIN_LEN=16
2、登錄策略
在用戶登錄時系統會出現”For authorized users only”的提示信息
/etc/issue
配置文件末尾添加
一分鍾內允許4次登錄失敗,超過4次,登錄賬號鎖定1分鍾
/etc/pam.d/system.auth
- auth required pam_tally2.so onerr=fail deny=4 unlock_time=60 even_deny_root root_unlock_time=60
密碼策略同時滿足大小寫字母、數字、特殊字符密碼
/etc/pam.d/system.auth
- password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authok_type=retry=3 difok=5 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
遠程用戶非活動會話連接超時應小與5分鍾
/etc/ssh/sshd.conf
修改
- ClientAliveInterval 300
A3、流量完整性保護
使用openssl申請證書,創建自簽名證書server.crt和私鑰server.key要求只允許使用域名通過SSL加密訪問
- openssl req -new -x509 -keyout server.key -out server.crt -config ../openssl.cnf
A5、服務ssh/vsftpd加固
1、SSH服務加固(/etc/ssh/sshd.conf)
修改22服務端口為2222
- 默認端口修改
- Port 2222
ssh禁止root用戶遠程登錄
- 修改配置文件
- RermitRootLogin NO
設置root用戶的計划任務。每天早上7:50自動開啟ssh服務,22:50關閉;每周7:30重新啟動ssh服務
crontab -選項:
-u 指定用戶設定計划
-e 進入用戶編輯計划
-l 列出用戶任務計划
-r 刪除用戶任務計划
編輯參數和取值范圍有:
* * * * *
分 時 日 月 周
0/59 0/24 0/31 0/12 0/7
crontab -u root -e
- 50 7 * * * /sbin/service sshd start
- 50 22 * * * /sbin/service sshd stop
- 30 7 * * */6 /sbin/service sshd restart
2、VSFTPD服務加固(/etc/vsftpd/vsftpd.conf)
VSFTPD禁止匿名用戶上傳
- 修改配置文件:
- anon_upload_enable=NO
激活VSFTPD上傳下載日志
- 修改配置文件:
- xferlog_enable=YES
設置無任何操作的超時時間為5分鍾
- 修改配置文件:
- idle_seesion_timeout=300
用戶訪問的最大傳輸速率為1M
- 在文件末尾添加:
- local_max_rate=1000000
匿名用戶訪問的最大傳輸速率為512KB/S
- 在文件末尾添加:
- anon_max_rate=600000
VSFTPD同一個IP只能連接兩個
- 在文件末尾添加:
- max_per_ip=2
VSFTPD將使客戶端連接時的端口范圍在50000和60000之間
- 在文件末尾添加:
- pasv_min_port=50000
- pasv_min_port=60000
VSFTPD使本地用戶登錄活動范圍限制在home目錄
- 修改配置文件:
- chroot_local_user=YES
A6、iptables防火牆
禁用23端口
- iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 23 -j DROP
禁止別人ping
- iptables -t filter -I INPUT -p icmp -j DROP
禁止所有人連接ssh,除了172.16.1.1
- iptables -A INPUT -p tcp --dport 22 -s 172.16.1.1 -j ACCEPT
- iptables -A INPUT -p tcp --dport 22 -j DROP
禁止轉發來自MAC地址為23:0E:29:27:65:EF主機的數據包
- iptables -A FORWARD -m mac --mac-source 23:0E:29:27:65:EF -j ACCEPT
防御IP碎片攻擊,限制IP碎片的數量,僅允許每秒處理1000個
- iptables -A FORWARD -f -m limit --limit 1000/s --limit-burst 1000 -j ACCEPT
允許本機開放從TCP端口20-1024提供的服務
- iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 20:1024 -j ACCEPT
只允許轉發來自172.16.0.0/24局域網段的DNS解析請求數據包
- iptables -A FORWARD -s 172.16.0.0/24 -p udp --dport 53 -j ACCEPT
- iptables -A FORWARD -d 172.16.0.0/24 -p udp --sport 53 -j ACCEPT
設置防火牆允許本機對外開放TCP端口21以及被動模式FTP端口1250-1280
- iptables -A INPUT -p tcp -m multiport --dport 21,1250:1280 -j ACCEPT
拒絕TCP標志位全部為1以及全部為0的報文訪問本機
- iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
拒絕訪問防火牆的新數據包,但允許響應連接或以有連接響應的數據包
- iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
以封堵目標網段(172.16.1.0/24),並在兩小時后接觸封鎖
- iptables -I INPUT -s 172.16.1.0/24 -j DROP
- iptbales -I FORWARD -s 172.16.1.0/24 -j DROP
- at now 2 hours
- iptables -D INPUT 1
- iptables -D FORWARD 1
ftp服務器的數據下載請求次數每分鍾不得超過五個
- iptables -A OUTPUT -m state --state RELATED -m limit --limit 5/minute -j ACCEPT
限制本機的web服務在周一不允許訪問
- iptables -A INPUT -p tcp --dport 80 -m time ! --weekdays Mon -j ACCEPT
在工作時間,即周一到周五的8:30-18:00,開放本機的ftp給192.168.1.0/24網絡中的主機訪問
- iptables -A INPUT -p tcp --dport 21 -s 192.168.1.0/24 -m time --weekdays 1,2,3,4,5 --timestart 08:30 --timestop 18:00 -j ACCEPT
禁止本機ping任何機器
- iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
允許轉發除icmp外所有的數據包
- iptables -A INPUT -p icmp -j REJECT
保存
- service iptables save
重啟
- service iptables restart
可能有誤,多去找找資料