啥是個防火牆?html
防火牆(Firewall),也稱防禦牆,是由Check Point創立者Gil Shwed於1993年發明並引入國際互聯網(US5606668(A)1993-12-15)。它是一種位於內部網絡與外部網絡之間的網絡安全系統。一項信息安全的防禦系統,依照特定的規則,容許或是限制傳輸的數據經過。centos
所謂防火牆指的是一個由軟件和硬件設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說法,它是一種計算機硬件和軟件的結合,使Internet與Intranet之間創建起一個安全網關(Security Gateway),從而保護內部網免受非法用戶的侵入,防火牆主要由服務訪問規則、驗證工具、包過濾和應用網關4個部分組成,防火牆就是一個位於計算機和它所鏈接的網絡之間的軟件或硬件。該計算機流入流出的全部網絡通訊和數據包均要通過此防火牆。
緩存
在網絡中,所謂「防火牆」,是指一種將內部網和公衆訪問網(如Internet)分開的方法,它其實是一種隔離技術。防火牆是在兩個網絡通信時執行的一種訪問控制尺度,它能容許你「贊成」的人和數據進入你的網絡,同時將你「不一樣意」的人和數據拒之門外,最大限度地阻止網絡中的黑客來訪問你的網絡。換句話說,若是不經過防火牆,公司內部的人就沒法訪問Internet,Internet上的人也沒法和公司內部的人進行通訊。安全
防火牆啥做用?服務器
防火牆具備很好的保護做用。入侵者必須首先穿越防火牆的安全防線,才能接觸目標計算機。你能夠將防火牆配置成許多不一樣保護級別。高級別的保護可能會禁止一些服務,如視頻流等,但至少這是你本身的保護選擇。cookie
內核參數優化網絡
vi /etc/sysctl.conf #末尾添加以下參數 (備註:內核不夠熟,加上註解你們謹慎選擇使用)app
net.ipv4.tcp_syncookies = 1 #1是開啓SYN Cookies,當出現SYN 等待隊列溢出時,啓用Cookies來處理,可防範少許SYN攻擊,默認是0關閉 net.ipv4.tcp_tw_reuse = 1 #1是開啓重用,容許將TIME_AIT sockets從新用於新的TCP鏈接,默認是0關閉 ssh
net.ipv4.tcp_tw_recycle = 5 #TCP失敗重傳次數,默認是15,減 少次數可釋放內核資源 socket
net.ipv4.tcp_max_syn_backlog = 10240 #進入SYN包的最大請求隊列,默認 是1024
net.core.netdev_max_backlog = 10240 #容許送到隊列的數據包最大設備隊 列,默認300
net.core.somaxconn = 2048 #listen掛起請求的最大數量,默認 128
net.core.wmem_default = 8388608 #發送緩存區大小的缺省值
net.core.rmem_default = 8388608 #接受套接字緩衝區大小的缺省值 (以字節爲單位)
net.core.rmem_max = 16777216 #最大接收緩衝區大小的最大值
net.core.wmem_max = 16777216 #發送緩衝區大小的最大值
net.ipv4.tcp_synack_retries = 2 #SYN-ACK握手狀態重試次數,默認5
net.ipv4.tcp_syn_retries = 2 #向外SYN握手重試次數,默認4
net.ipv4.tcp_max_orphans = 3276800 #系統中最多有多少個TCP套接字不 被關聯到任何一個用戶文件句柄上,若是超出這個數字,孤兒鏈接將當即復位並打印警告信息
net.ipv4.tcp_mem = 94500000 915000000 927000000
#net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力;
#net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段;
#net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket。內存單位是頁,可根據 物理內存大小進行調整,若是內存足夠大的話,可適當往上調。上述內存單位是頁,而不是字節。
net.ipv4.ip_local_port_range = 20480 65535 #(表示用於向外鏈接的端口範圍。缺省狀況下很小:32768到61000 注意:這裏不要將最低值設的過低,不然可能會佔用掉正常的端口!
CentOS 系統優化
cp /etc/profile /etc/profilebak2
vi /etc/profile #在文件末尾添加如下內容
ulimit -c unlimited
ulimit -s unlimited
ulimit -SHn 65535
source /etc/profile #使配置當即生效
ulimit -a #顯示當前的各類用戶進程限制
服務器禁止PING
cp /etc/rc.d/rc.local /etc/rc.d/rc.localbak
vi /etc/rc.d/rc.local #在文件末尾增長下面這一行
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
參數0表示容許 1表示禁止
清空防火牆並設置規則
iptables -F #清楚防火牆規則
iptables -L #查看防火牆規則
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -P INPUT DROP
/etc/init.d/iptables save
配置防火牆以接受僅來自已知網段的 SSH 鏈接:(慎用:若是那臺主機掛了就慘了,這個真是比較安全的)
Update /etc/sysconfig/iptables (Redhat specific file) to accept connection only
from 192.168.100.0/24 and 209.64.100.5/27, enter:
-A RH-FW-1-INPUT -s 192.168.100.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
-A RH-FW-1-INPUT -s 209.64.100.5/27 -m state --state NEW -p tcp --dport 22 -j ACCEPT
SSH服務安全配置
vi /etc/ssh/sshd_config
1. 禁用root遠程登陸
PermitRootLoginno
PermitEmptyPasswords no #禁止空密碼登陸
2.不要支持閒置會話,並配置 Idle Log Out Timeout 間隔:
ClientAliveInterval 600 # (Set to 600 seconds = 10 minutes)
ClientAliveCountMax 0
3.禁用用戶的 .rhosts 文件:
IgnoreRhosts yes
4.PasswordAuthentication no
5.配置 iptables,以便在 30 秒內僅容許在端口 2022 上有三個鏈接嘗試:
Redhat iptables example (Update /etc/sysconfig/iptables):
-I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --set
-I INPUT -p tcp --dport 2022 -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 -j DR
6.ssh安全技巧之更改 SSH 端口
建議改爲 10000 以上,以下降掃描到端口的機率。
Port 18439
7.使用iptables容許特定的主機鏈接
做爲TCP wrappers的一個代替品,你可使用iptables來限制SSH訪問(但能夠同時使用這個兩個的),這裏有一個簡單的例子,指出瞭如何容許一個特定的主機鏈接到你的SSH服務:
iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT
保存後重啓ssh服務。
————————————————
以上優化內容皆爲轉載
版權聲明:本文爲CSDN博主「Andy-Su」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/knight_zhen/article/details/46444451
當我搜索「防火牆和系統安全防禦和優化」,看到這些博客都是2019年12月發佈的,我就明白了一切。校友,額,是院友,也有多是同班的朋友。
因此若是你也是爲了做業看到個人這篇博客的話
那麼
你好
爲了做業憂愁的安師學子