過去に投稿した【Raspberry Pi 3 Model B で MVNO 向け Wi-Fi Proxy ルータを作ってみた】の修正
Apache httpd に対して CVE-2016-8743 の修正を適用しちゃうと、一部のまともじゃない Web サーバにつながらなくなってしまう問題をなんとかした。
その脆弱性が残るといえば残るけど、そうするしかワークアラウンド見つからないし、攻撃方法も複雑だからまあいいやと。よくないけど。
合わせて、Source RPM に対して手を入れた Squid が、あとで Revert されてしまうことに気づいたので、その辺の修正。
■修正したポイント
・Proxy 化スクリプトの実行時に、fstrim を発行
・Apache httpd の Source RPM の SPEC にて、CVE-2016-8743 を除外するよう修正
・ローカルビルドしたパッケージが、差し替わらないようにロック
■成果物
04-Proxy_Mode.sh
■CVE-2016-8743 の脆弱性を開けたくない場合
--- 04-Proxy_Mode.sh 2017-09-10 23:47:41.000000000 +0900 +++ 04-Proxy_Mode_NoRevert8743.sh 2017-09-10 23:49:09.000000000 +0900 @@ -543,18 +543,18 @@ systemctl start named-chroot ## Install Web Server. -su - admin -c "cd /home/admin/rpmbuild/SRPMS/ ; yumdownloader --source httpd" -su - admin -c "rpm -ivh /home/admin/rpmbuild/SRPMS/httpd*.src.rpm" -sed -i -e 's/^%patch212 -p1 -b .cve8743/#%patch212 -p1 -b .cve8743/g' /home/admin/rpmbuild/SPECS/httpd.spec -su - admin -c "rpmbuild -bs --define 'dist .el7.tsc' /home/admin/rpmbuild/SPECS/httpd.spec" -yum-builddep -y /home/admin/rpmbuild/SPECS/httpd.spec -su - admin -c "rpmbuild --rebuild --define 'dist .el7.tsc' /home/admin/rpmbuild/SRPMS/httpd*.el7.tsc*.src.rpm" -su - admin -c "cd /home/admin/rpmbuild/SRPMS/ ; createrepo ." -su - admin -c "cd /home/admin/rpmbuild/RPMS/ ; createrepo ." -cp -piav /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.org -sed -i -e 's/^\[base\]/[base]\nexclude=httpd\*/g' /etc/yum.repos.d/CentOS-Base.repo -sed -i -e 's/^\[updates\]/[updates]\nexclude=httpd\*/g' /etc/yum.repos.d/CentOS-Base.repo -yum --disablerepo=\* --enablerepo=tsc clean all +#su - admin -c "cd /home/admin/rpmbuild/SRPMS/ ; yumdownloader --source httpd" +#su - admin -c "rpm -ivh /home/admin/rpmbuild/SRPMS/httpd*.src.rpm" +#sed -i -e 's/^%patch212 -p1 -b .cve8743/#%patch212 -p1 -b .cve8743/g' /home/admin/rpmbuild/SPECS/httpd.spec +#su - admin -c "rpmbuild -bs --define 'dist .el7.tsc' /home/admin/rpmbuild/SPECS/httpd.spec" +#yum-builddep -y /home/admin/rpmbuild/SPECS/httpd.spec +#su - admin -c "rpmbuild --rebuild --define 'dist .el7.tsc' /home/admin/rpmbuild/SRPMS/httpd*.el7.tsc*.src.rpm" +#su - admin -c "cd /home/admin/rpmbuild/SRPMS/ ; createrepo ." +#su - admin -c "cd /home/admin/rpmbuild/RPMS/ ; createrepo ." +#cp -piav /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.org +sed -i -e 's/^\[base\]/[base]\nexclude=/g' /etc/yum.repos.d/CentOS-Base.repo +sed -i -e 's/^\[updates\]/[updates]\nexclude=/g' /etc/yum.repos.d/CentOS-Base.repo +#yum --disablerepo=\* --enablerepo=tsc clean all yum -y install httpd perl-Net-SSLeay cp -piav /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org sed -i -e 's/#AddHandler cgi-script .cgi/#AddHandler cgi-script .cgi\n AddHandler cgi-script .cgi/g' /etc/httpd/conf/httpd.conf