FreeBSD安裝系統(tǒng)后的基本安全設置
編輯/etc/rc.conf。增加以下內(nèi)容
#ee /etc/rc.conf
#關(guān)閉掉syslog使用的端口
syslogd_enable="YES"
syslogd_flags="-ss"
#挫敗OS指紋識別(需要在內(nèi)核中加入options TCP_DROP_SYNFIN)
tcp_drop_synfin="YES"
#ICMP重定向
icmp_drop_redirect="YES"
icmp_log_rediretc="YES"
#記錄每一個企圖到關(guān)閉端口的連接
log_in_vain="YES"
#系統(tǒng)審計功能
accounting_enable="YES"
#開機自動清空/tmp
clear_tmp_enable="YES"
#禁用內(nèi)核信息提示
update_motd="NO"
#關(guān)閉nfs服務
nfs_server_enable="NO"
nsf_client_enable="NO"
portmap_enable="NO"
#關(guān)閉sendmail
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
#開啟磁盤配額
enable_quotas="YES"
check_quotas="YES"
刪除登陸時的信息提示
#rm /etc/motd
#touch /etc/motd
#touch /etc/COPYRIGHT
#ee /etc/gettytab
default:\
:cb:ce:ck:lc:fd#1000:im=\r\在這里修改成你需要的文字\r\n\r\n:sp#1200:\
:if=/etc/issue:
禁止一般用戶查看系統(tǒng)日志
# chmod g-w,o-r /var/log/*
# chmod 600 /etc/syslog.conf
# chmod 600 /etc/newsyslog.conf
為了防止cracker利用rootkit工具通過后門進入系統(tǒng),
# chflags schg /bin/*
# chflags schg /sbin/*
把系統(tǒng)的核心的運行層次設置為最安全的層次
# sysctl -w kern.securelevel=2
禁止一般用戶使用crontab
# echo root > /var/cron/allow
# chmod 600 /var/cron/allow
修改/etc/sysctl.conf,增加以下內(nèi)容
#ee /etc/sysctl.conf
#防止ICMP廣播風暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
#限制系統(tǒng)發(fā)送ICMP速率
net.inet.icmp.icmplim=100
#安全參數(shù),編譯內(nèi)核的時候加了options TCP_DROP_SYNFIN才可以用
net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1
#設置為1會幫助系統(tǒng)清除沒有正常斷開的TCP連接,這增加了一些網(wǎng)絡帶寬的使用,但是一些死掉的連接最終能被識別并清除。死的TCP連接是被撥號用戶存取的系統(tǒng)的一個特別的問題,因為用戶經(jīng)常斷開modem而不正確的關(guān)閉活動的連接
net.inet.tcp.always_keepalive=1
#若看到net.inet.ip.intr_queue_drops這個在增加,就要調(diào)大net.inet.ip.intr_queue_maxlen,為0最好
net.inet.ip.intr_queue_maxlen=0
#防止DOS攻擊,默認為30000
net.inet.tcp.msl=7500
#接收到一個已經(jīng)關(guān)閉的端口發(fā)來的所有包,直接drop,如果設置為1則是只針對TCP包
net.inet.tcp.blackhole=2
#接收到一個已經(jīng)關(guān)閉的端口發(fā)來的所有UDP包直接drop
net.inet.udp.blackhole=1
#為網(wǎng)絡數(shù)據(jù)連接時提供緩沖
net.inet.tcp.inflight.enable=1
#如果打開的話每個目標地址一次轉(zhuǎn)發(fā)成功以后它的數(shù)據(jù)都將被記錄進路由表和arp數(shù)據(jù)表,節(jié)約路由的計算時間,但會需要大量的內(nèi)核內(nèi)存空間來保存路由表
net.inet.ip.fastforwarding=0
#kernel編譯打開options POLLING功能,高負載情況下使用低負載不推薦SMP不能和polling一起用
#kern.polling.enable=1
#并發(fā)連接數(shù),默認為128,推薦在1024-4096之間,數(shù)字越大占用內(nèi)存也越大
kern.ipc.somaxconn=32768
#禁止用戶查看其他用戶的進程
security.bsd.see_other_uids=0
#設置kernel安全級別
kern.securelevel=0
#記錄下任何TCP連接
net.inet.tcp.log_in_vain=1
#記錄下任何UDP連接
net.inet.udp.log_in_vain=1
#防止不正確的udp包的攻擊
net.inet.udp.checksum=1
#防止DOS攻擊
net.inet.tcp.syncookies=1
#僅為線程提供物理內(nèi)存支持,需要256兆以上內(nèi)存
#kern.ipc.shm_use_phys=1
# 線程可使用的最大共享內(nèi)存
kern.ipc.shmmax=67108864
# 最大線程數(shù)量
kern.ipc.shmall=32768
# 程序崩潰時不記錄
kern.coredump=0
# lo本地數(shù)據(jù)流接收和發(fā)送空間
net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536
# 數(shù)據(jù)包數(shù)據(jù)段大小,ADSL為1452。
net.inet.tcp.mssdflt=1452
# 為網(wǎng)絡數(shù)據(jù)連接時提供緩沖
net.inet.tcp.inflight_enable=1
# 數(shù)據(jù)包數(shù)據(jù)段最小值,ADSL為1452
net.inet.tcp.minmss=1460
# 本地數(shù)據(jù)最大數(shù)量
net.inet.raw.maxdgram=65536
# 本地數(shù)據(jù)流接收空間
net.inet.raw.recvspace=65536
更改默認的加密算法為Blowfish
為了啟用 Blowfish 散列,編輯 /etc/login.conf 并把 passwd_format 一行改成下面這樣:
:passwd_format=blf:\
保存設置,重新創(chuàng)建登錄數(shù)據(jù)庫:
#cap_mkdb /etc/login.conf
隨后需要修改每一個用戶的口令,以便讓這些口令都使用 Blowfish 散列值。以超級用戶的身份執(zhí)行下面的命令:
#passwd username (username為你的用戶名)
需要修改所有用戶的口令,包括root自己。
完成了這些操作之后,重新檢查一下確認自己沒有遺漏什么:
#more /etc/master.passwd
所有用戶的口令應該以$2.開始
最后,重新配置 adduser 程序,讓它在以后使用Blowfish。修改 /etc/auth.conf,找到 crypt_default 一行,改為:
crypt_default=blf